Module: XMLable::Mixins::RootStorage::ClassMethods

Defined in:
lib/xmlable/mixins/root_storage.rb

Instance Method Summary collapse

Instance Method Details

#__define_root(h) ⇒ Object

Define root object methods



142
143
144
145
146
147
148
# File 'lib/xmlable/mixins/root_storage.rb', line 142

def __define_root(h)
  return if h.method_name == 'root'
  define_method(h.method_name) { root }
  define_method("#{h.method_name}=") { |val| self.root = val }
  define_method("#{h.method_name}!") { root! }
  define_method("__initialize_#{h.method_name}") { |val| __initialize_root(val) }
end

#__root_handlerXMLable::Handlers::Root, XMLable::Handlers::RootNone

Root object’s handler



155
156
157
158
# File 'lib/xmlable/mixins/root_storage.rb', line 155

def __root_handler
  @__root_handler ||=
    __nested(:@__root_handler) || Handlers::RootNone.build(:root)
end

#root(*args, &block) ⇒ Object

Define root handler

See Also:

  • Handler::Base#build


132
133
134
135
# File 'lib/xmlable/mixins/root_storage.rb', line 132

def root(*args, &block)
  @__root_handler = Handlers::Root.build(*args, &block)
  __define_root(@__root_handler)
end