ammeter 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -35,8 +35,6 @@ Feature: generator spec
35
35
  require 'generators/awesome/awesome_generator'
36
36
 
37
37
  describe AwesomeGenerator do
38
- destination File.expand_path("../../tmp", __FILE__)
39
-
40
38
  before { run_generator %w(my_dir) }
41
39
  describe 'public/my_dir/awesome.html' do
42
40
  subject { file('public/my_dir/awesome.html') }
@@ -62,7 +60,6 @@ Feature: generator spec
62
60
  require 'generators/awesome/awesome_generator'
63
61
 
64
62
  describe AwesomeGenerator do
65
- destination File.expand_path("../../tmp", __FILE__)
66
63
  arguments %w(another_dir)
67
64
 
68
65
  before { invoke_task :create_awesomeness }
@@ -81,15 +78,13 @@ Feature: generator spec
81
78
  When I run `rake spec`
82
79
  Then the output should contain "4 examples, 0 failures"
83
80
 
84
- Scenario: A spec with some failures shows good error messages
81
+ Scenario: A spec with some failures shows nice error messages
85
82
  Given a file named "spec/generators/awesome_generator_spec.rb" with:
86
83
  """
87
84
  require "spec_helper"
88
85
  require 'generators/awesome/awesome_generator'
89
86
 
90
87
  describe AwesomeGenerator do
91
- destination File.expand_path("../../tmp", __FILE__)
92
-
93
88
  before { run_generator %w(my_dir) }
94
89
  describe 'public/my_dir/awesome.html' do
95
90
  subject { file('public/my_dir/awesome.html') }
@@ -111,19 +106,19 @@ Feature: generator spec
111
106
  Then the output should contain "5 examples, 5 failures"
112
107
  And the output should contain:
113
108
  """
114
- /tmp/public/my_dir/awesome.html to not contain "This is an awesome file" but it did
109
+ /public/my_dir/awesome.html to not contain "This is an awesome file" but it did
115
110
  """
116
111
  And the output should contain:
117
112
  """
118
- /tmp/public/my_dir/awesome.html to contain "This text is not in the file" but it contained "This is an awesome file"
113
+ /public/my_dir/awesome.html to contain "This text is not in the file" but it contained "This is an awesome file"
119
114
  """
120
115
  And the output should contain:
121
116
  """
122
- /tmp/public/my_dir/awesome.html" not to exist
117
+ /public/my_dir/awesome.html" not to exist
123
118
  """
124
119
  And the output should contain:
125
120
  """
126
- /tmp/public/my_dir/non_existent.html" to exist
121
+ /public/my_dir/non_existent.html" to exist
127
122
  """
128
123
  And the output should contain:
129
124
  """
@@ -137,7 +132,6 @@ Feature: generator spec
137
132
  require 'generators/awesome/awesome_generator'
138
133
 
139
134
  describe AwesomeGenerator do
140
- destination File.expand_path("../../tmp", __FILE__)
141
135
  arguments %w(my_dir --super)
142
136
 
143
137
  before { generator.invoke_all }
@@ -161,12 +155,7 @@ Feature: generator spec
161
155
  require 'rails/generators/active_record/migration/migration_generator'
162
156
 
163
157
  describe ActiveRecord::Generators::MigrationGenerator do
164
- destination File.expand_path("../../tmp", __FILE__)
165
-
166
- before do
167
- prepare_destination
168
- run_generator %w(create_posts)
169
- end
158
+ before { run_generator %w(create_posts) }
170
159
  subject { migration_file('db/migrate/create_posts.rb') }
171
160
  it { should exist }
172
161
  it { should contain 'class CreatePosts < ActiveRecord::Migration' }
@@ -175,4 +164,25 @@ Feature: generator spec
175
164
  When I run `rake spec`
176
165
  Then the output should contain "2 examples, 0 failures"
177
166
 
167
+ Scenario: Can tell the generator where to put its files
168
+ Given a file named "spec/generators/awesome_generator_spec.rb" with:
169
+ """
170
+ require "spec_helper"
171
+ require 'generators/awesome/awesome_generator'
172
+
173
+ describe AwesomeGenerator do
174
+ destination Rails.root + 'tmp/generated_files'
175
+
176
+ before { run_generator %w(my_dir --super) }
177
+ describe 'public/my_dir/super_awesome.html' do
178
+ subject { file('public/my_dir/super_awesome.html') }
179
+ it { should == "#{Rails.root}/tmp/generated_files/public/my_dir/super_awesome.html" }
180
+ it { should exist }
181
+ end
182
+ end
183
+ """
184
+ When I run `rake spec`
185
+ Then the output should contain "2 examples, 0 failures"
186
+
187
+
178
188
 
@@ -2,6 +2,8 @@ require 'rails/generators'
2
2
  require 'active_support/core_ext'
3
3
  require 'rspec/rails/adapters'
4
4
  require 'rspec/rails/example/rails_example_group'
5
+ require 'tmpdir'
6
+ require 'fileutils'
5
7
 
6
8
  module Ammeter
7
9
  module RSpec
@@ -19,7 +21,7 @@ module Ammeter
19
21
  DELEGATED_METHODS.each do |method|
20
22
  delegate method, :to => :'self.test_unit_test_case_delegate'
21
23
  end
22
- delegate :destination, :arguments, :to => :'self.test_unit_test_case_delegate.class'
24
+ delegate :destination, :arguments, :to => ::Rails::Generators::TestCase
23
25
 
24
26
  def initialize_delegate
25
27
  self.test_unit_test_case_delegate = ::Rails::Generators::TestCase.new 'pending'
@@ -50,23 +52,17 @@ module Ammeter
50
52
  DELEGATED_METHODS.each do |method|
51
53
  delegate method, :to => :'self.class'
52
54
  end
53
- def destination_root_is_set? #:nodoc:
54
- raise "You need to configure your Rails::Generators::TestCase destination root." unless destination_root
55
- end
56
- def ensure_current_path #:nodoc:
57
- # cd current_path
58
- end
55
+ ::Rails::Generators::TestCase.destination File.expand_path('ammeter', Dir.tmpdir)
59
56
  initialize_delegate
60
57
 
61
58
  subject { generator }
62
59
 
63
60
  before do
64
61
  self.class.initialize_delegate
65
- destination_root_is_set?
66
- ensure_current_path
62
+ prepare_destination
67
63
  end
68
64
  after do
69
- ensure_current_path
65
+ # ensure_current_path
70
66
  end
71
67
  metadata[:type] = :generator
72
68
  end
@@ -1,3 +1,3 @@
1
1
  module Ammeter
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.1"
3
3
  end
@@ -30,15 +30,9 @@ module Ammeter::RSpec::Rails
30
30
  end
31
31
 
32
32
  describe 'able to delegate to ::Rails::Generators::TestCase' do
33
- it 'should know the destination is not set' do
34
- lambda { group.destination_root_is_set? }.should raise_error "You need to configure your Rails::Generators::TestCase destination root."
35
- end
36
33
  describe 'with a destination root' do
37
34
  before { group.destination '/some/path' }
38
35
  its(:destination_root) { should == '/some/path' }
39
- it 'should know the destination is set' do
40
- lambda { group.destination_root_is_set? }.should_not raise_error
41
- end
42
36
  end
43
37
  end
44
38
 
metadata CHANGED
@@ -1,8 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ammeter
3
3
  version: !ruby/object:Gem::Version
4
+ hash: 21
4
5
  prerelease:
5
- version: 0.2.0
6
+ segments:
7
+ - 0
8
+ - 2
9
+ - 1
10
+ version: 0.2.1
6
11
  platform: ruby
7
12
  authors:
8
13
  - Alex Rothenberg
@@ -10,163 +15,211 @@ autorequire:
10
15
  bindir: bin
11
16
  cert_chain: []
12
17
 
13
- date: 2011-10-13 00:00:00 -04:00
14
- default_executable:
18
+ date: 2011-10-20 00:00:00 Z
15
19
  dependencies:
16
20
  - !ruby/object:Gem::Dependency
17
- name: railties
18
- requirement: &id001 !ruby/object:Gem::Requirement
21
+ version_requirements: &id001 !ruby/object:Gem::Requirement
19
22
  none: false
20
23
  requirements:
21
24
  - - ~>
22
25
  - !ruby/object:Gem::Version
26
+ hash: 7
27
+ segments:
28
+ - 3
29
+ - 0
23
30
  version: "3.0"
24
- type: :runtime
25
31
  prerelease: false
26
- version_requirements: *id001
32
+ requirement: *id001
33
+ name: railties
34
+ type: :runtime
27
35
  - !ruby/object:Gem::Dependency
28
- name: activesupport
29
- requirement: &id002 !ruby/object:Gem::Requirement
36
+ version_requirements: &id002 !ruby/object:Gem::Requirement
30
37
  none: false
31
38
  requirements:
32
39
  - - ~>
33
40
  - !ruby/object:Gem::Version
41
+ hash: 7
42
+ segments:
43
+ - 3
44
+ - 0
34
45
  version: "3.0"
35
- type: :runtime
36
46
  prerelease: false
37
- version_requirements: *id002
47
+ requirement: *id002
48
+ name: activesupport
49
+ type: :runtime
38
50
  - !ruby/object:Gem::Dependency
39
- name: rspec
40
- requirement: &id003 !ruby/object:Gem::Requirement
51
+ version_requirements: &id003 !ruby/object:Gem::Requirement
41
52
  none: false
42
53
  requirements:
43
54
  - - ~>
44
55
  - !ruby/object:Gem::Version
56
+ hash: 7
57
+ segments:
58
+ - 2
59
+ - 2
45
60
  version: "2.2"
46
- type: :runtime
47
61
  prerelease: false
48
- version_requirements: *id003
62
+ requirement: *id003
63
+ name: rspec
64
+ type: :runtime
49
65
  - !ruby/object:Gem::Dependency
50
- name: rspec-rails
51
- requirement: &id004 !ruby/object:Gem::Requirement
66
+ version_requirements: &id004 !ruby/object:Gem::Requirement
52
67
  none: false
53
68
  requirements:
54
69
  - - ~>
55
70
  - !ruby/object:Gem::Version
71
+ hash: 7
72
+ segments:
73
+ - 2
74
+ - 2
56
75
  version: "2.2"
57
- type: :runtime
58
76
  prerelease: false
59
- version_requirements: *id004
77
+ requirement: *id004
78
+ name: rspec-rails
79
+ type: :runtime
60
80
  - !ruby/object:Gem::Dependency
61
- name: rails
62
- requirement: &id005 !ruby/object:Gem::Requirement
81
+ version_requirements: &id005 !ruby/object:Gem::Requirement
63
82
  none: false
64
83
  requirements:
65
84
  - - ~>
66
85
  - !ruby/object:Gem::Version
86
+ hash: 5
87
+ segments:
88
+ - 3
89
+ - 1
67
90
  version: "3.1"
68
- type: :development
69
91
  prerelease: false
70
- version_requirements: *id005
92
+ requirement: *id005
93
+ name: rails
94
+ type: :development
71
95
  - !ruby/object:Gem::Dependency
72
- name: uglifier
73
- requirement: &id006 !ruby/object:Gem::Requirement
96
+ version_requirements: &id006 !ruby/object:Gem::Requirement
74
97
  none: false
75
98
  requirements:
76
99
  - - ">="
77
100
  - !ruby/object:Gem::Version
101
+ hash: 3
102
+ segments:
103
+ - 0
78
104
  version: "0"
79
- type: :development
80
105
  prerelease: false
81
- version_requirements: *id006
106
+ requirement: *id006
107
+ name: uglifier
108
+ type: :development
82
109
  - !ruby/object:Gem::Dependency
83
- name: turn
84
- requirement: &id007 !ruby/object:Gem::Requirement
110
+ version_requirements: &id007 !ruby/object:Gem::Requirement
85
111
  none: false
86
112
  requirements:
87
113
  - - ">="
88
114
  - !ruby/object:Gem::Version
115
+ hash: 3
116
+ segments:
117
+ - 0
89
118
  version: "0"
90
- type: :development
91
119
  prerelease: false
92
- version_requirements: *id007
120
+ requirement: *id007
121
+ name: turn
122
+ type: :development
93
123
  - !ruby/object:Gem::Dependency
94
- name: rake
95
- requirement: &id008 !ruby/object:Gem::Requirement
124
+ version_requirements: &id008 !ruby/object:Gem::Requirement
96
125
  none: false
97
126
  requirements:
98
127
  - - ">="
99
128
  - !ruby/object:Gem::Version
129
+ hash: 3
130
+ segments:
131
+ - 0
100
132
  version: "0"
101
- type: :development
102
133
  prerelease: false
103
- version_requirements: *id008
134
+ requirement: *id008
135
+ name: rake
136
+ type: :development
104
137
  - !ruby/object:Gem::Dependency
105
- name: coffee-rails
106
- requirement: &id009 !ruby/object:Gem::Requirement
138
+ version_requirements: &id009 !ruby/object:Gem::Requirement
107
139
  none: false
108
140
  requirements:
109
141
  - - ">="
110
142
  - !ruby/object:Gem::Version
143
+ hash: 3
144
+ segments:
145
+ - 0
111
146
  version: "0"
112
- type: :development
113
147
  prerelease: false
114
- version_requirements: *id009
148
+ requirement: *id009
149
+ name: coffee-rails
150
+ type: :development
115
151
  - !ruby/object:Gem::Dependency
116
- name: sass-rails
117
- requirement: &id010 !ruby/object:Gem::Requirement
152
+ version_requirements: &id010 !ruby/object:Gem::Requirement
118
153
  none: false
119
154
  requirements:
120
155
  - - ">="
121
156
  - !ruby/object:Gem::Version
157
+ hash: 3
158
+ segments:
159
+ - 0
122
160
  version: "0"
123
- type: :development
124
161
  prerelease: false
125
- version_requirements: *id010
162
+ requirement: *id010
163
+ name: sass-rails
164
+ type: :development
126
165
  - !ruby/object:Gem::Dependency
127
- name: jquery-rails
128
- requirement: &id011 !ruby/object:Gem::Requirement
166
+ version_requirements: &id011 !ruby/object:Gem::Requirement
129
167
  none: false
130
168
  requirements:
131
169
  - - ">="
132
170
  - !ruby/object:Gem::Version
171
+ hash: 3
172
+ segments:
173
+ - 0
133
174
  version: "0"
134
- type: :development
135
175
  prerelease: false
136
- version_requirements: *id011
176
+ requirement: *id011
177
+ name: jquery-rails
178
+ type: :development
137
179
  - !ruby/object:Gem::Dependency
138
- name: cucumber
139
- requirement: &id012 !ruby/object:Gem::Requirement
180
+ version_requirements: &id012 !ruby/object:Gem::Requirement
140
181
  none: false
141
182
  requirements:
142
183
  - - ~>
143
184
  - !ruby/object:Gem::Version
185
+ hash: 31
186
+ segments:
187
+ - 0
188
+ - 10
144
189
  version: "0.10"
145
- type: :development
146
190
  prerelease: false
147
- version_requirements: *id012
191
+ requirement: *id012
192
+ name: cucumber
193
+ type: :development
148
194
  - !ruby/object:Gem::Dependency
149
- name: aruba
150
- requirement: &id013 !ruby/object:Gem::Requirement
195
+ version_requirements: &id013 !ruby/object:Gem::Requirement
151
196
  none: false
152
197
  requirements:
153
198
  - - ~>
154
199
  - !ruby/object:Gem::Version
200
+ hash: 13
201
+ segments:
202
+ - 0
203
+ - 3
155
204
  version: "0.3"
156
- type: :development
157
205
  prerelease: false
158
- version_requirements: *id013
206
+ requirement: *id013
207
+ name: aruba
208
+ type: :development
159
209
  - !ruby/object:Gem::Dependency
160
- name: sqlite3
161
- requirement: &id014 !ruby/object:Gem::Requirement
210
+ version_requirements: &id014 !ruby/object:Gem::Requirement
162
211
  none: false
163
212
  requirements:
164
213
  - - ~>
165
214
  - !ruby/object:Gem::Version
215
+ hash: 1
216
+ segments:
217
+ - 1
166
218
  version: "1"
167
- type: :development
168
219
  prerelease: false
169
- version_requirements: *id014
220
+ requirement: *id014
221
+ name: sqlite3
222
+ type: :development
170
223
  description: Write specs for your Rails 3 generators
171
224
  email:
172
225
  - alex@alexrothenberg.com
@@ -199,13 +252,12 @@ files:
199
252
  - lib/ammeter/rspec/generator/matchers/contain.rb
200
253
  - lib/ammeter/rspec/generator/matchers/exist.rb
201
254
  - lib/ammeter/version.rb
255
+ - spec/ammeter/rspec/generator/example/generator_example_group_spec.rb
202
256
  - spec/ammeter/rspec/generator/matchers/be_a_migration_spec.rb
203
257
  - spec/ammeter/rspec/generator/matchers/contain_spec.rb
204
258
  - spec/ammeter/rspec/generator/matchers/exist_spec.rb
205
- - spec/ammeter/rspec/rails/generator/example/generator_example_group_spec.rb
206
259
  - spec/spec_helper.rb
207
260
  - spec/support/helpers.rb
208
- has_rdoc: true
209
261
  homepage: ""
210
262
  licenses: []
211
263
 
@@ -219,7 +271,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
219
271
  requirements:
220
272
  - - ">="
221
273
  - !ruby/object:Gem::Version
222
- hash: -856853819327253995
274
+ hash: 3
223
275
  segments:
224
276
  - 0
225
277
  version: "0"
@@ -228,14 +280,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
228
280
  requirements:
229
281
  - - ">="
230
282
  - !ruby/object:Gem::Version
231
- hash: -856853819327253995
283
+ hash: 3
232
284
  segments:
233
285
  - 0
234
286
  version: "0"
235
287
  requirements: []
236
288
 
237
289
  rubyforge_project:
238
- rubygems_version: 1.6.2
290
+ rubygems_version: 1.8.11
239
291
  signing_key:
240
292
  specification_version: 3
241
293
  summary: Write specs for your Rails 3 generators
@@ -244,9 +296,9 @@ test_files:
244
296
  - features/support/env.rb
245
297
  - features/templates/generate_example_app.rb
246
298
  - features/templates/rspec.rake
299
+ - spec/ammeter/rspec/generator/example/generator_example_group_spec.rb
247
300
  - spec/ammeter/rspec/generator/matchers/be_a_migration_spec.rb
248
301
  - spec/ammeter/rspec/generator/matchers/contain_spec.rb
249
302
  - spec/ammeter/rspec/generator/matchers/exist_spec.rb
250
- - spec/ammeter/rspec/rails/generator/example/generator_example_group_spec.rb
251
303
  - spec/spec_helper.rb
252
304
  - spec/support/helpers.rb