Adding Webrat::Methods module in a WIP effort to cleanup framework integration
This commit is contained in:
parent
87f549b3af
commit
d4fb7bbd0a
@ -7,3 +7,4 @@ require "webrat/core/area"
|
|||||||
require "webrat/core/label"
|
require "webrat/core/label"
|
||||||
require "webrat/core/select_option"
|
require "webrat/core/select_option"
|
||||||
require "webrat/core/session"
|
require "webrat/core/session"
|
||||||
|
require "webrat/core/methods"
|
||||||
|
35
lib/webrat/core/methods.rb
Normal file
35
lib/webrat/core/methods.rb
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
module Webrat
|
||||||
|
module Methods
|
||||||
|
|
||||||
|
def self.delegate_to_session(*meths)
|
||||||
|
meths.each do |meth|
|
||||||
|
self.class_eval <<-RUBY
|
||||||
|
def #{meth}(*args, &blk)
|
||||||
|
with_session do |sess|
|
||||||
|
sess.#{meth}(*args, &blk)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
RUBY
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def with_session
|
||||||
|
@session ||= ::Webrat::Session.new
|
||||||
|
yield @session
|
||||||
|
@session.response
|
||||||
|
end
|
||||||
|
|
||||||
|
# all of these methods delegate to the @session, which should
|
||||||
|
# be created transparently.
|
||||||
|
delegate_to_session :visits, :within, :clicks_link_within,
|
||||||
|
:reload, :header, :http_accept, :basic_auth,
|
||||||
|
:save_and_open_page, :fill_in, :check,
|
||||||
|
:uncheck, :choose, :select, :attach_file,
|
||||||
|
:click_area, :click_link, :click_button,
|
||||||
|
:field_labeled
|
||||||
|
|
||||||
|
alias reloads reload
|
||||||
|
alias visit visits
|
||||||
|
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in New Issue
Block a user