foca-storyteller 0.1.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/README.markdown ADDED
@@ -0,0 +1,91 @@
1
+ Storyteller
2
+ ===========
3
+
4
+ Minimalist user stories for test/unit
5
+
6
+ Examples
7
+ --------
8
+
9
+ require "test/unit"
10
+ require "rubygems"
11
+ require "context"
12
+ require "storyteller"
13
+
14
+ class MyAcceptanceTest < Test::Unit::TestCase
15
+ include Test::Storyteller
16
+
17
+ story <<-EOS
18
+ As a developer
19
+ I want to have user stories on test/unit that look pretty
20
+ So that I can have nice acceptance tests
21
+ EOS
22
+
23
+ scenario "So simple it's awesome" do
24
+ # ...
25
+ end
26
+
27
+ scenario "OMG I'm so ruling the world with this" do
28
+ # ...
29
+ end
30
+ end
31
+
32
+ And when run that produces:
33
+
34
+ $ ruby my_acceptance_test.rb
35
+ Loaded suite my_acceptance_test
36
+ Started
37
+
38
+ As a developer
39
+ I want to have user stories on test/unit that look pretty
40
+ So that I can have nice acceptance tests
41
+ ..
42
+
43
+ Finished in 0.000178 seconds.
44
+
45
+ 2 tests, 0 assertions, 0 failures, 0 errors
46
+
47
+ If you have multiple classes that include Test::Storyteller (or that inherit
48
+ from a common base class that includes it), then each story will get printed
49
+ in turn, with the scenarios run below it.
50
+
51
+ And best of all: **in full beautiful color** (cause what's the point if it
52
+ ain't pretty?)
53
+
54
+ Installing
55
+ ==========
56
+
57
+ sudo gem sources add http://gems.github.com
58
+ sudo gem install foca-storyteller
59
+
60
+ OMG why not use Cucumber?
61
+ =========================
62
+
63
+ I like Cucumber and use it, but it's just a whole new layer of complexity when
64
+ you don't have business people checking and reviewing your user stories. Simple
65
+ requirements need simple solutions.
66
+
67
+ License
68
+ =======
69
+
70
+ (The MIT License)
71
+
72
+ Copyright (c) 2009 Nicolás Sanguinetti <contacto@nicolassanguinetti.info>
73
+
74
+ Permission is hereby granted, free of charge, to any person obtaining
75
+ a copy of this software and associated documentation files (the
76
+ 'Software'), to deal in the Software without restriction, including
77
+ without limitation the rights to use, copy, modify, merge, publish,
78
+ distribute, sublicense, and/or sell copies of the Software, and to
79
+ permit persons to whom the Software is furnished to do so, subject to
80
+ the following conditions:
81
+
82
+ The above copyright notice and this permission notice shall be
83
+ included in all copies or substantial portions of the Software.
84
+
85
+ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
86
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
87
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
88
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
89
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
90
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
91
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/Rakefile ADDED
@@ -0,0 +1,18 @@
1
+ begin
2
+ require "rubygems"
3
+ require "jeweler"
4
+
5
+ Jeweler::Tasks.new do |s|
6
+ s.name = 'storyteller'
7
+ s.summary = 'Minimalist user story runner on top of test/unit'
8
+ s.description = 'Minimalist user story runner on top of test/unit'
9
+ s.homepage = 'http://nicolassanguinetti.info'
10
+ s.rubyforge_project = 'storyteller'
11
+ s.email = 'contacto@nicolassanguinetti.info'
12
+ s.authors = ['Nicolás Sanguinetti']
13
+ s.files = FileList["**/*"]
14
+
15
+ s.add_dependency 'jeremymcanally-context'
16
+ end
17
+ rescue LoadError
18
+ end
data/VERSION.yml ADDED
@@ -0,0 +1,4 @@
1
+ ---
2
+ major: 0
3
+ patch: 0
4
+ minor: 1
@@ -0,0 +1,29 @@
1
+ require "context"
2
+
3
+ module Test::Storyteller
4
+ def self.included(base)
5
+ base.before(:all) do
6
+ puts
7
+ print "\e[36m"
8
+ puts self.class.story.to_s.gsub(/^\s+/, '')
9
+ print "\e[0m"
10
+ end
11
+
12
+ base.after(:all) do
13
+ puts
14
+ end
15
+
16
+ class << base
17
+ alias :scenario :test
18
+ end
19
+
20
+ base.extend ClassMethods
21
+ end
22
+
23
+ module ClassMethods
24
+ def story(story=nil)
25
+ @story = story if story
26
+ @story
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,31 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = %q{storyteller}
5
+ s.version = "0.1.0"
6
+
7
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
+ s.authors = ["Nicol\303\241s Sanguinetti"]
9
+ s.date = %q{2008-12-30}
10
+ s.description = %q{Minimalist user story runner on top of test/unit}
11
+ s.email = %q{contacto@nicolassanguinetti.info}
12
+ s.files = ["lib", "lib/storyteller.rb", "Rakefile", "README.markdown", "storyteller.gemspec", "VERSION.yml"]
13
+ s.homepage = %q{http://nicolassanguinetti.info}
14
+ s.require_paths = ["lib"]
15
+ s.rubyforge_project = %q{storyteller}
16
+ s.rubygems_version = %q{1.3.1}
17
+ s.summary = %q{Minimalist user story runner on top of test/unit}
18
+
19
+ if s.respond_to? :specification_version then
20
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
21
+ s.specification_version = 2
22
+
23
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
24
+ s.add_runtime_dependency(%q<jeremymcanally-context>, [">= 0"])
25
+ else
26
+ s.add_dependency(%q<jeremymcanally-context>, [">= 0"])
27
+ end
28
+ else
29
+ s.add_dependency(%q<jeremymcanally-context>, [">= 0"])
30
+ end
31
+ end
metadata ADDED
@@ -0,0 +1,66 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: foca-storyteller
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - "Nicol\xC3\xA1s Sanguinetti"
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2008-12-30 00:00:00 -08:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: jeremymcanally-context
17
+ version_requirement:
18
+ version_requirements: !ruby/object:Gem::Requirement
19
+ requirements:
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: "0"
23
+ version:
24
+ description: Minimalist user story runner on top of test/unit
25
+ email: contacto@nicolassanguinetti.info
26
+ executables: []
27
+
28
+ extensions: []
29
+
30
+ extra_rdoc_files: []
31
+
32
+ files:
33
+ - lib
34
+ - lib/storyteller.rb
35
+ - Rakefile
36
+ - README.markdown
37
+ - storyteller.gemspec
38
+ - VERSION.yml
39
+ has_rdoc: false
40
+ homepage: http://nicolassanguinetti.info
41
+ post_install_message:
42
+ rdoc_options: []
43
+
44
+ require_paths:
45
+ - lib
46
+ required_ruby_version: !ruby/object:Gem::Requirement
47
+ requirements:
48
+ - - ">="
49
+ - !ruby/object:Gem::Version
50
+ version: "0"
51
+ version:
52
+ required_rubygems_version: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: "0"
57
+ version:
58
+ requirements: []
59
+
60
+ rubyforge_project: storyteller
61
+ rubygems_version: 1.2.0
62
+ signing_key:
63
+ specification_version: 2
64
+ summary: Minimalist user story runner on top of test/unit
65
+ test_files: []
66
+