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

Version Path
ddy_remote_resource-1.3.4 lib/remote_resource/builder.rb
ddy_remote_resource-1.3.3 lib/remote_resource/builder.rb
ddy_remote_resource-1.3.2 lib/remote_resource/builder.rb
ddy_remote_resource-1.3.1 lib/remote_resource/builder.rb
ddy_remote_resource-1.2.3 lib/remote_resource/builder.rb
ddy_remote_resource-1.2.2 lib/remote_resource/builder.rb
ddy_remote_resource-1.2.1 lib/remote_resource/builder.rb
ddy_remote_resource-1.2.0 lib/remote_resource/builder.rb
ddy_remote_resource-1.1.2 lib/remote_resource/builder.rb
ddy_remote_resource-1.1.1 lib/remote_resource/builder.rb
ddy_remote_resource-1.1.0 lib/remote_resource/builder.rb
ddy_remote_resource-1.0.5 lib/remote_resource/builder.rb
ddy_remote_resource-1.0.4 lib/remote_resource/builder.rb
ddy_remote_resource-1.0.3 lib/remote_resource/builder.rb
ddy_remote_resource-1.0.2 lib/remote_resource/builder.rb