class Nibo::Object
Public Class Methods
class_name()
click to toggle source
# File lib/nibo/object.rb, line 51 def self.class_name self.name.split('::')[-1] end
create_from(params)
click to toggle source
# File lib/nibo/object.rb, line 8 def self.create_from(params) obj = self.new obj.refresh_object(params) end
new()
click to toggle source
# File lib/nibo/object.rb, line 55 def initialize @values = {} end
url()
click to toggle source
# File lib/nibo/object.rb, line 47 def self.url "/#{CGI.escape(class_name)}" end
Public Instance Methods
create_fields(params)
click to toggle source
# File lib/nibo/object.rb, line 19 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
metaclass()
click to toggle source
# File lib/nibo/object.rb, line 4 def metaclass class << self; self; end end
refresh_object(params)
click to toggle source
# File lib/nibo/object.rb, line 13 def refresh_object(params) create_fields(params) set_properties(params) self end
set_properties(params)
click to toggle source
# File lib/nibo/object.rb, line 33 def set_properties(params) instance_eval do params.each do |key, value| if value.class == Hash @values[key] = Nibo::Object.create_from(value) elsif value.class == Array @values[key] = value.map{ |v| Nibo::Object.create_from(v) } else @values[key] = value end end end end
to_hash()
click to toggle source
# File lib/nibo/object.rb, line 59 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 elsif value.respond_to?(:to_hash) result[key] = value.to_hash else result[key] = value end result end end
to_json(*a)
click to toggle source
# File lib/nibo/object.rb, line 76 def to_json(*a) JSON.generate(@values) end
to_s()
click to toggle source
# File lib/nibo/object.rb, line 80 def to_s JSON.generate(@values) end