citrusbyte-stories 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -2,7 +2,7 @@ require "rubygems"
2
2
  require "contest"
3
3
 
4
4
  unless defined?(Test::Unit::AutoRunner)
5
- gem "test-unit", ">= 1.2"
5
+ gem "test-unit", "1.2.3"
6
6
  end
7
7
 
8
8
  class Test::Unit::TestCase
@@ -2,40 +2,38 @@
2
2
 
3
3
  require 'test/unit/ui/console/testrunner'
4
4
 
5
- $stories = []
6
-
7
- class Test::Unit::TestCase
8
- class << self
9
- alias original_story story
10
- alias original_scenario scenario
11
-
12
- def story(name, &block)
13
- story = Stories::Story.new(name)
14
-
15
- original_story(name) do
16
- @@story = story
17
-
18
- def self.story; @@story; end
5
+ module Stories
6
+ def self.all
7
+ @all ||= {}
8
+ end
19
9
 
20
- class_eval(&block) if block_given?
21
- end
10
+ module TestCase
11
+ def self.included(base)
12
+ class << base
13
+ def story(name, *args, &block)
14
+ context(name, *args) do
15
+ Stories.all[self] = Stories::Story.new(name)
16
+ class_eval(&block) if block_given?
17
+ end
18
+ end
22
19
 
23
- $stories << story
24
- end
20
+ def scenario(name, *args, &block)
21
+ scenario = Stories::Scenario.new(name)
25
22
 
26
- def scenario(name, &block)
27
- scenario = Stories::Scenario.new(name)
23
+ Stories.all[self].scenarios << scenario
28
24
 
29
- original_scenario(name) do
30
- @scenario = scenario
31
- instance_eval(&block)
25
+ test(name) do
26
+ @scenario = scenario
27
+ instance_eval(&block)
28
+ end
29
+ end
32
30
  end
33
-
34
- self.story.scenarios << scenario
35
31
  end
36
32
  end
37
33
  end
38
34
 
35
+ Test::Unit::TestCase.send(:include, Stories::TestCase)
36
+
39
37
  module Test::Unit::Assertions
40
38
  def report(text, &block)
41
39
  @scenario.steps << text
@@ -86,7 +84,7 @@ module Stories
86
84
  def finished(elapsed_time)
87
85
  puts
88
86
 
89
- $stories.each_with_index do |story,i|
87
+ Stories.all.values.to_a.each_with_index do |story,i|
90
88
  puts "- #{story.name}"
91
89
 
92
90
  story.scenarios.each do |scenario|
@@ -105,11 +103,11 @@ module Stories
105
103
  end
106
104
  end
107
105
 
108
- puts unless i + 1 == $stories.size
106
+ puts unless i + 1 == Stories.all.values.size
109
107
  end
110
108
 
111
109
  super
112
- puts "%d stories, %d scenarios" % [$stories.size, $stories.inject(0) {|total,s| total + s.scenarios.size }]
110
+ puts "%d stories, %d scenarios" % [Stories.all.values.size, Stories.all.values.inject(0) {|total,s| total + s.scenarios.size }]
113
111
  end
114
112
  end
115
113
 
@@ -18,7 +18,7 @@ module Stories
18
18
 
19
19
  pdf.move_down(15)
20
20
 
21
- $stories.each do |story|
21
+ Stories.all.values.each do |story|
22
22
  pdf.text story.name, :style => :bold
23
23
 
24
24
  story.scenarios.each_with_index do |scenario,i|
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: citrusbyte-stories
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Damian Janowski
@@ -46,6 +46,7 @@ files:
46
46
  - test/pdf_test.rb
47
47
  has_rdoc: false
48
48
  homepage: http://github.com/citrusbyte/stories
49
+ licenses:
49
50
  post_install_message:
50
51
  rdoc_options: []
51
52
 
@@ -66,7 +67,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
66
67
  requirements: []
67
68
 
68
69
  rubyforge_project: stories
69
- rubygems_version: 1.2.0
70
+ rubygems_version: 1.3.5
70
71
  signing_key:
71
72
  specification_version: 2
72
73
  summary: Write Stories and User Acceptance Tests using the minimalist testing framework Contest.