class Tosuto::Resource
Public Class Methods
attr_collections(hash)
click to toggle source
# File lib/tosuto/resource.rb, line 18 def self.attr_collections(hash) hash.each do |name, klass| attr_reader(name) define_method("#{name}=") { |ary| instance_variable_set("@#{name}", parse_collection(ary, klass)) } end end
attr_objects(hash)
click to toggle source
# File lib/tosuto/resource.rb, line 9 def self.attr_objects(hash) hash.each do |name, klass| attr_reader(name) define_method("#{name}=") { |obj| instance_variable_set("@#{name}", parse_object(obj, klass)) } end end
encode_form_data(body)
click to toggle source
# File lib/tosuto/resource.rb, line 5 def self.encode_form_data(body) body.map { |key, value| "#{key}=#{CGI.escape(value)}" }.join("&") end
Public Instance Methods
inspect()
click to toggle source
# File lib/tosuto/resource.rb, line 63 def inspect "#<#{self.class} #{[@guid, @name || @display_name].join(" ")}>" end
parse_collection(ary, klass)
click to toggle source
# File lib/tosuto/resource.rb, line 49 def parse_collection(ary, klass) ary.map { |obj| parse_object(obj, klass) } end
parse_object(obj, klass)
click to toggle source
# File lib/tosuto/resource.rb, line 55 def parse_object(obj, klass) if obj.is_a?(klass) obj else klass.new(obj) end end
set_attribute(key, value)
click to toggle source
# File lib/tosuto/resource.rb, line 36 def set_attribute(key, value) setter = "#{underscore(key)}=" send(setter, value) if respond_to?(setter) end
set_attributes(hash)
click to toggle source
# File lib/tosuto/resource.rb, line 41 def set_attributes(hash) return unless hash.is_a?(Hash) hash.each do |key, value| set_attribute(key, value) end end
underscore(value)
click to toggle source
# File lib/tosuto/resource.rb, line 27 def underscore(value) return value unless /[A-Z-]/.match?(value) word = value.to_s.gsub(/([A-Z\d]+)([A-Z][a-z])/, '\1_\2') word.gsub!(/([a-z\d])([A-Z])/, '\1_\2') word.tr!("-", "_") word.downcase! word end