Sha256: 4416eb06c4d03231d25d297b70242f1593a44cc906f7d89271a945bcfdf89001
Contents?: true
Size: 2 KB
Versions: 30
Compression:
Stored size: 2 KB
Contents
require 'active_support/deprecation' module Rails module Generators # ActiveModel is a class to be implemented by each ORM to allow Rails to # generate customized controller code. # # The API has the same methods as ActiveRecord, but each method returns a # string that matches the ORM API. # # For example: # # ActiveRecord::Generators::ActiveModel.find(Foo, "params[:id]") # # => "Foo.find(params[:id])" # # DataMapper::Generators::ActiveModel.find(Foo, "params[:id]") # # => "Foo.get(params[:id])" # # On initialization, the ActiveModel accepts the instance name that will # receive the calls: # # builder = ActiveRecord::Generators::ActiveModel.new "@foo" # builder.save # => "@foo.save" # # The only exception in ActiveModel for ActiveRecord is the use of self.build # instead of self.new. # class ActiveModel attr_reader :name def initialize(name) @name = name end # GET index def self.all(klass) "#{klass}.all" end # GET show # GET edit # PATCH/PUT update # DELETE destroy def self.find(klass, params=nil) "#{klass}.find(#{params})" end # GET new # POST create def self.build(klass, params=nil) if params "#{klass}.new(#{params})" else "#{klass}.new" end end # POST create def save "#{name}.save" end # PATCH/PUT update def update(params=nil) "#{name}.update(#{params})" end def update_attributes(*args) # :nodoc: ActiveSupport::Deprecation.warn("Calling '@orm_instance.update_attributes' " \ "is deprecated, please use '@orm_instance.update' instead.") update(*args) end # POST create # PATCH/PUT update def errors "#{name}.errors" end # DELETE destroy def destroy "#{name}.destroy" end end end end
Version data entries
30 entries across 30 versions & 2 rubygems