lib/transcriber/resource.rb in transcriber-0.0.3 vs lib/transcriber/resource.rb in transcriber-0.0.4

- old
+ new

@@ -1,10 +1,10 @@ module Transcriber class Resource extend Builder extend Parser - extend Response + include Response include Serialization cattr_accessor :id_key cattr_writer :resource_name @@ -14,43 +14,36 @@ def self.keys @keys ||= [] end + def self.summarized_keys + @summarized_keys ||= [] + end + def self.relations @keys.find_all {|k| k.kind_of?(Relation)} end def self.resource_name(custom_name = nil) @resource_name ||= custom_name or to_s.demodulize.tableize end + def self.convert_input_keys(converter = nil) + @convert_input_keys = converter if converter + @convert_input_keys + end + def resource_id __send__(id_key.name) end - def resource(options = {}) - root = options.fetch(:root, true) - {}.tap do |resource| - self.class.keys.inject(resource) {|buffer, key| buffer.merge!(key.to_resource(self))} - resource.merge!({links: links}) if root and self.class.relations.any? - end - end - - def links - self.class.relations.map {|key| key.to_relation(self)} - end - - def self.transcribe(input, options = {}) - normalize(parse(input, options), options) - end - def self.method_added(method_name) return unless not_allowed_names.include?(method_name.to_s) puts "warning: redefining '#{method_name}' may cause serious problems" end def self.not_allowed_names - ["resource_id", "resource", "links"] + ["resource_id", "resource", "link"] end end end