Sha256: a4adca51df1a3371915795a5514704947a3394761601f9873eb9d2b2a0a367a5
Contents?: true
Size: 1.22 KB
Versions: 15
Compression:
Stored size: 1.22 KB
Contents
module RemoteResource module Builder extend ActiveSupport::Concern module ClassMethods def build_resource_from_response(response) build_resource(response.attributes, { last_request: response.request, last_response: response, meta: response.meta }) end def build_resource(collection, options = {}) if collection.is_a?(Hash) new(collection.merge(options)) end end def build_collection_from_response(response) build_collection(response.attributes, { last_request: response.request, last_response: response, meta: response.meta }) end def build_collection(collection, options = {}) collection.is_a?(Array) || raise(ArgumentError, '`collection` must be an Array') RemoteResource::Collection.new(self, collection, options) end end def rebuild_resource_from_response(response) rebuild_resource(response.attributes, { last_request: response.request, last_response: response, meta: response.meta }) end def rebuild_resource(collection, options = {}) if collection.is_a?(Hash) self.attributes = collection.merge(options) else self.attributes = options end and self end end end
Version data entries
15 entries across 15 versions & 1 rubygems