Sha256: 6e7128c93f504976a16d215db8777765d2850e8d38b73d4fd6752aed10370656

Contents?: true

Size: 1015 Bytes

Versions: 9

Compression:

Stored size: 1015 Bytes

Contents

module PathSelectorFallbacks
  def _selector_for(locator)
    if respond_to?(:select_for)
      selector_for(locator)
    elsif locator =~ /^"(.+)"$/
      $1
    else
      raise "Can't find mapping from \"#{locator}\" to a selector.\n" +
        "Add and require a selectors.rb file (compare #{Spreewald.github_url}/examples/selectors.rb)"
    end
  end

  def _path_to(page_name)
    if respond_to?(:path_to)
      path_to(page_name)
    else
      begin
        page_name =~ /^the (.*) page$/
        path_components = $1.split(/\s+/)
        self.send(path_components.push('path').join('_').to_sym)
      rescue NoMethodError, ArgumentError
        raise "Can't find mapping from \"#{page_name}\" to a path.\n" +
          "Add and require a paths.rb file (compare #{Spreewald.github_url}/examples/paths.rb)"
      end
    end
  end
end
World(PathSelectorFallbacks)

module WithinHelpers
  def with_scope(locator)
    locator ? within(*_selector_for(locator)) { yield } : yield
  end
end
World(WithinHelpers)

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
spreewald-0.1.4 lib/spreewald_support/path_selector_fallbacks.rb
spreewald-0.1.3 lib/spreewald_support/path_selector_fallbacks.rb
spreewald-0.1.2 lib/spreewald_support/path_selector_fallbacks.rb
spreewald-0.1.1 lib/spreewald_support/path_selector_fallbacks.rb
spreewald-0.1.0 lib/spreewald_support/path_selector_fallbacks.rb
spreewald-0.0.4 lib/spreewald_support/path_selector_fallbacks.rb
spreewald-0.0.3 lib/spreewald_support/path_selector_fallbacks.rb
spreewald-0.0.2 lib/spreewald_support/path_selector_fallbacks.rb
spreewald-0.0.1 lib/spreewald_support/path_selector_fallbacks.rb