module Mobilify
Constants
- VERSION
Public Class Methods
new(browser, opts = {})
click to toggle source
Build page object with context(s) for method replacement
Calls superclass method
# File lib/mobilify.rb, line 10 def initialize(browser, opts = {}) super(browser, opts[:visit] || false) @context = set_context opts[:context] mobilify! if @context end
Private Class Methods
included(klass)
click to toggle source
Include page-object too
# File lib/mobilify.rb, line 31 def self.included klass klass.send :include, PageObject end
Public Instance Methods
context()
click to toggle source
Returns context(s) passed to page object instance construction
@return [Array]
# File lib/mobilify.rb, line 21 def context @context end
Also aliased as: context?
Private Instance Methods
get_contextual_match(context)
click to toggle source
Find page object methods matching the given context
# File lib/mobilify.rb, line 65 def get_contextual_match context methods.select{ |m| m.to_s.start_with? "#{context}_" }.select{ |m| respond_to? m.to_s.gsub("#{context}_","") } end
match_and_replace(context)
click to toggle source
Method replacement
# File lib/mobilify.rb, line 56 def match_and_replace context get_contextual_match(context).map { |m| self.method(m) }.each do |method| replace! method, context end end
mobilify!()
click to toggle source
Iterate over contexts for method replacement
# File lib/mobilify.rb, line 46 def mobilify! @context.each_with_object([]) do |c, array| next unless array.flatten.empty? array << match_and_replace(c.to_s) end end
replace!(method, context)
click to toggle source
Redefine contextually matching method as original method
# File lib/mobilify.rb, line 72 def replace! method, context (class << self; self; end).class_eval{ define_method(method.name.to_s.gsub("#{context}_",""), method) } end
set_context(config)
click to toggle source
Format given context(s) to Mobilify's liking
# File lib/mobilify.rb, line 38 def set_context config return nil if config.nil? config.kind_of?(Array) ? config.flatten.map(&:to_sym) : [config].map(&:to_sym) end