generator-spec 0.3.3 → 0.3.4
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/.rspec +1 -0
- data/README.markdown +11 -2
- data/VERSION +1 -1
- data/generator-spec.gemspec +21 -7
- data/lib/generators/demo/demo_generator.rb +1 -1
- data/lib/generators/migration/migration_generator.rb +13 -0
- data/lib/generators/migration/templates/create_users.erb +14 -0
- data/lib/rspec_for_generators/generator_spec_helper.rb +6 -6
- data/lib/rspec_for_generators/matchers/content/have_block.rb +7 -10
- data/lib/rspec_for_generators/matchers/content/have_call.rb +5 -5
- data/lib/rspec_for_generators/matchers/content/have_calls.rb +40 -0
- data/lib/rspec_for_generators/matchers/content/have_method.rb +17 -10
- data/lib/rspec_for_generators/matchers/file/generate_file.rb +20 -1
- data/lib/rspec_for_generators/matchers/file/generate_migration.rb +22 -14
- data/lib/rspec_for_generators/matchers/helpers/migration.rb +19 -32
- data/lib/rspec_for_generators/matchers/migration/have_column.rb +10 -0
- data/lib/rspec_for_generators/matchers/migration/have_migration.rb +29 -3
- data/lib/rspec_for_generators/matchers/migration/have_up_down.rb +4 -4
- data/lib/rspec_for_generators/rails_helpers/rails_app.rb +85 -19
- data/lib/rspec_for_generators/rails_helpers/rails_migration.rb +36 -0
- data/lib/rspec_for_generators/rails_spec_helper.rb +1 -1
- data/spec/rspec_for_generators/controller_generator_spec.rb +0 -0
- data/spec/rspec_for_generators/helper_generator_spec.rb +0 -0
- data/spec/rspec_for_generators/migration_generator_spec.rb +40 -0
- data/spec/rspec_for_generators/{rspec_for_generators_spec.rb → model_generator_spec.rb} +0 -0
- data/spec/rspec_for_generators/view_generator_spec.rb +0 -0
- data/spec/spec_helper.rb +5 -0
- data/wiki/content_matchers.textile +72 -0
- data/wiki/file_matchers.textile +17 -0
- data/wiki/{rails_view_helpers.textile → migration_matchers.textile} +1 -72
- data/wiki/rails_helpers.textile +42 -0
- metadata +22 -8
- data/lib/rspec_for_generators/rails_helpers/all.rb +0 -6
- data/spec/spec.opts +0 -1
data/.rspec
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--format nested --color
|
data/README.markdown
CHANGED
@@ -44,7 +44,7 @@ Put a *require_generator* statement in each spec file, to ensure that particular
|
|
44
44
|
|
45
45
|
This will load the generator : `generators/canabale_generator.rb`
|
46
46
|
|
47
|
-
If the generator is namespaced, use a nested approach like
|
47
|
+
If the generator is namespaced, use a nested approach like this:
|
48
48
|
|
49
49
|
<pre>require_generators :canable => ['model', 'user']</pre>
|
50
50
|
|
@@ -120,7 +120,7 @@ describe 'model_generator' do
|
|
120
120
|
name = 'account'
|
121
121
|
create_model name
|
122
122
|
g.run_generator %w{account}
|
123
|
-
g.should
|
123
|
+
g.should generate_model name do |content|
|
124
124
|
content.should have_class name do |klass|
|
125
125
|
klass.should include_module 'Canable::Ables'
|
126
126
|
end
|
@@ -129,6 +129,15 @@ describe 'model_generator' do
|
|
129
129
|
end
|
130
130
|
end</pre>
|
131
131
|
|
132
|
+
## TODO
|
133
|
+
|
134
|
+
Need to create specs to test matchers/helpers for generated:
|
135
|
+
* migration
|
136
|
+
* controller
|
137
|
+
* helper
|
138
|
+
* view
|
139
|
+
* ...
|
140
|
+
|
132
141
|
## Note on Patches/Pull Requests
|
133
142
|
|
134
143
|
* Fork the project.
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.3.
|
1
|
+
0.3.4
|
data/generator-spec.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{generator-spec}
|
8
|
-
s.version = "0.3.
|
8
|
+
s.version = "0.3.4"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Kristian Mandrup"]
|
12
|
-
s.date = %q{2010-08-
|
12
|
+
s.date = %q{2010-08-05}
|
13
13
|
s.description = %q{RSpec 2 library to assist in writing generator specs}
|
14
14
|
s.email = %q{kmandrup@gmail.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -19,18 +19,22 @@ Gem::Specification.new do |s|
|
|
19
19
|
s.files = [
|
20
20
|
".document",
|
21
21
|
".gitignore",
|
22
|
+
".rspec",
|
22
23
|
"LICENSE",
|
23
24
|
"README.markdown",
|
24
25
|
"Rakefile",
|
25
26
|
"VERSION",
|
26
27
|
"generator-spec.gemspec",
|
27
28
|
"lib/generators/demo/demo_generator.rb",
|
29
|
+
"lib/generators/migration/migration_generator.rb",
|
30
|
+
"lib/generators/migration/templates/create_users.erb",
|
28
31
|
"lib/rspec_for_generators.rb",
|
29
32
|
"lib/rspec_for_generators/fixtures/routes.rb",
|
30
33
|
"lib/rspec_for_generators/generator_spec_helper.rb",
|
31
34
|
"lib/rspec_for_generators/main.rb",
|
32
35
|
"lib/rspec_for_generators/matchers/content/have_block.rb",
|
33
36
|
"lib/rspec_for_generators/matchers/content/have_call.rb",
|
37
|
+
"lib/rspec_for_generators/matchers/content/have_calls.rb",
|
34
38
|
"lib/rspec_for_generators/matchers/content/have_class.rb",
|
35
39
|
"lib/rspec_for_generators/matchers/content/have_method.rb",
|
36
40
|
"lib/rspec_for_generators/matchers/content/have_module.rb",
|
@@ -48,22 +52,28 @@ Gem::Specification.new do |s|
|
|
48
52
|
"lib/rspec_for_generators/matchers/migration/have_table.rb",
|
49
53
|
"lib/rspec_for_generators/matchers/migration/have_tbl_column.rb",
|
50
54
|
"lib/rspec_for_generators/matchers/migration/have_up_down.rb",
|
51
|
-
"lib/rspec_for_generators/rails_helpers/all.rb",
|
52
55
|
"lib/rspec_for_generators/rails_helpers/rails_app.rb",
|
53
56
|
"lib/rspec_for_generators/rails_helpers/rails_controller.rb",
|
54
57
|
"lib/rspec_for_generators/rails_helpers/rails_helper.rb",
|
55
58
|
"lib/rspec_for_generators/rails_helpers/rails_mailer.rb",
|
59
|
+
"lib/rspec_for_generators/rails_helpers/rails_migration.rb",
|
56
60
|
"lib/rspec_for_generators/rails_helpers/rails_model.rb",
|
57
61
|
"lib/rspec_for_generators/rails_helpers/rails_orm.rb",
|
58
62
|
"lib/rspec_for_generators/rails_helpers/rails_view.rb",
|
59
63
|
"lib/rspec_for_generators/rails_spec_helper.rb",
|
60
64
|
"lib/rspec_for_generators/rspec_test_case.rb",
|
61
65
|
"rspec_for_generators.gemspec",
|
62
|
-
"spec/rspec_for_generators/
|
63
|
-
"spec/
|
66
|
+
"spec/rspec_for_generators/controller_generator_spec.rb",
|
67
|
+
"spec/rspec_for_generators/helper_generator_spec.rb",
|
68
|
+
"spec/rspec_for_generators/migration_generator_spec.rb",
|
69
|
+
"spec/rspec_for_generators/model_generator_spec.rb",
|
70
|
+
"spec/rspec_for_generators/view_generator_spec.rb",
|
64
71
|
"spec/spec_helper.rb",
|
65
72
|
"wiki/Custom Rails 3 Generators.textile",
|
66
|
-
"wiki/
|
73
|
+
"wiki/content_matchers.textile",
|
74
|
+
"wiki/file_matchers.textile",
|
75
|
+
"wiki/migration_matchers.textile",
|
76
|
+
"wiki/rails_helpers.textile"
|
67
77
|
]
|
68
78
|
s.homepage = %q{http://github.com/kristianmandrup/rspec_for_generators}
|
69
79
|
s.rdoc_options = ["--charset=UTF-8"]
|
@@ -71,7 +81,11 @@ Gem::Specification.new do |s|
|
|
71
81
|
s.rubygems_version = %q{1.3.7}
|
72
82
|
s.summary = %q{RSpec 2 library for writing generator specs}
|
73
83
|
s.test_files = [
|
74
|
-
"spec/rspec_for_generators/
|
84
|
+
"spec/rspec_for_generators/controller_generator_spec.rb",
|
85
|
+
"spec/rspec_for_generators/helper_generator_spec.rb",
|
86
|
+
"spec/rspec_for_generators/migration_generator_spec.rb",
|
87
|
+
"spec/rspec_for_generators/model_generator_spec.rb",
|
88
|
+
"spec/rspec_for_generators/view_generator_spec.rb",
|
75
89
|
"spec/spec_helper.rb"
|
76
90
|
]
|
77
91
|
|
@@ -7,7 +7,7 @@ class DemoGenerator < Rails::Generators::Base
|
|
7
7
|
@source_root ||= File.expand_path("../../templates", __FILE__)
|
8
8
|
end
|
9
9
|
|
10
|
-
def make_canable_able
|
10
|
+
def make_canable_able
|
11
11
|
if File.exist?(model_file_name)
|
12
12
|
@model_file_txt = File.open(model_file_name).read
|
13
13
|
after_txt = find_after_txt(model_file_txt)
|
@@ -0,0 +1,13 @@
|
|
1
|
+
class MigrationGenerator < Rails::Generators::Base
|
2
|
+
desc "Creates a migration"
|
3
|
+
|
4
|
+
argument :name, :type => :string
|
5
|
+
|
6
|
+
def self.source_root
|
7
|
+
@source_root ||= File.expand_path("../templates", __FILE__)
|
8
|
+
end
|
9
|
+
|
10
|
+
def create_migration
|
11
|
+
template "#{name}.erb", 'db/migrations/20100203_create_users.rb'
|
12
|
+
end
|
13
|
+
end
|
@@ -25,7 +25,7 @@ alias :require_generator :require_generators
|
|
25
25
|
module RSpec
|
26
26
|
module Generator
|
27
27
|
class << self
|
28
|
-
attr_accessor :generator, :test_method_name
|
28
|
+
attr_accessor :generator, :test_method_name, :remove_temp_dir
|
29
29
|
|
30
30
|
def remove_rails_dir!
|
31
31
|
FileUtils.rm_rf ::TmpRails.root
|
@@ -36,17 +36,17 @@ module RSpec
|
|
36
36
|
config.root_dir = options == :custom ? TmpRails.root_dir(File.dirname(path) + '/../tmp', :custom) : TmpRails.root_dir(path)
|
37
37
|
end
|
38
38
|
|
39
|
-
::RSpec::Generators::TestCase.destination ::Rails.root
|
40
|
-
::Rails::Generators.configure!
|
41
|
-
|
42
39
|
::RSpec.configure do |config|
|
43
40
|
config.after(:suite) do
|
44
|
-
::RSpec::Generator.remove_rails_dir!
|
41
|
+
::RSpec::Generator.remove_rails_dir! if remove_temp_dir
|
45
42
|
end
|
46
43
|
end
|
44
|
+
|
45
|
+
::RSpec::Generators::TestCase.destination ::Rails.root
|
46
|
+
::Rails::Generators.configure!
|
47
47
|
end
|
48
48
|
|
49
|
-
def run_generator *args, &block
|
49
|
+
def run_generator *args, &block
|
50
50
|
generator.run_generator *args
|
51
51
|
if block
|
52
52
|
block.arity < 1 ? generator.instance_eval(&block) : block.call(generator, self)
|
@@ -5,13 +5,14 @@ module RSpec::RubyContentMatchers
|
|
5
5
|
def initialize(name, options={})
|
6
6
|
@name = name
|
7
7
|
@args = options[:args]
|
8
|
-
@block_args = options[:block_args]
|
8
|
+
@block_args = options[:block_args]
|
9
9
|
end
|
10
10
|
|
11
11
|
def matches?(content)
|
12
|
-
match_res =
|
13
|
-
|
14
|
-
|
12
|
+
match_res = (content =~ /#{name}\s+#{args_expr}do\s+#{block_args_expr}(.*?)end/m)
|
13
|
+
block_content = $1 || $3
|
14
|
+
if block_given? && block_content
|
15
|
+
ruby_content = block_content.strip.extend(RSpec::RubyContent::Helpers)
|
15
16
|
yield ruby_content
|
16
17
|
else
|
17
18
|
match_res
|
@@ -28,16 +29,12 @@ module RSpec::RubyContentMatchers
|
|
28
29
|
|
29
30
|
protected
|
30
31
|
|
31
|
-
def match content
|
32
|
-
content =~ /#{name}\s+#{args_expr}do\s+#{block_args_expr}(.*?)end/m
|
33
|
-
end
|
34
|
-
|
35
32
|
def args_expr
|
36
|
-
args ?
|
33
|
+
args ? '(\()?\s*' + args + '\s*(\))?\s+' : ''
|
37
34
|
end
|
38
35
|
|
39
36
|
def block_args_expr
|
40
|
-
|
37
|
+
block_args ? '\|\s*' + block_args + '\s*\|' : ''
|
41
38
|
end
|
42
39
|
end
|
43
40
|
|
@@ -19,19 +19,19 @@ module RSpec::RubyContentMatchers
|
|
19
19
|
end
|
20
20
|
|
21
21
|
def failure_message
|
22
|
-
return "Expected there to be
|
23
|
-
"Expected there to be
|
22
|
+
return "Expected there to be a call to #{method} with args #{args}, but there wasn't" if args
|
23
|
+
"Expected there to be a call to #{method}, but there wasn't"
|
24
24
|
end
|
25
25
|
|
26
26
|
def negative_failure_message
|
27
|
-
return "Did not expect there to be
|
28
|
-
"Did not expect there to be
|
27
|
+
return "Did not expect there to be a call to #{method} with args #{args}, but there was" if args
|
28
|
+
"Did not expect there to be a call to #{method}, but there was"
|
29
29
|
end
|
30
30
|
|
31
31
|
protected
|
32
32
|
|
33
33
|
def args_expr
|
34
|
-
args ? "\(?\s*#{args}\s
|
34
|
+
args ? "(\()?\s*#{args}\s*(\))?" : ''
|
35
35
|
end
|
36
36
|
|
37
37
|
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module RSpec::RubyContentMatchers
|
2
|
+
class HaveCalls
|
3
|
+
attr_reader :calls
|
4
|
+
attr_accessor :method, :args
|
5
|
+
|
6
|
+
def initialize(calls)
|
7
|
+
@calls = calls
|
8
|
+
end
|
9
|
+
|
10
|
+
def matches?(content)
|
11
|
+
calls.each_pair do |method, args|
|
12
|
+
@method = method
|
13
|
+
@args = args
|
14
|
+
return false if (content =~ /#{method}\s+#{args_expr}/m) == nil
|
15
|
+
end
|
16
|
+
true
|
17
|
+
end
|
18
|
+
|
19
|
+
def failure_message
|
20
|
+
return "Expected there to be a call to #{method} with args #{args}, but there wasn't" if args
|
21
|
+
"Expected there to be a call to #{method}, but there wasn't"
|
22
|
+
end
|
23
|
+
|
24
|
+
def negative_failure_message
|
25
|
+
return "Did not expect there to be a call to #{method} with args #{args}, but there was" if args
|
26
|
+
"Did not expect there to be a call to #{method}, but there was"
|
27
|
+
end
|
28
|
+
|
29
|
+
protected
|
30
|
+
|
31
|
+
def args_expr
|
32
|
+
args ? "(\()?\s*#{args}\s*(\))?" : ''
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
36
|
+
|
37
|
+
def have_calls(calls)
|
38
|
+
HaveCalls.new(calls)
|
39
|
+
end
|
40
|
+
end
|
@@ -7,29 +7,36 @@
|
|
7
7
|
#
|
8
8
|
module RSpec::RubyContentMatchers
|
9
9
|
class HaveMethod
|
10
|
-
attr_reader :method
|
10
|
+
attr_reader :method, :type
|
11
11
|
|
12
|
-
def initialize(method, type)
|
13
|
-
@type = type
|
12
|
+
def initialize(method, type=nil)
|
14
13
|
@method = method.to_s
|
14
|
+
@type = type
|
15
15
|
end
|
16
16
|
|
17
|
-
def matches?(content)
|
18
|
-
case
|
17
|
+
def matches?(content)
|
18
|
+
match_res = case type
|
19
19
|
when :class
|
20
|
-
content =~ /def\s+self.#{method}\s*(\(.+\))?(.*?)/m
|
20
|
+
content =~ /def\s+self.#{method}\s*(\(.+\))?(.*?)(def|end)/m
|
21
21
|
else
|
22
|
-
content =~ /def\s+#{method}\s*(\(.+\))?(.*?)/m
|
23
|
-
end
|
22
|
+
content =~ /def\s+#{method}\s*(\(.+\))?(.*?)(def|end)/m
|
23
|
+
end
|
24
|
+
if block_given? && $2
|
25
|
+
ruby_content = $2.strip.extend(RSpec::RubyContent::Helpers)
|
26
|
+
ruby_content << "\nend" if !(ruby_content =~ /\nend$/)
|
27
|
+
yield ruby_content
|
28
|
+
else
|
29
|
+
match_res
|
30
|
+
end
|
24
31
|
end
|
25
32
|
|
26
33
|
def failure_message
|
27
|
-
return "Expected there to be the class method #{method}, but there wasn't" if
|
34
|
+
return "Expected there to be the class method #{method}, but there wasn't" if type == :class
|
28
35
|
"Expected there to be the method #{method}, but there wasn't"
|
29
36
|
end
|
30
37
|
|
31
38
|
def negative_failure_message
|
32
|
-
return "Did not expect there to be the method #{method}, but there was" if
|
39
|
+
return "Did not expect there to be the method #{method}, but there was" if type == :class
|
33
40
|
"Did not expect there to be the method #{method}, but there was"
|
34
41
|
end
|
35
42
|
|
@@ -66,6 +66,25 @@ module RSpec::FileMatchers
|
|
66
66
|
def generate_file(relative, type = nil)
|
67
67
|
GenerateFile.new(relative, type)
|
68
68
|
end
|
69
|
-
|
69
|
+
|
70
|
+
def generate_model(relative)
|
71
|
+
GenerateFile.new(relative, :model)
|
72
|
+
end
|
73
|
+
|
74
|
+
def generate_controller(relative)
|
75
|
+
GenerateFile.new(relative, :controller)
|
76
|
+
end
|
77
|
+
|
78
|
+
def generate_helper(relative)
|
79
|
+
GenerateFile.new(relative, :helper)
|
80
|
+
end
|
81
|
+
|
82
|
+
def generate_view(relative)
|
83
|
+
GenerateFile.new(relative, :view)
|
84
|
+
end
|
85
|
+
|
86
|
+
def generate_observer(relative)
|
87
|
+
GenerateFile.new(relative, :observer)
|
88
|
+
end
|
70
89
|
end
|
71
90
|
|
@@ -8,42 +8,50 @@
|
|
8
8
|
module RSpec
|
9
9
|
module FileMatchers
|
10
10
|
class GenerateMigration
|
11
|
+
include RSpec::Rails::Migration
|
11
12
|
|
12
|
-
|
13
|
-
|
13
|
+
attr_reader :name
|
14
|
+
|
15
|
+
def initialize(name)
|
16
|
+
@name = name
|
14
17
|
end
|
15
18
|
|
16
|
-
def matches?(generator)
|
17
|
-
|
18
|
-
if
|
19
|
-
read = File.read(
|
19
|
+
def matches?(generator)
|
20
|
+
expected = migration_file_name(name, generator)
|
21
|
+
if block_given? && expected
|
22
|
+
read = File.read(expected)
|
20
23
|
ruby_content = read.extend(RSpec::RubyContent::Helpers)
|
21
24
|
yield ruby_content
|
22
25
|
else
|
23
|
-
|
26
|
+
expected
|
24
27
|
end
|
25
28
|
end
|
26
29
|
|
27
30
|
def failure_message
|
28
|
-
"Expected migration #{
|
31
|
+
"Expected migration #{name} to have been generated, but it was not"
|
29
32
|
end
|
30
33
|
|
31
34
|
def negative_failure_message
|
32
|
-
"Did not expect migration #{
|
35
|
+
"Did not expect migration #{name} to have been generated, but it was"
|
33
36
|
end
|
34
37
|
|
35
38
|
protected
|
36
39
|
|
37
40
|
def migration_file_name(relative, generator) #:nodoc:
|
38
|
-
|
39
|
-
|
40
|
-
Dir.glob("#{dirname}/[0-9]*_*.rb")
|
41
|
+
dirname = migration_dir
|
42
|
+
file_name = relative.sub(/\.rb$/, '')
|
43
|
+
migrations = Dir.glob("#{dirname}/[0-9]*_*.rb")
|
44
|
+
if !migrations.empty?
|
45
|
+
migrations.grep(/\d+_#{file_name}\.rb$/).first
|
46
|
+
else
|
47
|
+
false
|
48
|
+
end
|
41
49
|
end
|
42
50
|
|
43
51
|
end
|
44
52
|
|
45
|
-
def generate_migration(
|
46
|
-
GenerateMigration.new(
|
53
|
+
def generate_migration(name)
|
54
|
+
GenerateMigration.new(name)
|
47
55
|
end
|
48
56
|
|
49
57
|
end
|
@@ -11,92 +11,79 @@ end
|
|
11
11
|
|
12
12
|
module RSpec::RubyContent
|
13
13
|
module Helpers
|
14
|
-
def check_up
|
15
|
-
self.should
|
16
|
-
yield content if block
|
17
|
-
end
|
14
|
+
def check_up &block
|
15
|
+
self.should have_up, &block
|
18
16
|
end
|
19
17
|
alias_method :up, :check_up
|
20
18
|
|
21
|
-
def check_down
|
22
|
-
self.should
|
23
|
-
yield content if block
|
24
|
-
end
|
19
|
+
def check_down &block
|
20
|
+
self.should have_down, &block
|
25
21
|
end
|
26
22
|
alias_method :down, :check_down
|
27
23
|
|
28
|
-
def check_create_table
|
29
|
-
self.should
|
30
|
-
if block_given?
|
31
|
-
ruby_content = $2.strip.extend(RSpec::RubyContent::Helpers)
|
32
|
-
yield ruby_content
|
33
|
-
end
|
24
|
+
def check_create_table name, &block
|
25
|
+
self.should create_table name, &block
|
34
26
|
end
|
35
27
|
alias_method :creates_table, :check_create_table
|
36
28
|
|
37
|
-
def check_change_table
|
38
|
-
self.should
|
39
|
-
if block_given?
|
40
|
-
ruby_content = $2.strip.extend(RSpec::RubyContent::Helpers)
|
41
|
-
yield ruby_content
|
42
|
-
end
|
29
|
+
def check_change_table name, &block
|
30
|
+
self.should change_table name, &block
|
43
31
|
end
|
44
32
|
alias_method :changes_table, :check_change_table
|
45
33
|
|
46
34
|
def check_drop_table name
|
47
|
-
self.should
|
35
|
+
self.should drop_table name, &block
|
48
36
|
end
|
49
37
|
alias_method :drops_table, :check_drop_table
|
50
38
|
|
51
39
|
def check_rename_table name
|
52
|
-
self.should
|
40
|
+
self.should rename_table name, &block
|
53
41
|
end
|
54
42
|
alias_method :renames_table, :check_rename_table
|
55
43
|
|
56
44
|
def check_remove_column name
|
57
|
-
self.should
|
45
|
+
self.should remove_colum name, &block
|
58
46
|
end
|
59
47
|
alias_method :removes_column, :check_remove_column
|
60
48
|
|
61
49
|
def check_add_column name, type='string'
|
62
|
-
self.should
|
50
|
+
self.should add_column name, type, &block
|
63
51
|
end
|
64
52
|
alias_method :adds_column, :check_add_column
|
65
53
|
|
66
54
|
def check_change_column name, type='string'
|
67
|
-
self.should
|
55
|
+
self.should change_column name, type, &block
|
68
56
|
end
|
69
57
|
alias_method :changes_column, :check_change_column
|
70
58
|
|
71
59
|
def check_add_tbl_column tbl_name, name, type='string'
|
72
|
-
self.should
|
60
|
+
self.should add_tbl_column tbl_name, name, type
|
73
61
|
end
|
74
62
|
alias_method :adds_tbl_column, :check_add_tbl_column
|
75
63
|
|
76
64
|
def check_change_tbl_column tbl_name, name, type='string'
|
77
|
-
self.should
|
65
|
+
self.should change_tbl_column tbl_name, name, type
|
78
66
|
end
|
79
67
|
alias_method :changes_tbl_column, :check_change_tbl_column
|
80
68
|
|
81
69
|
def check_rename_tbl_column tbl_name, new_name
|
82
|
-
self.should
|
70
|
+
self.should rename_tbl_column tbl_name, new_name
|
83
71
|
end
|
84
72
|
alias_method :renames_tbl_column, :check_rename_tbl_column
|
85
73
|
|
86
74
|
def check_remove_tbl_column tbl_name, name
|
87
|
-
self.should
|
75
|
+
self.should remove_tbl_column tbl_name, name
|
88
76
|
end
|
89
77
|
alias_method :removes_tbl_column, :check_remove_tbl_column
|
90
78
|
|
91
79
|
def check_add_tbl_index tbl_name, name
|
92
|
-
self.should
|
80
|
+
self.should add_tbl_index tbl_name, name
|
93
81
|
end
|
94
82
|
alias_method :adds_tbl_index, :check_add_tbl_index
|
95
83
|
|
96
84
|
def check_remove_tbl_index tbl_name, name
|
97
|
-
self.should
|
85
|
+
self.should remove_tbl_index tbl_name, name
|
98
86
|
end
|
99
87
|
alias_method :removes_tbl_index, :check_remove_tbl_index
|
100
|
-
|
101
88
|
end
|
102
89
|
end
|
@@ -6,8 +6,18 @@ module RSpec::RubyContentMatchers
|
|
6
6
|
def have_add_column(name, type='string')
|
7
7
|
HaveCall.new("t.#{type}", ":#{name}")
|
8
8
|
end
|
9
|
+
alias_method :have_column, :have_add_column
|
10
|
+
|
11
|
+
def have_columns(columns = {})
|
12
|
+
raise ArgumentError, "Columns must be passed as a :name => :type Hash" if !columns.kind_of? Hash
|
13
|
+
HaveCalls.new columns
|
14
|
+
end
|
9
15
|
|
10
16
|
def have_change_column(name, type='string')
|
11
17
|
HaveCall.new("t.change", ":#{name}\s*,\s*:#{type}")
|
12
18
|
end
|
19
|
+
|
20
|
+
def have_timestamps
|
21
|
+
HaveCall.new("t.timestamps")
|
22
|
+
end
|
13
23
|
end
|
@@ -1,5 +1,31 @@
|
|
1
|
-
module RSpec::
|
2
|
-
|
3
|
-
|
1
|
+
module RSpec::RubyContentMatchers
|
2
|
+
class HaveMigration
|
3
|
+
attr_reader :klass
|
4
|
+
|
5
|
+
def initialize(klass)
|
6
|
+
@klass = klass.to_s.camelize
|
7
|
+
end
|
8
|
+
|
9
|
+
def matches?(content)
|
10
|
+
match_res = (content =~ /class\s+#{klass}\s+<\s+ActiveRecord::Migration(.*)end$/m)
|
11
|
+
if block_given? && $1
|
12
|
+
ruby_content = $1.strip.extend(RSpec::RubyContent::Helpers)
|
13
|
+
yield ruby_content
|
14
|
+
else
|
15
|
+
match_res
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def failure_message
|
20
|
+
"Expected there to be the migration class #{klass}"
|
21
|
+
end
|
22
|
+
|
23
|
+
def negative_failure_message
|
24
|
+
"Did no expected there to be the migration class #{klass}"
|
25
|
+
end
|
4
26
|
end
|
27
|
+
|
28
|
+
def have_migration(klass)
|
29
|
+
HaveMigration.new(klass)
|
30
|
+
end
|
5
31
|
end
|
@@ -1,10 +1,10 @@
|
|
1
1
|
module RSpec::RubyContentMatchers
|
2
|
-
def have_up
|
3
|
-
HaveMethod.new up, :class
|
2
|
+
def have_up &block
|
3
|
+
HaveMethod.new 'up', :class, &block
|
4
4
|
end
|
5
5
|
|
6
|
-
def have_down
|
7
|
-
HaveMethod.new
|
6
|
+
def have_down &block
|
7
|
+
HaveMethod.new 'down', :class, &block
|
8
8
|
end
|
9
9
|
end
|
10
10
|
|
@@ -1,52 +1,118 @@
|
|
1
1
|
module RSpec::Rails
|
2
2
|
module App
|
3
|
-
|
4
|
-
|
5
|
-
|
3
|
+
module Dirs
|
4
|
+
def app_dir
|
5
|
+
File.join(::Rails.root, 'app')
|
6
|
+
end
|
7
|
+
|
8
|
+
def config_dir
|
9
|
+
File.join(::Rails.root, 'config')
|
10
|
+
end
|
11
|
+
|
12
|
+
def db_dir
|
13
|
+
File.join(::Rails.root, 'db')
|
14
|
+
end
|
15
|
+
|
16
|
+
def locale_dir
|
17
|
+
File.join(::Rails.root, 'public')
|
18
|
+
end
|
19
|
+
|
20
|
+
def model_dir
|
21
|
+
File.join(app_dir, 'models')
|
22
|
+
end
|
23
|
+
|
24
|
+
def controller_dir
|
25
|
+
File.join(app_dir, 'controllers')
|
26
|
+
end
|
27
|
+
|
28
|
+
def migration_dir
|
29
|
+
File.join(db_dir, 'migrations')
|
30
|
+
end
|
31
|
+
|
32
|
+
def helper_dir
|
33
|
+
File.join(app_dir, 'helpers')
|
34
|
+
end
|
35
|
+
|
36
|
+
def view_dir
|
37
|
+
File.join(app_dir, 'views')
|
38
|
+
end
|
39
|
+
|
40
|
+
def initializer_dir
|
41
|
+
File.join(config_dir, 'initializers')
|
42
|
+
end
|
43
|
+
|
44
|
+
def migration_dir
|
45
|
+
File.join(db_dir, 'migrations')
|
46
|
+
end
|
47
|
+
|
48
|
+
def locale_dir
|
49
|
+
File.join(config_dir, 'locales')
|
50
|
+
end
|
51
|
+
|
52
|
+
def stylesheet_dir
|
53
|
+
File.join(public_dir, 'stylesheets')
|
54
|
+
end
|
55
|
+
|
56
|
+
def javascript_dir
|
57
|
+
File.join(public_dir, 'javascripts')
|
58
|
+
end
|
59
|
+
end
|
6
60
|
|
7
|
-
module
|
8
|
-
def
|
61
|
+
module Files
|
62
|
+
def all
|
9
63
|
FileList["#{::Rails.root}/**/*.rb"]
|
10
64
|
end
|
11
65
|
|
12
|
-
def
|
66
|
+
def app_files
|
13
67
|
FileList["#{::Rails.root}/app/**/*.rb"]
|
14
68
|
end
|
15
69
|
|
16
|
-
def
|
70
|
+
def model_files
|
17
71
|
FileList["#{::Rails.root}/app/models/**/*.rb"]
|
18
72
|
end
|
19
73
|
|
20
|
-
def
|
74
|
+
def controller_files
|
21
75
|
FileList["#{::Rails.root}/app/controllers/**/*.rb"]
|
22
76
|
end
|
23
77
|
|
24
|
-
def
|
78
|
+
def helper_files
|
25
79
|
FileList["#{::Rails.root}/app/helpers/**/*.rb"]
|
26
80
|
end
|
27
81
|
|
28
|
-
def
|
29
|
-
FileList["#{::Rails.root}/app/views
|
82
|
+
def view_files
|
83
|
+
FileList["#{::Rails.root}/app/views/**/*"]
|
84
|
+
end
|
85
|
+
|
86
|
+
def view_files_html
|
87
|
+
FileList["#{::Rails.root}/app/views/**/*.html*"]
|
30
88
|
end
|
31
89
|
|
32
|
-
def
|
90
|
+
def view_files_haml
|
91
|
+
FileList["#{::Rails.root}/app/views/**/*.haml*"]
|
92
|
+
end
|
93
|
+
|
94
|
+
def initializer_files
|
33
95
|
FileList["#{::Rails.root}/config/initializers/**/*.rb"]
|
34
96
|
end
|
35
97
|
|
36
|
-
def
|
37
|
-
FileList["#{
|
98
|
+
def migration_files
|
99
|
+
FileList["#{migration_dir}/**/*.rb"]
|
38
100
|
end
|
39
101
|
|
40
|
-
def
|
102
|
+
def locale_files
|
41
103
|
FileList["#{::Rails.root}/config/locales/**/*.yml"]
|
42
104
|
end
|
43
105
|
|
44
|
-
def
|
45
|
-
FileList["#{
|
106
|
+
def javascript_files
|
107
|
+
FileList["#{javascript_dir}/**/*.js"]
|
108
|
+
end
|
109
|
+
|
110
|
+
def css_files
|
111
|
+
FileList["#{stylesheet_dir}/**/*.css"]
|
46
112
|
end
|
47
113
|
|
48
|
-
def
|
49
|
-
FileList["#{
|
114
|
+
def sass_files
|
115
|
+
FileList["#{stylesheet_dir}/**/*.css"]
|
50
116
|
end
|
51
117
|
end
|
52
118
|
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
module RSpec::Rails
|
2
|
+
module Migration
|
3
|
+
include RSpec::Rails::App::Dirs
|
4
|
+
|
5
|
+
def create_migration number, name, &block
|
6
|
+
file = migration_file_name(number, name)
|
7
|
+
unless File.exist?(file)
|
8
|
+
FileUtils.mkdir_p File.dirname(file)
|
9
|
+
File.open(file, 'w') do |f|
|
10
|
+
f.puts file_content(name)
|
11
|
+
yield f if block_given?
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def remove_migration name
|
17
|
+
migrations = Dir.glob("#{migration_dir}/[0-9]*_*.rb")
|
18
|
+
migration_file = if !migrations.empty?
|
19
|
+
migrations.grep(/\d+_#{name}\.rb$/).first
|
20
|
+
else
|
21
|
+
false
|
22
|
+
end
|
23
|
+
FileUtils.rm_f(migration_file) if migration_file
|
24
|
+
end
|
25
|
+
|
26
|
+
def remove_migrations *names
|
27
|
+
names.each do |name|
|
28
|
+
remove_migration name
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def migration_file_name number, name
|
33
|
+
File.join(migration_dir, "#{number}_#{name}.rb")
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
File without changes
|
File without changes
|
@@ -0,0 +1,40 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
2
|
+
require_generator :migration
|
3
|
+
|
4
|
+
describe 'migration_generator' do
|
5
|
+
include RSpec::Rails::Orm::ActiveRecord
|
6
|
+
include RSpec::Rails::Migration
|
7
|
+
|
8
|
+
before :each do
|
9
|
+
RSpec::Generator.setup_generator 'migration_generator' do
|
10
|
+
tests MigrationGenerator
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
after :each do
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should generate create_user migration" do
|
18
|
+
RSpec::Generator.with_generator do |g|
|
19
|
+
name = 'create_users'
|
20
|
+
remove_migration 'create_users'
|
21
|
+
g.run_generator [name]
|
22
|
+
g.should generate_migration name do |content|
|
23
|
+
content.should have_migration name do |klass|
|
24
|
+
klass.should have_up do |up|
|
25
|
+
up.should have_create_table :users do |user_tbl|
|
26
|
+
user_tbl.should have_columns :name => :string, :age => :string
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
klass.should have_down do |up|
|
31
|
+
up.should have_drop_table :users
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
|
40
|
+
|
File without changes
|
File without changes
|
data/spec/spec_helper.rb
CHANGED
@@ -0,0 +1,72 @@
|
|
1
|
+
The RSpec 2 generator matchers are used to match on file content that are the result of running the generator under test.
|
2
|
+
These matchers can be used to test if the resulting file contains content/ruby code as expected (or specified).
|
3
|
+
|
4
|
+
* have_class name, &block
|
5
|
+
* have_module name, &block
|
6
|
+
* have_method name, &block, type:Symbol (:class)
|
7
|
+
* include_module name
|
8
|
+
* inherit_from name, &block
|
9
|
+
* have_call name, [args]
|
10
|
+
* have_block name, [options]
|
11
|
+
|
12
|
+
h3. Example use of matchers
|
13
|
+
|
14
|
+
<pre>
|
15
|
+
g.should generate_model name do |content|
|
16
|
+
content.should have_class name do |klass_content|
|
17
|
+
klass_content.should include_module 'Canable::Ables'
|
18
|
+
end
|
19
|
+
end
|
20
|
+
</pre>
|
21
|
+
|
22
|
+
h4. have_class
|
23
|
+
|
24
|
+
<pre>have_class MyClass do |class_content|
|
25
|
+
class_content.should ...
|
26
|
+
end
|
27
|
+
</pre>
|
28
|
+
|
29
|
+
h4. have_module
|
30
|
+
|
31
|
+
<pre>have_module MyModule do |module_content|
|
32
|
+
module_content.should ...
|
33
|
+
end
|
34
|
+
</pre>
|
35
|
+
|
36
|
+
h4. have_method
|
37
|
+
|
38
|
+
<pre>have_method :song do |song|
|
39
|
+
song.should ...
|
40
|
+
end
|
41
|
+
</pre>
|
42
|
+
|
43
|
+
h4. have_method
|
44
|
+
|
45
|
+
<pre>have_method :song do |song|
|
46
|
+
song.should ...
|
47
|
+
end
|
48
|
+
</pre>
|
49
|
+
|
50
|
+
h4. include_module
|
51
|
+
|
52
|
+
<pre>include_module 'UserRoles'</pre>
|
53
|
+
|
54
|
+
h4. inherit_from
|
55
|
+
|
56
|
+
<pre>inherit_from 'ActiveRecord::Base' do |klass|
|
57
|
+
klass.should ...
|
58
|
+
end
|
59
|
+
</pre>
|
60
|
+
|
61
|
+
h4. have_call
|
62
|
+
|
63
|
+
<pre>have_call 'move', :args => ':north'</pre>
|
64
|
+
|
65
|
+
Note: Currently not tested. Any issues?
|
66
|
+
|
67
|
+
h4. have_block
|
68
|
+
|
69
|
+
<pre>have_block 'move', :args => ':north', :block_args => 'place'</pre>
|
70
|
+
|
71
|
+
Note: Currently not tested. Any issues?
|
72
|
+
|
@@ -0,0 +1,17 @@
|
|
1
|
+
* generate_file name, type:Symbol, &block
|
2
|
+
* generate_dir name, type:Symbol, &block
|
3
|
+
|
4
|
+
*generate_file* can take any of the symbols below as a type argument and perform matchings on
|
5
|
+
that file in the appropriate location for that type of file in the Rails 3 app.
|
6
|
+
|
7
|
+
* :model, :controller, :view, :helper, :observer, :migration
|
8
|
+
* :javascript, :stylesheet, :initializer, :locale
|
9
|
+
|
10
|
+
The following are some convenience matchers that acts as wrappers on generate_file
|
11
|
+
|
12
|
+
* generate_model name, &block
|
13
|
+
* generate_controller name, &block
|
14
|
+
* generate_helper name, &block
|
15
|
+
* generate_view name, &block
|
16
|
+
* generate_observer name, &block
|
17
|
+
* generate_migration name, &block
|
@@ -1,74 +1,3 @@
|
|
1
|
-
The Rails 3 spec helpers can be used to setup the temporary Rails 3 app used for the specs.
|
2
|
-
Use the `create` methods to setup an application layout of expected files expected/required by the generator to test it.
|
3
|
-
|
4
|
-
The `remove` methods can be used to cleanup before or after a test run, f.ex using the RSpec `before(:each)` and `after(:each)` blocks.
|
5
|
-
|
6
|
-
h3. View helpers
|
7
|
-
|
8
|
-
* create_view name, content
|
9
|
-
* create_view name, &block
|
10
|
-
* remove_view name
|
11
|
-
* remove_views *names
|
12
|
-
|
13
|
-
h3. Model helpers
|
14
|
-
|
15
|
-
* create_model name, content
|
16
|
-
* create_model name, &block
|
17
|
-
* remove_model name
|
18
|
-
* remove_models *names
|
19
|
-
|
20
|
-
h3. Controller helpers
|
21
|
-
|
22
|
-
* create_controller name, content
|
23
|
-
* create_controller name, &block
|
24
|
-
* remove_controller name
|
25
|
-
* remove_controller *names
|
26
|
-
|
27
|
-
h3. Mailer helpers
|
28
|
-
|
29
|
-
* create_mailer name, content
|
30
|
-
* create_mailer name, &block
|
31
|
-
* remove_mailer name
|
32
|
-
* remove_mailers *names
|
33
|
-
|
34
|
-
h3. Helper helpers
|
35
|
-
|
36
|
-
* create_helper name, content
|
37
|
-
* create_helper name, &block
|
38
|
-
* remove_helper name
|
39
|
-
* remove_helpers *names
|
40
|
-
|
41
|
-
--
|
42
|
-
|
43
|
-
The RSpec 2 generator matchers are used to match on file content that are the result of running the generator under test.
|
44
|
-
These matchers can be used to test if the resulting file contains content/ruby code as expected (or specified).
|
45
|
-
|
46
|
-
* generate_file name, type:Symbol, &block
|
47
|
-
* generate_dir name, type:Symbol, &block
|
48
|
-
* generate_migration name, &block
|
49
|
-
|
50
|
-
* have_class name, &block
|
51
|
-
* have_module name, &block
|
52
|
-
* have_method name, &block, type:Symbol (:class)
|
53
|
-
* include_module name, &block
|
54
|
-
* inherit_from name, &block
|
55
|
-
|
56
|
-
*generate_file* can take any of the symbols below as a type argument and perform matchings on
|
57
|
-
that file in the appropriate location in the Rails 3 app.
|
58
|
-
|
59
|
-
* :model, :controller, :view, :helper, :observer, :migration
|
60
|
-
* :javascript, :stylesheet, :initializer, :locale
|
61
|
-
|
62
|
-
h3. Example use of matchers
|
63
|
-
|
64
|
-
<pre>
|
65
|
-
g.should generate_file name, :model do |content|
|
66
|
-
content.should have_class name do |klass|
|
67
|
-
klass.should include_module 'Canable::Ables'
|
68
|
-
end
|
69
|
-
end
|
70
|
-
</pre>
|
71
|
-
|
72
1
|
h2. Migration file
|
73
2
|
|
74
3
|
There are a bunch of ways to match the layout of a generated migration file as the following demonstrates.
|
@@ -89,7 +18,7 @@ g.should have_migration(:create_users) do |content|
|
|
89
18
|
end
|
90
19
|
</pre>
|
91
20
|
|
92
|
-
Migration
|
21
|
+
Migration class matcher
|
93
22
|
|
94
23
|
* have_migration name, &block
|
95
24
|
|
@@ -0,0 +1,42 @@
|
|
1
|
+
The Rails 3 spec helpers can be used to setup the temporary Rails 3 app used for the specs.
|
2
|
+
Use the `create` methods to setup an application layout of expected files expected/required by the generator to test it.
|
3
|
+
|
4
|
+
The `remove` methods can be used to cleanup before or after a test run, f.ex using the RSpec `before(:each)` and `after(:each)` blocks.
|
5
|
+
|
6
|
+
h3. View helpers
|
7
|
+
|
8
|
+
* create_view name, content
|
9
|
+
* create_view name, &block
|
10
|
+
* remove_view name
|
11
|
+
* remove_views *names
|
12
|
+
|
13
|
+
h3. Model helpers
|
14
|
+
|
15
|
+
* create_model name, content
|
16
|
+
* create_model name, &block
|
17
|
+
* remove_model name
|
18
|
+
* remove_models *names
|
19
|
+
|
20
|
+
h3. Controller helpers
|
21
|
+
|
22
|
+
* create_controller name, content
|
23
|
+
* create_controller name, &block
|
24
|
+
* remove_controller name
|
25
|
+
* remove_controller *names
|
26
|
+
|
27
|
+
h3. Mailer helpers
|
28
|
+
|
29
|
+
* create_mailer name, content
|
30
|
+
* create_mailer name, &block
|
31
|
+
* remove_mailer name
|
32
|
+
* remove_mailers *names
|
33
|
+
|
34
|
+
h3. Helper helpers
|
35
|
+
|
36
|
+
* create_helper name, content
|
37
|
+
* create_helper name, &block
|
38
|
+
* remove_helper name
|
39
|
+
* remove_helpers *names
|
40
|
+
|
41
|
+
|
42
|
+
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 3
|
8
|
-
-
|
9
|
-
version: 0.3.
|
8
|
+
- 4
|
9
|
+
version: 0.3.4
|
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-05 00:00:00 +02:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -123,18 +123,22 @@ extra_rdoc_files:
|
|
123
123
|
files:
|
124
124
|
- .document
|
125
125
|
- .gitignore
|
126
|
+
- .rspec
|
126
127
|
- LICENSE
|
127
128
|
- README.markdown
|
128
129
|
- Rakefile
|
129
130
|
- VERSION
|
130
131
|
- generator-spec.gemspec
|
131
132
|
- lib/generators/demo/demo_generator.rb
|
133
|
+
- lib/generators/migration/migration_generator.rb
|
134
|
+
- lib/generators/migration/templates/create_users.erb
|
132
135
|
- lib/rspec_for_generators.rb
|
133
136
|
- lib/rspec_for_generators/fixtures/routes.rb
|
134
137
|
- lib/rspec_for_generators/generator_spec_helper.rb
|
135
138
|
- lib/rspec_for_generators/main.rb
|
136
139
|
- lib/rspec_for_generators/matchers/content/have_block.rb
|
137
140
|
- lib/rspec_for_generators/matchers/content/have_call.rb
|
141
|
+
- lib/rspec_for_generators/matchers/content/have_calls.rb
|
138
142
|
- lib/rspec_for_generators/matchers/content/have_class.rb
|
139
143
|
- lib/rspec_for_generators/matchers/content/have_method.rb
|
140
144
|
- lib/rspec_for_generators/matchers/content/have_module.rb
|
@@ -152,22 +156,28 @@ files:
|
|
152
156
|
- lib/rspec_for_generators/matchers/migration/have_table.rb
|
153
157
|
- lib/rspec_for_generators/matchers/migration/have_tbl_column.rb
|
154
158
|
- lib/rspec_for_generators/matchers/migration/have_up_down.rb
|
155
|
-
- lib/rspec_for_generators/rails_helpers/all.rb
|
156
159
|
- lib/rspec_for_generators/rails_helpers/rails_app.rb
|
157
160
|
- lib/rspec_for_generators/rails_helpers/rails_controller.rb
|
158
161
|
- lib/rspec_for_generators/rails_helpers/rails_helper.rb
|
159
162
|
- lib/rspec_for_generators/rails_helpers/rails_mailer.rb
|
163
|
+
- lib/rspec_for_generators/rails_helpers/rails_migration.rb
|
160
164
|
- lib/rspec_for_generators/rails_helpers/rails_model.rb
|
161
165
|
- lib/rspec_for_generators/rails_helpers/rails_orm.rb
|
162
166
|
- lib/rspec_for_generators/rails_helpers/rails_view.rb
|
163
167
|
- lib/rspec_for_generators/rails_spec_helper.rb
|
164
168
|
- lib/rspec_for_generators/rspec_test_case.rb
|
165
169
|
- rspec_for_generators.gemspec
|
166
|
-
- spec/rspec_for_generators/
|
167
|
-
- spec/
|
170
|
+
- spec/rspec_for_generators/controller_generator_spec.rb
|
171
|
+
- spec/rspec_for_generators/helper_generator_spec.rb
|
172
|
+
- spec/rspec_for_generators/migration_generator_spec.rb
|
173
|
+
- spec/rspec_for_generators/model_generator_spec.rb
|
174
|
+
- spec/rspec_for_generators/view_generator_spec.rb
|
168
175
|
- spec/spec_helper.rb
|
169
176
|
- wiki/Custom Rails 3 Generators.textile
|
170
|
-
- wiki/
|
177
|
+
- wiki/content_matchers.textile
|
178
|
+
- wiki/file_matchers.textile
|
179
|
+
- wiki/migration_matchers.textile
|
180
|
+
- wiki/rails_helpers.textile
|
171
181
|
has_rdoc: true
|
172
182
|
homepage: http://github.com/kristianmandrup/rspec_for_generators
|
173
183
|
licenses: []
|
@@ -201,5 +211,9 @@ signing_key:
|
|
201
211
|
specification_version: 3
|
202
212
|
summary: RSpec 2 library for writing generator specs
|
203
213
|
test_files:
|
204
|
-
- spec/rspec_for_generators/
|
214
|
+
- spec/rspec_for_generators/controller_generator_spec.rb
|
215
|
+
- spec/rspec_for_generators/helper_generator_spec.rb
|
216
|
+
- spec/rspec_for_generators/migration_generator_spec.rb
|
217
|
+
- spec/rspec_for_generators/model_generator_spec.rb
|
218
|
+
- spec/rspec_for_generators/view_generator_spec.rb
|
205
219
|
- spec/spec_helper.rb
|
@@ -1,6 +0,0 @@
|
|
1
|
-
require 'rspec_for_generators/rails_helpers/rails_app'
|
2
|
-
require 'rspec_for_generators/rails_helpers/rails_orm'
|
3
|
-
require 'rspec_for_generators/rails_helpers/rails_controller'
|
4
|
-
require 'rspec_for_generators/rails_helpers/rails_helper'
|
5
|
-
require 'rspec_for_generators/rails_helpers/rails_view'
|
6
|
-
require 'rspec_for_generators/rails_helpers/rails_mailer'
|
data/spec/spec.opts
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
--color
|