Sha256: cb09b2498c0921abfceebafa030688a06e93c71b3a843c95127e229962d9c662

Contents?: true

Size: 732 Bytes

Versions: 5

Compression:

Stored size: 732 Bytes

Contents

module Hermes
  module Scopes
    def within(*args)
      object = args[0]
      prefix = args[1]

      scope = if object.is_a?(ActiveRecord::Base)
        ['#' + ActionController::RecordIdentifier.dom_id(object, prefix)]
      else
        args
      end
      super(*scope)
    end

    def click_link_within(scope, link)
      within(scope) { click_link(link) }
    end

    %w(check uncheck).each do |method|
      class_eval <<-RUBY, __FILE__, __LINE__ + 1
        def #{method}(*args)
          if args[0].is_a?(ActiveRecord::Base)
            scope = ActionController::RecordIdentifier.dom_id(args[0], args[1])
            super(scope)
          else
            super
          end
        end
      RUBY
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
hermes-0.5.1 lib/hermes/scopes.rb
hermes-0.5.0 lib/hermes/scopes.rb
hermes-0.4.1 lib/hermes/scopes.rb
hermes-0.4.0 lib/hermes/scopes.rb
hermes-0.3.0 lib/hermes/scopes.rb