Sha256: 8edaeeab6bb634b28634756b5563fcf0a38c8fac3fb96be03f48aedc50f8f20f

Contents?: true

Size: 793 Bytes

Versions: 6

Compression:

Stored size: 793 Bytes

Contents

require 'active_model'

module Reviewed
  class Base
    include ::Reviewed::Embeddable
    include ::Reviewed::Utils

    extend ::ActiveModel::Naming

    attr_accessor :attributes

    def initialize(data)
      self.attributes = objectify(data)
    end

    class << self

      def find(id, params={})
        object_from_response(:get, "#{resource_url}/#{id}", params)
      end

      def where(params={})
        collection_from_response(:get, resource_url, params)
      end

      def all
        where({})
      end

      def resource_url
        @resource_name ||= self.name.demodulize.downcase.pluralize
      end
    end

    def method_missing(sym, *args, &block)
      if @attributes.has_key?(sym)
        @attributes[sym]
      else
        super
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
reviewed-0.1.2 lib/reviewed/base.rb
reviewed-0.1.1 lib/reviewed/base.rb
reviewed-0.1.0 lib/reviewed/base.rb
reviewed-0.0.9 lib/reviewed/base.rb
reviewed-0.0.8 lib/reviewed/base.rb
reviewed-0.0.7 lib/reviewed/base.rb