class Gametel::Views::View

Attributes

locator[R]
platform[R]

Public Class Methods

new(platform, locator) click to toggle source
# File lib/gametel/views/view.rb, line 6
def initialize(platform, locator)
  @platform = platform
  @locator = locator
  build_property_methods
end

Public Instance Methods

raw_view(&block) click to toggle source
# File lib/gametel/views/view.rb, line 16
def raw_view(&block)
  get_view_by_id(locator[:id], &block) if locator[:id]
  get_view_by_index(view_class, locator[:index], &block) if locator[:index]
  get_view_by_index(locator[:class], locator[:index] || 0, &block) if locator[:class]
  get_view_by_text(locator[:text], &block) if locator[:text]
end
view_class() click to toggle source
# File lib/gametel/views/view.rb, line 12
def view_class
  'android.view.View'
end

Protected Instance Methods

build_property_methods() click to toggle source
# File lib/gametel/views/view.rb, line 41
def build_property_methods
  metaclass = class << self; self; end
  properties.each do |property|
    metaclass.send(:define_method, "#{property}?".to_sym) do
      raw_view {|device| device.send "is_#{property}" }
      platform.last_response.body == "true"
    end
  end
end
get_view_by_id(id, &block) click to toggle source
# File lib/gametel/views/view.rb, line 29
def get_view_by_id(id, &block)
  platform.get_view_by_id(id, &block)
end
get_view_by_index(clazz, index, &block) click to toggle source
# File lib/gametel/views/view.rb, line 33
def get_view_by_index(clazz, index, &block)
  platform.get_view_by_index(clazz, index, &block)
end
get_view_by_text(text, &block) click to toggle source
# File lib/gametel/views/view.rb, line 37
def get_view_by_text(text, &block)
  raise NotImplementedError
end
properties() click to toggle source
# File lib/gametel/views/view.rb, line 25
def properties
  [:clickable, :enabled, :focusable, :focused, :selected, :shown]
end