Module: Ow::Parser::ClassMethods

Defined in:
lib/ow/parser.rb

Instance Method Summary collapse

Instance Method Details

#element(name, options = {}) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/ow/parser.rb', line 8

def element(name, options = {})
  accessor_name = options.fetch(:as) { name }

  @element_mapping ||= Hash.new
  @element_mapping[name.to_s] = accessor_name

  define_method(accessor_name.to_sym) do
    instance_variable_get("@#{accessor_name}")
  end

  define_method("#{accessor_name}=".to_sym) do |value|
    instance_variable_set("@#{accessor_name}", value)
  end
end

#element_mappingObject



23
24
25
# File 'lib/ow/parser.rb', line 23

def element_mapping
  @element_mapping
end

#from_document(document) ⇒ Object



27
28
29
30
31
32
33
34
35
36
# File 'lib/ow/parser.rb', line 27

def from_document(document)
  obj = new

  element_mapping.each do |element_name, accessor|
    value = document.elements[element_name].text
    obj.send("#{accessor}=", value)
  end

  obj
end