sniff 0.3.1 → 0.4.0
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/lib/sniff/rake_tasks.rb +126 -0
- data/spec/lib/sniff/rake_tasks_spec.rb +59 -0
- metadata +85 -42
- data/lib/sniff/rake_task.rb +0 -28
@@ -0,0 +1,126 @@
|
|
1
|
+
require 'cucumber'
|
2
|
+
require 'cucumber/rake/task'
|
3
|
+
require 'rake'
|
4
|
+
require 'rake/clean'
|
5
|
+
require 'rake/rdoctask'
|
6
|
+
require 'rake/tasklib'
|
7
|
+
require 'rocco'
|
8
|
+
require 'rocco/tasks'
|
9
|
+
|
10
|
+
|
11
|
+
module Sniff
|
12
|
+
class RakeTasks
|
13
|
+
def self.define_tasks
|
14
|
+
new.define_tasks
|
15
|
+
end
|
16
|
+
|
17
|
+
attr_accessor :earth_domains
|
18
|
+
|
19
|
+
def initialize
|
20
|
+
yield self if block_given?
|
21
|
+
|
22
|
+
define_task
|
23
|
+
end
|
24
|
+
|
25
|
+
def earth_domains
|
26
|
+
@earth_domains ||= :all
|
27
|
+
end
|
28
|
+
|
29
|
+
def gemname
|
30
|
+
@gemname ||= Dir.glob(File.join(Dir.pwd, '*.gemspec')).first
|
31
|
+
end
|
32
|
+
|
33
|
+
def git(cmd, dir = nil, &blk)
|
34
|
+
full_cmd = ''
|
35
|
+
full_cmd << "cd #{dir} && " if dir
|
36
|
+
full_cmd << "unset GIT_DIR && unset GIT_INDEX_FILE && unset GIT_WORK_TREE && git #{cmd}"
|
37
|
+
sh full_cmd, &blk
|
38
|
+
end
|
39
|
+
|
40
|
+
private
|
41
|
+
def define_tasks
|
42
|
+
task :console do
|
43
|
+
require 'sniff'
|
44
|
+
cwd = Dir.pwd
|
45
|
+
Sniff.init cwd, :earth => earth_domains
|
46
|
+
|
47
|
+
require 'irb'
|
48
|
+
ARGV.clear
|
49
|
+
IRB.start
|
50
|
+
end
|
51
|
+
|
52
|
+
Rocco::make 'docs/', "lib/#{gemname}/carbon_model.rb"
|
53
|
+
|
54
|
+
desc 'Set up and build rocco docs'
|
55
|
+
task :docs_init => :rocco
|
56
|
+
|
57
|
+
desc 'Rebuild rocco docs'
|
58
|
+
task :docs => ['pages:sync', :rocco]
|
59
|
+
directory 'docs/'
|
60
|
+
|
61
|
+
desc 'Update gh-pages branch'
|
62
|
+
task :pages => :docs do
|
63
|
+
rev = `git rev-parse --short HEAD`.strip
|
64
|
+
git 'add *.html', 'docs'
|
65
|
+
git "commit -m 'rebuild pages from #{rev}'", 'docs' do |ok,res|
|
66
|
+
if ok
|
67
|
+
verbose { puts "gh-pages updated" }
|
68
|
+
git 'push -q o HEAD:gh-pages', 'docs' unless ENV['NO_PUSH']
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
# Update the pages/ directory clone
|
74
|
+
namespace :pages do
|
75
|
+
task 'sync' => ['.git/refs/heads/gh-pages', 'docs/.git/refs/remotes/o'] do |f|
|
76
|
+
git 'fetch -q o', 'docs'
|
77
|
+
git 'reset -q --hard o/gh-pages', 'docs'
|
78
|
+
sh 'touch docs'
|
79
|
+
end
|
80
|
+
|
81
|
+
file '.git/refs/heads/gh-pages' do |f|
|
82
|
+
unless File.exist? f.name
|
83
|
+
git 'branch gh-pages --track origin/gh-pages', 'docs'
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
file 'docs/.git/refs/remotes/o' do |f|
|
88
|
+
unless File.exist? f.name
|
89
|
+
git 'init -q docs'
|
90
|
+
git 'remote add o ../.git', 'docs'
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
CLOBBER.include 'docs/.git'
|
96
|
+
|
97
|
+
desc 'Run all cucumber tests'
|
98
|
+
Cucumber::Rake::Task.new(:features) do |t|
|
99
|
+
if ENV['CUCUMBER_FORMAT']
|
100
|
+
t.cucumber_opts = "features --format #{ENV['CUCUMBER_FORMAT']}"
|
101
|
+
else
|
102
|
+
t.cucumber_opts = 'features --format pretty'
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
desc "Run all tests with RCov"
|
107
|
+
Cucumber::Rake::Task.new(:features_with_coverage) do |t|
|
108
|
+
t.cucumber_opts = "features --format pretty"
|
109
|
+
t.rcov = true
|
110
|
+
t.rcov_opts = ['--exclude', 'features']
|
111
|
+
end
|
112
|
+
|
113
|
+
task :test => :features
|
114
|
+
task :default => :test
|
115
|
+
|
116
|
+
Rake::RDocTask.new do |rdoc|
|
117
|
+
version = File.exist?('VERSION') ? File.read('VERSION') : ""
|
118
|
+
|
119
|
+
rdoc.rdoc_dir = 'rdoc'
|
120
|
+
rdoc.title = "#{gemname} #{version}"
|
121
|
+
rdoc.rdoc_files.include('README*')
|
122
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
123
|
+
end
|
124
|
+
end
|
125
|
+
end
|
126
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'sandbox'
|
3
|
+
require 'sniff/rake_tasks'
|
4
|
+
|
5
|
+
describe Sniff::RakeTasks do
|
6
|
+
def git(cmd, dir = nil, &blk)
|
7
|
+
full_cmd = ''
|
8
|
+
full_cmd << "cd #{dir} && " if dir
|
9
|
+
full_cmd << "unset GIT_DIR && unset GIT_INDEX_FILE && unset GIT_WORK_TREE && git #{cmd}"
|
10
|
+
`#{full_cmd}`
|
11
|
+
end
|
12
|
+
|
13
|
+
let(:tasks) { Sniff::RakeTask.new }
|
14
|
+
let(:emitter_path) { File.expand_path '../../../', File.dirname(__FILE__) }
|
15
|
+
let(:rakefile) do
|
16
|
+
rakefile = <<-RAKEFILE
|
17
|
+
require '#{emitter_path}/lib/sniff/rake_tasks'
|
18
|
+
|
19
|
+
Sniff::RakeTasks.define_tasks
|
20
|
+
RAKEFILE
|
21
|
+
end
|
22
|
+
|
23
|
+
describe '#define' do
|
24
|
+
describe 'docs task' do
|
25
|
+
it 'should generate docs' do
|
26
|
+
Sandbox.play do |path|
|
27
|
+
flight_path = File.join(path, 'flight')
|
28
|
+
git "clone git://github.com/brighterplanet/flight.git #{flight_path}"
|
29
|
+
File.open(File.join(flight_path, 'Rakefile'), 'w') do |f|
|
30
|
+
f.puts rakefile
|
31
|
+
end
|
32
|
+
|
33
|
+
`cd #{flight_path} && rake docs`
|
34
|
+
Dir.entries(File.join(flight_path, 'docs')).
|
35
|
+
count.should > 2
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
describe 'pages task' do
|
41
|
+
it 'should commit any changed doc files' do
|
42
|
+
Sandbox.play do |path|
|
43
|
+
flight_path = File.join(path, 'flight')
|
44
|
+
git "clone git://github.com/brighterplanet/flight.git #{flight_path}"
|
45
|
+
File.open(File.join(flight_path, 'Rakefile'), 'w') do |f|
|
46
|
+
f.puts rakefile
|
47
|
+
end
|
48
|
+
|
49
|
+
`cd #{flight_path} && mkdir docs && echo "<html>" > docs/foobar.html`
|
50
|
+
`cd #{flight_path} && NO_PUSH=true rake pages`
|
51
|
+
|
52
|
+
git('log -n 1', File.join(flight_path, 'docs')).
|
53
|
+
should =~ /rebuild pages/
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
metadata
CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
|
|
4
4
|
prerelease: false
|
5
5
|
segments:
|
6
6
|
- 0
|
7
|
-
-
|
8
|
-
-
|
9
|
-
version: 0.
|
7
|
+
- 4
|
8
|
+
- 0
|
9
|
+
version: 0.4.0
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Derek Kastner
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-11-
|
17
|
+
date: 2010-11-23 00:00:00 -05:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -78,7 +78,7 @@ dependencies:
|
|
78
78
|
prerelease: false
|
79
79
|
version_requirements: *id004
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
|
-
name:
|
81
|
+
name: cucumber
|
82
82
|
requirement: &id005 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
@@ -86,14 +86,14 @@ dependencies:
|
|
86
86
|
- !ruby/object:Gem::Version
|
87
87
|
segments:
|
88
88
|
- 0
|
89
|
-
-
|
90
|
-
-
|
91
|
-
version: 0.
|
89
|
+
- 9
|
90
|
+
- 4
|
91
|
+
version: 0.9.4
|
92
92
|
type: :runtime
|
93
93
|
prerelease: false
|
94
94
|
version_requirements: *id005
|
95
95
|
- !ruby/object:Gem::Dependency
|
96
|
-
name:
|
96
|
+
name: earth
|
97
97
|
requirement: &id006 !ruby/object:Gem::Requirement
|
98
98
|
none: false
|
99
99
|
requirements:
|
@@ -101,44 +101,44 @@ dependencies:
|
|
101
101
|
- !ruby/object:Gem::Version
|
102
102
|
segments:
|
103
103
|
- 0
|
104
|
-
-
|
105
|
-
-
|
106
|
-
version: 0.
|
104
|
+
- 3
|
105
|
+
- 1
|
106
|
+
version: 0.3.1
|
107
107
|
type: :runtime
|
108
108
|
prerelease: false
|
109
109
|
version_requirements: *id006
|
110
110
|
- !ruby/object:Gem::Dependency
|
111
|
-
name:
|
111
|
+
name: fast_timestamp
|
112
112
|
requirement: &id007 !ruby/object:Gem::Requirement
|
113
113
|
none: false
|
114
114
|
requirements:
|
115
115
|
- - ~>
|
116
116
|
- !ruby/object:Gem::Version
|
117
117
|
segments:
|
118
|
-
- 1
|
119
|
-
- 3
|
120
118
|
- 0
|
121
|
-
|
119
|
+
- 0
|
120
|
+
- 4
|
121
|
+
version: 0.0.4
|
122
122
|
type: :runtime
|
123
123
|
prerelease: false
|
124
124
|
version_requirements: *id007
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
|
-
name:
|
126
|
+
name: jeweler
|
127
127
|
requirement: &id008 !ruby/object:Gem::Requirement
|
128
128
|
none: false
|
129
129
|
requirements:
|
130
130
|
- - ~>
|
131
131
|
- !ruby/object:Gem::Version
|
132
132
|
segments:
|
133
|
+
- 1
|
134
|
+
- 4
|
133
135
|
- 0
|
134
|
-
|
135
|
-
- 8
|
136
|
-
version: 0.0.8
|
136
|
+
version: 1.4.0
|
137
137
|
type: :runtime
|
138
138
|
prerelease: false
|
139
139
|
version_requirements: *id008
|
140
140
|
- !ruby/object:Gem::Dependency
|
141
|
-
name:
|
141
|
+
name: rake
|
142
142
|
requirement: &id009 !ruby/object:Gem::Requirement
|
143
143
|
none: false
|
144
144
|
requirements:
|
@@ -147,11 +147,11 @@ dependencies:
|
|
147
147
|
segments:
|
148
148
|
- 0
|
149
149
|
version: "0"
|
150
|
-
type: :
|
150
|
+
type: :runtime
|
151
151
|
prerelease: false
|
152
152
|
version_requirements: *id009
|
153
153
|
- !ruby/object:Gem::Dependency
|
154
|
-
name:
|
154
|
+
name: rcov
|
155
155
|
requirement: &id010 !ruby/object:Gem::Requirement
|
156
156
|
none: false
|
157
157
|
requirements:
|
@@ -160,26 +160,24 @@ dependencies:
|
|
160
160
|
segments:
|
161
161
|
- 0
|
162
162
|
version: "0"
|
163
|
-
type: :
|
163
|
+
type: :runtime
|
164
164
|
prerelease: false
|
165
165
|
version_requirements: *id010
|
166
166
|
- !ruby/object:Gem::Dependency
|
167
|
-
name:
|
167
|
+
name: rdoc
|
168
168
|
requirement: &id011 !ruby/object:Gem::Requirement
|
169
169
|
none: false
|
170
170
|
requirements:
|
171
|
-
- -
|
171
|
+
- - ">="
|
172
172
|
- !ruby/object:Gem::Version
|
173
173
|
segments:
|
174
|
-
- 1
|
175
|
-
- 4
|
176
174
|
- 0
|
177
|
-
version:
|
178
|
-
type: :
|
175
|
+
version: "0"
|
176
|
+
type: :runtime
|
179
177
|
prerelease: false
|
180
178
|
version_requirements: *id011
|
181
179
|
- !ruby/object:Gem::Dependency
|
182
|
-
name:
|
180
|
+
name: rocco
|
183
181
|
requirement: &id012 !ruby/object:Gem::Requirement
|
184
182
|
none: false
|
185
183
|
requirements:
|
@@ -188,12 +186,42 @@ dependencies:
|
|
188
186
|
segments:
|
189
187
|
- 0
|
190
188
|
version: "0"
|
191
|
-
type: :
|
189
|
+
type: :runtime
|
192
190
|
prerelease: false
|
193
191
|
version_requirements: *id012
|
194
192
|
- !ruby/object:Gem::Dependency
|
195
|
-
name:
|
193
|
+
name: sqlite3-ruby
|
196
194
|
requirement: &id013 !ruby/object:Gem::Requirement
|
195
|
+
none: false
|
196
|
+
requirements:
|
197
|
+
- - ~>
|
198
|
+
- !ruby/object:Gem::Version
|
199
|
+
segments:
|
200
|
+
- 1
|
201
|
+
- 3
|
202
|
+
- 0
|
203
|
+
version: 1.3.0
|
204
|
+
type: :runtime
|
205
|
+
prerelease: false
|
206
|
+
version_requirements: *id013
|
207
|
+
- !ruby/object:Gem::Dependency
|
208
|
+
name: timeframe
|
209
|
+
requirement: &id014 !ruby/object:Gem::Requirement
|
210
|
+
none: false
|
211
|
+
requirements:
|
212
|
+
- - ~>
|
213
|
+
- !ruby/object:Gem::Version
|
214
|
+
segments:
|
215
|
+
- 0
|
216
|
+
- 0
|
217
|
+
- 8
|
218
|
+
version: 0.0.8
|
219
|
+
type: :runtime
|
220
|
+
prerelease: false
|
221
|
+
version_requirements: *id014
|
222
|
+
- !ruby/object:Gem::Dependency
|
223
|
+
name: bundler
|
224
|
+
requirement: &id015 !ruby/object:Gem::Requirement
|
197
225
|
none: false
|
198
226
|
requirements:
|
199
227
|
- - ">="
|
@@ -203,10 +231,10 @@ dependencies:
|
|
203
231
|
version: "0"
|
204
232
|
type: :development
|
205
233
|
prerelease: false
|
206
|
-
version_requirements: *
|
234
|
+
version_requirements: *id015
|
207
235
|
- !ruby/object:Gem::Dependency
|
208
|
-
name:
|
209
|
-
requirement: &
|
236
|
+
name: emitter
|
237
|
+
requirement: &id016 !ruby/object:Gem::Requirement
|
210
238
|
none: false
|
211
239
|
requirements:
|
212
240
|
- - ">="
|
@@ -216,10 +244,10 @@ dependencies:
|
|
216
244
|
version: "0"
|
217
245
|
type: :development
|
218
246
|
prerelease: false
|
219
|
-
version_requirements: *
|
247
|
+
version_requirements: *id016
|
220
248
|
- !ruby/object:Gem::Dependency
|
221
249
|
name: rspec
|
222
|
-
requirement: &
|
250
|
+
requirement: &id017 !ruby/object:Gem::Requirement
|
223
251
|
none: false
|
224
252
|
requirements:
|
225
253
|
- - ~>
|
@@ -233,8 +261,21 @@ dependencies:
|
|
233
261
|
version: 2.0.0.beta.17
|
234
262
|
type: :development
|
235
263
|
prerelease: false
|
236
|
-
version_requirements: *
|
237
|
-
|
264
|
+
version_requirements: *id017
|
265
|
+
- !ruby/object:Gem::Dependency
|
266
|
+
name: sandbox
|
267
|
+
requirement: &id018 !ruby/object:Gem::Requirement
|
268
|
+
none: false
|
269
|
+
requirements:
|
270
|
+
- - ">="
|
271
|
+
- !ruby/object:Gem::Version
|
272
|
+
segments:
|
273
|
+
- 0
|
274
|
+
version: "0"
|
275
|
+
type: :development
|
276
|
+
prerelease: false
|
277
|
+
version_requirements: *id018
|
278
|
+
description: Provides development and test environment for emitter gems
|
238
279
|
email: derek.kastner@brighterplanet.com
|
239
280
|
executables: []
|
240
281
|
|
@@ -246,7 +287,7 @@ files:
|
|
246
287
|
- lib/sniff.rb
|
247
288
|
- lib/sniff/database.rb
|
248
289
|
- lib/sniff/emitter.rb
|
249
|
-
- lib/sniff/
|
290
|
+
- lib/sniff/rake_tasks.rb
|
250
291
|
- lib/test_support/cucumber/step_definitions/carbon_steps.rb
|
251
292
|
- lib/test_support/cucumber/step_definitions/committee_steps.rb
|
252
293
|
- lib/test_support/cucumber/support/values.rb
|
@@ -270,6 +311,7 @@ files:
|
|
270
311
|
- spec/fixtures/dirigible/lib/dirigible.rb
|
271
312
|
- spec/lib/test_support/cucumber/support/values_spec.rb
|
272
313
|
- spec/lib/sniff/database_spec.rb
|
314
|
+
- spec/lib/sniff/rake_tasks_spec.rb
|
273
315
|
- spec/spec_helper.rb
|
274
316
|
has_rdoc: true
|
275
317
|
homepage: http://github.com/brighterplanet/sniff
|
@@ -285,7 +327,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
285
327
|
requirements:
|
286
328
|
- - ">="
|
287
329
|
- !ruby/object:Gem::Version
|
288
|
-
hash:
|
330
|
+
hash: 289042547
|
289
331
|
segments:
|
290
332
|
- 0
|
291
333
|
version: "0"
|
@@ -313,6 +355,7 @@ test_files:
|
|
313
355
|
- spec/fixtures/dirigible/lib/dirigible.rb
|
314
356
|
- spec/lib/test_support/cucumber/support/values_spec.rb
|
315
357
|
- spec/lib/sniff/database_spec.rb
|
358
|
+
- spec/lib/sniff/rake_tasks_spec.rb
|
316
359
|
- spec/spec_helper.rb
|
317
360
|
- lib/test_support/cucumber/support/values.rb
|
318
361
|
- lib/test_support/cucumber/step_definitions/carbon_steps.rb
|
data/lib/sniff/rake_task.rb
DELETED
@@ -1,28 +0,0 @@
|
|
1
|
-
module Sniff
|
2
|
-
class RakeTask
|
3
|
-
attr_accessor :earth_domains
|
4
|
-
|
5
|
-
def initialize(name = 'console', desc = 'Load IRB console with Sniff environment')
|
6
|
-
yield self if block_given?
|
7
|
-
|
8
|
-
define_task
|
9
|
-
end
|
10
|
-
|
11
|
-
def earth_domains
|
12
|
-
@earth_domains ||= :all
|
13
|
-
end
|
14
|
-
|
15
|
-
private
|
16
|
-
def define_task
|
17
|
-
task :console do
|
18
|
-
require 'sniff'
|
19
|
-
cwd = Dir.pwd
|
20
|
-
Sniff.init cwd, :earth => earth_domains
|
21
|
-
|
22
|
-
require 'irb'
|
23
|
-
ARGV.clear
|
24
|
-
IRB.start
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|