mirror of
https://github.com/github/rails.git
synced 2026-04-26 03:00:59 -04:00
Make Observer generator agnostic.
This commit is contained in:
@@ -12,6 +12,7 @@ require 'rails/version' unless defined?(Rails::VERSION)
|
||||
|
||||
require 'generators/base'
|
||||
require 'generators/named_base'
|
||||
require 'generators/active_record'
|
||||
require 'generators/erb'
|
||||
require 'generators/test_unit'
|
||||
|
||||
|
||||
8
railties/lib/generators/active_record.rb
Normal file
8
railties/lib/generators/active_record.rb
Normal file
@@ -0,0 +1,8 @@
|
||||
require 'generators/named_base'
|
||||
|
||||
module ActiveRecord
|
||||
module Generators
|
||||
class Base < Rails::Generators::NamedBase
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,11 @@
|
||||
module ActiveRecord
|
||||
module Generators
|
||||
class ObserverGenerator < Base
|
||||
check_class_collision :suffix => "Observer"
|
||||
|
||||
def create_observer_file
|
||||
template 'observer.rb', File.join('app/models', class_path, "#{file_name}_observer.rb")
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -3,9 +3,10 @@ require 'generators/actions'
|
||||
module Rails
|
||||
module Generators
|
||||
DEFAULTS = {
|
||||
:orm => 'active_record',
|
||||
:helper => true,
|
||||
:test_framework => 'test_unit',
|
||||
:template_engine => 'erb',
|
||||
:helper => true
|
||||
:template_engine => 'erb'
|
||||
}
|
||||
|
||||
class Error < Thor::Error
|
||||
@@ -41,7 +42,7 @@ module Rails
|
||||
#
|
||||
def self.namespace(name=nil)
|
||||
return super if name
|
||||
@namespace ||= "#{base_name}:generators:#{generator_name}"
|
||||
@namespace ||= super.sub(/_generator$/, '')
|
||||
end
|
||||
|
||||
# Invoke a generator based on the value supplied by the user to the
|
||||
@@ -207,7 +208,7 @@ module Rails
|
||||
def self.generator_name
|
||||
@generator_name ||= begin
|
||||
klass_name = self.name.split('::').last
|
||||
klass_name.gsub!(/Generator$/, '')
|
||||
klass_name.sub!(/Generator$/, '')
|
||||
klass_name.underscore
|
||||
end
|
||||
end
|
||||
|
||||
@@ -2,12 +2,11 @@ Description:
|
||||
Stubs out a new observer. Pass the observer name, either CamelCased or
|
||||
under_scored, as an argument.
|
||||
|
||||
The generator creates an observer class in app/models and invokes the
|
||||
configured test framework.
|
||||
This generator only invokes your ORM and test framework generators.
|
||||
|
||||
Example:
|
||||
`./script/generate observer Account`
|
||||
|
||||
creates an Account observer and invoke the test framework:
|
||||
For ActiveRecord and TestUnit it creates:
|
||||
Observer: app/models/account_observer.rb
|
||||
TestUnit: test/unit/account_observer_test.rb
|
||||
|
||||
@@ -1,13 +1,7 @@
|
||||
module Rails
|
||||
module Generators
|
||||
class ObserverGenerator < NamedBase
|
||||
check_class_collision :suffix => "Observer"
|
||||
|
||||
def create_observer_file
|
||||
template 'observer.rb', File.join('app/models', class_path, "#{file_name}_observer.rb")
|
||||
end
|
||||
|
||||
invoke_for :test_framework
|
||||
invoke_for :orm, :test_framework
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
require 'abstract_unit'
|
||||
require 'generators/generators_test_helper'
|
||||
require 'generators/active_record/observer/observer_generator'
|
||||
require 'generators/rails/observer/observer_generator'
|
||||
require 'generators/test_unit/observer/observer_generator'
|
||||
|
||||
|
||||
Reference in New Issue
Block a user