stepdown 0.4.0 → 0.5.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/.gitignore CHANGED
@@ -5,3 +5,4 @@
5
5
  *.rbc
6
6
  *.gem
7
7
  .rvmrc
8
+ *.swp
data/Gemfile CHANGED
@@ -1,9 +1,10 @@
1
1
  source 'http://rubygems.org'
2
2
 
3
3
  gem 'haml', '> 2.0.0'
4
+ gem 'gherkin', '~> 2.3'
4
5
 
5
6
  group :development,:test do
6
7
  gem 'rake'
7
- gem 'rspec', '~> 2.5.0'
8
+ gem 'rspec', '~> 2.5'
8
9
  gem 'rcov', '~> 0.9.9'
9
10
  end
data/Gemfile.lock CHANGED
@@ -2,24 +2,27 @@ GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
4
  diff-lcs (1.1.2)
5
- haml (2.0.10)
5
+ gherkin (2.3.8)
6
+ json (>= 1.4.6)
7
+ haml (3.1.1)
8
+ json (1.4.6)
6
9
  rake (0.8.7)
7
10
  rcov (0.9.9)
8
- rspec (2.5.0)
9
- rspec-core (~> 2.5.0)
10
- rspec-expectations (~> 2.5.0)
11
- rspec-mocks (~> 2.5.0)
12
- rspec-core (2.5.1)
13
- rspec-expectations (2.5.0)
11
+ rspec (2.6.0)
12
+ rspec-core (~> 2.6.0)
13
+ rspec-expectations (~> 2.6.0)
14
+ rspec-mocks (~> 2.6.0)
15
+ rspec-core (2.6.0)
16
+ rspec-expectations (2.6.0)
14
17
  diff-lcs (~> 1.1.2)
15
- rspec-mocks (2.5.0)
18
+ rspec-mocks (2.6.0)
16
19
 
17
20
  PLATFORMS
18
- java
19
21
  ruby
20
22
 
21
23
  DEPENDENCIES
24
+ gherkin (~> 2.3)
22
25
  haml (> 2.0.0)
23
26
  rake
24
27
  rcov (~> 0.9.9)
25
- rspec (~> 2.5.0)
28
+ rspec (~> 2.5)
data/History.txt CHANGED
@@ -1,3 +1,9 @@
1
+ == 0.50 2011-5-17
2
+ * Use gherkin gem to parse features
3
+ * Added empty step detection
4
+ * Added unused step count to summary
5
+ * Added quiet option
6
+
1
7
  == 0.4.0 2011-3-29
2
8
  * Better HTML output
3
9
  * Structured like other gems
data/bin/stepdown CHANGED
@@ -2,8 +2,8 @@
2
2
  lib = File.expand_path('../lib/', __FILE__)
3
3
  $:.unshift lib unless $:.include?(lib)
4
4
 
5
- require 'stepdown'
6
5
  require 'stepdown/options'
6
+ require 'stepdown'
7
7
 
8
8
  begin
9
9
 
@@ -11,6 +11,8 @@ begin
11
11
  options.parse(ARGV)
12
12
  options.validate
13
13
 
14
+ Stepdown.quiet = options.quiet
15
+
14
16
  Stepdown::Analyzer.new(options.steps_dir, options.features_dir, options.reporter).analyse
15
17
 
16
18
  rescue Interrupt => e
data/lib/stepdown.rb CHANGED
@@ -2,5 +2,13 @@ require 'stepdown/feature_parser'
2
2
  require 'stepdown/step_instance'
3
3
  require 'stepdown/html_reporter'
4
4
  require 'stepdown/text_reporter'
5
-
6
5
  require 'stepdown/analyzer'
6
+
7
+ require 'rubygems'
8
+ require 'bundler/setup'
9
+
10
+ module Stepdown
11
+ class << self
12
+ attr_accessor :quiet
13
+ end
14
+ end
@@ -1,4 +1,4 @@
1
-
1
+ require 'gherkin/parser/parser'
2
2
 
3
3
  module Stepdown
4
4
  class Analyzer
@@ -9,10 +9,10 @@ module Stepdown
9
9
  end
10
10
 
11
11
  def analyse
12
- puts "Parsing feature files..."
12
+ puts "Parsing feature files..." unless Stepdown.quiet
13
13
  scenarios = process_feature_files(feature_files)
14
14
 
15
- puts "Performing analysis..."
15
+ puts "Performing analysis..." unless Stepdown.quiet
16
16
 
17
17
  reporter = reporter(@reporter, scenarios, instance.step_collection)
18
18
  reporter.output_overview
@@ -20,13 +20,14 @@ module Stepdown
20
20
  end
21
21
 
22
22
  def process_feature_files(feature_files)
23
- parser = Stepdown::FeatureParser.new
23
+ listener = Stepdown::FeatureParser.new(instance)
24
+
25
+ parser = Gherkin::Parser::Parser.new(listener, true, 'root')
24
26
 
25
- scenarios = []
26
27
  feature_files.each do |feature_file|
27
- scenarios << parser.process_feature(feature_file, instance)
28
+ parser.parse(File.read(feature_file), feature_file, 0)
28
29
  end
29
- scenarios.flatten
30
+ listener.scenarios
30
31
  end
31
32
 
32
33
  def reporter(type, scenarios, step_collection)
@@ -35,6 +36,8 @@ module Stepdown
35
36
  Stepdown::HTMLReporter.new(scenarios, step_collection)
36
37
  when "text"
37
38
  Stepdown::TextReporter.new(scenarios, step_collection)
39
+ when "quiet"
40
+ Stepdown::Reporter.new(scenarios, step_collection)
38
41
  end
39
42
  end
40
43
 
@@ -64,4 +67,4 @@ module Stepdown
64
67
  @step_files = Dir.glob(@steps_dir + '/**/*.rb')
65
68
  end
66
69
  end
67
- end
70
+ end
@@ -3,28 +3,58 @@ require 'stepdown/scenario'
3
3
  module Stepdown
4
4
  class FeatureParser
5
5
 
6
- def process_feature(file, instance)
7
- scenarios = []
8
- file_lines = read_feature_file(file)
9
-
10
- file_lines.each do |line|
11
-
12
- if line =~ /Scenario|Background/
13
- @scenario = Scenario.new
14
- scenarios << @scenario
15
- else
16
- step = instance.line_matches(line)
17
- @scenario.add_step(step) if step
18
- end
6
+ def initialize(instance)
7
+ @instance = instance
8
+ @scenarios = []
9
+ end
10
+
11
+ def scenarios
12
+ unless @scenarios.last == @current_scenario
13
+ @scenarios << @current_scenario
19
14
  end
15
+ @scenarios.compact
16
+ end
17
+
18
+ def background(background)
19
+ @scenarios << @current_scenario
20
+ @current_scenario = Scenario.new(background.name)
21
+ end
22
+
23
+ def scenario(scenario)
24
+ @scenarios << @current_scenario
25
+ @current_scenario = Scenario.new(scenario.name)
26
+ end
27
+
28
+ def scenario_outline(scenario_outline)
29
+ @scenarios << @current_scenario
30
+ @current_scenario = Scenario.new(scenario_outline.name)
31
+ end
20
32
 
21
- scenarios
33
+ def step(step)
34
+ matched_step = @instance.line_matches(step.name)
35
+ @current_scenario.add_step(matched_step) if matched_step
22
36
  end
23
37
 
24
- protected
25
- def read_feature_file(file_name)
26
- File.read(file_name).split("\n")
38
+ def uri(*args) end
39
+
40
+ def feature(*args) end
41
+
42
+ def examples(*args) end
43
+
44
+ def comment(*args) end
45
+
46
+ def tag(*args) end
47
+
48
+ def table(*args) end
49
+
50
+ def py_string(*args) end
51
+
52
+ def eof(*args) end
53
+
54
+ def syntax_error(*args)
55
+ # raise "SYNTAX ERROR"
27
56
  end
57
+
28
58
  end
29
59
  end
30
60
 
@@ -7,7 +7,7 @@ module Stepdown
7
7
  class HTMLReporter < Reporter
8
8
 
9
9
  def output_overview()
10
- puts "Generating report..."
10
+ puts "Generating report..." unless Stepdown.quiet
11
11
  FileUtils.mkdir_p(Reporter::OUTPUT_DIR)
12
12
  copy_files
13
13
 
@@ -26,7 +26,7 @@ module Stepdown
26
26
 
27
27
  out.close
28
28
 
29
- $stdout.puts "\nReport output to #{Reporter::OUTPUT_DIR}/analysis.html"
29
+ puts "\nReport output to #{Reporter::OUTPUT_DIR}/analysis.html" unless Stepdown.quiet
30
30
  end
31
31
 
32
32
  protected
@@ -2,14 +2,15 @@ require 'optparse'
2
2
 
3
3
  module Stepdown
4
4
  class Options
5
- attr_reader :steps_dir, :features_dir, :reporter
5
+ attr_reader :steps_dir, :features_dir, :reporter, :quiet
6
6
 
7
- OUTPUT_FORMATS = ["html", "text"]
7
+ OUTPUT_FORMATS = ["html", "text", "quiet"]
8
8
 
9
9
  def parse(params)
10
10
  @steps_dir = "features/step_definitions"
11
11
  @features_dir = "features"
12
12
  @reporter = "html"
13
+ @quiet = false
13
14
  parser = OptionParser.new do |opts|
14
15
  opts.banner = "Usage: stepdown step_definition_dir feature_file_directory"
15
16
 
@@ -27,6 +28,10 @@ module Stepdown
27
28
  @features_dir = o
28
29
  end
29
30
 
31
+ opts.on("--quiet", "-q", "Supress output") do |o|
32
+ @quiet = true
33
+ end
34
+
30
35
  opts.on_tail("-h", "--help", "You're looking at it") do |o|
31
36
  puts opts
32
37
  exit
@@ -83,6 +83,10 @@ module Stepdown
83
83
  step_usages.select{|use| use.total_usage == 0}
84
84
  end
85
85
 
86
+ def unused_step_count
87
+ unused_steps.length
88
+ end
89
+
86
90
  def uniq_steps_per_scenario(scenarios)
87
91
  total_steps = 0.0
88
92
  uniq_steps = 0.0
@@ -101,6 +105,13 @@ module Stepdown
101
105
  end
102
106
  sprintf "%.2f", (step_count / scen_count)
103
107
  end
108
+
109
+ def empty_scenarios
110
+ @scenarios.select do |scen|
111
+ scen.steps.empty?
112
+ end
113
+ end
114
+
104
115
  end
105
116
  end
106
117
 
@@ -2,10 +2,11 @@ require 'stepdown/step_collection'
2
2
 
3
3
  module Stepdown
4
4
  class Scenario
5
- attr_reader :step_count
6
- def initialize
5
+ attr_reader :step_count, :name
6
+ def initialize(name)
7
7
  @step_collection = Stepdown::StepCollection.new
8
8
  @step_count = 0
9
+ @name = name
9
10
  end
10
11
 
11
12
  def add_step(step)
@@ -39,10 +39,10 @@ module Stepdown
39
39
  end
40
40
 
41
41
  def line_matches(line)
42
- stripped_line = line.strip.gsub(/^(And|Given|When|Then) (.*)$/,'\2')
42
+ #stripped_line = line.strip.gsub(/^(And|Given|When|Then) (.*)$/,'\2')
43
43
 
44
44
  @steps.each_with_index do |regex,i|
45
- match = regex.match(stripped_line)
45
+ match = regex.match(line)
46
46
  if match
47
47
  return step_collection.detect{|step| i == step.id}
48
48
  end
@@ -4,11 +4,12 @@ module Stepdown
4
4
  class TextReporter < Reporter
5
5
 
6
6
  def output_overview
7
- puts "Generating report..."
7
+ puts "Generating report..." unless Stepdown.quiet
8
8
  output = File.new(Reporter::OUTPUT_DIR + '/analysis.txt', "w+")
9
9
 
10
10
  output.puts "Total number of scenarios: #{total_scenarios}"
11
11
  output.puts "Total numer of steps: #{total_steps}"
12
+ output.puts "Unused steps: #{unused_step_count}"
12
13
  output.puts "Steps per scenario: #{steps_per_scenario}"
13
14
  output.puts "Unique steps per scenario: #{unique_steps}"
14
15
 
@@ -21,7 +22,7 @@ module Stepdown
21
22
 
22
23
  output.close
23
24
 
24
- puts "Report output to #{Reporter::OUTPUT_DIR}/analysis.txt"
25
+ puts "Report output to #{Reporter::OUTPUT_DIR}/analysis.txt" unless Stepdown.quiet
25
26
 
26
27
  end
27
28
 
@@ -0,0 +1,32 @@
1
+ require 'spec_helper'
2
+ require 'analyzer'
3
+ require 'reporter'
4
+ require 'html_reporter'
5
+ require 'text_reporter'
6
+
7
+ describe Stepdown::Analyzer do
8
+
9
+ describe "selecting a reporter" do
10
+
11
+ it "should return an HTML reporter" do
12
+ analyzer = Stepdown::Analyzer.new('', '', 'html')
13
+ reporter = analyzer.reporter('html',[],mock('step_collection'))
14
+ reporter.should be_instance_of(Stepdown::HTMLReporter)
15
+ end
16
+
17
+ it "should return a text reporter" do
18
+ analyzer = Stepdown::Analyzer.new('', '', 'text')
19
+ reporter = analyzer.reporter('text',[],mock('step_collection'))
20
+ reporter.should be_instance_of(Stepdown::TextReporter)
21
+ end
22
+
23
+ it "should return a quiet reporter" do
24
+ analyzer = Stepdown::Analyzer.new('', '', 'quiet')
25
+ reporter = analyzer.reporter('quiet',[],mock('step_collection'))
26
+ reporter.should be_instance_of(Stepdown::Reporter)
27
+ end
28
+
29
+ end
30
+
31
+ end
32
+
@@ -9,45 +9,49 @@ describe Stepdown::FeatureParser do
9
9
 
10
10
  describe "creating scenarios" do
11
11
  before :each do
12
+ instance = mock("instance")
13
+ @parser = Stepdown::FeatureParser.new(instance)
12
14
  end
13
- it "should create a scenario for a scenario line" do
14
15
 
15
- file = mock("file")
16
- instance = mock("instance")
17
- file_lines = ["Scenario: My testing scenario"]
16
+ it "should create a scenario for a scenario line" do
18
17
 
19
- @parser = Stepdown::FeatureParser.new
20
- @parser.should_receive(:read_feature_file).with(file).and_return(file_lines)
21
- scenario = mock("scenario")
18
+ scenario = mock("scenario", :name => 'scenario')
22
19
  Stepdown::Scenario.should_receive(:new).and_return(scenario)
23
-
24
- @parser.process_feature(file, instance).should =~ [scenario]
20
+ @parser.scenario(scenario)
21
+
22
+ @parser.scenarios.should =~ [scenario]
25
23
  end
26
24
 
27
25
  it "should create a scenario for a background line" do
28
- file = mock("file")
29
- instance = mock("instance")
30
- file_lines = ["Background: My testing scenario"]
31
26
 
32
- @parser = Stepdown::FeatureParser.new
33
- @parser.should_receive(:read_feature_file).with(file).and_return(file_lines)
34
- scenario = mock("scenario")
35
- Stepdown::Scenario.should_receive(:new).and_return(scenario)
36
-
37
- @parser.process_feature(file, instance).should =~ [scenario]
27
+ background = mock("background", :name => '')
28
+ Stepdown::Scenario.should_receive(:new).and_return(background)
29
+ @parser.background(background)
30
+
31
+ @parser.scenarios.should =~ [background]
32
+ end
33
+
34
+ it "should create a scenario for a scenario outline" do
35
+
36
+ outline = mock("outline", :name => 'outline')
37
+ Stepdown::Scenario.should_receive(:new).and_return(outline)
38
+ @parser.scenario_outline(outline)
39
+
40
+ @parser.scenarios.should =~ [outline]
38
41
  end
39
42
  end
40
43
 
41
44
 
42
45
  describe "parsing step lines" do
43
46
  before :each do
44
- @parser = Stepdown::FeatureParser.new
45
47
  @step_instance = mock("step_instance")
48
+ @parser = Stepdown::FeatureParser.new(@step_instance)
49
+ @parser.scenario(mock('scenario', :name => 'scenario'))
46
50
 
47
51
  end
48
52
 
49
53
  it "should not add unmatched steps" do
50
- lines = ["Scenario", "matched", "match 2"]
54
+ lines = ["matched", "match 2"]
51
55
  unmatched_lines = ["not matched", "not matched 2"]
52
56
  steps = []
53
57
  lines.each_with_index do |line, i|
@@ -61,23 +65,26 @@ describe Stepdown::FeatureParser do
61
65
  end
62
66
 
63
67
  all_lines = [lines, unmatched_lines].flatten
64
- @parser.should_receive(:read_feature_file).and_return(all_lines)
65
68
 
66
- scenarios = @parser.process_feature(mock('file'), @step_instance)
69
+ all_lines.each do |line|
70
+ @parser.step(mock('step', :name => line))
71
+ end
72
+
73
+ scenarios = @parser.scenarios
67
74
  scenarios.first.steps.collect{|s| s.regex }.should =~ ["matched", "match 2"]
68
75
  end
69
76
 
70
77
  it "should add matched steps" do
71
- lines = ["Scenario", "matched", "match 2"]
78
+ lines = ["matched", "match 2"]
72
79
  steps = []
73
80
  lines.each_with_index do |line, i|
74
81
  step = Stepdown::Step.new(i, line)
75
82
  stub_line_match_with(@step_instance, line, step)
83
+ @parser.step(mock('step', :name => line))
76
84
  steps << step
77
85
  end
78
- @parser.should_receive(:read_feature_file).and_return(lines)
79
86
 
80
- scenarios = @parser.process_feature(mock('file'), @step_instance)
87
+ scenarios = @parser.scenarios
81
88
  scenarios.first.steps.collect{|s| s.regex }.should =~ ["matched", "match 2"]
82
89
 
83
90
  end
@@ -87,6 +87,11 @@ describe Stepdown::Options do
87
87
  @io.string.should == "Directory features_dir does not exist"
88
88
  end.should raise_error(SystemExit)
89
89
  end
90
+
91
+ it "should allow output to be supressed" do
92
+ @options.parse(["-q"])
93
+ @options.quiet.should == true
94
+ end
90
95
  end
91
96
 
92
97
  end
@@ -41,8 +41,8 @@ describe Stepdown::Reporter do
41
41
  #this whole grouping thing needs to be refactored. Nasty.
42
42
  describe "creating step groupings" do
43
43
  before :each do
44
- @scen_1 = Stepdown::Scenario.new
45
- @scen_2 = Stepdown::Scenario.new
44
+ @scen_1 = Stepdown::Scenario.new('scenario')
45
+ @scen_2 = Stepdown::Scenario.new('scenario')
46
46
  @scenarios = [@scen_1, @scen_2]
47
47
 
48
48
  @collection = Stepdown::StepCollection.new
@@ -100,8 +100,8 @@ describe Stepdown::Reporter do
100
100
  #this usage thing needs to be refactored as well
101
101
  describe "creating step usages" do
102
102
  before :each do
103
- @scen_1 = Stepdown::Scenario.new
104
- @scen_2 = Stepdown::Scenario.new
103
+ @scen_1 = Stepdown::Scenario.new('scenario')
104
+ @scen_2 = Stepdown::Scenario.new('scenario')
105
105
  @scenarios = [@scen_1, @scen_2]
106
106
 
107
107
  @collection = Stepdown::StepCollection.new
@@ -172,13 +172,41 @@ describe Stepdown::Reporter do
172
172
  @reporter.stub!(:step_usages).and_return([@use_1, @use_2, @use_3])
173
173
  end
174
174
 
175
- it "should return unused steps" do
175
+ it "should return used steps" do
176
176
  @reporter.usages.should =~ [@use_1, @use_2]
177
177
  end
178
178
 
179
- it "should return used steps" do
179
+ it "should return unused steps" do
180
180
  @reporter.unused_steps.should =~ [@use_3]
181
181
  end
182
+
183
+ it "should return the number of unused steps" do
184
+ @reporter.unused_step_count.should == 1
185
+ end
186
+ end
187
+
188
+ describe "returning empty scenarios" do
189
+
190
+ it "should return scenarios with no steps" do
191
+ scen_1 = Stepdown::Scenario.new('scenario')
192
+ scen_2 = Stepdown::Scenario.new('scenario')
193
+
194
+ @reporter = Stepdown::Reporter.new([scen_1, scen_2], Stepdown::StepCollection.new)
195
+
196
+ @reporter.empty_scenarios().should == [scen_1,scen_2]
197
+ end
198
+
199
+ it "should not return scenarios with steps" do
200
+ scen_1 = Stepdown::Scenario.new('scenario')
201
+ scen_2 = Stepdown::Scenario.new('scenario')
202
+
203
+ scen_1.add_step(Stepdown::Step.new(1,/regex/))
204
+
205
+ @reporter = Stepdown::Reporter.new([scen_1, scen_2], Stepdown::StepCollection.new)
206
+
207
+ @reporter.empty_scenarios().should == [scen_2]
208
+ end
209
+
182
210
  end
183
211
 
184
212
  end
@@ -5,7 +5,7 @@ require 'step'
5
5
 
6
6
  describe Stepdown::Scenario do
7
7
  before :each do
8
- @scenario = Stepdown::Scenario.new
8
+ @scenario = Stepdown::Scenario.new('scenario')
9
9
  @s1 = Stepdown::Step.new(1, /step 1/)
10
10
  @s2 = Stepdown::Step.new(2, /Step 2/)
11
11
  @s2_dup = Stepdown::Step.new(2, /Step 2/)
data/stepdown.gemspec CHANGED
@@ -1,7 +1,7 @@
1
1
 
2
2
  Gem::Specification.new do |s|
3
3
  s.name = "stepdown"
4
- s.version = "0.4.0"
4
+ s.version = "0.5.0"
5
5
  s.platform = Gem::Platform::RUBY
6
6
  s.required_ruby_version = '>= 1.8.7'
7
7
  s.authors = "Sean Caffery"
@@ -13,8 +13,9 @@ Gem::Specification.new do |s|
13
13
  s.required_rubygems_version = ">= 1.3.6"
14
14
  s.rubyforge_project = "stepdown"
15
15
 
16
- s.add_dependency('haml', '> 2.0.0')
17
- s.add_development_dependency('rspec', "~> 2.5.0")
16
+ s.add_dependency('haml', '> 2.0')
17
+ s.add_dependency('gherkin', '~> 2.3')
18
+ s.add_development_dependency('rspec', "~> 2.5")
18
19
  s.add_development_dependency('rake')
19
20
  s.files = `git ls-files`.split("\n")
20
21
  s.test_files = `git ls-files spec/*`.split("\n")
@@ -18,6 +18,8 @@
18
18
  %a{:href => '#usage'} Step usage
19
19
  %li
20
20
  %a{:href => '#unused'} Unused steps
21
+ %li
22
+ %a{:href => '#empty'} Empty scenarios
21
23
  %li
22
24
  %a{:href => '#grouping'} Step grouping
23
25
  #content
@@ -34,6 +36,9 @@
34
36
  %tr
35
37
  %td Total number of steps
36
38
  %td= total_steps
39
+ %tr
40
+ %td Unused stepss
41
+ %td= unused_step_count
37
42
  %tr
38
43
  %td Steps per scenario
39
44
  %td= steps_per_scenario
@@ -90,6 +95,15 @@
90
95
  - unused_steps.each do |use|
91
96
  %tr
92
97
  %td= use.step.regex.inspect
98
+ %h2
99
+ %a{:name => 'empty'} Empty scenarios
100
+ %table
101
+ %tbody
102
+ %th Scenarios
103
+
104
+ - empty_scenarios.each do |scen|
105
+ %tr
106
+ %td= scen.name
93
107
  %h2
94
108
  %a{:name => 'grouping'} Step grouping
95
109
  %table
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: 15
4
+ hash: 11
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
- - 4
8
+ - 5
9
9
  - 0
10
- version: 0.4.0
10
+ version: 0.5.0
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-03-29 00:00:00 +11:00
18
+ date: 2011-05-17 00:00:00 +10:00
19
19
  default_executable: stepdown
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -26,34 +26,47 @@ dependencies:
26
26
  requirements:
27
27
  - - ">"
28
28
  - !ruby/object:Gem::Version
29
- hash: 15
29
+ hash: 3
30
30
  segments:
31
31
  - 2
32
32
  - 0
33
- - 0
34
- version: 2.0.0
33
+ version: "2.0"
35
34
  type: :runtime
36
35
  version_requirements: *id001
37
36
  - !ruby/object:Gem::Dependency
38
- name: rspec
37
+ name: gherkin
39
38
  prerelease: false
40
39
  requirement: &id002 !ruby/object:Gem::Requirement
41
40
  none: false
42
41
  requirements:
43
42
  - - ~>
44
43
  - !ruby/object:Gem::Version
45
- hash: 27
44
+ hash: 5
45
+ segments:
46
+ - 2
47
+ - 3
48
+ version: "2.3"
49
+ type: :runtime
50
+ version_requirements: *id002
51
+ - !ruby/object:Gem::Dependency
52
+ name: rspec
53
+ prerelease: false
54
+ requirement: &id003 !ruby/object:Gem::Requirement
55
+ none: false
56
+ requirements:
57
+ - - ~>
58
+ - !ruby/object:Gem::Version
59
+ hash: 9
46
60
  segments:
47
61
  - 2
48
62
  - 5
49
- - 0
50
- version: 2.5.0
63
+ version: "2.5"
51
64
  type: :development
52
- version_requirements: *id002
65
+ version_requirements: *id003
53
66
  - !ruby/object:Gem::Dependency
54
67
  name: rake
55
68
  prerelease: false
56
- requirement: &id003 !ruby/object:Gem::Requirement
69
+ requirement: &id004 !ruby/object:Gem::Requirement
57
70
  none: false
58
71
  requirements:
59
72
  - - ">="
@@ -63,7 +76,7 @@ dependencies:
63
76
  - 0
64
77
  version: "0"
65
78
  type: :development
66
- version_requirements: *id003
79
+ version_requirements: *id004
67
80
  description: Stepdown allows you to see where your most used Cucumber steps are, your unused steps and how they are clustered
68
81
  email:
69
82
  - sean@lineonpoint.com
@@ -97,6 +110,7 @@ files:
97
110
  - lib/stepdown/text_reporter.rb
98
111
  - public/jquery-1.4.3.min.js
99
112
  - public/step_down.js
113
+ - spec/lib/stepdown/analyzer_spec.rb
100
114
  - spec/lib/stepdown/feature_parser_spec.rb
101
115
  - spec/lib/stepdown/options_spec.rb
102
116
  - spec/lib/stepdown/reporter_spec.rb
@@ -142,11 +156,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
142
156
  requirements: []
143
157
 
144
158
  rubyforge_project: stepdown
145
- rubygems_version: 1.5.3
159
+ rubygems_version: 1.4.2
146
160
  signing_key:
147
161
  specification_version: 3
148
162
  summary: Static analysis tool for Cucumber features
149
163
  test_files:
164
+ - spec/lib/stepdown/analyzer_spec.rb
150
165
  - spec/lib/stepdown/feature_parser_spec.rb
151
166
  - spec/lib/stepdown/options_spec.rb
152
167
  - spec/lib/stepdown/reporter_spec.rb