generator-spec 0.5.0 → 0.6.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.document +0 -0
- data/.gitignore +0 -0
- data/.rspec +0 -0
- data/LICENSE +0 -0
- data/README.markdown +19 -13
- data/Rakefile +14 -35
- data/VERSION +1 -1
- data/generator-spec.gemspec +63 -148
- data/lib/generator-spec.rb +12 -0
- data/lib/generator-spec/namespaces.rb +7 -0
- data/lib/{generator_spec/helpers/configure_rails.rb → generator-spec/rails/configure.rb} +3 -3
- data/lib/generator-spec/rspec.rb +1 -0
- data/lib/generator-spec/rspec/configure.rb +6 -0
- data/lib/{generator_spec/rspec_generator/generator_util.rb → generator-spec/rspec/generator.rb} +6 -6
- data/lib/{generator_spec/rspec_generator → generator-spec/rspec/generator}/configure.rb +0 -0
- data/lib/{generator_spec/require_generator.rb → generator-spec/rspec/generator/require.rb} +0 -0
- data/lib/{generator_spec/rspec_generator → generator-spec/rspec/generator}/routes.rb +0 -0
- data/lib/{generator_spec/rspec_generator → generator-spec/rspec/generator}/test_case.rb +0 -0
- data/lib/generator-spec/rspec/macro.rb +18 -0
- data/lib/generator-spec/rspec/matchers/generate_artifact.rb +34 -0
- data/lib/generator-spec/rspec/matchers/generate_artifacts.rb +33 -0
- data/lib/generators/controller/controller_generator.rb +15 -21
- data/lib/generators/helper/helper_generator.rb +13 -29
- data/lib/generators/migration/migration_generator.rb +6 -7
- data/lib/generators/migration/templates/create_users.erb +0 -0
- data/lib/generators/model/model_generator.rb +36 -55
- data/lib/generators/observer/observer_generator.rb +2 -0
- data/lib/generators/view/view_generator.rb +2 -0
- data/spec/generator_spec/generators/controller_gen_spec.rb +40 -0
- data/spec/generator_spec/generators/{helper_generator_spec.rb → helper_gen_spec.rb} +4 -8
- data/spec/generator_spec/generators/{migration_generator_spec.rb → migration_gen_spec.rb} +3 -8
- data/spec/generator_spec/generators/model_gen_spec.rb +36 -0
- data/spec/generator_spec/generators/{observer_generator_spec.rb → observer_gen_spec.rb} +12 -21
- data/spec/generator_spec/generators/{view_generator_spec.rb → view_gen_spec.rb} +9 -20
- data/spec/generator_spec/matchers/generate_artifact_spec.rb +36 -0
- data/spec/generator_spec/matchers/generate_artifacts_spec.rb +35 -0
- data/spec/spec_helper.rb +5 -6
- data/wiki/Custom Rails 3 Generators.textile b/data/wiki/Custom Rails 3 → Generators.textile +0 -0
- data/wiki/content_matchers.textile +0 -0
- data/wiki/file_matchers.textile +0 -0
- data/wiki/migration_matchers.textile +0 -0
- data/wiki/rails_helpers.textile +0 -0
- metadata +117 -154
- data/lib/generator_spec.rb +0 -12
- data/lib/generator_spec/extensions/core_ext.rb +0 -47
- data/lib/generator_spec/helpers/generator_helper.rb +0 -11
- data/lib/generator_spec/helpers/migration_helper.rb +0 -69
- data/lib/generator_spec/main.rb +0 -77
- data/lib/generator_spec/matchers/content/content_matcher.rb +0 -110
- data/lib/generator_spec/matchers/content/have_block.rb +0 -57
- data/lib/generator_spec/matchers/content/have_call.rb +0 -59
- data/lib/generator_spec/matchers/content/have_calls.rb +0 -60
- data/lib/generator_spec/matchers/content/have_class_self.rb +0 -40
- data/lib/generator_spec/matchers/content/have_comment.rb +0 -42
- data/lib/generator_spec/matchers/content/have_method.rb +0 -66
- data/lib/generator_spec/matchers/content/have_module.rb +0 -66
- data/lib/generator_spec/matchers/content/have_region.rb +0 -48
- data/lib/generator_spec/matchers/content/have_subclass.rb +0 -50
- data/lib/generator_spec/matchers/content/include_module.rb +0 -51
- data/lib/generator_spec/matchers/content/inherit_from.rb +0 -40
- data/lib/generator_spec/matchers/file/generate_directory.rb +0 -73
- data/lib/generator_spec/matchers/file/generate_file.rb +0 -103
- data/lib/generator_spec/matchers/file/generate_migration.rb +0 -54
- data/lib/generator_spec/matchers/file/have_file.rb +0 -115
- data/lib/generator_spec/matchers/helpers/content.rb +0 -18
- data/lib/generator_spec/matchers/helpers/file.rb +0 -26
- data/lib/generator_spec/matchers/helpers/migration.rb +0 -89
- data/lib/generator_spec/matchers/migration/have_column.rb +0 -29
- data/lib/generator_spec/matchers/migration/have_index.rb +0 -9
- data/lib/generator_spec/matchers/migration/have_table.rb +0 -18
- data/lib/generator_spec/matchers/migration/have_tbl_column.rb +0 -25
- data/lib/generator_spec/matchers/migration/have_up_down.rb +0 -15
- data/lib/generator_spec/rails_helpers/base_helper.rb +0 -171
- data/lib/generator_spec/rails_helpers/rails_app.rb +0 -166
- data/lib/generator_spec/rails_helpers/rails_controller.rb +0 -44
- data/lib/generator_spec/rails_helpers/rails_helper.rb +0 -40
- data/lib/generator_spec/rails_helpers/rails_mailer.rb +0 -39
- data/lib/generator_spec/rails_helpers/rails_migration.rb +0 -51
- data/lib/generator_spec/rails_helpers/rails_model.rb +0 -40
- data/lib/generator_spec/rails_helpers/rails_observer.rb +0 -39
- data/lib/generator_spec/rails_helpers/rails_orm.rb +0 -114
- data/lib/generator_spec/rails_helpers/rails_view.rb +0 -65
- data/rspec_for_generators.gemspec +0 -96
- data/spec/generator_spec/generators/controller_generator_spec.rb +0 -47
- data/spec/generator_spec/generators/model_generator_spec.rb +0 -41
- data/spec/generator_spec/matchers/content/class_self_spec.rb +0 -30
- data/spec/generator_spec/matchers/content/have_block_spec.rb +0 -57
- data/spec/generator_spec/matchers/content/have_call_spec.rb +0 -55
- data/spec/generator_spec/matchers/content/have_calls_spec.rb +0 -47
- data/spec/generator_spec/matchers/content/have_class_spec.rb +0 -34
- data/spec/generator_spec/matchers/content/have_method_spec.rb +0 -52
- data/spec/generator_spec/matchers/content/have_module_spec.rb +0 -34
- data/spec/generator_spec/matchers/content/have_region_spec.rb +0 -56
- data/spec/generator_spec/matchers/content/have_subclass_spec.rb +0 -34
- data/spec/generator_spec/matchers/content/include_module_spec.rb +0 -36
- data/spec/generator_spec/matchers/content/inherit_from_spec.rb +0 -34
- data/spec/generator_spec/matchers/file/directory_spec.rb +0 -0
- data/spec/generator_spec/matchers/file/file_spec.rb +0 -0
- data/spec/generator_spec/matchers/file/migration_spec.rb +0 -0
- data/spec/generator_spec/matchers/migration/have_column_spec.rb +0 -0
- data/spec/generator_spec/matchers/migration/have_index_spec.rb +0 -0
- data/spec/generator_spec/matchers/migration/have_table_spec.rb +0 -0
- data/spec/generator_spec/matchers/migration/have_tbl_column_spec.rb +0 -0
- data/spec/generator_spec/matchers/migration/have_up_down_spec.rb +0 -0
- data/spec/generator_spec/matchers/rails/controller_matcher_spec.rb +0 -27
- data/spec/generator_spec/matchers/rails/helper_matcher_spec.rb +0 -26
- data/spec/generator_spec/matchers/rails/mailer_matcher_spec.rb +0 -24
- data/spec/generator_spec/matchers/rails/model_matcher_spec.rb +0 -31
- data/spec/generator_spec/matchers/rails/observer_matcher_spec.rb +0 -19
- data/spec/generator_spec/matchers/rails/view_matcher_spec.rb +0 -23
- data/spec/generator_spec/rails_helpers/rails_app_spec.rb +0 -0
- data/spec/generator_spec/rails_helpers/rails_controller_spec.rb +0 -33
- data/spec/generator_spec/rails_helpers/rails_helper_spec.rb +0 -33
- data/spec/generator_spec/rails_helpers/rails_mailer_spec.rb +0 -33
- data/spec/generator_spec/rails_helpers/rails_migration_spec.rb +0 -0
- data/spec/generator_spec/rails_helpers/rails_model_spec.rb +0 -31
- data/spec/generator_spec/rails_helpers/rails_observer_spec.rb +0 -33
- data/spec/generator_spec/rails_helpers/rails_orm_spec.rb +0 -0
- data/spec/generator_spec/rails_helpers/rails_view_spec.rb +0 -31
|
@@ -0,0 +1 @@
|
|
|
1
|
+
require_all File.dirname(__FILE__) + '/rspec'
|
data/lib/{generator_spec/rspec_generator/generator_util.rb → generator-spec/rspec/generator.rb}
RENAMED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
require 'rails/all'
|
|
2
2
|
require 'rails/generators'
|
|
3
3
|
require 'rails/generators/test_case'
|
|
4
|
-
require '
|
|
4
|
+
require 'generator-spec/rspec/generator/configure'
|
|
5
5
|
|
|
6
6
|
module RSpec::Generator
|
|
7
7
|
class << self
|
|
8
|
-
attr_accessor :generator, :test_method_name, :remove_temp_dir, :debug, :logger
|
|
8
|
+
attr_accessor :generator, :test_method_name, :remove_temp_dir, :debug, :logger, :logfile
|
|
9
9
|
|
|
10
10
|
def debug?
|
|
11
11
|
debug
|
|
12
12
|
end
|
|
13
13
|
|
|
14
14
|
def info msg
|
|
15
|
-
Rails.logger.info(msg) if
|
|
15
|
+
Rails.logger.info(msg) if debug?
|
|
16
16
|
end
|
|
17
17
|
|
|
18
18
|
def remove_rails_dir!
|
|
@@ -30,11 +30,11 @@ module RSpec::Generator
|
|
|
30
30
|
with(get_generator, &block)
|
|
31
31
|
end
|
|
32
32
|
|
|
33
|
-
def setup_generator test_method_name
|
|
33
|
+
def setup_generator test_method_name, &block
|
|
34
34
|
info "-----------------------------------------------------"
|
|
35
35
|
info "#{Time.now} -- setup generator: [#{test_method_name}]"
|
|
36
|
-
clean! if test_method_name
|
|
37
|
-
generator = get_generator(test_method_name)
|
|
36
|
+
clean! if test_method_name
|
|
37
|
+
generator = get_generator(test_method_name) #.extend(Rails::Assist::Generators::BasicHelper)
|
|
38
38
|
if block
|
|
39
39
|
block.arity < 1 ? generator.class.instance_eval(&block) : block.call(generator.class)
|
|
40
40
|
end
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
module RSpec::Generator
|
|
2
|
+
module Macro
|
|
3
|
+
def with_generator &block
|
|
4
|
+
RSpec::Generator.with_generator &block
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
def setup_generator test_method_name=nil, &block
|
|
8
|
+
RSpec::Generator.setup_generator test_method_name, &block
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
module RSpec::Core
|
|
14
|
+
class ExampleGroup
|
|
15
|
+
extend RSpec::Generator::Macro
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
module RSpec::RailsApp::Artifact
|
|
2
|
+
module Matchers
|
|
3
|
+
class GenerateArtifact < HaveArtifact
|
|
4
|
+
def initialize(name, artifact_type)
|
|
5
|
+
super
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
def matches?(generator, &block)
|
|
9
|
+
super File.join(Rails.application.config.root_dir, 'rails_app'), &block
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def generate_artifact name, type
|
|
14
|
+
GenerateArtifact.new name, type
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
(::Rails3::Assist.artifacts - [:view]).each do |name|
|
|
18
|
+
plural_artifact = name.to_s.pluralize
|
|
19
|
+
class_eval %{
|
|
20
|
+
def generate_#{name} name
|
|
21
|
+
generate_artifact name, :#{name}
|
|
22
|
+
end
|
|
23
|
+
alias_method :create_#{name}, :generate_#{name}
|
|
24
|
+
}
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def generate_view folder, action=nil, view_ext=nil
|
|
28
|
+
arg = {:folder => folder, :action => action, :view_ext => view_ext}
|
|
29
|
+
generate_artifact arg, :view
|
|
30
|
+
end
|
|
31
|
+
alias_method :create_view, :generate_view
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
module RSpec::RailsApp::Artifact
|
|
2
|
+
module Matchers
|
|
3
|
+
class GenerateArtifacts < HaveArtifacts
|
|
4
|
+
def initialize(artifact_type, *names)
|
|
5
|
+
super
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
def matches?(generator, &block)
|
|
9
|
+
super File.join(Rails.application.config.root_dir, 'rails_app'), &block
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def generate_artifacts type, *names
|
|
14
|
+
GenerateArtifacts.new type, *names
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
(::Rails3::Assist.artifacts - [:view]).each do |name|
|
|
18
|
+
plural_artifact = name.to_s.pluralize
|
|
19
|
+
class_eval %{
|
|
20
|
+
def generate_#{plural_artifact} *names
|
|
21
|
+
generate_artifacts :#{name}, *names
|
|
22
|
+
end
|
|
23
|
+
alias_method :create_#{plural_artifact}, :generate_#{plural_artifact}
|
|
24
|
+
}
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def generate_views folder, *args
|
|
28
|
+
generate_artifacts folder, *args
|
|
29
|
+
end
|
|
30
|
+
alias_method :create_views, :generate_views
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
@@ -1,33 +1,27 @@
|
|
|
1
|
+
require 'rails3_artifactor'
|
|
2
|
+
|
|
1
3
|
class ControllerGenerator < Rails::Generators::NamedBase
|
|
2
4
|
desc "Adds method 'control_me' to a Controller"
|
|
3
5
|
|
|
4
|
-
def self.source_root
|
|
5
|
-
@source_root ||= File.expand_path("../templates", __FILE__)
|
|
6
|
-
end
|
|
7
|
-
|
|
8
6
|
def add_helper_method
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
7
|
+
begin
|
|
8
|
+
insert_into_controller name do
|
|
9
|
+
include_txt
|
|
10
|
+
end
|
|
11
|
+
rescue
|
|
12
|
+
say "Controller #{name} does not exist. Please create it first before you can add a controller method to it!", :red
|
|
13
13
|
end
|
|
14
14
|
end
|
|
15
15
|
|
|
16
16
|
protected
|
|
17
|
+
|
|
18
|
+
extend Rails3::Assist::UseMacro
|
|
19
|
+
use_helpers :controller
|
|
17
20
|
|
|
18
|
-
def
|
|
19
|
-
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
def controller_file_name
|
|
23
|
-
File.join(Rails.root, "app/controllers/#{file_name}_controller.rb")
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
def controller_method_code
|
|
27
|
-
%Q{
|
|
28
|
-
def control_me
|
|
21
|
+
def include_txt
|
|
22
|
+
%{def control_me
|
|
29
23
|
"Control me please!"
|
|
24
|
+
end}
|
|
30
25
|
end
|
|
31
|
-
|
|
32
|
-
end
|
|
26
|
+
|
|
33
27
|
end
|
|
@@ -1,36 +1,20 @@
|
|
|
1
|
+
require 'rails3_artifactor'
|
|
2
|
+
|
|
1
3
|
class HelperGenerator < Rails::Generators::NamedBase
|
|
2
|
-
include
|
|
3
|
-
|
|
4
|
+
include Rails3::Assist:Artifact::Helper
|
|
5
|
+
|
|
4
6
|
desc "Adds method 'help_me' to a Helper"
|
|
5
7
|
|
|
6
|
-
def
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
say "#{helper_file_name} does not exist. Please create it first before you can add a helper method to it!", :red
|
|
8
|
+
def add_method
|
|
9
|
+
begin
|
|
10
|
+
insert_into_helper name do
|
|
11
|
+
%{def help_me
|
|
12
|
+
"Help me please!"
|
|
13
|
+
end}
|
|
14
|
+
end
|
|
15
|
+
rescue
|
|
16
|
+
say "Helper #{name} does not exist. Please create it!", :red
|
|
16
17
|
end
|
|
17
18
|
end
|
|
18
19
|
|
|
19
|
-
protected
|
|
20
|
-
|
|
21
|
-
def after_txt
|
|
22
|
-
"#{class_name}Helper"
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
def helper_file_name
|
|
26
|
-
File.join(Rails.root, "app/helpers/#{file_name}_helper.rb")
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
def helper_method_code
|
|
30
|
-
%Q{
|
|
31
|
-
def help_me
|
|
32
|
-
"Help me please!"
|
|
33
|
-
end
|
|
34
|
-
}
|
|
35
|
-
end
|
|
36
20
|
end
|
|
@@ -1,14 +1,13 @@
|
|
|
1
|
+
require 'migration_assist'
|
|
2
|
+
|
|
1
3
|
class MigrationGenerator < Rails::Generators::NamedBase
|
|
2
|
-
include Rails::
|
|
4
|
+
include Rails::Migration::Assist
|
|
3
5
|
|
|
4
6
|
desc "Creates a migration"
|
|
5
7
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
end
|
|
9
|
-
|
|
8
|
+
source_root File.dirname(__FILE__) + '/templates'
|
|
9
|
+
|
|
10
10
|
def create_migration
|
|
11
|
-
|
|
12
|
-
migration "#{name} name:string age:integer admin:boolean"
|
|
11
|
+
migration name, 'create_users'
|
|
13
12
|
end
|
|
14
13
|
end
|
|
File without changes
|
|
@@ -1,91 +1,72 @@
|
|
|
1
|
-
|
|
1
|
+
require 'active_support/inflector'
|
|
2
|
+
require 'logging_assist'
|
|
3
|
+
|
|
4
|
+
include Log4r
|
|
5
|
+
|
|
6
|
+
class ModelGenerator < Rails::Generators::NamedBase
|
|
2
7
|
desc "Adds Canable::Ables permission system to Model"
|
|
3
8
|
|
|
4
|
-
argument :name, :type => :string, :default => 'User', :desc => 'Name of model to make Canable:Able', :required => false
|
|
5
|
-
|
|
6
|
-
def self.source_root
|
|
7
|
-
@source_root ||= File.expand_path("../../templates", __FILE__)
|
|
8
|
-
end
|
|
9
|
+
# argument :name, :type => :string, :default => 'User', :desc => 'Name of model to make Canable:Able', :required => false
|
|
9
10
|
|
|
11
|
+
# class_option :user_stamps, :type => :boolean, :default => false
|
|
12
|
+
|
|
13
|
+
|
|
10
14
|
def make_canable_able
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
begin
|
|
16
|
+
log.debug "make_canable_able: #{name}"
|
|
17
|
+
insert_into_model name do
|
|
18
|
+
canable_include_txt
|
|
19
|
+
end
|
|
20
|
+
rescue
|
|
21
|
+
say "model #{name} does not exist. Please create it first before you can make it Canable:Able", :red
|
|
17
22
|
end
|
|
18
23
|
end
|
|
19
24
|
|
|
20
25
|
def post_log
|
|
21
|
-
say "Your model #{
|
|
26
|
+
say "Your model #{name.to_s.camelize} is now Canable:Able. Please define your permissions in the model", :green
|
|
22
27
|
end
|
|
23
28
|
|
|
24
29
|
protected
|
|
25
30
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
def find_after_txt model_file_txt
|
|
29
|
-
# after first include statement
|
|
30
|
-
match = (model_file_txt =~ /(include\s+\S+)/)
|
|
31
|
-
return $1 if match
|
|
32
|
-
|
|
33
|
-
# or after class definition if no includes
|
|
34
|
-
match = model_file_txt =~ /(class\s+#{model_class_name}\s+<\s+ActiveRecord::Base)/ # first try match AR model
|
|
35
|
-
match = model_file_txt =~ /(class\s+#{model_class_name})/ if !match
|
|
36
|
-
$1 || nil
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
def model_class_name
|
|
40
|
-
name.to_s.camelize
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
def model_file_name
|
|
44
|
-
File.join(Rails.root, "app/models/#{name}.rb")
|
|
31
|
+
def log
|
|
32
|
+
@log ||= Rails::Assist::Logging.new
|
|
45
33
|
end
|
|
34
|
+
|
|
35
|
+
extend Rails3::Assist::UseMacro
|
|
36
|
+
use_orm :mongoid
|
|
37
|
+
# use_helper :model
|
|
46
38
|
|
|
47
39
|
def canable_include_txt
|
|
48
40
|
%Q{
|
|
49
|
-
include Canable::Ables
|
|
50
|
-
#{add_userstamps}
|
|
41
|
+
include Canable::Ables
|
|
42
|
+
#{add_userstamps}
|
|
51
43
|
|
|
52
|
-
# permission logic
|
|
53
|
-
#{add_methods}
|
|
44
|
+
# permission logic
|
|
45
|
+
#{add_methods}
|
|
54
46
|
}
|
|
55
47
|
end
|
|
56
48
|
|
|
57
|
-
def has_userstamps?
|
|
58
|
-
model_file_txt =~ /userstamps!/
|
|
59
|
-
end
|
|
60
|
-
|
|
61
49
|
def add_userstamps
|
|
62
|
-
if
|
|
63
|
-
"userstamps! # adds creator and updater\n" if options[:userstamps]
|
|
64
|
-
end
|
|
50
|
+
"userstamps! # adds creator and updater\n" # if options[:userstamps]
|
|
65
51
|
end
|
|
66
52
|
|
|
67
|
-
def has_method? name
|
|
68
|
-
model_file_txt =~ /(def #{name}_by\?)/
|
|
69
|
-
end
|
|
70
|
-
|
|
71
53
|
def add_methods
|
|
72
54
|
methods = []
|
|
73
55
|
%w{creatable destroyable updatable viewable}.each do |name|
|
|
74
|
-
if !has_method?(name)
|
|
56
|
+
# if !has_method?(name)
|
|
75
57
|
method = add_method(name)
|
|
76
58
|
methods << method if method
|
|
77
|
-
end
|
|
59
|
+
# end
|
|
78
60
|
end
|
|
79
61
|
methods.join("\n ")
|
|
80
62
|
end
|
|
81
63
|
|
|
82
64
|
def add_method(name)
|
|
83
|
-
if options[name.to_sym]
|
|
65
|
+
#if options[name.to_sym]
|
|
84
66
|
%Q{
|
|
85
|
-
def #{name}_by?(user)
|
|
86
|
-
|
|
87
|
-
end
|
|
88
|
-
|
|
89
|
-
end
|
|
67
|
+
def #{name}_by?(user)
|
|
68
|
+
true
|
|
69
|
+
end}
|
|
70
|
+
#end
|
|
90
71
|
end
|
|
91
72
|
end
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
require_generator :controller
|
|
3
|
+
|
|
4
|
+
describe 'helper_generator' do
|
|
5
|
+
use_helper :controller
|
|
6
|
+
|
|
7
|
+
before :each do
|
|
8
|
+
setup_generator 'controller_generator' do
|
|
9
|
+
tests ControllerGenerator
|
|
10
|
+
end
|
|
11
|
+
remove_controller :account
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
after :each do
|
|
15
|
+
# remove_controller :account
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
it "should not work without an Account controller file" do
|
|
19
|
+
remove_controller :account
|
|
20
|
+
with_generator do |g|
|
|
21
|
+
g.run_generator :account.args
|
|
22
|
+
g.should_not generate_controller :account
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
it "should decorate an existing Account controller file with a 'control_me' method" do
|
|
27
|
+
with_generator do |g|
|
|
28
|
+
create_controller :account do
|
|
29
|
+
'# controller content'
|
|
30
|
+
end
|
|
31
|
+
g.run_generator :account.args
|
|
32
|
+
g.should generate_controller :account do |content|
|
|
33
|
+
content.should have_method :control_me
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
|