Module: Ranicoma::Util

Included in:
Creator, Design::Base
Defined in:
lib/ranicoma/util.rb

Instance Method Summary collapse

Instance Method Details

#element(name, opt = {}) { ... } ⇒ REXML::Element

REXML::Element を作る

Parameters:

  • name (Object)

    タグ名。to_s で文字列にされる。

  • opt (Hash) (defaults to: {})

    アトリビュート。key も value も to_s で文字列にされる

Yields:

  • 子要素作るブロック

Yield Returns:

  • (REXML::Element, Array<REXML::Element>)

    子要素または子要素の配列

Returns:

  • (REXML::Element)

    XML Element。



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/ranicoma/util.rb', line 11

def element(name, opt={})
  r=opt.each.with_object(REXML::Element.new(name)) do |(k,v),e|
    e.add_attribute(k.to_s, v.to_s)
  end
  if block_given?
    children = yield
    if children.is_a?(Array)
      children.flatten.each do |ch|
        r.add_element(ch)
      end
    else
      r.add_element(children)
    end
  end
  r
end