mirror of
https://github.com/github/rails.git
synced 2026-04-26 03:00:59 -04:00
Added Rails::Generators::ActionORM to hold ORM methods necessary to build a generator.
This commit is contained in:
74
railties/lib/generators/action_orm.rb
Normal file
74
railties/lib/generators/action_orm.rb
Normal file
@@ -0,0 +1,74 @@
|
||||
module Rails
|
||||
module Generators
|
||||
# ActionORM 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::ActionORM.find(Foo, "params[:id]")
|
||||
# #=> "Foo.find(params[:id])"
|
||||
#
|
||||
# Datamapper::Generators::ActionORM.find(Foo, "params[:id]")
|
||||
# #=> "Foo.get(params[:id])"
|
||||
#
|
||||
# On initialization, the ActionORM accepts the instance name that will
|
||||
# receive the calls:
|
||||
#
|
||||
# builder = ActiveRecord::Generators::ActionORM.new "@foo"
|
||||
# builder.save #=> "@foo.save"
|
||||
#
|
||||
# The only exception in ActionORM for ActiveRecord is the use of self.build
|
||||
# instead of self.new.
|
||||
#
|
||||
class ActionORM
|
||||
attr_reader :name
|
||||
|
||||
def initialize(name)
|
||||
@name = name
|
||||
end
|
||||
|
||||
# GET index
|
||||
def self.all(klass)
|
||||
raise NotImplementedError
|
||||
end
|
||||
|
||||
# GET show
|
||||
# GET edit
|
||||
# PUT update
|
||||
# DELETE destroy
|
||||
def self.find(klass, params)
|
||||
raise NotImplementedError
|
||||
end
|
||||
|
||||
# GET new
|
||||
# POST create
|
||||
def self.build(klass, params=nil)
|
||||
raise NotImplementedError
|
||||
end
|
||||
|
||||
# POST create
|
||||
def save
|
||||
raise NotImplementedError
|
||||
end
|
||||
|
||||
# PUT update
|
||||
def update_attributes(params=nil)
|
||||
raise NotImplementedError
|
||||
end
|
||||
|
||||
# POST create
|
||||
# PUT update
|
||||
def errors
|
||||
raise NotImplementedError
|
||||
end
|
||||
|
||||
# DELETE destroy
|
||||
def destroy
|
||||
raise NotImplementedError
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -4,11 +4,10 @@ require 'active_record'
|
||||
|
||||
module ActiveRecord
|
||||
module Generators
|
||||
class Base < Rails::Generators::NamedBase
|
||||
class Base < Rails::Generators::NamedBase #:nodoc:
|
||||
include Rails::Generators::Migration
|
||||
|
||||
protected
|
||||
|
||||
# Implement the required interface for Rails::Generators::Migration.
|
||||
#
|
||||
def next_migration_number(dirname) #:nodoc:
|
||||
@@ -18,7 +17,40 @@ module ActiveRecord
|
||||
"%.3d" % (current_migration_number(dirname) + 1)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
class ActionORM < Rails::Generators::ActionORM #:nodoc:
|
||||
def self.all(klass)
|
||||
"#{klass}.all"
|
||||
end
|
||||
|
||||
def self.find(klass, params)
|
||||
"#{klass}.find(#{params})"
|
||||
end
|
||||
|
||||
def self.build(klass, params=nil)
|
||||
if params
|
||||
"#{klass}.new(#{params})"
|
||||
else
|
||||
"#{klass}.new"
|
||||
end
|
||||
end
|
||||
|
||||
def save
|
||||
"#{name}.save"
|
||||
end
|
||||
|
||||
def update_attributes(params)
|
||||
"#{name}.update_attributes(#{params})"
|
||||
end
|
||||
|
||||
def errors
|
||||
"#{name}.errors"
|
||||
end
|
||||
|
||||
def destroy
|
||||
"#{name}.destroy"
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -2,7 +2,7 @@ require 'generators/named_base'
|
||||
|
||||
module Erb
|
||||
module Generators
|
||||
class Base < Rails::Generators::NamedBase
|
||||
class Base < Rails::Generators::NamedBase #:nodoc:
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -2,7 +2,7 @@ require 'generators/named_base'
|
||||
|
||||
module TestUnit
|
||||
module Generators
|
||||
class Base < Rails::Generators::NamedBase
|
||||
class Base < Rails::Generators::NamedBase #:nodoc:
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user