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