Sha256: a38b9e1ecfebfcf0f747367131b547eb759e449293c823cf6174208dca4972f2

Contents?: true

Size: 1.1 KB

Versions: 7

Compression:

Stored size: 1.1 KB

Contents

module Merb
  module WebratHelper

    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.
    #
    # Note that when using Webrat, #request also uses @session, so
    # that #request and webrat native functions behave interchangably
    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

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
merb-core-1.1.3 spec10/public/webrat/test_app/gems/gems/merb-core-0.9.14/lib/merb-core/test/webrat.rb
merb-core-1.1.2 spec10/public/webrat/test_app/gems/gems/merb-core-0.9.14/lib/merb-core/test/webrat.rb
merb-core-1.1.1 spec10/public/webrat/test_app/gems/gems/merb-core-0.9.14/lib/merb-core/test/webrat.rb
merb-core-1.1.0 spec10/public/webrat/test_app/gems/gems/merb-core-0.9.14/lib/merb-core/test/webrat.rb
merb-core-1.1.0.rc1 spec10/public/webrat/test_app/gems/gems/merb-core-0.9.14/lib/merb-core/test/webrat.rb
merb-core-1.1.0.pre spec10/public/webrat/test_app/gems/gems/merb-core-0.9.14/lib/merb-core/test/webrat.rb
merb-core-0.9.13 lib/merb-core/test/webrat.rb