stepdown 0.6.2 → 0.6.3

Sign up to get free protection for your applications and to get access to all the features.
data/.rspec CHANGED
@@ -0,0 +1 @@
1
+ --color
data/Gemfile CHANGED
@@ -1,8 +1,8 @@
1
1
  source 'http://rubygems.org'
2
2
 
3
3
  gem 'haml', '> 2.0.0'
4
- gem 'gherkin', '~> 2.3'
5
- gem 'bundler', '~> 1.0'
4
+ gem 'gherkin', '> 2.3'
5
+ gem 'bundler', '> 1.0'
6
6
 
7
7
  group :development,:test do
8
8
  gem 'rake'
data/Gemfile.lock CHANGED
@@ -2,17 +2,17 @@ GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
4
  diff-lcs (1.1.2)
5
- gherkin (2.3.8)
5
+ gherkin (2.4.6)
6
6
  json (>= 1.4.6)
7
- haml (3.1.1)
8
- json (1.4.6)
9
- rake (0.8.7)
10
- rcov (0.9.9)
7
+ haml (3.1.2)
8
+ json (1.5.3)
9
+ rake (0.9.2)
10
+ rcov (0.9.10)
11
11
  rspec (2.5.0)
12
12
  rspec-core (~> 2.5.0)
13
13
  rspec-expectations (~> 2.5.0)
14
14
  rspec-mocks (~> 2.5.0)
15
- rspec-core (2.5.1)
15
+ rspec-core (2.5.2)
16
16
  rspec-expectations (2.5.0)
17
17
  diff-lcs (~> 1.1.2)
18
18
  rspec-mocks (2.5.0)
@@ -21,8 +21,8 @@ PLATFORMS
21
21
  ruby
22
22
 
23
23
  DEPENDENCIES
24
- bundler (~> 1.0)
25
- gherkin (~> 2.3)
24
+ bundler (> 1.0)
25
+ gherkin (> 2.3)
26
26
  haml (> 2.0.0)
27
27
  rake
28
28
  rcov (~> 0.9.9)
data/History.txt CHANGED
@@ -1,3 +1,7 @@
1
+ == 0.6.3 2011-08-16
2
+ * update dependant gems, be less restrictive on versions
3
+ * adjust statistics interface to improve metric_fu integration
4
+
1
5
  == 0.6.2 2011-06-26
2
6
  * Only show top 10 items on page load
3
7
 
@@ -9,19 +9,21 @@ module Stepdown
9
9
  end
10
10
 
11
11
  def analyse
12
- puts "Parsing feature files..." unless Stepdown.quiet
13
- scenarios = process_feature_files(feature_files)
14
-
15
- puts "Performing analysis..." unless Stepdown.quiet
12
+ scenarios = collect_scenarios
16
13
 
17
14
  stats = Statistics.new(scenarios, instance.step_collection)
15
+ stats.generate
18
16
 
19
17
  reporter = reporter(@reporter, stats)
20
18
  reporter.output_overview
21
19
 
22
20
  Stepdown::YamlWriter.write(stats)
23
21
  Stepdown::Graph.create_graph
22
+ end
24
23
 
24
+ def collect_scenarios
25
+ puts "Parsing feature files..." unless Stepdown.quiet
26
+ process_feature_files(feature_files)
25
27
  end
26
28
 
27
29
  def process_feature_files(feature_files)
@@ -8,6 +8,15 @@ module Stepdown
8
8
  @step_collection = step_collection
9
9
  end
10
10
 
11
+ def generate
12
+ puts "Performing analysis..." unless Stepdown.quiet
13
+ groupings
14
+ step_usages
15
+ empty
16
+ steps_per_scenario
17
+ unique_steps
18
+ end
19
+
11
20
  def to_h
12
21
  stats = {}
13
22
  stats[:number_scenarios] = total_scenarios
@@ -21,8 +30,8 @@ module Stepdown
21
30
  groupings[10..groupings.length]
22
31
  end
23
32
 
24
- def groupings_top_10
25
- groupings[0..10]
33
+ def groupings_top(limit = 10)
34
+ groupings[0...limit]
26
35
  end
27
36
 
28
37
  def groupings
@@ -38,11 +47,11 @@ module Stepdown
38
47
  end
39
48
 
40
49
  def steps_per_scenario
41
- steps_scenario(@scenarios)
50
+ @steps_per_scenario ||= steps_scenario(@scenarios)
42
51
  end
43
52
 
44
53
  def unique_steps
45
- uniq_steps_per_scenario(@scenarios)
54
+ @uniq_steps_per_scenario ||= uniq_steps_per_scenario(@scenarios)
46
55
  end
47
56
 
48
57
  def grouping(scenarios)
@@ -84,12 +93,12 @@ module Stepdown
84
93
  usages.sort{|a,b| b.total_usage <=> a.total_usage}
85
94
  end
86
95
 
87
- def usages_top_10
88
- step_usages[0..10]
96
+ def usages_top(limit = 10)
97
+ usages[0...limit]
89
98
  end
90
99
 
91
100
  def usages_rest
92
- step_usages[10..step_usages.length]
101
+ usages[10..usages.length]
93
102
  end
94
103
 
95
104
  def step_usages
@@ -101,19 +110,19 @@ module Stepdown
101
110
  end
102
111
 
103
112
  def unused_rest
104
- unused_steps[10..unused_steps.length]
113
+ unused[10..unused.length]
105
114
  end
106
115
 
107
- def unused_top_10
108
- unused_steps[0..10]
116
+ def unused_top(limit = 10)
117
+ unused[0...limit]
109
118
  end
110
119
 
111
- def unused_steps
120
+ def unused
112
121
  step_usages.select{|use| use.total_usage == 0}
113
122
  end
114
123
 
115
124
  def unused_step_count
116
- unused_steps.length
125
+ unused.length
117
126
  end
118
127
 
119
128
  def uniq_steps_per_scenario(scenarios)
@@ -136,14 +145,14 @@ module Stepdown
136
145
  end
137
146
 
138
147
  def empty_rest
139
- empty_scenarios[10..empty_scenarios.length]
148
+ empty[10..empty.length]
140
149
  end
141
150
 
142
- def empty_top_10
143
- empty_scenarios[0..10]
151
+ def empty_top(limit = 10)
152
+ empty[0...limit]
144
153
  end
145
154
 
146
- def empty_scenarios
155
+ def empty
147
156
  @empty_scenarios ||= @scenarios.select do |scen|
148
157
  scen.steps.empty?
149
158
  end
@@ -1,3 +1,3 @@
1
1
  module Stepdown
2
- VERSION = "0.6.2"
2
+ VERSION = "0.6.3"
3
3
  end
@@ -36,14 +36,16 @@ describe Stepdown::Analyzer do
36
36
  features = ["awesome.txt."]
37
37
  instance = mock('instance', :step_collection => [])
38
38
  reporter = mock('reporter')
39
+ stats = mock('stats')
39
40
  reporter.should_receive(:output_overview)
40
41
 
41
42
  @analyzer.should_receive(:instance).and_return(instance)
42
43
  @analyzer.should_receive(:feature_files).and_return(features)
43
44
  @analyzer.should_receive(:process_feature_files).with(features).and_return([])
44
45
  @analyzer.should_receive(:reporter).and_return(reporter)
46
+ stats.should_receive(:generate)
45
47
 
46
- Stepdown::Statistics.stub!(:new).with([], instance.step_collection)
48
+ Stepdown::Statistics.stub!(:new).with([], instance.step_collection).and_return(stats)
47
49
  Stepdown::YamlWriter.should_receive(:write).with(anything)
48
50
  Stepdown::Graph.should_receive(:create_graph)
49
51
 
@@ -178,7 +178,7 @@ describe Stepdown::Statistics do
178
178
  end
179
179
 
180
180
  it "should return unused steps" do
181
- @reporter.unused_steps.should =~ [@use_3]
181
+ @reporter.unused.should =~ [@use_3]
182
182
  end
183
183
 
184
184
  it "should return the number of unused steps" do
@@ -194,7 +194,7 @@ describe Stepdown::Statistics do
194
194
 
195
195
  @reporter = Stepdown::Statistics.new([scen_1, scen_2], Stepdown::StepCollection.new)
196
196
 
197
- @reporter.empty_scenarios().should == [scen_1,scen_2]
197
+ @reporter.empty().should == [scen_1,scen_2]
198
198
  end
199
199
 
200
200
  it "should not return scenarios with steps" do
@@ -205,7 +205,33 @@ describe Stepdown::Statistics do
205
205
 
206
206
  @reporter = Stepdown::Statistics.new([scen_1, scen_2], Stepdown::StepCollection.new)
207
207
 
208
- @reporter.empty_scenarios().should == [scen_2]
208
+ @reporter.empty().should == [scen_2]
209
+ end
210
+
211
+ end
212
+
213
+ describe "report helpers" do
214
+ before :each do
215
+ @top_10 = [1,2,3,4,5,6,7,8,9,10]
216
+ @rest = [11,12]
217
+ @all = @top_10 + @rest
218
+ @stats = Stepdown::Statistics.new([], mock('step_collection'))
219
+ end
220
+
221
+ methods = ["groupings", "usages", "empty", "unused"]
222
+
223
+ methods.each do |method|
224
+ it "should return the top 10 #{method}" do
225
+ @stats.should_receive(method.to_sym).and_return(@all)
226
+ @stats.send("#{method}_top".to_sym).should eql @top_10
227
+ end
228
+ end
229
+
230
+ methods.each do |method|
231
+ it "should return the rest of #{method}" do
232
+ @stats.stub!(method.to_sym).and_return(@all)
233
+ @stats.send("#{method}_rest".to_sym).should eql @rest
234
+ end
209
235
  end
210
236
 
211
237
  end
data/stepdown.gemspec CHANGED
@@ -16,8 +16,8 @@ Gem::Specification.new do |s|
16
16
  s.rubyforge_project = "stepdown"
17
17
 
18
18
  s.add_dependency('haml', '> 2.0')
19
- s.add_dependency('gherkin', '~> 2.3')
20
- s.add_dependency('bundler', '~> 1.0')
19
+ s.add_dependency('gherkin', '> 2.3')
20
+ s.add_dependency('bundler', '> 1.0')
21
21
  s.add_development_dependency('rspec', "~> 2.5.0")
22
22
  s.add_development_dependency('rake')
23
23
 
@@ -89,7 +89,7 @@
89
89
  %th Scenarios
90
90
  %th Use per scenario
91
91
 
92
- - usages_top_10.each do |use|
92
+ - usages_top(10).each do |use|
93
93
  %tr
94
94
  %td= use.step.regex.inspect
95
95
  %td= use.total_usage
@@ -105,7 +105,7 @@
105
105
  %tbody
106
106
  %th Step
107
107
 
108
- - unused_top_10.each do |use|
108
+ - unused_top(10).each do |use|
109
109
  %tr
110
110
  %td= use.step.regex.inspect
111
111
  %tr
@@ -117,7 +117,7 @@
117
117
  %tbody
118
118
  %th Scenarios
119
119
 
120
- - empty_top_10.each do |scen|
120
+ - empty_top(10).each do |scen|
121
121
  %tr
122
122
  %td= scen.name
123
123
  %tr
@@ -130,7 +130,7 @@
130
130
  %th Step
131
131
  %th Total step associations
132
132
 
133
- - groupings_top_10.each_with_index do |grouping, i|
133
+ - groupings_top(10).each_with_index do |grouping, i|
134
134
  - next if grouping.use_count == 0
135
135
  %tr
136
136
  %td
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stepdown
3
3
  version: !ruby/object:Gem::Version
4
- hash: 3
4
+ hash: 1
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 6
9
- - 2
10
- version: 0.6.2
9
+ - 3
10
+ version: 0.6.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - Sean Caffery
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-06-26 00:00:00 +10:00
18
+ date: 2011-08-16 00:00:00 +10:00
19
19
  default_executable: stepdown
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -39,7 +39,7 @@ dependencies:
39
39
  requirement: &id002 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
- - - ~>
42
+ - - ">"
43
43
  - !ruby/object:Gem::Version
44
44
  hash: 5
45
45
  segments:
@@ -54,7 +54,7 @@ dependencies:
54
54
  requirement: &id003 !ruby/object:Gem::Requirement
55
55
  none: false
56
56
  requirements:
57
- - - ~>
57
+ - - ">"
58
58
  - !ruby/object:Gem::Version
59
59
  hash: 15
60
60
  segments: