rspec-core 2.0.0.beta.16 → 2.0.0.beta.17

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -1,10 +1,9 @@
1
1
  source "http://rubygems.org"
2
2
 
3
- gem "bundler"
4
3
  gem "rake"
5
4
  gem "jeweler"
6
5
  gem "cucumber"
7
- gem "aruba", :git => "git://github.com/dchelimsky/aruba.git", :branch => "add-gemspec"
6
+ gem "aruba", ">= 0.2.0"
8
7
  gem "autotest"
9
8
  gem "watchr"
10
9
  gem "rcov"
@@ -16,8 +15,8 @@ gem "syntax"
16
15
  gem "rspec-core", :path => "."
17
16
  gem "rspec-expectations", :path => "../rspec-expectations"
18
17
  gem "rspec-mocks", :path => "../rspec-mocks"
19
- if RUBY_VERSION.to_s =~ /1.9.1/
18
+ if RUBY_VERSION.to_s =~ /1.9/
20
19
  gem "ruby-debug19"
21
- elsif !(RUBY_VERSION.to_s =~ /1.9.2/)
20
+ else
22
21
  gem "ruby-debug"
23
22
  end
@@ -72,10 +72,13 @@ is a feature that is not documented there, or you find them insufficient to
72
72
  understand how to use a feature, please submit issues to
73
73
  [http://github.com/rspec/rspec-core/issues](http://github.com/rspec/rspec-core/issues).
74
74
 
75
- #### Also see
75
+ ## Contribute
76
+
77
+ See [http://github.com/rspec/rspec-dev](http://github.com/rspec/rspec-dev)
78
+
79
+ ## Also see
76
80
 
77
81
  * [http://github.com/rspec/rspec](http://github.com/rspec/rspec)
78
82
  * [http://github.com/rspec/rspec-expectations](http://github.com/rspec/rspec-expectations)
79
83
  * [http://github.com/rspec/rspec-mocks](http://github.com/rspec/rspec-mocks)
80
- * [http://github.com/rspec/rspec-dev](http://github.com/rspec/rspec-dev)
81
84
 
data/Rakefile CHANGED
@@ -65,6 +65,14 @@ task :clobber do
65
65
  rm_rf 'coverage'
66
66
  end
67
67
 
68
+ class Cucumber::Rake::Task::ForkedCucumberRunner
69
+ # When cucumber shells out, we still need it to run in the context of our
70
+ # bundle.
71
+ def run
72
+ sh "bundle exec #{RUBY} " + args.join(" ")
73
+ end
74
+ end
75
+
68
76
  if RUBY_VERSION.to_f >= 1.9
69
77
  Cucumber::Rake::Task.new(:cucumber) do |t|
70
78
  t.cucumber_opts = %w{--format progress}
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.0.0.beta.16
1
+ 2.0.0.beta.17
@@ -1,18 +1 @@
1
- require "bundler"
2
- Bundler.setup
3
-
4
1
  require 'aruba'
5
- require 'rspec/expectations'
6
-
7
- module ArubaOverrides
8
- def detect_ruby_script(cmd)
9
- if cmd =~ /^rspec /
10
- "bundle exec ../../bin/#{cmd}"
11
- else
12
- super(cmd)
13
- end
14
- end
15
- end
16
-
17
- World(ArubaOverrides)
18
-
@@ -2,6 +2,10 @@ module RSpec
2
2
  module Core
3
3
  class CommandLine
4
4
  def initialize(options, configuration=RSpec::configuration, world=RSpec::world)
5
+ if Array === options
6
+ options = ConfigurationOptions.new(options)
7
+ options.parse_options
8
+ end
5
9
  @options = options
6
10
  @configuration = configuration
7
11
  @world = world
@@ -10,7 +14,7 @@ module RSpec
10
14
  def run(err, out)
11
15
  @options.configure(@configuration)
12
16
  @configuration.error_stream = err
13
- @configuration.output_stream = out
17
+ @configuration.output_stream ||= out
14
18
  @configuration.require_files_to_run
15
19
  @configuration.configure_mock_framework
16
20
  @world.announce_inclusion_filter
@@ -49,7 +49,7 @@ module RSpec
49
49
  @in_block = true
50
50
  with_pending_capture &@example_block
51
51
  rescue Exception => e
52
- @exception = e
52
+ set_exception(e)
53
53
  ensure
54
54
  @in_block = false
55
55
  run_after_each
@@ -60,7 +60,7 @@ module RSpec
60
60
  end.call
61
61
  end
62
62
  rescue Exception => e
63
- @exception ||= e
63
+ set_exception(e)
64
64
  ensure
65
65
  @example_group_instance.example = nil
66
66
  assign_auto_description
@@ -69,6 +69,10 @@ module RSpec
69
69
  finish(reporter)
70
70
  end
71
71
 
72
+ def set_exception(exception)
73
+ @exception ||= exception
74
+ end
75
+
72
76
  private
73
77
 
74
78
  def with_pending_capture
@@ -79,15 +83,7 @@ module RSpec
79
83
  end
80
84
 
81
85
  def with_around_hooks(&wrapped_example)
82
- around_hooks_for(@example_group_class).reverse.inject(wrapped_example) do |wrapper, hook|
83
- def wrapper.run; call; end
84
- lambda { @example_group_instance.instance_exec(wrapper, &hook) }
85
- end
86
- end
87
-
88
- def around_hooks_for(example_group_class)
89
- (RSpec.configuration.hooks[:around][:each] +
90
- @example_group_class.ancestors.reverse.map{|a| a.hooks[:around][:each]}).flatten
86
+ @example_group_class.eval_around_eachs(@example_group_instance, wrapped_example)
91
87
  end
92
88
 
93
89
  def start(reporter)
@@ -145,7 +145,7 @@ module RSpec
145
145
  superclass.before_all_ivars.each { |ivar, val| example.instance_variable_set(ivar, val) }
146
146
  world.run_hook_filtered(:before, :all, self, example)
147
147
 
148
- run_hook!(:before, :all, example, :reverse => true)
148
+ run_hook!(:before, :all, example)
149
149
  example.instance_variables.each { |ivar| before_all_ivars[ivar] = example.instance_variable_get(ivar) }
150
150
  end
151
151
 
@@ -155,10 +155,21 @@ module RSpec
155
155
  end
156
156
 
157
157
  def self.eval_after_eachs(example)
158
- ancestors.each { |ancestor| ancestor.run_hook(:after, :each, example, :reverse => true) }
158
+ ancestors.each { |ancestor| ancestor.run_hook(:after, :each, example) }
159
159
  world.run_hook_filtered(:after, :each, self, example)
160
160
  end
161
161
 
162
+ def self.eval_around_eachs(example_group_instance, wrapped_example)
163
+ around_hooks.reverse.inject(wrapped_example) do |wrapper, hook|
164
+ def wrapper.run; call; end
165
+ lambda { example_group_instance.instance_exec(wrapper, &hook) }
166
+ end
167
+ end
168
+
169
+ def self.around_hooks
170
+ (world.find_hook(:around, :each, self) + ancestors.reverse.map{|a| a.find_hook(:around, :each, self)}).flatten
171
+ end
172
+
162
173
  def self.eval_after_alls(example)
163
174
  return if descendant_filtered_examples.empty?
164
175
  before_all_ivars.each { |ivar, val| example.instance_variable_set(ivar, val) }
@@ -155,7 +155,7 @@ module RSpec
155
155
  old_sync, output.sync = output.sync, true if output_supports_sync
156
156
  yield
157
157
  ensure
158
- output.sync = old_sync if output_supports_sync
158
+ output.sync = old_sync if output_supports_sync and !output.closed?
159
159
  end
160
160
  end
161
161
 
@@ -1,6 +1,7 @@
1
1
  module RSpec
2
2
  module Core
3
3
  module Hooks
4
+
4
5
  class Hook
5
6
  attr_reader :options
6
7
 
@@ -13,69 +14,109 @@ module RSpec
13
14
  !group || group.all_apply?(options)
14
15
  end
15
16
 
17
+ def to_proc
18
+ @block
19
+ end
20
+
16
21
  def call
17
22
  @block.call
18
23
  end
24
+ end
19
25
 
20
- def to_proc
21
- @block
26
+ class BeforeHook < Hook
27
+ def run_in(example)
28
+ example ? example.instance_eval(&self) : call
29
+ end
30
+ end
31
+
32
+ class AfterHook < Hook
33
+ def run_in(example)
34
+ if example
35
+ begin
36
+ example.instance_eval(&self)
37
+ rescue Exception => e
38
+ if example.respond_to?(:example)
39
+ example.example.set_exception(e)
40
+ end
41
+ end
42
+ else
43
+ call
44
+ end
45
+ end
46
+ end
47
+
48
+ class AroundHook < Hook
49
+ def call(wrapped_example)
50
+ @block.call(wrapped_example)
51
+ end
52
+ end
53
+
54
+ class HookCollection < Array
55
+ def find_hooks_for(group)
56
+ dup.reject {|hook| !hook.options_apply?(group)}
22
57
  end
23
58
  end
24
59
 
60
+ class BeforeHooks < HookCollection
61
+ def run_all(example)
62
+ each {|h| h.run_in(example) }
63
+ end
64
+
65
+ def run_all!(example)
66
+ shift.run_in(example) until empty?
67
+ end
68
+ end
69
+
70
+ class AfterHooks < HookCollection
71
+ def run_all(example)
72
+ reverse.each {|h| h.run_in(example) }
73
+ end
74
+
75
+ def run_all!(example)
76
+ pop.run_in(example) until empty?
77
+ end
78
+ end
79
+
80
+ class AroundHooks < HookCollection; end
81
+
25
82
  def hooks
26
83
  @hooks ||= {
27
- :around => { :each => [] },
28
- :before => { :each => [], :all => [], :suite => [] },
29
- :after => { :each => [], :all => [], :suite => [] }
84
+ :around => { :each => AroundHooks.new },
85
+ :before => { :each => BeforeHooks.new, :all => BeforeHooks.new, :suite => BeforeHooks.new },
86
+ :after => { :each => AfterHooks.new, :all => AfterHooks.new, :suite => AfterHooks.new }
30
87
  }
31
88
  end
32
89
 
33
90
  def before(scope=:each, options={}, &block)
34
- hooks[:before][scope] << Hook.new(options, block)
91
+ hooks[:before][scope] << BeforeHook.new(options, block)
35
92
  end
36
93
 
37
94
  def after(scope=:each, options={}, &block)
38
- hooks[:after][scope] << Hook.new(options, block)
95
+ hooks[:after][scope] << AfterHook.new(options, block)
39
96
  end
40
97
 
41
- def around(scope=:each, &block)
42
- hooks[:around][scope] << block
98
+ def around(scope=:each, options={}, &block)
99
+ hooks[:around][scope] << AroundHook.new(options, block)
43
100
  end
44
101
 
45
102
  # Runs all of the blocks stored with the hook in the context of the
46
103
  # example. If no example is provided, just calls the hook directly.
47
- def run_hook(hook, scope, example=nil, options={})
48
- if options[:reverse]
49
- hooks[hook][scope].reverse.each &run_hook_in(example)
50
- else
51
- hooks[hook][scope].each &run_hook_in(example)
52
- end
104
+ def run_hook(hook, scope, example=nil)
105
+ hooks[hook][scope].run_all(example)
53
106
  end
54
107
 
55
108
  # Just like run_hook, except it removes the blocks as it evalutes them,
56
109
  # ensuring that they will only be run once.
57
- def run_hook!(hook, scope, example, options={})
58
- until hooks[hook][scope].empty?
59
- if options[:reverse]
60
- example.instance_eval &hooks[hook][scope].shift
61
- else
62
- example.instance_eval &hooks[hook][scope].pop
63
- end
64
- end
110
+ def run_hook!(hook, scope, example)
111
+ hooks[hook][scope].run_all!(example)
65
112
  end
66
113
 
67
114
  def run_hook_filtered(hook, scope, group, example)
68
- find_hook(hook, scope, group).each &run_hook_in(example)
115
+ find_hook(hook, scope, group).run_all(example)
69
116
  end
70
117
 
71
118
  def find_hook(hook, scope, group)
72
- hooks[hook][scope].select {|hook| hook.options_apply?(group)}
73
- end
74
-
75
- private
76
-
77
- def run_hook_in(example)
78
- lambda {|hook| example ? example.instance_eval(&hook) : hook.call}
119
+ hooks[hook][scope].find_hooks_for(group)
79
120
  end
80
121
  end
81
122
  end
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{rspec-core}
8
- s.version = "2.0.0.beta.16"
8
+ s.version = "2.0.0.beta.17"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Chad Humphries", "David Chelimsky"]
12
- s.date = %q{2010-07-06}
12
+ s.date = %q{2010-07-11}
13
13
  s.default_executable = %q{rspec}
14
14
  s.description = %q{RSpec runner and example groups}
15
15
  s.email = %q{dchelimsky@gmail.com;chad.humphries@gmail.com}
@@ -103,6 +103,7 @@ Gem::Specification.new do |s|
103
103
  "spec/autotest/failed_results_re_spec.rb",
104
104
  "spec/autotest/rspec_spec.rb",
105
105
  "spec/rspec/core/command_line_spec.rb",
106
+ "spec/rspec/core/command_line_spec_output.txt",
106
107
  "spec/rspec/core/configuration_options_spec.rb",
107
108
  "spec/rspec/core/configuration_spec.rb",
108
109
  "spec/rspec/core/core_spec.rb",
@@ -121,6 +122,7 @@ Gem::Specification.new do |s|
121
122
  "spec/rspec/core/formatters/progress_formatter_spec.rb",
122
123
  "spec/rspec/core/formatters/snippet_extractor_spec.rb",
123
124
  "spec/rspec/core/formatters/text_mate_formatted-1.8.7.html",
125
+ "spec/rspec/core/formatters/text_mate_formatted-1.9.2.html",
124
126
  "spec/rspec/core/formatters/text_mate_formatter_spec.rb",
125
127
  "spec/rspec/core/hooks_spec.rb",
126
128
  "spec/rspec/core/kernel_extensions_spec.rb",
@@ -147,7 +149,7 @@ Gem::Specification.new do |s|
147
149
  s.homepage = %q{http://github.com/rspec/rspec-core}
148
150
  s.post_install_message = %q{**************************************************
149
151
 
150
- Thank you for installing rspec-core-2.0.0.beta.16
152
+ Thank you for installing rspec-core-2.0.0.beta.17
151
153
 
152
154
  **************************************************
153
155
  }
@@ -155,7 +157,7 @@ Gem::Specification.new do |s|
155
157
  s.require_paths = ["lib"]
156
158
  s.rubyforge_project = %q{rspec}
157
159
  s.rubygems_version = %q{1.3.7}
158
- s.summary = %q{rspec-core-2.0.0.beta.16}
160
+ s.summary = %q{rspec-core-2.0.0.beta.17}
159
161
  s.test_files = [
160
162
  "spec/autotest/failed_results_re_spec.rb",
161
163
  "spec/autotest/rspec_spec.rb",
@@ -202,19 +204,19 @@ Gem::Specification.new do |s|
202
204
  s.specification_version = 3
203
205
 
204
206
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
205
- s.add_development_dependency(%q<rspec-expectations>, [">= 2.0.0.beta.16"])
206
- s.add_development_dependency(%q<rspec-mocks>, [">= 2.0.0.beta.16"])
207
+ s.add_development_dependency(%q<rspec-expectations>, [">= 2.0.0.beta.17"])
208
+ s.add_development_dependency(%q<rspec-mocks>, [">= 2.0.0.beta.17"])
207
209
  s.add_development_dependency(%q<cucumber>, [">= 0.5.3"])
208
210
  s.add_development_dependency(%q<autotest>, [">= 4.2.9"])
209
211
  else
210
- s.add_dependency(%q<rspec-expectations>, [">= 2.0.0.beta.16"])
211
- s.add_dependency(%q<rspec-mocks>, [">= 2.0.0.beta.16"])
212
+ s.add_dependency(%q<rspec-expectations>, [">= 2.0.0.beta.17"])
213
+ s.add_dependency(%q<rspec-mocks>, [">= 2.0.0.beta.17"])
212
214
  s.add_dependency(%q<cucumber>, [">= 0.5.3"])
213
215
  s.add_dependency(%q<autotest>, [">= 4.2.9"])
214
216
  end
215
217
  else
216
- s.add_dependency(%q<rspec-expectations>, [">= 2.0.0.beta.16"])
217
- s.add_dependency(%q<rspec-mocks>, [">= 2.0.0.beta.16"])
218
+ s.add_dependency(%q<rspec-expectations>, [">= 2.0.0.beta.17"])
219
+ s.add_dependency(%q<rspec-mocks>, [">= 2.0.0.beta.17"])
218
220
  s.add_dependency(%q<cucumber>, [">= 0.5.3"])
219
221
  s.add_dependency(%q<autotest>, [">= 4.2.9"])
220
222
  end
@@ -1,8 +1,20 @@
1
1
  require "spec_helper"
2
2
  require "stringio"
3
+ require 'tmpdir'
3
4
 
4
5
  module RSpec::Core
5
6
  describe CommandLine do
7
+ context "given an Array of options" do
8
+ it "assigns ConfigurationOptions built from Array to @options" do
9
+ config_options = ConfigurationOptions.new(%w[--color])
10
+ config_options.parse_options
11
+
12
+ array_options = %w[--color]
13
+ command_line = CommandLine.new(array_options)
14
+ command_line.instance_eval { @options.options }.should eq(config_options.options)
15
+ end
16
+ end
17
+
6
18
  context "given a ConfigurationOptions object" do
7
19
  it "assigns it to @options" do
8
20
  config_options = ConfigurationOptions.new(%w[--color])
@@ -59,6 +71,43 @@ module RSpec::Core
59
71
  after_suite_called.should be_true
60
72
  end
61
73
  end
74
+
75
+ describe "#run with custom output" do
76
+ let(:config_options) do
77
+ config_options = ConfigurationOptions.new(%w[--color])
78
+ config_options.parse_options
79
+ config_options
80
+ end
81
+
82
+ let(:command_line) do
83
+ CommandLine.new(config_options, config)
84
+ end
85
+
86
+ let(:output_file_path) do
87
+ Dir.tmpdir + "/command_line_spec_output.txt"
88
+ end
89
+
90
+ let(:output_file) do
91
+ File.new(output_file_path, 'w')
92
+ end
93
+
94
+ let(:config) do
95
+ config = RSpec::Core::Configuration.new
96
+ config.output_stream = output_file
97
+ config
98
+ end
99
+
100
+ let(:out) { ::StringIO.new }
62
101
 
102
+ before do
103
+ config.stub(:run_hook)
104
+ end
105
+
106
+ it "doesn't override output_stream" do
107
+ command_line.run(out, out)
108
+ command_line.instance_eval { @configuration.output_stream }.should eql(output_file)
109
+ end
110
+ end
111
+
63
112
  end
64
113
  end
@@ -82,6 +82,29 @@ describe RSpec::Core::Example, :parent_metadata => 'sample' do
82
82
  after_run.should be_true, "expected after(:each) to be run"
83
83
  end
84
84
 
85
+ context "with an after(:each) that raises" do
86
+ it "runs subsequent after(:each)'s" do
87
+ after_run = false
88
+ group = RSpec::Core::ExampleGroup.describe do
89
+ after(:each) { after_run = true }
90
+ after(:each) { raise "FOO" }
91
+ example('example') { 1.should == 1 }
92
+ end
93
+ group.run_all
94
+ after_run.should be_true, "expected after(:each) to be run"
95
+ end
96
+
97
+ it "stores the exception" do
98
+ group = RSpec::Core::ExampleGroup.describe
99
+ group.after(:each) { raise "FOO" }
100
+ example = group.example('example') { 1.should == 1 }
101
+
102
+ group.run_all
103
+
104
+ example.metadata[:execution_result][:exception_encountered].message.should == "FOO"
105
+ end
106
+ end
107
+
85
108
  it "wraps before/after(:each) inside around" do
86
109
  results = []
87
110
  group = RSpec::Core::ExampleGroup.describe do
@@ -0,0 +1,280 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
5
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
6
+ <head>
7
+ <title>RSpec results</title>
8
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
9
+ <meta http-equiv="Expires" content="-1" />
10
+ <meta http-equiv="Pragma" content="no-cache" />
11
+ <style type="text/css">
12
+ body {
13
+ margin: 0;
14
+ padding: 0;
15
+ background: #fff;
16
+ font-size: 80%;
17
+ }
18
+ </style>
19
+ <script type="text/javascript">
20
+ // <![CDATA[
21
+ function moveProgressBar(percentDone) {
22
+ document.getElementById("rspec-header").style.width = percentDone +"%";
23
+ }
24
+ function makeRed(element_id) {
25
+ document.getElementById(element_id).style.background = '#C40D0D';
26
+ document.getElementById(element_id).style.color = '#FFFFFF';
27
+ }
28
+
29
+ function makeYellow(element_id) {
30
+ if (element_id == "rspec-header" && document.getElementById(element_id).style.background != '#C40D0D')
31
+ {
32
+ document.getElementById(element_id).style.background = '#FAF834';
33
+ document.getElementById(element_id).style.color = '#000000';
34
+ }
35
+ else
36
+ {
37
+ document.getElementById(element_id).style.background = '#FAF834';
38
+ document.getElementById(element_id).style.color = '#000000';
39
+ }
40
+ }
41
+
42
+ // ]]>
43
+ </script>
44
+ <style type="text/css">
45
+ #rspec-header {
46
+ background: #65C400; color: #fff; height: 4em;
47
+ }
48
+
49
+ .rspec-report h1 {
50
+ margin: 0px 10px 0px 10px;
51
+ padding: 10px;
52
+ font-family: "Lucida Grande", Helvetica, sans-serif;
53
+ font-size: 1.8em;
54
+ position: absolute;
55
+ }
56
+
57
+ #summary {
58
+ margin: 0; padding: 5px 10px;
59
+ font-family: "Lucida Grande", Helvetica, sans-serif;
60
+ text-align: right;
61
+ top: 0px;
62
+ right: 0px;
63
+ float:right;
64
+ }
65
+
66
+ #summary p {
67
+ margin: 0 0 0 2px;
68
+ }
69
+
70
+ #summary #totals {
71
+ font-size: 1.2em;
72
+ }
73
+
74
+ .example_group {
75
+ margin: 0 10px 5px;
76
+ background: #fff;
77
+ }
78
+
79
+ dl {
80
+ margin: 0; padding: 0 0 5px;
81
+ font: normal 11px "Lucida Grande", Helvetica, sans-serif;
82
+ }
83
+
84
+ dt {
85
+ padding: 3px;
86
+ background: #65C400;
87
+ color: #fff;
88
+ font-weight: bold;
89
+ }
90
+
91
+ dd {
92
+ margin: 5px 0 5px 5px;
93
+ padding: 3px 3px 3px 18px;
94
+ }
95
+
96
+ dd.spec.passed {
97
+ border-left: 5px solid #65C400;
98
+ border-bottom: 1px solid #65C400;
99
+ background: #DBFFB4; color: #3D7700;
100
+ }
101
+
102
+ dd.spec.failed {
103
+ border-left: 5px solid #C20000;
104
+ border-bottom: 1px solid #C20000;
105
+ color: #C20000; background: #FFFBD3;
106
+ }
107
+
108
+ dd.spec.not_implemented {
109
+ border-left: 5px solid #FAF834;
110
+ border-bottom: 1px solid #FAF834;
111
+ background: #FCFB98; color: #131313;
112
+ }
113
+
114
+ dd.spec.pending_fixed {
115
+ border-left: 5px solid #0000C2;
116
+ border-bottom: 1px solid #0000C2;
117
+ color: #0000C2; background: #D3FBFF;
118
+ }
119
+
120
+ .backtrace {
121
+ color: #000;
122
+ font-size: 12px;
123
+ }
124
+
125
+ a {
126
+ color: #BE5C00;
127
+ }
128
+
129
+ /* Ruby code, style similar to vibrant ink */
130
+ .ruby {
131
+ font-size: 12px;
132
+ font-family: monospace;
133
+ color: white;
134
+ background-color: black;
135
+ padding: 0.1em 0 0.2em 0;
136
+ }
137
+
138
+ .ruby .keyword { color: #FF6600; }
139
+ .ruby .constant { color: #339999; }
140
+ .ruby .attribute { color: white; }
141
+ .ruby .global { color: white; }
142
+ .ruby .module { color: white; }
143
+ .ruby .class { color: white; }
144
+ .ruby .string { color: #66FF00; }
145
+ .ruby .ident { color: white; }
146
+ .ruby .method { color: #FFCC00; }
147
+ .ruby .number { color: white; }
148
+ .ruby .char { color: white; }
149
+ .ruby .comment { color: #9933CC; }
150
+ .ruby .symbol { color: white; }
151
+ .ruby .regex { color: #44B4CC; }
152
+ .ruby .punct { color: white; }
153
+ .ruby .escape { color: white; }
154
+ .ruby .interp { color: white; }
155
+ .ruby .expr { color: white; }
156
+
157
+ .ruby .offending { background-color: gray; }
158
+ .ruby .linenum {
159
+ width: 75px;
160
+ padding: 0.1em 1em 0.2em 0;
161
+ color: #000000;
162
+ background-color: #FFFBD3;
163
+ }
164
+
165
+ </style>
166
+ </head>
167
+ <body>
168
+ <div class="rspec-report">
169
+
170
+ <div id="rspec-header">
171
+ <div id="label">
172
+ <h1>RSpec Code Examples</h1>
173
+ </div>
174
+
175
+ <div id="summary">
176
+ <p id="totals">&nbsp;</p>
177
+ <p id="duration">&nbsp;</p>
178
+ </div>
179
+ </div>
180
+
181
+ <div class="results">
182
+ <div class="example_group">
183
+ <dl>
184
+ <dt id="example_group_1">pending spec with no implementation</dt>
185
+ <script type="text/javascript">makeYellow('rspec-header');</script>
186
+ <script type="text/javascript">makeYellow('example_group_1');</script>
187
+ <script type="text/javascript">moveProgressBar('20.0');</script>
188
+ <dd class="spec not_implemented"><span class="not_implemented_spec_name">is pending (PENDING: Not Yet Implemented)</span></dd>
189
+ </dl>
190
+ </div>
191
+ <div class="example_group">
192
+ <dl>
193
+ <dt id="example_group_2">pending command with block format</dt>
194
+ </dl>
195
+ </div>
196
+ <div class="example_group">
197
+ <dl>
198
+ <dt id="example_group_3">with content that would fail</dt>
199
+ <script type="text/javascript">makeYellow('rspec-header');</script>
200
+ <script type="text/javascript">makeYellow('example_group_3');</script>
201
+ <script type="text/javascript">moveProgressBar('40.0');</script>
202
+ <dd class="spec not_implemented"><span class="not_implemented_spec_name">is pending (PENDING: No reason given)</span></dd>
203
+ </dl>
204
+ </div>
205
+ <div class="example_group">
206
+ <dl>
207
+ <dt id="example_group_4">with content that would pass</dt>
208
+ <script type="text/javascript">makeRed('rspec-header');</script>
209
+ <script type="text/javascript">makeRed('example_group_4');</script>
210
+ <script type="text/javascript">moveProgressBar('60.0');</script>
211
+ <dd class="spec pending_fixed">
212
+ <span class="failed_spec_name">fails</span>
213
+ <div class="failure" id="failure_0">
214
+ <div class="message"><pre>RSpec::Core::PendingExampleFixedError</pre></div>
215
+ <div class="backtrace"><pre><a href="txmt://open?url=file:///Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/rspec/core/resources/formatter_specs.rb&line=19">./spec/rspec/core/resources/formatter_specs.rb:19</a> :in `block (3 levels) in <top (required)>'
216
+ <a href="txmt://open?url=file:///Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/rspec/core/formatters/text_mate_formatter_spec.rb&line=23">./spec/rspec/core/formatters/text_mate_formatter_spec.rb:23</a> :in `block (2 levels) in <module:Formatters>'
217
+ <a href="txmt://open?url=file:///Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/rspec/core/formatters/text_mate_formatter_spec.rb&line=43">./spec/rspec/core/formatters/text_mate_formatter_spec.rb:43</a> :in `block (5 levels) in <module:Formatters>'
218
+ <a href="txmt://open?url=file:///Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/rspec/core/formatters/text_mate_formatter_spec.rb&line=43">./spec/rspec/core/formatters/text_mate_formatter_spec.rb:43</a> :in `open'
219
+ <a href="txmt://open?url=file:///Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/rspec/core/formatters/text_mate_formatter_spec.rb&line=43">./spec/rspec/core/formatters/text_mate_formatter_spec.rb:43</a> :in `block (4 levels) in <module:Formatters>'
220
+ <a href="txmt://open?url=file:///Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/rspec/core/formatters/text_mate_formatter_spec.rb&line=42">./spec/rspec/core/formatters/text_mate_formatter_spec.rb:42</a> :in `chdir'
221
+ <a href="txmt://open?url=file:///Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/rspec/core/formatters/text_mate_formatter_spec.rb&line=42">./spec/rspec/core/formatters/text_mate_formatter_spec.rb:42</a> :in `block (3 levels) in <module:Formatters>'
222
+ <a href="txmt://open?url=file:///Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/spec_helper.rb&line=70">./spec/spec_helper.rb:70</a> :in `block (3 levels) in <top (required)>'
223
+ <a href="txmt://open?url=file:///Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/spec_helper.rb&line=46">./spec/spec_helper.rb:46</a> :in `instance_eval'
224
+ <a href="txmt://open?url=file:///Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/spec_helper.rb&line=46">./spec/spec_helper.rb:46</a> :in `sandboxed'
225
+ <a href="txmt://open?url=file:///Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/spec_helper.rb&line=70">./spec/spec_helper.rb:70</a> :in `block (2 levels) in <top (required)>'</pre></div>
226
+ <pre class="ruby"><code><span class="linenum">11</span> <span class="keyword">rescue</span> <span class="constant">Exception</span> <span class="punct">=&gt;</span> <span class="ident">e</span>
227
+ <span class="linenum">12</span> <span class="keyword">end</span>
228
+ <span class="offending"><span class="linenum">13</span> <span class="keyword">raise</span> <span class="constant">RSpec</span><span class="punct">::</span><span class="constant">Core</span><span class="punct">::</span><span class="constant">PendingExampleFixedError</span><span class="punct">.</span><span class="ident">new</span> <span class="keyword">if</span> <span class="ident">result</span></span>
229
+ <span class="linenum">14</span> <span class="keyword">end</span>
230
+ <span class="linenum">15</span> <span class="ident">throw</span> <span class="symbol">:pending_declared_in_example</span><span class="punct">,</span> <span class="ident">message</span></code></pre>
231
+ </div>
232
+ </dd>
233
+ </dl>
234
+ </div>
235
+ <div class="example_group">
236
+ <dl>
237
+ <dt id="example_group_5">passing spec</dt>
238
+ <script type="text/javascript">moveProgressBar('80.0');</script>
239
+ <dd class="spec passed"><span class="passed_spec_name">passes</span></dd>
240
+ </dl>
241
+ </div>
242
+ <div class="example_group">
243
+ <dl>
244
+ <dt id="example_group_6">failing spec</dt>
245
+ <script type="text/javascript">makeRed('example_group_6');</script>
246
+ <script type="text/javascript">moveProgressBar('100.0');</script>
247
+ <dd class="spec failed">
248
+ <span class="failed_spec_name">fails</span>
249
+ <div class="failure" id="failure_0">
250
+ <div class="message"><pre>
251
+ expected 2
252
+ got 1
253
+
254
+ (compared using ==)
255
+ </pre></div>
256
+ <div class="backtrace"><pre><a href="txmt://open?url=file:///Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/rspec/core/resources/formatter_specs.rb&line=34">./spec/rspec/core/resources/formatter_specs.rb:34</a> :in `block (2 levels) in <top (required)>'
257
+ <a href="txmt://open?url=file:///Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/rspec/core/formatters/text_mate_formatter_spec.rb&line=23">./spec/rspec/core/formatters/text_mate_formatter_spec.rb:23</a> :in `block (2 levels) in <module:Formatters>'
258
+ <a href="txmt://open?url=file:///Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/rspec/core/formatters/text_mate_formatter_spec.rb&line=43">./spec/rspec/core/formatters/text_mate_formatter_spec.rb:43</a> :in `block (5 levels) in <module:Formatters>'
259
+ <a href="txmt://open?url=file:///Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/rspec/core/formatters/text_mate_formatter_spec.rb&line=43">./spec/rspec/core/formatters/text_mate_formatter_spec.rb:43</a> :in `open'
260
+ <a href="txmt://open?url=file:///Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/rspec/core/formatters/text_mate_formatter_spec.rb&line=43">./spec/rspec/core/formatters/text_mate_formatter_spec.rb:43</a> :in `block (4 levels) in <module:Formatters>'
261
+ <a href="txmt://open?url=file:///Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/rspec/core/formatters/text_mate_formatter_spec.rb&line=42">./spec/rspec/core/formatters/text_mate_formatter_spec.rb:42</a> :in `chdir'
262
+ <a href="txmt://open?url=file:///Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/rspec/core/formatters/text_mate_formatter_spec.rb&line=42">./spec/rspec/core/formatters/text_mate_formatter_spec.rb:42</a> :in `block (3 levels) in <module:Formatters>'
263
+ <a href="txmt://open?url=file:///Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/spec_helper.rb&line=70">./spec/spec_helper.rb:70</a> :in `block (3 levels) in <top (required)>'
264
+ <a href="txmt://open?url=file:///Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/spec_helper.rb&line=46">./spec/spec_helper.rb:46</a> :in `instance_eval'
265
+ <a href="txmt://open?url=file:///Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/spec_helper.rb&line=46">./spec/spec_helper.rb:46</a> :in `sandboxed'
266
+ <a href="txmt://open?url=file:///Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/spec_helper.rb&line=70">./spec/spec_helper.rb:70</a> :in `block (2 levels) in <top (required)>'</pre></div>
267
+ <pre class="ruby"><code><span class="linenum">27</span> <span class="keyword">end</span>
268
+ <span class="linenum">28</span>
269
+ <span class="offending"><span class="linenum">29</span> <span class="keyword">raise</span><span class="punct">(</span><span class="constant">RSpec</span><span class="punct">::</span><span class="constant">Expectations</span><span class="punct">::</span><span class="constant">ExpectationNotMetError</span><span class="punct">.</span><span class="ident">new</span><span class="punct">(</span><span class="ident">message</span><span class="punct">))</span></span>
270
+ <span class="linenum">30</span> <span class="keyword">end</span></code></pre>
271
+ </div>
272
+ </dd>
273
+ </dl>
274
+ </div>
275
+ <script type="text/javascript">document.getElementById('duration').innerHTML = "Finished in <strong>x seconds</strong>";</script>
276
+ <script type="text/javascript">document.getElementById('totals').innerHTML = "5 examples, 2 failures, 2 pending";</script>
277
+ </div>
278
+ </div>
279
+ </body>
280
+ </html>
@@ -1,6 +1,3 @@
1
- require 'bundler'
2
- Bundler.setup
3
-
4
1
  # TODO (DC 2010-07-04) This next line is necessary when running 'rake spec'.
5
2
  # Why doesn't the rspec-core ref in Gemfile handle this.
6
3
  require 'rspec/core'
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec-core
3
3
  version: !ruby/object:Gem::Version
4
- hash: 62196419
4
+ hash: 62196417
5
5
  prerelease: true
6
6
  segments:
7
7
  - 2
8
8
  - 0
9
9
  - 0
10
10
  - beta
11
- - 16
12
- version: 2.0.0.beta.16
11
+ - 17
12
+ version: 2.0.0.beta.17
13
13
  platform: ruby
14
14
  authors:
15
15
  - Chad Humphries
@@ -18,7 +18,7 @@ autorequire:
18
18
  bindir: bin
19
19
  cert_chain: []
20
20
 
21
- date: 2010-07-06 00:00:00 -05:00
21
+ date: 2010-07-11 00:00:00 -05:00
22
22
  default_executable: rspec
23
23
  dependencies:
24
24
  - !ruby/object:Gem::Dependency
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
- hash: 62196419
33
+ hash: 62196417
34
34
  segments:
35
35
  - 2
36
36
  - 0
37
37
  - 0
38
38
  - beta
39
- - 16
40
- version: 2.0.0.beta.16
39
+ - 17
40
+ version: 2.0.0.beta.17
41
41
  requirement: *id001
42
42
  - !ruby/object:Gem::Dependency
43
43
  type: :development
@@ -48,14 +48,14 @@ dependencies:
48
48
  requirements:
49
49
  - - ">="
50
50
  - !ruby/object:Gem::Version
51
- hash: 62196419
51
+ hash: 62196417
52
52
  segments:
53
53
  - 2
54
54
  - 0
55
55
  - 0
56
56
  - beta
57
- - 16
58
- version: 2.0.0.beta.16
57
+ - 17
58
+ version: 2.0.0.beta.17
59
59
  requirement: *id002
60
60
  - !ruby/object:Gem::Dependency
61
61
  type: :development
@@ -183,6 +183,7 @@ files:
183
183
  - spec/autotest/failed_results_re_spec.rb
184
184
  - spec/autotest/rspec_spec.rb
185
185
  - spec/rspec/core/command_line_spec.rb
186
+ - spec/rspec/core/command_line_spec_output.txt
186
187
  - spec/rspec/core/configuration_options_spec.rb
187
188
  - spec/rspec/core/configuration_spec.rb
188
189
  - spec/rspec/core/core_spec.rb
@@ -201,6 +202,7 @@ files:
201
202
  - spec/rspec/core/formatters/progress_formatter_spec.rb
202
203
  - spec/rspec/core/formatters/snippet_extractor_spec.rb
203
204
  - spec/rspec/core/formatters/text_mate_formatted-1.8.7.html
205
+ - spec/rspec/core/formatters/text_mate_formatted-1.9.2.html
204
206
  - spec/rspec/core/formatters/text_mate_formatter_spec.rb
205
207
  - spec/rspec/core/hooks_spec.rb
206
208
  - spec/rspec/core/kernel_extensions_spec.rb
@@ -230,7 +232,7 @@ licenses: []
230
232
  post_install_message: |
231
233
  **************************************************
232
234
 
233
- Thank you for installing rspec-core-2.0.0.beta.16
235
+ Thank you for installing rspec-core-2.0.0.beta.17
234
236
 
235
237
  **************************************************
236
238
 
@@ -264,7 +266,7 @@ rubyforge_project: rspec
264
266
  rubygems_version: 1.3.7
265
267
  signing_key:
266
268
  specification_version: 3
267
- summary: rspec-core-2.0.0.beta.16
269
+ summary: rspec-core-2.0.0.beta.17
268
270
  test_files:
269
271
  - spec/autotest/failed_results_re_spec.rb
270
272
  - spec/autotest/rspec_spec.rb