module Juniter::HasAttributes
Public Class Methods
included(base)
click to toggle source
# File lib/juniter/has_attributes.rb, line 6 def self.included(base) base.extend(ClassMethods) end
Public Instance Methods
assign_attributes_from_xml(node)
click to toggle source
# File lib/juniter/has_attributes.rb, line 45 def assign_attributes_from_xml(node) attributes = node.attributes self.class.attributes.each do |name| key = self.class.attribute_aliases.fetch(name, name).to_sym mapped = attributes.key?(key) ? self.class.attribute_processors[name].call(node[key]) : nil public_send "#{name}=", mapped end end
xml_attributes()
click to toggle source
# File lib/juniter/has_attributes.rb, line 54 def xml_attributes self.class.attributes.each_with_object({}) do |name, hash| key = self.class.attribute_aliases.fetch(name, name) value = public_send(name) raise UnsetAttributeError if self.class.required_attributes.include?(name) && value.nil? hash[key] = public_send(name) end end
Protected Instance Methods
valid_number?(value)
click to toggle source
# File lib/juniter/has_attributes.rb, line 65 def valid_number?(value) raise ArgumentError, "Must be a number" unless value.is_a?(Numeric) end