module Juniter::HasChildren::ClassMethods
Public Instance Methods
array_children()
click to toggle source
# File lib/juniter/has_children.rb, line 45 def array_children @__array_children ||= [] end
child(name, as: nil, array: false, map: nil)
click to toggle source
# File lib/juniter/has_children.rb, line 9 def child(name, as: nil, array: false, map: nil) child_types << name child_aliases[name] = as unless as.nil? child_processors[name] = map || ->(node) { node.text } array_children << name if array define_method :"#{name}" do instance_variable_set(:"@_#{name}", array ? [] : nil ) unless instance_variable_defined?(:"@_#{name}") instance_variable_get(:"@_#{name}") end define_method :"#{name}=" do |value| instance_variable_set :"@_#{name}", value end end
child_aliases()
click to toggle source
# File lib/juniter/has_children.rb, line 41 def child_aliases @__child_aliases ||= {} end
child_processors()
click to toggle source
# File lib/juniter/has_children.rb, line 37 def child_processors @__child_processors ||= {} end
child_types()
click to toggle source
# File lib/juniter/has_children.rb, line 33 def child_types @__child_types ||= [] end
text_child(*args)
click to toggle source
# File lib/juniter/has_children.rb, line 25 def text_child(*args) if args.any? @__text_child = args.first child(args.first) end @__text_child end