class Assembly::Resource

Public Class Methods

build(model_class) click to toggle source
# File lib/assembly/resource.rb, line 7
def self.build(model_class)
  Assembly.const_set("#{model_class.class_name.split(':').last}Resource", resource_class_for(model_class))
end
model_class() click to toggle source
# File lib/assembly/resource.rb, line 15
def self.model_class
  @model_class
end
new(client) click to toggle source
# File lib/assembly/resource.rb, line 3
def initialize(client)
  @client = client
end
resource_class_for(model_class) click to toggle source
# File lib/assembly/resource.rb, line 11
def self.resource_class_for(model_class)
  Class.new(Assembly::Resource) do
    @model_class = model_class

    def self.model_class
      @model_class
    end

    def model_class
      self.class.model_class
    end

    if model_class.included_modules.include?(Assembly::Actions::Create)
      def create(params)
        model_class.create(params, @client)
      end
    end

    if model_class.included_modules.include?(Assembly::Actions::Read)
      def fetch(id, params={})
        model_class.fetch(id, params, @client)
      end
      alias_method :find, :fetch
    end

    if model_class.included_modules.include?(Assembly::Actions::List)
      def list(params={})
        model_class.list(params, @client)
      end

      def all(params={})
        model_class.all(params, @client)
      end

      def total_count(params={})
        model_class.total_count(params, @client)
      end
    end

    if model_class.included_modules.include?(Assembly::Actions::Update)
      def update(id, params)
        model_class.update(id, params, @client)
      end
    end

    if model_class.included_modules.include?(Assembly::Actions::Delete)
      def delete(id)
        model_class.delete(id, @client)
      end
    end

  end
end

Public Instance Methods

all(params={}) click to toggle source
# File lib/assembly/resource.rb, line 41
def all(params={})
  model_class.all(params, @client)
end
create(params) click to toggle source
# File lib/assembly/resource.rb, line 24
def create(params)
  model_class.create(params, @client)
end
delete(id) click to toggle source
# File lib/assembly/resource.rb, line 57
def delete(id)
  model_class.delete(id, @client)
end
fetch(id, params={}) click to toggle source
# File lib/assembly/resource.rb, line 30
def fetch(id, params={})
  model_class.fetch(id, params, @client)
end
list(params={}) click to toggle source
# File lib/assembly/resource.rb, line 37
def list(params={})
  model_class.list(params, @client)
end
model_class() click to toggle source
# File lib/assembly/resource.rb, line 19
def model_class
  self.class.model_class
end
total_count(params={}) click to toggle source
# File lib/assembly/resource.rb, line 45
def total_count(params={})
  model_class.total_count(params, @client)
end
update(id, params) click to toggle source
# File lib/assembly/resource.rb, line 51
def update(id, params)
  model_class.update(id, params, @client)
end