class BuhoCfdi::BaseNode
Attributes
node_hash[RW]
Public Class Methods
new(params = {})
click to toggle source
# File lib/buho_cfdi/base_node.rb, line 8 def initialize(params = {}) @node_hash = {} params.each_pair do |key, value| if respond_to? key instance_variable_set("@#{key}", value) end end end
Private Class Methods
attr_accessor(*args)
click to toggle source
Calls superclass method
# File lib/buho_cfdi/base_node.rb, line 77 def attr_accessor(*args) @params ||= [] @params.concat(args) super(*args) end
build_child(params)
click to toggle source
# File lib/buho_cfdi/base_node.rb, line 66 def build_child(params) node = self.new(params) if node.valid? self.class.send(:attr_reader, self.name.downcase.sub( '::', '_')) instance_variable_set("@#{self.name.downcase.sub( '::', '_')}", self.new) else nil end end
params()
click to toggle source
# File lib/buho_cfdi/base_node.rb, line 84 def params @params end
Public Instance Methods
build_child(params)
click to toggle source
# File lib/buho_cfdi/base_node.rb, line 37 def build_child(params) node = self.class.new(params) if node.valid? self.class.send(:attr_reader, self.class.name.downcase.sub( '::', '_')) instance_variable_set("@#{self.class.name.downcase.sub( '::', '_')}", self.class.new) else nil end end
build_child!(klass, params)
click to toggle source
# File lib/buho_cfdi/base_node.rb, line 26 def build_child!(klass, params) node = klass.new(params) if node.valid? self.class.send(:attr_reader, klass.name.downcase.sub( '::', '_')) instance_variable_set("@#{klass.name.downcase.sub( '::', '_')}", node) else nil end end
build_children(klass)
click to toggle source
# File lib/buho_cfdi/base_node.rb, line 48 def build_children(klass) self.class.send(:attr_reader, klass.name.downcase.sub( '::', '_')) instance_variable_set( "@#{klass.name.downcase.sub( '::', '_')}", ::Nodes::Collection.new(klass) ) self end
to_hash()
click to toggle source
# File lib/buho_cfdi/base_node.rb, line 18 def to_hash self.class.params.each do |param| node_hash[define_locale(param)] = send(param) unless send(param).blank? end node_hash end
Private Instance Methods
define_locale(param)
click to toggle source
# File lib/buho_cfdi/base_node.rb, line 61 def define_locale(param) I18n.t("nodes.#{self.class.name.demodulize.underscore}.#{param}") end