A loop from 0 to 12 by 3 can be written as follows.
0.step(12, 3) {|x| print x, " " }
produces:
0 3 6 9 12
rescue SystemExit, Interrupt
raise
rescue Exception => e
#...
end
you can use
SystemExit, Interrupt classes to exit from script with Ctrl+C
irb(main):001:0> s = "string"
=> "string"
irb(main):006:0> s[ 'hi' ] = 'foo'
IndexError: string not matched
from (irb):6:in
Here you already declared 's' as string then you can't use it as hash.
I meet two kinds of redirect: "Location" response and tag.
Here's my solution:
================================================
require 'net/http'
require 'net/https'
http = Net::HTTP.new('www.microsoft.com', 80)
resp, data = http.get('/',nil)
#1."Location" response redirect...
if resp.response['Location']!=nil then
puts 'Direct to: ' + resp.response['Location']
redirectUrl=resp.response['Location']
end
#2. tag redirect...
redirectUrl=data.scan(//).to_s
if redirectUrl!=nil then
puts 'Direct to: ' +redirectUrl
end
http://www.ruby-forum.com/topic/142745
require 'mechanize'
agent = WWW::Mechanize.new
agent.basic_auth('username', 'password')
agent.get('www.example.com')
require 'rubygems'
require 'mechanize'
agent = WWW::Mechanize.new
agent.set_proxy('localhost', '8000')
agent.user_agent = 'Individueller User-Agent'
agent.user_agent_alias = 'Linux Mozilla'
agent.open_timeout = 3
agent.read_timeout = 4
agent.keep_alive = false
agent.max_history = 0 # reduce memory if you make lots of requests
url = 'http://apoc.sixserv.org/requestinfo/'
page = agent.get url
# or ...
page = agent.get(url, {"name" => "value", "key" => "val"})
url = 'http://apoc.sixserv.org/requestinfo/'
page = agent.post(url, {"name" => "value", "key" => "val"})
page = agent.get 'https://twitter.com/login'
login_form = page.form_with(:action => 'https://twitter.com/sessions')
login_form['session[username_or_email]'] = '[Username]'
login_form['session[password]'] = '[Password]'
page = agent.submit login_form
page = agent.get 'http://www.heise.de/'
page = agent.click(page.link_with(:text => /Telepolis/))
page = agent.click(page.link_with(:href => /artikel/))
agent.back
agent.back
puts page.body
begin
page = agent.get 'http://apoc.sixserv.org/diese/seite/gibt/es/nicht/'
rescue WWW::Mechanize::ResponseCodeError
puts "ResponseCodeError - Code: #{$!}"
end
page = agent.get(:url => 'http://apoc.sixserv.org/requestinfo/',
:referer => 'http://google.com/this/is/a/custom/referer')
puts page.body
agent.pre_connect_hooks << lambda do |params|
params[:request]['X-Requested-With'] = 'XMLHttpRequest'
end
page = agent.head 'http://sixserv.org'
server_version = page.header['server']
puts "Server: #{server_version}"
if page.header.key? 'x-powered-by'
php_version = page.header['x-powered-by']
puts "X-Powered-By: #{php_version}"
end
# redirection urls:
agent.redirect_ok = false
page = agent.get 'http://www.sixserv.org/'
puts page.header['location']
# X Path / CSS-Selector:
page = agent.get 'http://xkcd.com/'
img = page.search '/html/body/div/div[2]/div/div[2]/div/div/img'
puts img
# Regular Expression:
page = agent.get 'http://example.com/'
page.body.match /< h3>([^<]+)< \/h3>/
puts "Heading 3: #{$1}"
# *_with: form, link, base, frame or iframe
# get the first link including "foo" inside url:
page.link_with(:href => /foo/)
# all links with text 'more'
page.links_with(:text => 'more')
# get the form with the name 'foo'
page.form_with('foo') # or form_with(:name => 'foo')
require 'resque_scheduler'
COUNT=5 QUEUE=* rake resque:workers
rake resque:scheduler
resque-web ~/pathToYourApp/config/initializers/resque.rb
http://stackoverflow.com/questions/7048020/rails-3-0-9-resque-scheduler-and-delayed-job-error-undefined-method-enqueue-at