Module: Origami::XFA::ClassMethods

Defined in:
lib/origami/xfa/xfa.rb

Instance Method Summary collapse

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