Module: Origami::XFA::ClassMethods
- Defined in:
- lib/origami/xfa/xfa.rb
Instance Method Summary collapse
- #mime_type(type) ⇒ Object
- #xfa_attribute(name) ⇒ Object
- #xfa_node(name, type, _range = (0..Float::INFINITY)) ⇒ Object
Instance Method Details
#mime_type(type) ⇒ Object
73 74 75 |
# File 'lib/origami/xfa/xfa.rb', line 73 def mime_type(type) define_method("mime_type") { type } end |
#xfa_attribute(name) ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/origami/xfa/xfa.rb', line 29 def xfa_attribute(name) # Attribute getter. attr_getter = "attr_#{name}" begin remove_method(attr_getter) rescue NameError end define_method(attr_getter) do attributes[name.to_s] end # Attribute setter. attr_setter = "attr_#{name}=" begin remove_method(attr_setter) rescue NameError end define_method(attr_setter) do |value| attributes[name.to_s] = value end end |
#xfa_node(name, type, _range = (0..Float::INFINITY)) ⇒ Object
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/origami/xfa/xfa.rb', line 53 def xfa_node(name, type, _range = (0..Float::INFINITY)) adder = "add_#{name}" begin remove_method(adder) rescue NameError end define_method(adder) do |*attr| elt = add_element(type.new) unless attr.empty? attr.first.each do |k, v| elt.attributes[k.to_s] = v end end elt end end |