module Cut::ClassMethods

Public Instance Methods

all(options = {}) click to toggle source
# File lib/cut/class_methods.rb, line 16
def all(options = {})
  Client.get(@url, options).css(@selector).map {|node| from_node(node) }
end
first(options = {}) click to toggle source
# File lib/cut/class_methods.rb, line 20
def first(options = {})
  from_node(Client.get(@url, options).at_css(@selector))
end
map(*args) click to toggle source
# File lib/cut/class_methods.rb, line 12
def map(*args)
  add_mapping(*args)
end
selector(new_selector) click to toggle source
# File lib/cut/class_methods.rb, line 8
def selector(new_selector)
  @selector = new_selector
end
url(new_url) click to toggle source
# File lib/cut/class_methods.rb, line 4
def url(new_url)
  @url = new_url
end

Private Instance Methods

add_mapping(name, type, options) click to toggle source
# File lib/cut/class_methods.rb, line 30
def add_mapping(name, type, options)
  mappings << Mapping.new(name, options)
  send(:attribute, name, type)
end
from_node(node) click to toggle source
# File lib/cut/class_methods.rb, line 35
def from_node(node)
  new.tap do |instance|
    mappings.each do |mapping|
      instance.send("#{mapping.name}=", mapping.value_from_node(node))
    end
  end
end
mappings() click to toggle source
# File lib/cut/class_methods.rb, line 26
def mappings
  @mappings ||= []
end