class Nfe::NfeObject
Public Class Methods
class_name()
click to toggle source
# File lib/nfe/nfe_object.rb, line 58 def self.class_name self.name.split('::')[-1] end
create_from(params)
click to toggle source
# File lib/nfe/nfe_object.rb, line 8 def self.create_from(params) obj = self.new obj.reflesh_object(params) end
new()
click to toggle source
# File lib/nfe/nfe_object.rb, line 62 def initialize() @values = {} end
url()
click to toggle source
# File lib/nfe/nfe_object.rb, line 50 def self.url "/v1/#{CGI.escape(class_name.downcase)}s" end
Public Instance Methods
create_fields(params)
click to toggle source
# File lib/nfe/nfe_object.rb, line 22 def create_fields(params) instance_eval do metaclass.instance_eval do params.keys.each do |key| define_method(key) { @values[key] } define_method("#{key}=") do |value| @values[key] = value end end end end end
create_list(array)
click to toggle source
# File lib/nfe/nfe_object.rb, line 104 def create_list(array) hash = {} hash[:data] = array hash[:object] = 'list' hash end
metaclass()
click to toggle source
# File lib/nfe/nfe_object.rb, line 4 def metaclass class << self; self; end end
method_missing(name, *args)
click to toggle source
# File lib/nfe/nfe_object.rb, line 66 def method_missing(name, *args) if name.to_s.end_with? '=' name = name.to_s[0...-1].to_sym end if serialize_params.include? name @values[name] = args[0] else raise NoMemoryError.new ("Cannot set #{name} on this object") end end
reflesh_object(params)
click to toggle source
# File lib/nfe/nfe_object.rb, line 13 def reflesh_object(params) if params.class == Array params = create_list(params) end create_fields(params) set_properties(params) self end
set_properties(params)
click to toggle source
# File lib/nfe/nfe_object.rb, line 36 def set_properties(params) instance_eval do params.each do |key, value| if value.class == Hash @values[key] = Util.get_object_type(value['object']).create_from(value) elsif value.class == Array @values[key] = value.map{ |v| Util.get_object_type(v['object']).create_from(v) } else @values[key] = value end end end end
to_hash()
click to toggle source
# File lib/nfe/nfe_object.rb, line 78 def to_hash @values.inject({}) do |result, (key,value)| if value.is_a? Array list = [] value.each do |obj| list.push(obj.respond_to?(:to_hash) ? obj.to_hash : value) end result[key] = list else if value.respond_to?(:to_hash) result[key] = value.to_hash else result[key] = value end end result end end
to_json(*a)
click to toggle source
# File lib/nfe/nfe_object.rb, line 96 def to_json(*a) JSON.generate(@values) end
to_s()
click to toggle source
# File lib/nfe/nfe_object.rb, line 100 def to_s JSON.generate(@values) end
url()
click to toggle source
# File lib/nfe/nfe_object.rb, line 54 def url "#{self.class.url}/#{self.id}" end