generator-spec 0.3.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 +5 -0
- data/.gitignore +21 -0
- data/LICENSE +20 -0
- data/README.markdown +144 -0
- data/Rakefile +48 -0
- data/VERSION +1 -0
- data/generator-spec.gemspec +106 -0
- data/lib/generators/demo/demo_generator.rb +91 -0
- data/lib/rspec_for_generators.rb +11 -0
- data/lib/rspec_for_generators/fixtures/routes.rb +2 -0
- data/lib/rspec_for_generators/generator_spec_helper.rb +95 -0
- data/lib/rspec_for_generators/main.rb +18 -0
- data/lib/rspec_for_generators/matchers/content/have_block.rb +47 -0
- data/lib/rspec_for_generators/matchers/content/have_call.rb +42 -0
- data/lib/rspec_for_generators/matchers/content/have_class.rb +32 -0
- data/lib/rspec_for_generators/matchers/content/have_method.rb +41 -0
- data/lib/rspec_for_generators/matchers/content/have_module.rb +32 -0
- data/lib/rspec_for_generators/matchers/content/include_module.rb +32 -0
- data/lib/rspec_for_generators/matchers/content/inherit_from.rb +31 -0
- data/lib/rspec_for_generators/matchers/file/generate_directory.rb +71 -0
- data/lib/rspec_for_generators/matchers/file/generate_file.rb +71 -0
- data/lib/rspec_for_generators/matchers/file/generate_migration.rb +50 -0
- data/lib/rspec_for_generators/matchers/helpers/content.rb +18 -0
- data/lib/rspec_for_generators/matchers/helpers/file.rb +26 -0
- data/lib/rspec_for_generators/matchers/helpers/migration.rb +102 -0
- data/lib/rspec_for_generators/matchers/migration/have_column.rb +13 -0
- data/lib/rspec_for_generators/matchers/migration/have_index.rb +9 -0
- data/lib/rspec_for_generators/matchers/migration/have_migration.rb +5 -0
- data/lib/rspec_for_generators/matchers/migration/have_table.rb +18 -0
- data/lib/rspec_for_generators/matchers/migration/have_tbl_column.rb +25 -0
- data/lib/rspec_for_generators/matchers/migration/have_up_down.rb +13 -0
- data/lib/rspec_for_generators/rails_helpers/all.rb +6 -0
- data/lib/rspec_for_generators/rails_helpers/rails_app.rb +53 -0
- data/lib/rspec_for_generators/rails_helpers/rails_controller.rb +36 -0
- data/lib/rspec_for_generators/rails_helpers/rails_helper.rb +36 -0
- data/lib/rspec_for_generators/rails_helpers/rails_mailer.rb +29 -0
- data/lib/rspec_for_generators/rails_helpers/rails_model.rb +27 -0
- data/lib/rspec_for_generators/rails_helpers/rails_orm.rb +77 -0
- data/lib/rspec_for_generators/rails_helpers/rails_view.rb +29 -0
- data/lib/rspec_for_generators/rails_spec_helper.rb +35 -0
- data/lib/rspec_for_generators/rspec_test_case.rb +26 -0
- data/rspec_for_generators.gemspec +96 -0
- data/spec/rspec_for_generators/rspec_for_generators_spec.rb +41 -0
- data/spec/spec.opts +1 -0
- data/spec/spec_helper.rb +6 -0
- data/wiki/Custom Rails 3 Generators.textile +110 -0
- data/wiki/rails_view_helpers.textile +167 -0
- metadata +205 -0
@@ -0,0 +1,167 @@
|
|
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
|
+
h2. Migration file
|
73
|
+
|
74
|
+
There are a bunch of ways to match the layout of a generated migration file as the following demonstrates.
|
75
|
+
|
76
|
+
* Matchers
|
77
|
+
* Helper methods
|
78
|
+
|
79
|
+
h3. Matchers
|
80
|
+
|
81
|
+
Example use
|
82
|
+
<pre>
|
83
|
+
g.should have_migration(:create_users) do |content|
|
84
|
+
content.should have_up do |up|
|
85
|
+
up.should create_table(:users) do |table|
|
86
|
+
table.should add_column(:name, :string)
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
90
|
+
</pre>
|
91
|
+
|
92
|
+
Migration file matcher
|
93
|
+
|
94
|
+
* have_migration name, &block
|
95
|
+
|
96
|
+
Up and Down method matchers
|
97
|
+
|
98
|
+
* have_up, &block
|
99
|
+
* have_down, &block
|
100
|
+
|
101
|
+
Table matchers
|
102
|
+
|
103
|
+
* have_create_table name, &block
|
104
|
+
* have_change_table name, &block
|
105
|
+
* have_drop_table name
|
106
|
+
* have_rename_table name, new_name
|
107
|
+
|
108
|
+
Column matchers
|
109
|
+
|
110
|
+
* have_remove_column name
|
111
|
+
* have_add_column name, type='string'
|
112
|
+
* have_change_column name, type='string'
|
113
|
+
* have_add_tbl_column tbl_name, name, type='string'
|
114
|
+
|
115
|
+
Table column matchers
|
116
|
+
|
117
|
+
* have_change_tbl_column tbl_name, name, type='string'
|
118
|
+
* have_rename_tbl_column tbl_name, new_name
|
119
|
+
* have_remove_tbl_column tbl_name, name
|
120
|
+
|
121
|
+
h3. Helper methods
|
122
|
+
|
123
|
+
Example use
|
124
|
+
<pre>
|
125
|
+
g.migration :create_users do |content|
|
126
|
+
file_content.up do |up|
|
127
|
+
up.creates_table :users do |table|
|
128
|
+
table.adds_column :name, :string
|
129
|
+
end
|
130
|
+
end
|
131
|
+
end
|
132
|
+
</pre>
|
133
|
+
|
134
|
+
|
135
|
+
Check named migration file exists and yields content of file
|
136
|
+
* migration file_name, &block
|
137
|
+
|
138
|
+
Checks class method 'up' exists and yields content of method
|
139
|
+
* up &block
|
140
|
+
|
141
|
+
Checks class method 'down' exists and yields content of method
|
142
|
+
* down &block
|
143
|
+
|
144
|
+
Check specific block exists and yields content of block
|
145
|
+
|
146
|
+
* creates_table name, &block
|
147
|
+
* changes_table name, &block
|
148
|
+
|
149
|
+
Test specific migration statements exist within table block
|
150
|
+
|
151
|
+
* drops_table name
|
152
|
+
* renames_table name
|
153
|
+
* removes_column name
|
154
|
+
* adds_column name, type='string'
|
155
|
+
* changes_column name, type='string'
|
156
|
+
|
157
|
+
Test that migration statements exist that apply to a specific table
|
158
|
+
|
159
|
+
* adds_tbl_column tbl_name, name, type='string'
|
160
|
+
* changes_tbl_column tbl_name, name, type='string'
|
161
|
+
* renames_tbl_column tbl_name, new_name
|
162
|
+
* removes_tbl_column tbl_name, name
|
163
|
+
|
164
|
+
Check Index statements
|
165
|
+
|
166
|
+
* adds_tbl_index tbl_name, name
|
167
|
+
* removes_tbl_index tbl_name, name
|
metadata
ADDED
@@ -0,0 +1,205 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: generator-spec
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 3
|
8
|
+
- 3
|
9
|
+
version: 0.3.3
|
10
|
+
platform: ruby
|
11
|
+
authors:
|
12
|
+
- Kristian Mandrup
|
13
|
+
autorequire:
|
14
|
+
bindir: bin
|
15
|
+
cert_chain: []
|
16
|
+
|
17
|
+
date: 2010-08-04 00:00:00 +02:00
|
18
|
+
default_executable:
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
21
|
+
name: rspec
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
none: false
|
25
|
+
requirements:
|
26
|
+
- - ">="
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
segments:
|
29
|
+
- 2
|
30
|
+
- 0
|
31
|
+
- 0
|
32
|
+
- beta19
|
33
|
+
version: 2.0.0.beta19
|
34
|
+
type: :development
|
35
|
+
version_requirements: *id001
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: rspec
|
38
|
+
prerelease: false
|
39
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
40
|
+
none: false
|
41
|
+
requirements:
|
42
|
+
- - ">="
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
segments:
|
45
|
+
- 2
|
46
|
+
- 0
|
47
|
+
- 0
|
48
|
+
- beta
|
49
|
+
- 19
|
50
|
+
version: 2.0.0.beta.19
|
51
|
+
type: :runtime
|
52
|
+
version_requirements: *id002
|
53
|
+
- !ruby/object:Gem::Dependency
|
54
|
+
name: rake
|
55
|
+
prerelease: false
|
56
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
segments:
|
62
|
+
- 0
|
63
|
+
- 8
|
64
|
+
- 7
|
65
|
+
version: 0.8.7
|
66
|
+
type: :runtime
|
67
|
+
version_requirements: *id003
|
68
|
+
- !ruby/object:Gem::Dependency
|
69
|
+
name: rails
|
70
|
+
prerelease: false
|
71
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
72
|
+
none: false
|
73
|
+
requirements:
|
74
|
+
- - ">="
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
segments:
|
77
|
+
- 3
|
78
|
+
- 0
|
79
|
+
- 0
|
80
|
+
- rc
|
81
|
+
version: 3.0.0.rc
|
82
|
+
type: :runtime
|
83
|
+
version_requirements: *id004
|
84
|
+
- !ruby/object:Gem::Dependency
|
85
|
+
name: test-unit
|
86
|
+
prerelease: false
|
87
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
88
|
+
none: false
|
89
|
+
requirements:
|
90
|
+
- - ">="
|
91
|
+
- !ruby/object:Gem::Version
|
92
|
+
segments:
|
93
|
+
- 2
|
94
|
+
- 0
|
95
|
+
- 9
|
96
|
+
version: 2.0.9
|
97
|
+
type: :runtime
|
98
|
+
version_requirements: *id005
|
99
|
+
- !ruby/object:Gem::Dependency
|
100
|
+
name: require_all
|
101
|
+
prerelease: false
|
102
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
103
|
+
none: false
|
104
|
+
requirements:
|
105
|
+
- - ">="
|
106
|
+
- !ruby/object:Gem::Version
|
107
|
+
segments:
|
108
|
+
- 1
|
109
|
+
- 1
|
110
|
+
- 0
|
111
|
+
version: 1.1.0
|
112
|
+
type: :runtime
|
113
|
+
version_requirements: *id006
|
114
|
+
description: RSpec 2 library to assist in writing generator specs
|
115
|
+
email: kmandrup@gmail.com
|
116
|
+
executables: []
|
117
|
+
|
118
|
+
extensions: []
|
119
|
+
|
120
|
+
extra_rdoc_files:
|
121
|
+
- LICENSE
|
122
|
+
- README.markdown
|
123
|
+
files:
|
124
|
+
- .document
|
125
|
+
- .gitignore
|
126
|
+
- LICENSE
|
127
|
+
- README.markdown
|
128
|
+
- Rakefile
|
129
|
+
- VERSION
|
130
|
+
- generator-spec.gemspec
|
131
|
+
- lib/generators/demo/demo_generator.rb
|
132
|
+
- lib/rspec_for_generators.rb
|
133
|
+
- lib/rspec_for_generators/fixtures/routes.rb
|
134
|
+
- lib/rspec_for_generators/generator_spec_helper.rb
|
135
|
+
- lib/rspec_for_generators/main.rb
|
136
|
+
- lib/rspec_for_generators/matchers/content/have_block.rb
|
137
|
+
- lib/rspec_for_generators/matchers/content/have_call.rb
|
138
|
+
- lib/rspec_for_generators/matchers/content/have_class.rb
|
139
|
+
- lib/rspec_for_generators/matchers/content/have_method.rb
|
140
|
+
- lib/rspec_for_generators/matchers/content/have_module.rb
|
141
|
+
- lib/rspec_for_generators/matchers/content/include_module.rb
|
142
|
+
- lib/rspec_for_generators/matchers/content/inherit_from.rb
|
143
|
+
- lib/rspec_for_generators/matchers/file/generate_directory.rb
|
144
|
+
- lib/rspec_for_generators/matchers/file/generate_file.rb
|
145
|
+
- lib/rspec_for_generators/matchers/file/generate_migration.rb
|
146
|
+
- lib/rspec_for_generators/matchers/helpers/content.rb
|
147
|
+
- lib/rspec_for_generators/matchers/helpers/file.rb
|
148
|
+
- lib/rspec_for_generators/matchers/helpers/migration.rb
|
149
|
+
- lib/rspec_for_generators/matchers/migration/have_column.rb
|
150
|
+
- lib/rspec_for_generators/matchers/migration/have_index.rb
|
151
|
+
- lib/rspec_for_generators/matchers/migration/have_migration.rb
|
152
|
+
- lib/rspec_for_generators/matchers/migration/have_table.rb
|
153
|
+
- lib/rspec_for_generators/matchers/migration/have_tbl_column.rb
|
154
|
+
- lib/rspec_for_generators/matchers/migration/have_up_down.rb
|
155
|
+
- lib/rspec_for_generators/rails_helpers/all.rb
|
156
|
+
- lib/rspec_for_generators/rails_helpers/rails_app.rb
|
157
|
+
- lib/rspec_for_generators/rails_helpers/rails_controller.rb
|
158
|
+
- lib/rspec_for_generators/rails_helpers/rails_helper.rb
|
159
|
+
- lib/rspec_for_generators/rails_helpers/rails_mailer.rb
|
160
|
+
- lib/rspec_for_generators/rails_helpers/rails_model.rb
|
161
|
+
- lib/rspec_for_generators/rails_helpers/rails_orm.rb
|
162
|
+
- lib/rspec_for_generators/rails_helpers/rails_view.rb
|
163
|
+
- lib/rspec_for_generators/rails_spec_helper.rb
|
164
|
+
- lib/rspec_for_generators/rspec_test_case.rb
|
165
|
+
- rspec_for_generators.gemspec
|
166
|
+
- spec/rspec_for_generators/rspec_for_generators_spec.rb
|
167
|
+
- spec/spec.opts
|
168
|
+
- spec/spec_helper.rb
|
169
|
+
- wiki/Custom Rails 3 Generators.textile
|
170
|
+
- wiki/rails_view_helpers.textile
|
171
|
+
has_rdoc: true
|
172
|
+
homepage: http://github.com/kristianmandrup/rspec_for_generators
|
173
|
+
licenses: []
|
174
|
+
|
175
|
+
post_install_message:
|
176
|
+
rdoc_options:
|
177
|
+
- --charset=UTF-8
|
178
|
+
require_paths:
|
179
|
+
- lib
|
180
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
181
|
+
none: false
|
182
|
+
requirements:
|
183
|
+
- - ">="
|
184
|
+
- !ruby/object:Gem::Version
|
185
|
+
segments:
|
186
|
+
- 0
|
187
|
+
version: "0"
|
188
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
189
|
+
none: false
|
190
|
+
requirements:
|
191
|
+
- - ">="
|
192
|
+
- !ruby/object:Gem::Version
|
193
|
+
segments:
|
194
|
+
- 0
|
195
|
+
version: "0"
|
196
|
+
requirements: []
|
197
|
+
|
198
|
+
rubyforge_project:
|
199
|
+
rubygems_version: 1.3.7
|
200
|
+
signing_key:
|
201
|
+
specification_version: 3
|
202
|
+
summary: RSpec 2 library for writing generator specs
|
203
|
+
test_files:
|
204
|
+
- spec/rspec_for_generators/rspec_for_generators_spec.rb
|
205
|
+
- spec/spec_helper.rb
|