generator-spec 0.4.4 → 0.4.5
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/VERSION +1 -1
- data/generator-spec.gemspec +134 -0
- data/lib/generator_spec/helpers/configure_rails.rb +24 -1
- data/lib/generator_spec/helpers/generator_helper.rb +11 -0
- data/lib/generator_spec/helpers/migration_helper.rb +58 -37
- data/lib/generator_spec/main.rb +6 -0
- data/lib/generator_spec/rspec_generator/configure.rb +12 -0
- data/lib/generator_spec/rspec_generator/generator_util.rb +8 -2
- data/lib/generators/helper/helper_generator.rb +4 -1
- data/lib/generators/migration/migration_generator.rb +2 -1
- data/spec/generator_spec/helper_generator_spec.rb +1 -3
- data/spec/spec_helper.rb +3 -15
- metadata +5 -3
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.4.
|
1
|
+
0.4.5
|
@@ -0,0 +1,134 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = %q{generator-spec}
|
8
|
+
s.version = "0.4.5"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["Kristian Mandrup"]
|
12
|
+
s.date = %q{2010-08-10}
|
13
|
+
s.description = %q{RSpec 2 library to assist in writing generator specs}
|
14
|
+
s.email = %q{kmandrup@gmail.com}
|
15
|
+
s.extra_rdoc_files = [
|
16
|
+
"LICENSE",
|
17
|
+
"README.markdown"
|
18
|
+
]
|
19
|
+
s.files = [
|
20
|
+
".document",
|
21
|
+
".gitignore",
|
22
|
+
".rspec",
|
23
|
+
"LICENSE",
|
24
|
+
"README.markdown",
|
25
|
+
"Rakefile",
|
26
|
+
"VERSION",
|
27
|
+
"generator-spec.gemspec",
|
28
|
+
"lib/generator_spec.rb",
|
29
|
+
"lib/generator_spec/extensions/core_ext.rb",
|
30
|
+
"lib/generator_spec/helpers/configure_rails.rb",
|
31
|
+
"lib/generator_spec/helpers/generator_helper.rb",
|
32
|
+
"lib/generator_spec/helpers/migration_helper.rb",
|
33
|
+
"lib/generator_spec/main.rb",
|
34
|
+
"lib/generator_spec/matchers/content/content_matcher.rb",
|
35
|
+
"lib/generator_spec/matchers/content/have_block.rb",
|
36
|
+
"lib/generator_spec/matchers/content/have_call.rb",
|
37
|
+
"lib/generator_spec/matchers/content/have_calls.rb",
|
38
|
+
"lib/generator_spec/matchers/content/have_class.rb",
|
39
|
+
"lib/generator_spec/matchers/content/have_method.rb",
|
40
|
+
"lib/generator_spec/matchers/content/have_module.rb",
|
41
|
+
"lib/generator_spec/matchers/content/have_region.rb",
|
42
|
+
"lib/generator_spec/matchers/content/have_subclass.rb",
|
43
|
+
"lib/generator_spec/matchers/content/include_module.rb",
|
44
|
+
"lib/generator_spec/matchers/content/inherit_from.rb",
|
45
|
+
"lib/generator_spec/matchers/file/generate_directory.rb",
|
46
|
+
"lib/generator_spec/matchers/file/generate_file.rb",
|
47
|
+
"lib/generator_spec/matchers/file/generate_migration.rb",
|
48
|
+
"lib/generator_spec/matchers/helpers/content.rb",
|
49
|
+
"lib/generator_spec/matchers/helpers/file.rb",
|
50
|
+
"lib/generator_spec/matchers/helpers/migration.rb",
|
51
|
+
"lib/generator_spec/matchers/migration/have_column.rb",
|
52
|
+
"lib/generator_spec/matchers/migration/have_index.rb",
|
53
|
+
"lib/generator_spec/matchers/migration/have_table.rb",
|
54
|
+
"lib/generator_spec/matchers/migration/have_tbl_column.rb",
|
55
|
+
"lib/generator_spec/matchers/migration/have_up_down.rb",
|
56
|
+
"lib/generator_spec/rails_helpers/rails_app.rb",
|
57
|
+
"lib/generator_spec/rails_helpers/rails_controller.rb",
|
58
|
+
"lib/generator_spec/rails_helpers/rails_helper.rb",
|
59
|
+
"lib/generator_spec/rails_helpers/rails_mailer.rb",
|
60
|
+
"lib/generator_spec/rails_helpers/rails_migration.rb",
|
61
|
+
"lib/generator_spec/rails_helpers/rails_model.rb",
|
62
|
+
"lib/generator_spec/rails_helpers/rails_observer.rb",
|
63
|
+
"lib/generator_spec/rails_helpers/rails_orm.rb",
|
64
|
+
"lib/generator_spec/rails_helpers/rails_view.rb",
|
65
|
+
"lib/generator_spec/require_generator.rb",
|
66
|
+
"lib/generator_spec/rspec_generator/configure.rb",
|
67
|
+
"lib/generator_spec/rspec_generator/generator_util.rb",
|
68
|
+
"lib/generator_spec/rspec_generator/routes.rb",
|
69
|
+
"lib/generator_spec/rspec_generator/test_case.rb",
|
70
|
+
"lib/generators/controller/controller_generator.rb",
|
71
|
+
"lib/generators/helper/helper_generator.rb",
|
72
|
+
"lib/generators/migration/migration_generator.rb",
|
73
|
+
"lib/generators/migration/templates/create_users.erb",
|
74
|
+
"lib/generators/model/model_generator.rb",
|
75
|
+
"lib/generators/observer/observer_generator.rb",
|
76
|
+
"lib/generators/view/view_generator.rb",
|
77
|
+
"rspec_for_generators.gemspec",
|
78
|
+
"spec/generator_spec/controller_generator_spec.rb",
|
79
|
+
"spec/generator_spec/helper_generator_spec.rb",
|
80
|
+
"spec/generator_spec/migration_generator_spec.rb",
|
81
|
+
"spec/generator_spec/model_generator_spec.rb",
|
82
|
+
"spec/generator_spec/observer_generator_spec.rb",
|
83
|
+
"spec/generator_spec/view_generator_spec.rb",
|
84
|
+
"spec/spec_helper.rb",
|
85
|
+
"wiki/Custom Rails 3 Generators.textile",
|
86
|
+
"wiki/content_matchers.textile",
|
87
|
+
"wiki/file_matchers.textile",
|
88
|
+
"wiki/migration_matchers.textile",
|
89
|
+
"wiki/rails_helpers.textile"
|
90
|
+
]
|
91
|
+
s.homepage = %q{http://github.com/kristianmandrup/rspec_for_generators}
|
92
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
93
|
+
s.require_paths = ["lib"]
|
94
|
+
s.rubygems_version = %q{1.3.7}
|
95
|
+
s.summary = %q{RSpec 2 library for writing generator specs}
|
96
|
+
s.test_files = [
|
97
|
+
"spec/generator_spec/controller_generator_spec.rb",
|
98
|
+
"spec/generator_spec/helper_generator_spec.rb",
|
99
|
+
"spec/generator_spec/migration_generator_spec.rb",
|
100
|
+
"spec/generator_spec/model_generator_spec.rb",
|
101
|
+
"spec/generator_spec/observer_generator_spec.rb",
|
102
|
+
"spec/generator_spec/view_generator_spec.rb",
|
103
|
+
"spec/spec_helper.rb"
|
104
|
+
]
|
105
|
+
|
106
|
+
if s.respond_to? :specification_version then
|
107
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
108
|
+
s.specification_version = 3
|
109
|
+
|
110
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
111
|
+
s.add_development_dependency(%q<rspec>, [">= 2.0.0.beta19"])
|
112
|
+
s.add_runtime_dependency(%q<rspec>, [">= 2.0.0.beta.19"])
|
113
|
+
s.add_runtime_dependency(%q<rake>, [">= 0.8.7"])
|
114
|
+
s.add_runtime_dependency(%q<rails>, [">= 3.0.0.rc"])
|
115
|
+
s.add_runtime_dependency(%q<test-unit>, [">= 2.0.9"])
|
116
|
+
s.add_runtime_dependency(%q<require_all>, [">= 1.1.0"])
|
117
|
+
else
|
118
|
+
s.add_dependency(%q<rspec>, [">= 2.0.0.beta19"])
|
119
|
+
s.add_dependency(%q<rspec>, [">= 2.0.0.beta.19"])
|
120
|
+
s.add_dependency(%q<rake>, [">= 0.8.7"])
|
121
|
+
s.add_dependency(%q<rails>, [">= 3.0.0.rc"])
|
122
|
+
s.add_dependency(%q<test-unit>, [">= 2.0.9"])
|
123
|
+
s.add_dependency(%q<require_all>, [">= 1.1.0"])
|
124
|
+
end
|
125
|
+
else
|
126
|
+
s.add_dependency(%q<rspec>, [">= 2.0.0.beta19"])
|
127
|
+
s.add_dependency(%q<rspec>, [">= 2.0.0.beta.19"])
|
128
|
+
s.add_dependency(%q<rake>, [">= 0.8.7"])
|
129
|
+
s.add_dependency(%q<rails>, [">= 3.0.0.rc"])
|
130
|
+
s.add_dependency(%q<test-unit>, [">= 2.0.9"])
|
131
|
+
s.add_dependency(%q<require_all>, [">= 1.1.0"])
|
132
|
+
end
|
133
|
+
end
|
134
|
+
|
@@ -27,5 +27,28 @@ end
|
|
27
27
|
class TestApp < Rails::Application
|
28
28
|
end
|
29
29
|
|
30
|
-
Rails.application = TestApp
|
30
|
+
Rails.application = TestApp
|
31
|
+
|
32
|
+
# !!!!!!!!!!!!!!!!!!!!!!
|
33
|
+
module Rails
|
34
|
+
def self.logger
|
35
|
+
logger_type = RSpec::Generator.logger
|
36
|
+
case logger_type
|
37
|
+
when Hash
|
38
|
+
file = logger_type[:file]
|
39
|
+
when :stdout
|
40
|
+
return Logger.new(STDOUT)
|
41
|
+
when :file
|
42
|
+
file = File.expand_path "#{Rails.application.config.root_dir}/../rails_generator.log"
|
43
|
+
else
|
44
|
+
return Logger.new(STDOUT)
|
45
|
+
end
|
46
|
+
if file != @logger_file
|
47
|
+
@logger_file = file
|
48
|
+
@logger = Logger.new(file) if file
|
49
|
+
else
|
50
|
+
@logger ||= Logger.new(file) if file
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
31
54
|
|
@@ -1,43 +1,64 @@
|
|
1
|
-
module Rails
|
2
|
-
module
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
end
|
10
|
-
|
11
|
-
def migration_exists?(dirname, file_name) #:nodoc:
|
12
|
-
migration_lookup_at(dirname).grep(/\d+_#{file_name}.rb$/).first
|
13
|
-
end
|
14
|
-
|
15
|
-
def current_migration_number(dirname) #:nodoc:
|
16
|
-
migration_lookup_at(dirname).collect do |file|
|
17
|
-
File.basename(file).split("_").first.to_i
|
18
|
-
end.max.to_i
|
19
|
-
end
|
20
|
-
|
21
|
-
def next_migration_number(dirname) #:nodoc:
|
22
|
-
orm = Rails.configuration.generators.options[:rails][:orm]
|
23
|
-
require "rails/generators/#{orm}"
|
24
|
-
"#{orm.to_s.camelize}::Generators::Base".constantize.next_migration_number(dirname)
|
25
|
-
rescue
|
26
|
-
raise NotImplementedError
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
def self.included(base) #:nodoc:
|
31
|
-
base.extend ClassMethods
|
1
|
+
module Rails::Generators
|
2
|
+
module MigrationHelper
|
3
|
+
include Rails::Generators::Migration
|
4
|
+
include Rails::Generators::BasicHelper
|
5
|
+
|
6
|
+
module ClassMethods
|
7
|
+
def migration_lookup_at(dirname) #:nodoc:
|
8
|
+
Dir.glob("#{dirname}/[0-9]*_*.rb")
|
32
9
|
end
|
33
10
|
|
34
|
-
def
|
35
|
-
|
11
|
+
def migration_exists?(dirname, file_name) #:nodoc:
|
12
|
+
migration_lookup_at(dirname).grep(/\d+_#{file_name}.rb$/).first
|
13
|
+
end
|
14
|
+
alias_method :first_migration_file, :migration_exists?
|
15
|
+
|
16
|
+
def latest_migration_file(dirname, file_name) #:nodoc:
|
17
|
+
migration_lookup_at(dirname).grep(/\d+_#{file_name}.rb$/).sort.last
|
18
|
+
end
|
19
|
+
|
20
|
+
|
21
|
+
def current_migration_number(dirname) #:nodoc:
|
22
|
+
migration_lookup_at(dirname).collect do |file|
|
23
|
+
File.basename(file).split("_").first.to_i
|
24
|
+
end.max.to_i
|
36
25
|
end
|
37
|
-
|
38
|
-
def
|
39
|
-
|
26
|
+
|
27
|
+
def next_migration_number(dirname) #:nodoc:
|
28
|
+
orm = Rails.configuration.generators.options[:rails][:orm]
|
29
|
+
require "rails/generators/#{orm}"
|
30
|
+
"#{orm.to_s.camelize}::Generators::Base".constantize.next_migration_number(dirname)
|
31
|
+
rescue
|
32
|
+
raise NotImplementedError
|
40
33
|
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def self.included(base) #:nodoc:
|
37
|
+
base.extend ClassMethods
|
38
|
+
end
|
39
|
+
|
40
|
+
def reverse_migration! migration_path
|
41
|
+
reverse_migration_path = migration_path.gsub /^add_/, 'remove_'
|
42
|
+
reverse_migration_path = migration_path.gsub /^create_/, 'drop_'
|
43
|
+
FileUtils.mv(migration_path, reverse_migration_path) if migration_path != reverse_migration_path
|
44
|
+
|
45
|
+
file = File.new(reverse_migration_path)
|
46
|
+
# Change class name
|
47
|
+
gsub_file reverse_migration_path, /class Add/, 'class Remove'
|
48
|
+
gsub_file reverse_migration_path, /class Create/, 'class Drop'
|
49
|
+
|
50
|
+
# swap up and down methods
|
51
|
+
gsub_file reverse_migration_path, /up/, 'dwn'
|
52
|
+
gsub_file reverse_migration_path, /down/, 'up'
|
53
|
+
gsub_file reverse_migration_path, /dwn/, 'down'
|
54
|
+
end
|
55
|
+
|
56
|
+
def latest_migration_file
|
57
|
+
self.class.latest_migration_file
|
58
|
+
end
|
59
|
+
|
60
|
+
def migration(options)
|
61
|
+
migration_template "create_users.erb", "db/migrations/#{name}"
|
41
62
|
end
|
42
63
|
end
|
43
|
-
end
|
64
|
+
end
|
data/lib/generator_spec/main.rb
CHANGED
@@ -28,6 +28,18 @@ module RSpec::Generator
|
|
28
28
|
RSpec::Generator::Require.lib = path
|
29
29
|
end
|
30
30
|
|
31
|
+
def logger= type
|
32
|
+
case type
|
33
|
+
when Symbol
|
34
|
+
raise ArgumentError, "Unknown logger type #{type}" if ![:stdout, :file].include?(type)
|
35
|
+
RSpec::Generator.logger = type
|
36
|
+
when Hash
|
37
|
+
RSpec::Generator.logger = type
|
38
|
+
else
|
39
|
+
raise ArgumentError, "Unknown logger type #{type.inspect}, must be set as Symbol :stdout, :file or Hash (for advanced configuration)"
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
31
43
|
protected
|
32
44
|
|
33
45
|
def configure_root_dir path, options = {}
|
@@ -5,17 +5,21 @@ 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
|
8
|
+
attr_accessor :generator, :test_method_name, :remove_temp_dir, :debug, :logger
|
9
9
|
|
10
10
|
def debug?
|
11
11
|
debug
|
12
12
|
end
|
13
13
|
|
14
|
+
def info msg
|
15
|
+
Rails.logger.info(msg) if RSpec::Generator.debug?
|
16
|
+
end
|
17
|
+
|
14
18
|
def remove_rails_dir!
|
15
19
|
FileUtils.rm_rf ::TmpRails.root
|
16
20
|
end
|
17
21
|
|
18
|
-
def run_generator *args, &block
|
22
|
+
def run_generator *args, &block
|
19
23
|
generator.run_generator *args
|
20
24
|
if block
|
21
25
|
block.arity < 1 ? generator.instance_eval(&block) : block.call(generator, self)
|
@@ -27,6 +31,8 @@ module RSpec::Generator
|
|
27
31
|
end
|
28
32
|
|
29
33
|
def setup_generator test_method_name=nil, &block
|
34
|
+
info "-----------------------------------------------------"
|
35
|
+
info "#{Time.now} -- setup generator: [#{test_method_name}]"
|
30
36
|
clean! if test_method_name
|
31
37
|
generator = get_generator(test_method_name).extend(RSpec::Generator::Helpers)
|
32
38
|
if block
|
@@ -1,11 +1,14 @@
|
|
1
1
|
class HelperGenerator < Rails::Generators::NamedBase
|
2
|
+
include Rails::Generators::BasicHelper
|
3
|
+
|
2
4
|
desc "Adds method 'help_me' to a Helper"
|
3
5
|
|
4
6
|
def self.source_root
|
5
7
|
@source_root ||= File.expand_path("../templates", __FILE__)
|
6
8
|
end
|
7
9
|
|
8
|
-
def add_helper_method
|
10
|
+
def add_helper_method
|
11
|
+
info "add_helper_method: #{helper_file_name}"
|
9
12
|
if File.exist?(helper_file_name)
|
10
13
|
inject_into_file(helper_file_name, helper_method_code, :after => after_txt) if after_txt
|
11
14
|
else
|
@@ -7,7 +7,8 @@ class MigrationGenerator < Rails::Generators::NamedBase
|
|
7
7
|
@source_root ||= File.expand_path("../templates", __FILE__)
|
8
8
|
end
|
9
9
|
|
10
|
-
def create_migration
|
10
|
+
def create_migration
|
11
|
+
info "Create migration #{name}"
|
11
12
|
migration "#{name} name:string age:integer admin:boolean"
|
12
13
|
end
|
13
14
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -3,22 +3,10 @@ require 'rspec/autorun'
|
|
3
3
|
require 'generator_spec'
|
4
4
|
|
5
5
|
RSpec::Generator.configure do |config|
|
6
|
-
config.debug =
|
6
|
+
config.debug = true
|
7
7
|
config.remove_temp_dir = true
|
8
8
|
config.default_rails_root(__FILE__)
|
9
9
|
config.lib = File.dirname(__FILE__) + '/../lib'
|
10
|
+
# config.logger = :file # :stdout
|
10
11
|
end
|
11
|
-
|
12
|
-
# module Rails
|
13
|
-
# def self.logger
|
14
|
-
# @logger ||= Logger.new(STDOUT)
|
15
|
-
# end
|
16
|
-
# end
|
17
|
-
|
18
|
-
# class Railtie < ::Rails::Railtie
|
19
|
-
# # config.
|
20
|
-
#
|
21
|
-
# initializer "logger" do |app|
|
22
|
-
# app.config.logger = Logger.new(STDOUT)
|
23
|
-
# end
|
24
|
-
# end
|
12
|
+
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 4
|
8
|
-
-
|
9
|
-
version: 0.4.
|
8
|
+
- 5
|
9
|
+
version: 0.4.5
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Kristian Mandrup
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-08-
|
17
|
+
date: 2010-08-10 00:00:00 +02:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -128,9 +128,11 @@ files:
|
|
128
128
|
- README.markdown
|
129
129
|
- Rakefile
|
130
130
|
- VERSION
|
131
|
+
- generator-spec.gemspec
|
131
132
|
- lib/generator_spec.rb
|
132
133
|
- lib/generator_spec/extensions/core_ext.rb
|
133
134
|
- lib/generator_spec/helpers/configure_rails.rb
|
135
|
+
- lib/generator_spec/helpers/generator_helper.rb
|
134
136
|
- lib/generator_spec/helpers/migration_helper.rb
|
135
137
|
- lib/generator_spec/main.rb
|
136
138
|
- lib/generator_spec/matchers/content/content_matcher.rb
|