unencumbered 0.1.1 → 0.2.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
@@ -1,5 +1,6 @@
1
1
  *.sw?
2
2
  .DS_Store
3
3
  coverage
4
- rdoc
5
4
  pkg
5
+ rdoc
6
+ tags
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --colour
2
+ --format=documentation
data/Rakefile CHANGED
@@ -10,7 +10,24 @@ begin
10
10
  gem.email = "info@hashrocket.com"
11
11
  gem.homepage = "http://github.com/hashrocket/unencumbered"
12
12
  gem.authors = ["Hashrocket"]
13
+
14
+ gem.add_dependency 'rspec', '>= 2.0.0.beta.19'
13
15
  end
14
16
  rescue LoadError
15
17
  puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
16
18
  end
19
+
20
+ require 'rake/testtask'
21
+ Rake::TestTask.new(:test) do |test|
22
+ test.libs << 'lib' << 'test'
23
+ test.pattern = 'test/**/test_*.rb'
24
+ test.verbose = true
25
+ end
26
+
27
+ require 'rspec'
28
+ require 'rspec/core/rake_task'
29
+ RSpec::Core::RakeTask.new(:spec) do |spec|
30
+ spec.pattern = "spec/**/*_spec.rb"
31
+ end
32
+
33
+ task :default => [:spec]
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.1
1
+ 0.2.0
@@ -1,24 +1,28 @@
1
- module Spec::DSL::Main
2
- alias_method :Feature, :describe
3
- def narrative(description)
4
- @description_args.push("\n#{description}\n")
1
+ if defined?(RSpec)
2
+ module Rspec::Core::ObjectExtensions
3
+ alias_method :Feature, :describe
5
4
  end
6
- end
7
5
 
8
- module Spec::Example::ExampleGroupMethods
9
- def Scenario(description, &implementation)
10
- describe("Scenario: #{description}", &implementation)
11
- end
6
+ class RSpec::Core::ExampleGroup
7
+ def self.executes(scope=:all, &block)
8
+ before(scope, &block)
9
+ end
12
10
 
13
- def executes(scope=:all, &implementation)
14
- before(scope, &implementation)
15
- end
11
+ %w(Scenario: Given When Background).each do |group|
12
+ method_name = group.sub(":", "")
13
+ module_eval(<<-END_RUBY, __FILE__, __LINE__)
14
+ def self.#{method_name}(*args, &example_group_block)
15
+ describe(#{group.inspect}, *args, &example_group_block)
16
+ end
17
+ END_RUBY
18
+ end
16
19
 
17
- def method_missing(symbol,*args,&block)
18
- if symbol.to_s =~ /Given|When|Background/
19
- describe("#{symbol} #{args.first}", &block)
20
- elsif symbol.to_s =~ /Then|And|But/
21
- example("#{symbol} #{args.first}", &block)
20
+ %w(Then And But).each do |type|
21
+ module_eval(<<-END_RUBY, __FILE__, __LINE__)
22
+ def self.#{type}(desc=nil, options={}, &block)
23
+ example("#{type} \#{desc}", options, &block)
24
+ end
25
+ END_RUBY
22
26
  end
23
27
  end
24
28
  end
@@ -1,126 +1,95 @@
1
- require File.expand_path('../../../lib/unencumbered', __FILE__)
1
+ require 'spec_helper'
2
2
 
3
- describe Spec::DSL::Main do
4
- class TestBed
5
- include Spec::DSL::Main
6
- def initialize
7
- @description_args = []
8
- end
9
- end
10
-
11
- it 'responds to Feature' do
12
- Spec::DSL::Main.should respond_to(:Feature)
13
- end
14
-
15
- describe '#narrative' do
16
- it '#narrative appends the description to description_args' do
17
- dsl_main = TestBed.new
18
- dsl_main.instance_variable_get(:@description_args).should_receive(:push).with("\nfoo\n")
19
- dsl_main.narrative('foo'){}
20
- end
21
- end
22
- end
3
+ describe RSpec::Core::ExampleGroup do
4
+ subject { RSpec::Core::ExampleGroup.describe }
23
5
 
24
- describe Spec::Example::ExampleGroupMethods do
25
- class TestBed
26
- include Spec::Example::ExampleGroupMethods
6
+ it "responds to Feature" do
7
+ RSpec::Core::ExampleGroup.should respond_to(:Feature)
27
8
  end
28
9
 
29
- let(:example_group){ TestBed.new }
30
-
31
- shared_examples_for 'a standard describe proxy' do
32
- let(:spec_method){ spec_type.gsub(/\:/,'') }
33
-
10
+ shared_examples_for 'a describe method' do
11
+ let(:spec_method) { spec_type.sub(":", "") }
12
+ let(:description) { 'description' }
34
13
  it 'calls describe' do
35
- example_group.should_receive(:describe)
36
- example_group.send(spec_method,'foo'){}
14
+ subject.should_receive(:describe)
15
+ subject.send(spec_method)
37
16
  end
38
-
39
- it "prefaces the description" do
40
- example_group.should_receive(:describe).with("#{spec_type} foo")
41
- example_group.send(spec_method,'foo'){}
17
+ it 'calls describe with prefix' do
18
+ subject.should_receive(:describe).with(spec_type, description)
19
+ subject.send(spec_method, description)
42
20
  end
43
-
44
- it 'passes along the implementation block' do
45
- impl = lambda{ 'foo' }
46
- example_group.should_receive(:describe).with(anything,&impl)
47
- example_group.send(spec_method,'foo',&impl)
21
+ it 'calls describe with implementation' do
22
+ impl = lambda { |*args| }
23
+ subject.should_receive(:describe).with(spec_type, description, &impl)
24
+ subject.send(spec_method, description, &impl)
48
25
  end
49
26
  end
50
27
 
51
- shared_examples_for 'a standard example proxy' do
28
+ shared_examples_for 'an example method' do
29
+ let(:description) { 'description' }
52
30
  it 'calls example' do
53
- example_group.should_receive(:example)
54
- example_group.send(spec_method,'foo'){}
55
- end
56
-
57
- it 'prefaces the description' do
58
- example_group.should_receive(:example).with("#{spec_method} foo")
59
- example_group.send(spec_method,'foo'){}
60
- end
61
-
62
- it 'passes along the implementation block' do
63
- impl = lambda{ 'foo' }
64
- example_group.should_receive(:example).with(anything,&impl)
65
- example_group.send(spec_method,'foo',&impl)
66
- end
67
- end
68
-
69
- describe '#executes' do
70
- it 'calls before' do
71
- example_group.should_receive(:before)
72
- example_group.send(:executes){}
31
+ subject.should_receive(:example)
32
+ subject.send(spec_type)
73
33
  end
74
-
75
- it 'defaults the scope to :all' do
76
- example_group.should_receive(:before).with(:all)
77
- example_group.send(:executes){}
78
- end
79
-
80
- it 'allows you to override the scope' do
81
- example_group.should_receive(:before).with(:each)
82
- example_group.send(:executes,:each){}
34
+ it 'calls example with prefix' do
35
+ subject.should_receive(:example).with("#{spec_type} #{description}", {})
36
+ subject.send(spec_type, description)
83
37
  end
84
-
85
- it 'passes along the implementation block' do
86
- impl = lambda{ 'foo' }
87
- example_group.should_receive(:before).with(anything,&impl)
88
- example_group.send(:executes,&impl)
38
+ it 'calls example with implementation' do
39
+ impl = lambda { |*args| }
40
+ subject.should_receive(:example).with("#{spec_type} #{description}", {}, &impl)
41
+ subject.send(spec_type, description, &impl)
89
42
  end
90
43
  end
91
44
 
92
45
  describe "#Scenario" do
93
- let(:spec_type){ 'Scenario:' }
94
- it_should_behave_like 'a standard describe proxy'
46
+ let(:spec_type) { 'Scenario:' }
47
+ it_should_behave_like 'a describe method'
95
48
  end
96
49
 
97
50
  describe "#Given" do
98
- let(:spec_type){ 'Given' }
99
- it_should_behave_like 'a standard describe proxy'
51
+ let(:spec_type) { 'Given' }
52
+ it_should_behave_like 'a describe method'
100
53
  end
101
54
 
102
55
  describe "#When" do
103
- let(:spec_type){ 'When' }
104
- it_should_behave_like 'a standard describe proxy'
56
+ let(:spec_type) { 'When' }
57
+ it_should_behave_like 'a describe method'
105
58
  end
106
59
 
107
60
  describe "#Background" do
108
- let(:spec_type){ 'Background' }
109
- it_should_behave_like 'a standard describe proxy'
61
+ let(:spec_type) { 'Background' }
62
+ it_should_behave_like 'a describe method'
63
+ end
64
+
65
+ describe "#Then" do
66
+ let(:spec_type) { 'Then' }
67
+ it_should_behave_like 'an example method'
110
68
  end
111
69
 
112
70
  describe "#And" do
113
- let(:spec_method){ 'And' }
114
- it_should_behave_like 'a standard example proxy'
71
+ let(:spec_type) { 'And' }
72
+ it_should_behave_like 'an example method'
115
73
  end
116
74
 
117
75
  describe "#But" do
118
- let(:spec_method){ 'But' }
119
- it_should_behave_like 'a standard example proxy'
76
+ let(:spec_type) { 'But' }
77
+ it_should_behave_like 'an example method'
120
78
  end
121
79
 
122
- describe "#Then" do
123
- let(:spec_method){ 'Then' }
124
- it_should_behave_like 'a standard example proxy'
80
+ describe "#executes" do
81
+ it "calls before with :all scope by default" do
82
+ subject.should_receive(:before).with(:all)
83
+ subject.executes
84
+ end
85
+ it "calls before with scope" do
86
+ subject.should_receive(:before).with(:each)
87
+ subject.executes(:each)
88
+ end
89
+ it "calls before with scope and block" do
90
+ impl = lambda { |*args| }
91
+ subject.should_receive(:before).with(:all, &impl)
92
+ subject.executes &impl
93
+ end
125
94
  end
126
95
  end
@@ -0,0 +1,13 @@
1
+ require 'rubygems'
2
+ require 'rspec'
3
+ require File.expand_path('../../lib/unencumbered', __FILE__)
4
+
5
+ RSpec.configure do |c|
6
+ c.before(:each) do
7
+ @real_world = RSpec.world
8
+ RSpec.instance_variable_set(:@world, RSpec::Core::World.new)
9
+ end
10
+ c.after(:each) do
11
+ RSpec.instance_variable_set(:@world, @real_world)
12
+ end
13
+ end
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{unencumbered}
8
- s.version = "0.1.1"
8
+ s.version = "0.2.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Hashrocket"]
12
- s.date = %q{2010-01-25}
12
+ s.date = %q{2010-08-12}
13
13
  s.description = %q{You got Cucumber in my RSpec!}
14
14
  s.email = %q{info@hashrocket.com}
15
15
  s.extra_rdoc_files = [
@@ -19,32 +19,37 @@ Gem::Specification.new do |s|
19
19
  s.files = [
20
20
  ".document",
21
21
  ".gitignore",
22
+ ".rspec",
22
23
  "LICENSE",
23
24
  "README.textile",
24
25
  "Rakefile",
25
26
  "VERSION",
26
27
  "lib/unencumbered.rb",
27
28
  "spec/lib/unencumbered_spec.rb",
28
- "spec/spec.opts",
29
+ "spec/spec_helper.rb",
29
30
  "unencumbered.gemspec"
30
31
  ]
31
32
  s.homepage = %q{http://github.com/hashrocket/unencumbered}
32
33
  s.rdoc_options = ["--charset=UTF-8"]
33
34
  s.require_paths = ["lib"]
34
- s.rubygems_version = %q{1.3.5}
35
+ s.rubygems_version = %q{1.3.7}
35
36
  s.summary = %q{Just enough Cucumber in RSpec.}
36
37
  s.test_files = [
37
- "spec/lib/unencumbered_spec.rb"
38
+ "spec/lib/unencumbered_spec.rb",
39
+ "spec/spec_helper.rb"
38
40
  ]
39
41
 
40
42
  if s.respond_to? :specification_version then
41
43
  current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
42
44
  s.specification_version = 3
43
45
 
44
- if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
46
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
47
+ s.add_runtime_dependency(%q<rspec>, [">= 2.0.0.beta.19"])
45
48
  else
49
+ s.add_dependency(%q<rspec>, [">= 2.0.0.beta.19"])
46
50
  end
47
51
  else
52
+ s.add_dependency(%q<rspec>, [">= 2.0.0.beta.19"])
48
53
  end
49
54
  end
50
55
 
metadata CHANGED
@@ -1,7 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: unencumbered
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ hash: 23
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 2
9
+ - 0
10
+ version: 0.2.0
5
11
  platform: ruby
6
12
  authors:
7
13
  - Hashrocket
@@ -9,10 +15,27 @@ autorequire:
9
15
  bindir: bin
10
16
  cert_chain: []
11
17
 
12
- date: 2010-01-25 00:00:00 -05:00
18
+ date: 2010-08-12 00:00:00 -05:00
13
19
  default_executable:
14
- dependencies: []
15
-
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: rspec
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ hash: 62196421
30
+ segments:
31
+ - 2
32
+ - 0
33
+ - 0
34
+ - beta
35
+ - 19
36
+ version: 2.0.0.beta.19
37
+ type: :runtime
38
+ version_requirements: *id001
16
39
  description: You got Cucumber in my RSpec!
17
40
  email: info@hashrocket.com
18
41
  executables: []
@@ -25,13 +48,14 @@ extra_rdoc_files:
25
48
  files:
26
49
  - .document
27
50
  - .gitignore
51
+ - .rspec
28
52
  - LICENSE
29
53
  - README.textile
30
54
  - Rakefile
31
55
  - VERSION
32
56
  - lib/unencumbered.rb
33
57
  - spec/lib/unencumbered_spec.rb
34
- - spec/spec.opts
58
+ - spec/spec_helper.rb
35
59
  - unencumbered.gemspec
36
60
  has_rdoc: true
37
61
  homepage: http://github.com/hashrocket/unencumbered
@@ -43,23 +67,30 @@ rdoc_options:
43
67
  require_paths:
44
68
  - lib
45
69
  required_ruby_version: !ruby/object:Gem::Requirement
70
+ none: false
46
71
  requirements:
47
72
  - - ">="
48
73
  - !ruby/object:Gem::Version
74
+ hash: 3
75
+ segments:
76
+ - 0
49
77
  version: "0"
50
- version:
51
78
  required_rubygems_version: !ruby/object:Gem::Requirement
79
+ none: false
52
80
  requirements:
53
81
  - - ">="
54
82
  - !ruby/object:Gem::Version
83
+ hash: 3
84
+ segments:
85
+ - 0
55
86
  version: "0"
56
- version:
57
87
  requirements: []
58
88
 
59
89
  rubyforge_project:
60
- rubygems_version: 1.3.5
90
+ rubygems_version: 1.3.7
61
91
  signing_key:
62
92
  specification_version: 3
63
93
  summary: Just enough Cucumber in RSpec.
64
94
  test_files:
65
95
  - spec/lib/unencumbered_spec.rb
96
+ - spec/spec_helper.rb
@@ -1,4 +0,0 @@
1
- --colour
2
- --format specdoc
3
- --loadby mtime
4
- --reverse