Method: Nitro::XmlHelper#method_missing

Defined in:
lib/nitro/helper/xml.rb

#method_missing(tag, *args, &block) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/nitro/helper/xml.rb', line 11

def method_missing(tag, *args, &block)
  self.class.module_eval "    def \#{tag}(*args)\n      attrs = args.last.is_a?(Hash) ? args.pop : nil\n\n      if block_given?\n        start_tag!('\#{tag}', attrs)\n        yield\n        end_tag!('\#{tag}')\n      elsif (!args.empty?)\n        start_tag!('\#{tag}', attrs)\n        self << args.first \n        end_tag!('\#{tag}')\n      else\n        start_tag!('\#{tag}', attrs, false)\n        self << ' />'\n      end\n    end\n  end_eval\n\n  self.send(tag, *args, &block)\nend\n", __FILE__, __LINE__