rspec_outlines 0.0.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/.document +5 -0
- data/.gitignore +5 -0
- data/DESCRIPTION.txt +12 -0
- data/LICENSE +20 -0
- data/README.rdoc +18 -0
- data/Rakefile +57 -0
- data/VERSION +1 -0
- data/lib/rspec_outlines.rb +12 -0
- data/lib/rspec_outlines/error.rb +3 -0
- data/lib/rspec_outlines/example_group.rb +28 -0
- data/lib/rspec_outlines/example_methods.rb +19 -0
- data/lib/rspec_outlines/example_proxy.rb +5 -0
- data/lib/rspec_outlines/outline.rb +23 -0
- data/rspec_outlines.gemspec +81 -0
- data/spec/example_group_spec.rb +80 -0
- data/spec/example_methods_spec.rb +46 -0
- data/spec/spec.opts +2 -0
- data/spec/spec_helper.rb +14 -0
- data/spec_integration/integration_spec.rb +32 -0
- data/spec_integration/spec.opts +3 -0
- data/spec_integration/spec_files/should_not_affect_normal_specs.rb +11 -0
- data/spec_integration/spec_files/should_run_the_outline_for_each_set_of_values_given.rb +13 -0
- metadata +111 -0
data/.document
ADDED
data/DESCRIPTION.txt
ADDED
data/LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2009 George Ogata
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.rdoc
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
= rspec_outlines
|
2
|
+
|
3
|
+
Description goes here.
|
4
|
+
|
5
|
+
== Note on Patches/Pull Requests
|
6
|
+
|
7
|
+
* Fork the project.
|
8
|
+
* Make your feature addition or bug fix.
|
9
|
+
* Add tests for it. This is important so I don't break it in a
|
10
|
+
future version unintentionally.
|
11
|
+
* Commit, do not mess with rakefile, version, or history.
|
12
|
+
(if you want to have your own version, that is fine but
|
13
|
+
bump version in a commit by itself I can ignore when I pull)
|
14
|
+
* Send me a pull request. Bonus points for topic branches.
|
15
|
+
|
16
|
+
== Copyright
|
17
|
+
|
18
|
+
Copyright (c) 2009 George Ogata. See LICENSE for details.
|
data/Rakefile
ADDED
@@ -0,0 +1,57 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rake'
|
3
|
+
|
4
|
+
ROOT = File.dirname(__FILE__)
|
5
|
+
|
6
|
+
begin
|
7
|
+
require 'jeweler'
|
8
|
+
Jeweler::Tasks.new do |gem|
|
9
|
+
gem.name = "rspec_outlines"
|
10
|
+
gem.summary = "Define specs in tables."
|
11
|
+
gem.description = File.read("#{ROOT}/DESCRIPTION.txt")
|
12
|
+
gem.email = "george.ogata@gmail.com"
|
13
|
+
gem.homepage = "http://github.com/oggy/rspec_outlines"
|
14
|
+
gem.authors = ["George Ogata"]
|
15
|
+
gem.add_development_dependency "rspec"
|
16
|
+
gem.add_development_dependency "mocha"
|
17
|
+
end
|
18
|
+
rescue LoadError
|
19
|
+
puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
|
20
|
+
end
|
21
|
+
|
22
|
+
require 'spec/rake/spectask'
|
23
|
+
Spec::Rake::SpecTask.new(:spec) do |spec|
|
24
|
+
spec.libs << 'lib' << 'spec'
|
25
|
+
spec.spec_files = FileList['spec/**/*_spec.rb']
|
26
|
+
spec.spec_opts = ['--options', "#{ROOT}/spec/spec.opts"]
|
27
|
+
end
|
28
|
+
|
29
|
+
Spec::Rake::SpecTask.new(:spec_integration) do |spec|
|
30
|
+
spec.libs << 'lib' << 'spec'
|
31
|
+
spec.spec_files = FileList['spec_integration/integration_spec.rb']
|
32
|
+
spec.spec_opts = ['--options', "#{ROOT}/spec_integration/spec.opts"]
|
33
|
+
end
|
34
|
+
|
35
|
+
Spec::Rake::SpecTask.new(:rcov) do |spec|
|
36
|
+
spec.libs << 'lib' << 'spec'
|
37
|
+
spec.pattern = 'spec/**/*_spec.rb'
|
38
|
+
spec.rcov = true
|
39
|
+
end
|
40
|
+
|
41
|
+
task :spec => :check_dependencies
|
42
|
+
|
43
|
+
task :default => :spec
|
44
|
+
|
45
|
+
require 'rake/rdoctask'
|
46
|
+
Rake::RDocTask.new do |rdoc|
|
47
|
+
if File.exist?('VERSION')
|
48
|
+
version = File.read('VERSION')
|
49
|
+
else
|
50
|
+
version = ""
|
51
|
+
end
|
52
|
+
|
53
|
+
rdoc.rdoc_dir = 'rdoc'
|
54
|
+
rdoc.title = "rspec_outlines #{version}"
|
55
|
+
rdoc.rdoc_files.include('README*')
|
56
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
57
|
+
end
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
0.0.0
|
@@ -0,0 +1,12 @@
|
|
1
|
+
module RSpecOutlines
|
2
|
+
end
|
3
|
+
|
4
|
+
require 'rspec_outlines/error'
|
5
|
+
require 'rspec_outlines/example_group'
|
6
|
+
require 'rspec_outlines/example_methods'
|
7
|
+
require 'rspec_outlines/example_proxy'
|
8
|
+
require 'rspec_outlines/outline'
|
9
|
+
|
10
|
+
Spec::Example::ExampleGroup.send :extend, RSpecOutlines::ExampleGroup
|
11
|
+
Spec::Example::ExampleGroup.send :include, RSpecOutlines::ExampleMethods
|
12
|
+
Spec::Example::ExampleProxy.send :include, RSpecOutlines::ExampleProxy
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module RSpecOutlines
|
2
|
+
module ExampleGroup
|
3
|
+
def outline(name, &definition)
|
4
|
+
@current_outline = Outline.new(self, name, &definition)
|
5
|
+
end
|
6
|
+
|
7
|
+
def current_outline
|
8
|
+
@current_outline ||= nil
|
9
|
+
end
|
10
|
+
|
11
|
+
def fields(*names)
|
12
|
+
need_outline
|
13
|
+
current_outline.fields = names.map{|name| name.to_sym}
|
14
|
+
end
|
15
|
+
|
16
|
+
def values(*args)
|
17
|
+
need_outline
|
18
|
+
current_outline.instantiate(*args)
|
19
|
+
end
|
20
|
+
|
21
|
+
private # -------------------------------------------------------
|
22
|
+
|
23
|
+
def need_outline
|
24
|
+
current_outline or
|
25
|
+
raise Error, "no outline defined"
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module RSpecOutlines
|
2
|
+
module ExampleMethods
|
3
|
+
def method_missing(name, *args)
|
4
|
+
if is_outline_field_name?(name) && args.empty?
|
5
|
+
lookup_outline_field_name(name)
|
6
|
+
else
|
7
|
+
super
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
def is_outline_field_name?(name)
|
12
|
+
@_proxy.outline_values && @_proxy.outline_values.key?(name)
|
13
|
+
end
|
14
|
+
|
15
|
+
def lookup_outline_field_name(name)
|
16
|
+
@_proxy.outline_values[name]
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module RSpecOutlines
|
2
|
+
class Outline
|
3
|
+
def initialize(example_group, name, &definition)
|
4
|
+
@example_group = example_group
|
5
|
+
@name = name
|
6
|
+
@definition = definition
|
7
|
+
@fields = nil
|
8
|
+
@number_of_examples = 0
|
9
|
+
end
|
10
|
+
|
11
|
+
attr_reader :name
|
12
|
+
attr_accessor :fields
|
13
|
+
|
14
|
+
def instantiate(*values)
|
15
|
+
fields or
|
16
|
+
raise Error, "no fields defined"
|
17
|
+
fields.length == values.length or
|
18
|
+
raise ArgumentError, "wrong number of values (#{fields.length} fields, #{values.length} values)"
|
19
|
+
example = @example_group.example("#{name} - #{@number_of_examples += 1}", &@definition)
|
20
|
+
example.outline_values = Hash[*fields.zip(values).flatten]
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,81 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run `rake gemspec`
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = %q{rspec_outlines}
|
8
|
+
s.version = "0.0.0"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["George Ogata"]
|
12
|
+
s.date = %q{2009-11-14}
|
13
|
+
s.description = %q{Cucumber outlines for RSpec!
|
14
|
+
|
15
|
+
describe "Adding two numbers" do
|
16
|
+
outline "should return the sum" do
|
17
|
+
(a + b).should == c
|
18
|
+
end
|
19
|
+
|
20
|
+
fields :a, :b, :c
|
21
|
+
values 1, 1, 2
|
22
|
+
values 2, 3, 5
|
23
|
+
values 1, -1, 0
|
24
|
+
end
|
25
|
+
}
|
26
|
+
s.email = %q{george.ogata@gmail.com}
|
27
|
+
s.extra_rdoc_files = [
|
28
|
+
"LICENSE",
|
29
|
+
"README.rdoc"
|
30
|
+
]
|
31
|
+
s.files = [
|
32
|
+
".document",
|
33
|
+
".gitignore",
|
34
|
+
"DESCRIPTION.txt",
|
35
|
+
"LICENSE",
|
36
|
+
"README.rdoc",
|
37
|
+
"Rakefile",
|
38
|
+
"VERSION",
|
39
|
+
"lib/rspec_outlines.rb",
|
40
|
+
"lib/rspec_outlines/error.rb",
|
41
|
+
"lib/rspec_outlines/example_group.rb",
|
42
|
+
"lib/rspec_outlines/example_methods.rb",
|
43
|
+
"lib/rspec_outlines/example_proxy.rb",
|
44
|
+
"lib/rspec_outlines/outline.rb",
|
45
|
+
"rspec_outlines.gemspec",
|
46
|
+
"spec/example_group_spec.rb",
|
47
|
+
"spec/example_methods_spec.rb",
|
48
|
+
"spec/spec.opts",
|
49
|
+
"spec/spec_helper.rb",
|
50
|
+
"spec_integration/integration_spec.rb",
|
51
|
+
"spec_integration/spec.opts",
|
52
|
+
"spec_integration/spec_files/should_not_affect_normal_specs.rb",
|
53
|
+
"spec_integration/spec_files/should_run_the_outline_for_each_set_of_values_given.rb"
|
54
|
+
]
|
55
|
+
s.homepage = %q{http://github.com/oggy/rspec_outlines}
|
56
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
57
|
+
s.require_paths = ["lib"]
|
58
|
+
s.rubygems_version = %q{1.3.5}
|
59
|
+
s.summary = %q{Define specs in tables.}
|
60
|
+
s.test_files = [
|
61
|
+
"spec/example_group_spec.rb",
|
62
|
+
"spec/example_methods_spec.rb",
|
63
|
+
"spec/spec_helper.rb"
|
64
|
+
]
|
65
|
+
|
66
|
+
if s.respond_to? :specification_version then
|
67
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
68
|
+
s.specification_version = 3
|
69
|
+
|
70
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
71
|
+
s.add_development_dependency(%q<rspec>, [">= 0"])
|
72
|
+
s.add_development_dependency(%q<mocha>, [">= 0"])
|
73
|
+
else
|
74
|
+
s.add_dependency(%q<rspec>, [">= 0"])
|
75
|
+
s.add_dependency(%q<mocha>, [">= 0"])
|
76
|
+
end
|
77
|
+
else
|
78
|
+
s.add_dependency(%q<rspec>, [">= 0"])
|
79
|
+
s.add_dependency(%q<mocha>, [">= 0"])
|
80
|
+
end
|
81
|
+
end
|
@@ -0,0 +1,80 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe RSpecOutlines::ExampleGroup do
|
4
|
+
before do
|
5
|
+
@example_group = Class.new(Spec::Example::ExampleGroup)
|
6
|
+
end
|
7
|
+
|
8
|
+
describe "#outline" do
|
9
|
+
it "should set the current outline to a new outline with the given name" do
|
10
|
+
@example_group.outline("name of outline")
|
11
|
+
@example_group.current_outline.should be_a(Outline)
|
12
|
+
@example_group.current_outline.name.should == "name of outline"
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
describe "#fields" do
|
17
|
+
describe "when no outline has been defined" do
|
18
|
+
it "should raise an Error" do
|
19
|
+
lambda{@example_group.fields}.should raise_error(Error)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
describe "when an outline has been defined" do
|
24
|
+
before do
|
25
|
+
@outline = Outline.new(@example_group, "name of outline")
|
26
|
+
@example_group.stubs(:current_outline).returns(@outline)
|
27
|
+
end
|
28
|
+
|
29
|
+
it "should set the fields of the last outline" do
|
30
|
+
@example_group.fields(:a, :b)
|
31
|
+
@outline.fields.should == [:a, :b]
|
32
|
+
end
|
33
|
+
|
34
|
+
it "should symbolize the given field names" do
|
35
|
+
@example_group.fields('a', 'b')
|
36
|
+
@outline.fields.should == [:a, :b]
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
describe "#values" do
|
42
|
+
describe "when there is no current outline" do
|
43
|
+
it "should raise an Error" do
|
44
|
+
lambda{@example_group.values(1, 2)}.should raise_error(Error)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
describe "when the current outline has no fields defined" do
|
49
|
+
before do
|
50
|
+
@outline = Outline.new(@example_group, "name of outline")
|
51
|
+
@example_group.stubs(:current_outline).returns(@outline)
|
52
|
+
end
|
53
|
+
|
54
|
+
it "should raise an Error" do
|
55
|
+
lambda{@example_group.values(1, 2)}.should raise_error(Error)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
describe "when there is a current outline with fields defined" do
|
60
|
+
before do
|
61
|
+
@outline = Outline.new(@example_group, "name of outline"){}
|
62
|
+
@outline.stubs(:fields).returns([:field_one, :field_two])
|
63
|
+
@example_group.stubs(:current_outline).returns(@outline)
|
64
|
+
end
|
65
|
+
|
66
|
+
it "should define an example based on the last outline" do
|
67
|
+
lambda{@example_group.values(1, 2)}.should change{@example_group.number_of_examples}.by(1)
|
68
|
+
end
|
69
|
+
|
70
|
+
it "should bind the given values to the example" do
|
71
|
+
@example_group.values(1, 2)
|
72
|
+
@example_group.example_proxies.last.outline_values.should == {:field_one => 1, :field_two => 2}
|
73
|
+
end
|
74
|
+
|
75
|
+
it "should raise an ArgumentError if the number of arguments is different to the number of fields" do
|
76
|
+
lambda{@example_group.values(1)}.should raise_error(ArgumentError)
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe ExampleMethods do
|
4
|
+
describe "#execute" do
|
5
|
+
before do
|
6
|
+
@example_group = Class.new(Spec::Example::ExampleGroup)
|
7
|
+
@run_options = Spec::Runner::Options.new(StringIO.new, StringIO.new)
|
8
|
+
@run_options.reporter.example_group_started(@example_group)
|
9
|
+
end
|
10
|
+
|
11
|
+
describe "when outline values are present" do
|
12
|
+
before do
|
13
|
+
@proxy = Spec::Example::ExampleProxy.new("description")
|
14
|
+
@proxy.outline_values = {:x => 5}
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should give the implementation access to the outline values" do
|
18
|
+
value = nil
|
19
|
+
example_group_instance = @example_group.new(@proxy) do
|
20
|
+
value = x
|
21
|
+
end
|
22
|
+
example_group_instance.execute(@run_options, {}).should be_true
|
23
|
+
value.should == 5
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
describe "when outline values are not present" do
|
28
|
+
before do
|
29
|
+
@proxy = Spec::Example::ExampleProxy.new("description")
|
30
|
+
end
|
31
|
+
|
32
|
+
it "should give the implementation access to the outline values" do
|
33
|
+
error = nil
|
34
|
+
example_group_instance = @example_group.new(@proxy) do
|
35
|
+
begin
|
36
|
+
x
|
37
|
+
rescue NameError => error
|
38
|
+
end
|
39
|
+
end
|
40
|
+
example_group_instance.execute(@run_options, {}).should be_true
|
41
|
+
error.should_not be_nil
|
42
|
+
error.message.should include("`x'")
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
data/spec/spec.opts
ADDED
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
ROOT = File.dirname(File.dirname(__FILE__))
|
2
|
+
|
3
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
4
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
5
|
+
require 'rspec_outlines'
|
6
|
+
require 'spec'
|
7
|
+
require 'spec/autorun'
|
8
|
+
|
9
|
+
Spec::Runner.configure do |config|
|
10
|
+
config.mock_with :mocha
|
11
|
+
end
|
12
|
+
|
13
|
+
# So we don't have to qualify all our classes.
|
14
|
+
include RSpecOutlines
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'rbconfig'
|
3
|
+
|
4
|
+
SPEC_FILE_DIRECTORY = "#{ROOT}/spec_integration/spec_files"
|
5
|
+
|
6
|
+
describe "RSpec Outlines" do
|
7
|
+
def spec
|
8
|
+
suffix = Config::CONFIG['ruby_install_name'].sub(/\Aruby/, '')
|
9
|
+
basename = "spec#{suffix}"
|
10
|
+
ENV['PATH'].split(/:/).each do |dirname|
|
11
|
+
path = File.join(dirname, basename)
|
12
|
+
return path if File.file?(path) && File.executable?(path)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def run_spec_file(path)
|
17
|
+
original_rubylib = ENV['RUBYLIB']
|
18
|
+
ENV['RUBYLIB'] = "#{ROOT}/lib"
|
19
|
+
begin
|
20
|
+
output = `#{spec} "#{path}" 2>&1`
|
21
|
+
output[/.*/]
|
22
|
+
ensure
|
23
|
+
ENV['RUBYLIB'] = original_rubylib
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
Dir["#{SPEC_FILE_DIRECTORY}/*.rb"].each do |path|
|
28
|
+
name = File.basename(path).sub(/_spec\.rb\z/, '').gsub(/_/, ' ')
|
29
|
+
expected = File.read(path).match(/\A# expect: (.*)/)[1]
|
30
|
+
it(name){run_spec_file(path).should == expected}
|
31
|
+
end
|
32
|
+
end
|
metadata
ADDED
@@ -0,0 +1,111 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: rspec_outlines
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- George Ogata
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2009-11-14 00:00:00 -05:00
|
13
|
+
default_executable:
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: rspec
|
17
|
+
type: :development
|
18
|
+
version_requirement:
|
19
|
+
version_requirements: !ruby/object:Gem::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: "0"
|
24
|
+
version:
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: mocha
|
27
|
+
type: :development
|
28
|
+
version_requirement:
|
29
|
+
version_requirements: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: "0"
|
34
|
+
version:
|
35
|
+
description: |
|
36
|
+
Cucumber outlines for RSpec!
|
37
|
+
|
38
|
+
describe "Adding two numbers" do
|
39
|
+
outline "should return the sum" do
|
40
|
+
(a + b).should == c
|
41
|
+
end
|
42
|
+
|
43
|
+
fields :a, :b, :c
|
44
|
+
values 1, 1, 2
|
45
|
+
values 2, 3, 5
|
46
|
+
values 1, -1, 0
|
47
|
+
end
|
48
|
+
|
49
|
+
email: george.ogata@gmail.com
|
50
|
+
executables: []
|
51
|
+
|
52
|
+
extensions: []
|
53
|
+
|
54
|
+
extra_rdoc_files:
|
55
|
+
- LICENSE
|
56
|
+
- README.rdoc
|
57
|
+
files:
|
58
|
+
- .document
|
59
|
+
- .gitignore
|
60
|
+
- DESCRIPTION.txt
|
61
|
+
- LICENSE
|
62
|
+
- README.rdoc
|
63
|
+
- Rakefile
|
64
|
+
- VERSION
|
65
|
+
- lib/rspec_outlines.rb
|
66
|
+
- lib/rspec_outlines/error.rb
|
67
|
+
- lib/rspec_outlines/example_group.rb
|
68
|
+
- lib/rspec_outlines/example_methods.rb
|
69
|
+
- lib/rspec_outlines/example_proxy.rb
|
70
|
+
- lib/rspec_outlines/outline.rb
|
71
|
+
- rspec_outlines.gemspec
|
72
|
+
- spec/example_group_spec.rb
|
73
|
+
- spec/example_methods_spec.rb
|
74
|
+
- spec/spec.opts
|
75
|
+
- spec/spec_helper.rb
|
76
|
+
- spec_integration/integration_spec.rb
|
77
|
+
- spec_integration/spec.opts
|
78
|
+
- spec_integration/spec_files/should_not_affect_normal_specs.rb
|
79
|
+
- spec_integration/spec_files/should_run_the_outline_for_each_set_of_values_given.rb
|
80
|
+
has_rdoc: true
|
81
|
+
homepage: http://github.com/oggy/rspec_outlines
|
82
|
+
licenses: []
|
83
|
+
|
84
|
+
post_install_message:
|
85
|
+
rdoc_options:
|
86
|
+
- --charset=UTF-8
|
87
|
+
require_paths:
|
88
|
+
- lib
|
89
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
90
|
+
requirements:
|
91
|
+
- - ">="
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: "0"
|
94
|
+
version:
|
95
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
96
|
+
requirements:
|
97
|
+
- - ">="
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
version: "0"
|
100
|
+
version:
|
101
|
+
requirements: []
|
102
|
+
|
103
|
+
rubyforge_project:
|
104
|
+
rubygems_version: 1.3.5
|
105
|
+
signing_key:
|
106
|
+
specification_version: 3
|
107
|
+
summary: Define specs in tables.
|
108
|
+
test_files:
|
109
|
+
- spec/example_group_spec.rb
|
110
|
+
- spec/example_methods_spec.rb
|
111
|
+
- spec/spec_helper.rb
|