class Kameleon::DSL::Context::Scope
Attributes
params[RW]
Public Class Methods
new(params)
click to toggle source
# File lib/kameleon/dsl/context/scope.rb, line 8 def initialize(params) @params = params end
Public Instance Methods
selector()
click to toggle source
# File lib/kameleon/dsl/context/scope.rb, line 12 def selector detect_selector(params) end
Private Instance Methods
default_selector()
click to toggle source
# File lib/kameleon/dsl/context/scope.rb, line 55 def default_selector defined_areas[:default] || [:xpath, "//body"] end
defined_areas()
click to toggle source
# File lib/kameleon/dsl/context/scope.rb, line 59 def defined_areas ::Kameleon::Session.defined_areas end
detect_selector(param)
click to toggle source
# File lib/kameleon/dsl/context/scope.rb, line 18 def detect_selector(param) case param when Hash #! add warning when there is more then one element in hash Kameleon::DSL::Context::SpecialSelectors.send(*param.first) when Symbol normalize(defined_areas[param]) when String normalize(param) when Array param.size == 1 ? detect_selector(param.first) : normalize(param) when nil normalize(default_selector) else raise "type <#{param.class.name}> not implemented" end end
normalize(params)
click to toggle source
# File lib/kameleon/dsl/context/scope.rb, line 38 def normalize(params) case params when String [::Capybara.default_selector, params] when Array if params.empty? normalize(default_selector) elsif params.size == 1 [::Capybara.default_selector] + params elsif [:xpath, :css].include?(params.first) params else JoinInToOne.new(params, self).selector end end end