From a978296e83d5b8791504d476bced919c09fc1642 Mon Sep 17 00:00:00 2001 From: Jon Rowe Date: Sun, 2 Jun 2013 20:55:59 +1000 Subject: [PATCH 01/22] we need to be able to overide call_site for it to be useful --- lib/rspec/core/deprecation.rb | 7 ++++++- spec/rspec/core/deprecation_spec.rb | 5 +++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/lib/rspec/core/deprecation.rb b/lib/rspec/core/deprecation.rb index 2eae158426..7351da6322 100644 --- a/lib/rspec/core/deprecation.rb +++ b/lib/rspec/core/deprecation.rb @@ -8,7 +8,12 @@ def deprecate(deprecated, replacement_or_hash={}, ignore_version=nil) # Temporarily support old and new APIs while we transition the other # rspec libs to use a hash for the 2nd arg and no version arg data = Hash === replacement_or_hash ? replacement_or_hash : { :replacement => replacement_or_hash } - RSpec.configuration.reporter.deprecation data.merge(:deprecated => deprecated, :call_site => caller(0)[2]) + RSpec.configuration.reporter.deprecation( + { + :deprecated => deprecated, + :call_site => caller(0)[2] + }.merge(data) + ) end # @private diff --git a/spec/rspec/core/deprecation_spec.rb b/spec/rspec/core/deprecation_spec.rb index be33781d24..75fd378cdf 100644 --- a/spec/rspec/core/deprecation_spec.rb +++ b/spec/rspec/core/deprecation_spec.rb @@ -17,6 +17,11 @@ expect(RSpec.configuration.reporter).to receive(:deprecation).with(hash_including :call_site => caller(0)[1]) RSpec.deprecate("deprecated_method") end + + it "doesn't override the existing callsite" do + expect(RSpec.configuration.reporter).to receive(:deprecation).with(hash_including :call_site => "/path") + RSpec.deprecate("deprecated_method", :call_site => "/path") + end end context "new API with a hash after the first arg" do From b09c535d35f131011e74ac58f64acc2bf5896011 Mon Sep 17 00:00:00 2001 From: Myron Marston Date: Fri, 7 Jun 2013 22:07:57 -0700 Subject: [PATCH 02/22] Fix brittle tests. `#debug?` depends on whether or not the debugger is loaded. The tests for it were brittle and could start to fail if you were running the specs with the debugger loaded. --- spec/rspec/core/configuration_spec.rb | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/spec/rspec/core/configuration_spec.rb b/spec/rspec/core/configuration_spec.rb index 645a8224d5..fd6c8a7cca 100644 --- a/spec/rspec/core/configuration_spec.rb +++ b/spec/rspec/core/configuration_spec.rb @@ -1106,11 +1106,6 @@ def metadata_hash(*args) debugger.should_receive(:start) config.debug = true end - - it 'sets the reader to true' do - config.debug = true - expect(config.debug?).to eq true - end end describe "#debug=false" do @@ -1118,10 +1113,17 @@ def metadata_hash(*args) config.should_not_receive(:require).with('ruby-debug') config.debug = false end + end - it 'sets the reader to false' do - config.debug = false - expect(config.debug?).to eq false + describe "#debug?" do + it 'returns true if the debugger has been loaded' do + stub_const("Debugger", Object.new) + expect(config.debug?).to be_true + end + + it 'returns false if the debugger has not been loaded' do + hide_const("Debugger") + expect(config.debug?).to be_false end end From be1643ee6ef969a10768aafe2c6c03b84557a4e1 Mon Sep 17 00:00:00 2001 From: Andy Lindeman Date: Wed, 15 May 2013 18:25:39 -0400 Subject: [PATCH 03/22] Demonstrates problem where a module can affect how `LetDefinition`s are put in the ancestor chain --- spec/rspec/core/memoized_helpers_spec.rb | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/spec/rspec/core/memoized_helpers_spec.rb b/spec/rspec/core/memoized_helpers_spec.rb index 37e10d51aa..5ae67bb857 100644 --- a/spec/rspec/core/memoized_helpers_spec.rb +++ b/spec/rspec/core/memoized_helpers_spec.rb @@ -616,6 +616,24 @@ def define_and_run_group }) end end + + context "when included modules have hooks that define memoized helpers" do + it "allows memoized helpers to override methods in previously included modules" do + group = ExampleGroup.describe do + include Module.new { + def self.included(m); m.let(:unrelated) { :unrelated }; end + } + + include Module.new { + def hello_message; "Hello from module"; end + } + + let(:hello_message) { "Hello from let" } + end + + expect(group.new.hello_message).to eq("Hello from let") + end + end end describe "#let!" do From e3018dc95e916b92933e1376a4639afffd771e29 Mon Sep 17 00:00:00 2001 From: Myron Marston Date: Mon, 10 Jun 2013 09:33:06 -0700 Subject: [PATCH 04/22] Rewrite SharedContext to use a simple record/playback mechanism. --- lib/rspec/core/shared_context.rb | 36 +++++++++++++++++--------------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/lib/rspec/core/shared_context.rb b/lib/rspec/core/shared_context.rb index fd3b994436..f6f6c0e987 100644 --- a/lib/rspec/core/shared_context.rb +++ b/lib/rspec/core/shared_context.rb @@ -17,31 +17,33 @@ module Core # # ... # end module SharedContext - include Hooks - include MemoizedHelpers::ClassMethods - def included(group) - [:before, :after].each do |type| - [:all, :each].each do |scope| - group.hooks[type][scope].concat hooks[type][scope] - end - end - _nested_group_declarations.each do |name, block, *args| - group.describe name, *args, &block + __shared_context_recordings.each do |recording| + recording.playback_onto(group) end end - def describe(name, *args, &block) - _nested_group_declarations << [name, block, *args] + def __shared_context_recordings + @__shared_context_recordings ||= [] end - alias_method :context, :describe - - private + Recording = Struct.new(:method_name, :args, :block) do + def playback_onto(group) + group.__send__(method_name, *args, &block) + end + end - def _nested_group_declarations - @_nested_group_declarations ||= [] + def self.record(*methods) + methods.each do |meth| + class_eval <<-EOS, __FILE__, __LINE__ + 1 + def #{meth}(*args, &block) + __shared_context_recordings << Recording.new(:#{meth}, args, block) + end + EOS + end end + + record :before, :after, :around, :subject, :let, :its, :describe, :context end end From bf2d58e4a3a11ec36e13ae995f384edc3e260c77 Mon Sep 17 00:00:00 2001 From: Myron Marston Date: Mon, 10 Jun 2013 08:07:41 -0700 Subject: [PATCH 05/22] Move definition of implicit subject. This is in prep for changing when the LetDefinitions module is included. The use of `subject` from the `included` hook was causing problems when I was trying to do that. --- lib/rspec/core/memoized_helpers.rb | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/lib/rspec/core/memoized_helpers.rb b/lib/rspec/core/memoized_helpers.rb index a11f2374a9..b287b453eb 100644 --- a/lib/rspec/core/memoized_helpers.rb +++ b/lib/rspec/core/memoized_helpers.rb @@ -45,8 +45,12 @@ module MemoizedHelpers # # @see #should def subject - raise NotImplementedError, 'This definition is here for documentation purposes only' - ' - it is overriden anyway below when this module gets included.' + __memoized.fetch(:subject) do + __memoized[:subject] = begin + described = described_class || self.class.description + Class === described ? described.new : described + end + end end # When `should` is called with no explicit receiver, the call is @@ -148,12 +152,6 @@ def preserve_accessed_lets def self.included(mod) mod.extend(ClassMethods) - - # This logic defines an implicit subject - mod.subject do - described = described_class || self.class.description - Class === described ? described.new : described - end end module ClassMethods From ca1e7e091b730a5cd42157dc011af287b4579eba Mon Sep 17 00:00:00 2001 From: Myron Marston Date: Mon, 10 Jun 2013 09:52:57 -0700 Subject: [PATCH 06/22] Delay inclusion of `LetDefinitions` module. It needs to be included last so that its definitions can take precedence in case of a name collision. --- lib/rspec/core/example_group.rb | 7 +++++++ lib/rspec/core/memoized_helpers.rb | 1 - 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/rspec/core/example_group.rb b/lib/rspec/core/example_group.rb index 56ab92e9f6..6aeaf09cd6 100644 --- a/lib/rspec/core/example_group.rb +++ b/lib/rspec/core/example_group.rb @@ -240,6 +240,13 @@ def self.subclass(parent, args, &example_group_block) subclass = Class.new(parent) subclass.set_it_up(*args) subclass.module_eval(&example_group_block) if example_group_block + + # The LetDefinitions module must be included _after_ other modules + # to ensure that it takes precendence when there are name collisions. + # Thus, we delay including it until after the example group block + # has been eval'd. + subclass.send(:include, MemoizedHelpers.module_for(subclass)) + subclass end diff --git a/lib/rspec/core/memoized_helpers.rb b/lib/rspec/core/memoized_helpers.rb index b287b453eb..b762f522b5 100644 --- a/lib/rspec/core/memoized_helpers.rb +++ b/lib/rspec/core/memoized_helpers.rb @@ -469,7 +469,6 @@ def self.module_for(example_group) } end - example_group.__send__(:include, mod) example_group.const_set(:LetDefinitions, mod) mod end From 414edee4d80574e629e4c74d9d59272abebf6d4d Mon Sep 17 00:00:00 2001 From: Myron Marston Date: Mon, 10 Jun 2013 21:01:43 -0700 Subject: [PATCH 07/22] Get the current list of shared context methods from the modules. This is the current list of what it supports: describe context hooks before append_before prepend_before after prepend_after append_after around run_hook around_each_hooks_for let let! subject subject! its --- lib/rspec/core/shared_context.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/rspec/core/shared_context.rb b/lib/rspec/core/shared_context.rb index f6f6c0e987..4c65cf00f3 100644 --- a/lib/rspec/core/shared_context.rb +++ b/lib/rspec/core/shared_context.rb @@ -43,7 +43,8 @@ def #{meth}(*args, &block) end end - record :before, :after, :around, :subject, :let, :its, :describe, :context + record :describe, :context, *Hooks.instance_methods(false), + *MemoizedHelpers::ClassMethods.instance_methods(false) end end From c5e01eb4639c2de9d9676827a9a10419b241cfaa Mon Sep 17 00:00:00 2001 From: Andy Lindeman Date: Tue, 11 Jun 2013 00:16:20 -0400 Subject: [PATCH 08/22] Small refactor to add intention revealing message --- lib/rspec/core/example_group.rb | 2 +- lib/rspec/core/memoized_helpers.rb | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/rspec/core/example_group.rb b/lib/rspec/core/example_group.rb index 6aeaf09cd6..c7d0d870cf 100644 --- a/lib/rspec/core/example_group.rb +++ b/lib/rspec/core/example_group.rb @@ -245,7 +245,7 @@ def self.subclass(parent, args, &example_group_block) # to ensure that it takes precendence when there are name collisions. # Thus, we delay including it until after the example group block # has been eval'd. - subclass.send(:include, MemoizedHelpers.module_for(subclass)) + MemoizedHelpers.define_helpers_on(subclass) subclass end diff --git a/lib/rspec/core/memoized_helpers.rb b/lib/rspec/core/memoized_helpers.rb index b762f522b5..0fe7f8b1ee 100644 --- a/lib/rspec/core/memoized_helpers.rb +++ b/lib/rspec/core/memoized_helpers.rb @@ -474,6 +474,11 @@ def self.module_for(example_group) end end + # @api private + def self.define_helpers_on(example_group) + example_group.send(:include, module_for(example_group)) + end + if Module.method(:const_defined?).arity == 1 # for 1.8 # @api private # From b7c7e49ffbdc40799a7026ba167559d2f41b7fdf Mon Sep 17 00:00:00 2001 From: Myron Marston Date: Mon, 10 Jun 2013 21:34:59 -0700 Subject: [PATCH 09/22] Changelog entry. --- Changelog.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Changelog.md b/Changelog.md index 1995db0540..0f863986d4 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,3 +1,11 @@ +### Dev + +Bug fixes + +* Ensure methods defined by `let` take precedence over others + when there is a name collision (e.g. from an included module). + (Jon Rowe, Andy Lindeman and Myron Marston) + ### 2.14.0.rc1 / 2013-05-27 [full changelog](http://github.com/rspec/rspec-core/compare/v2.13.1...v2.14.0.rc1) From b4688fa610cb422854df5f7aaec0b52d235bd6a9 Mon Sep 17 00:00:00 2001 From: Andy Lindeman Date: Tue, 11 Jun 2013 01:08:25 -0400 Subject: [PATCH 10/22] Fixes 1.8.7: apparently you cannot do multiple splats there --- lib/rspec/core/shared_context.rb | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/rspec/core/shared_context.rb b/lib/rspec/core/shared_context.rb index 4c65cf00f3..43da70f3b7 100644 --- a/lib/rspec/core/shared_context.rb +++ b/lib/rspec/core/shared_context.rb @@ -17,12 +17,14 @@ module Core # # ... # end module SharedContext + # @api private def included(group) __shared_context_recordings.each do |recording| recording.playback_onto(group) end end + # @api private def __shared_context_recordings @__shared_context_recordings ||= [] end @@ -33,7 +35,8 @@ def playback_onto(group) end end - def self.record(*methods) + # @api private + def self.record(methods) methods.each do |meth| class_eval <<-EOS, __FILE__, __LINE__ + 1 def #{meth}(*args, &block) @@ -43,8 +46,8 @@ def #{meth}(*args, &block) end end - record :describe, :context, *Hooks.instance_methods(false), - *MemoizedHelpers::ClassMethods.instance_methods(false) + record [:describe, :context] + Hooks.instance_methods(false) + + MemoizedHelpers::ClassMethods.instance_methods(false) end end From e1a0274574670035e867775cdd050cde9fb102c2 Mon Sep 17 00:00:00 2001 From: Andy Lindeman Date: Tue, 11 Jun 2013 00:49:18 -0400 Subject: [PATCH 11/22] Skips one-by-one spec runs for JRuby --- script/test_all | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/script/test_all b/script/test_all index 6564564ca3..30b8ac5db5 100755 --- a/script/test_all +++ b/script/test_all @@ -2,6 +2,14 @@ set -e -x +function is_jruby() { + if ruby -e 'exit RUBY_PLATFORM == "java"'; then + return 0 + else + return 1 + fi +} + # Needed by Bundler 1.3: https://github.com/carlhuda/bundler/issues/2382 export RUBYOPT='-rrbconfig' @@ -20,9 +28,13 @@ echo echo "--------------------------------------------------------------------" echo -for file in `find spec -iname '*_spec.rb'`; do - bin/rspec $file -b --format progress -done +if is_jruby; then + echo "Skipping one-by-one spec runs due to expensive JVM load time" +else + for file in `find spec -iname '*_spec.rb'`; do + bin/rspec $file -b --format progress + done +fi # Prepare RUBYOPT for scenarios that are shelling out to ruby, # and PATH for those that are using `rspec` or `rake`. From 81ad7d3119e12fdd4d80fde39afc7e9c17e101fb Mon Sep 17 00:00:00 2001 From: Jon Rowe Date: Fri, 14 Jun 2013 11:10:47 +1000 Subject: [PATCH 12/22] 1.8.6 fix for reporter notifications --- lib/rspec/core/reporter.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/rspec/core/reporter.rb b/lib/rspec/core/reporter.rb index 1ada380410..5e03d9dd2b 100644 --- a/lib/rspec/core/reporter.rb +++ b/lib/rspec/core/reporter.rb @@ -2,7 +2,7 @@ module RSpec::Core class Reporter NOTIFICATIONS = %W[start message example_group_started example_group_finished example_started example_passed example_failed example_pending start_dump dump_pending - dump_failures dump_summary seed close stop deprecation deprecation_summary].map(&:to_sym) + dump_failures dump_summary seed close stop deprecation deprecation_summary].map { |n| n.to_sym } def initialize(*formatters) @listeners = Hash.new { |h,k| h[k] = [] } From c3d340a4785917d874c60c8519e13581fb005161 Mon Sep 17 00:00:00 2001 From: Jon Rowe Date: Fri, 28 Jun 2013 11:27:01 +1000 Subject: [PATCH 13/22] Run tests using the client mode JVM (or as close as we can get to it) --- script/test_all | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/script/test_all b/script/test_all index 30b8ac5db5..fbecd01fbd 100755 --- a/script/test_all +++ b/script/test_all @@ -16,6 +16,10 @@ export RUBYOPT='-rrbconfig' # idea taken from: http://blog.headius.com/2010/03/jruby-startup-time-tips.html export JRUBY_OPTS='-X-C' # disable JIT since these processes are so short lived +# force jRuby to use client mode JVM or a compilation mode thats as close as possible, +# idea taken from https://github.com/jruby/jruby/wiki/Improving-startup-time +export JAVA_OPTS='-client -XX:+TieredCompilation -XX:TieredStopAtLevel=1' + echo "Bundling Standalone so we can run the specs w/o bundler loaded" bundle install --standalone --binstubs From 58d6e1239ec45a5c4acc107262ad45a5e804f60a Mon Sep 17 00:00:00 2001 From: Jon Rowe Date: Fri, 28 Jun 2013 13:02:02 +1000 Subject: [PATCH 14/22] trim ws for consistency --- script/test_all | 2 -- 1 file changed, 2 deletions(-) diff --git a/script/test_all b/script/test_all index fbecd01fbd..af304e6f20 100755 --- a/script/test_all +++ b/script/test_all @@ -21,11 +21,9 @@ export JRUBY_OPTS='-X-C' # disable JIT since these processes are so short lived export JAVA_OPTS='-client -XX:+TieredCompilation -XX:TieredStopAtLevel=1' echo "Bundling Standalone so we can run the specs w/o bundler loaded" - bundle install --standalone --binstubs echo "Running all..." - bin/rspec spec -b --format progress --profile echo From 8347c3668a1f2ec204ab92ed6162b1b6cd586562 Mon Sep 17 00:00:00 2001 From: Jon Rowe Date: Sat, 29 Jun 2013 15:42:29 +1000 Subject: [PATCH 15/22] lock to 2-14 --- Gemfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index 1c0d6c7dd0..485a88899c 100644 --- a/Gemfile +++ b/Gemfile @@ -7,7 +7,7 @@ gemspec if File.exist?(library_path) gem lib, :path => library_path else - gem lib, :git => "git://github.com/rspec/#{lib}.git" + gem lib, :git => "git://github.com/rspec/#{lib}.git", :branch => '2-14-maintenance' end end From 206086b4014fda5a85696f44b94d9a4754b84daf Mon Sep 17 00:00:00 2001 From: Jon Rowe Date: Sun, 30 Jun 2013 08:06:35 +1000 Subject: [PATCH 16/22] Define `fit` for example groups as a shortcut to define examples with `:focus` => true --- Changelog.md | 13 +++++++++++++ lib/rspec/core/example_group.rb | 3 +++ spec/rspec/core/example_group_spec.rb | 2 +- 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/Changelog.md b/Changelog.md index 0f863986d4..6d28016f79 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,6 +1,19 @@ ### Dev Bug fixes +======= +Breaking Changes for 3.0.0: + +* Remove explicit support for 1.8.6 (Jon Rowe) + +Enhancements + +* Clean up some internal use of Enumerable methods. (Vipul A M) +* Replace unmaintained syntax gem with coderay gem. (Xavier Shay) +* Apply focus to examples defined with `fit` (equivalent of + `it "description", focus: true`) (Michael de Silva) + +Bug fix * Ensure methods defined by `let` take precedence over others when there is a name collision (e.g. from an included module). diff --git a/lib/rspec/core/example_group.rb b/lib/rspec/core/example_group.rb index c7d0d870cf..df28be641f 100644 --- a/lib/rspec/core/example_group.rb +++ b/lib/rspec/core/example_group.rb @@ -85,6 +85,9 @@ def #{name}(desc=nil, *args, &block) define_example_method :focus, :focused => true, :focus => true # Shortcut to define an example with `:focus` => true define_example_method :focused, :focused => true, :focus => true + # Shortcut to define an example with `:focus` => true + # @see example + define_example_method :fit, :focused => true, :focus => true # Shortcut to define an example with :pending => true define_example_method :pending, :pending => true diff --git a/spec/rspec/core/example_group_spec.rb b/spec/rspec/core/example_group_spec.rb index 0a6ea7d58d..6016a2df00 100644 --- a/spec/rspec/core/example_group_spec.rb +++ b/spec/rspec/core/example_group_spec.rb @@ -397,7 +397,7 @@ def define_and_run_group(define_outer_example = false) end end - [:focus, :focused].each do |example_alias| + [:focus, :focused, :fit].each do |example_alias| describe "##{example_alias}" do let(:focused_example) { ExampleGroup.describe.send example_alias, "a focused example" } From 4fa6b7d2fcaf38b05706244eed5053cb735cb816 Mon Sep 17 00:00:00 2001 From: Myron Marston Date: Sat, 6 Jul 2013 08:28:25 -0700 Subject: [PATCH 17/22] This 3.0.0 change isn't in 2.14. The changelog entry got merged in 206086b4 accidentally. [ci skip] --- Changelog.md | 6 ------ 1 file changed, 6 deletions(-) diff --git a/Changelog.md b/Changelog.md index 6d28016f79..bde6e2f550 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,11 +1,5 @@ ### Dev -Bug fixes -======= -Breaking Changes for 3.0.0: - -* Remove explicit support for 1.8.6 (Jon Rowe) - Enhancements * Clean up some internal use of Enumerable methods. (Vipul A M) From ec1644d3fef06e93e98c8465eb0581ac4dbb3874 Mon Sep 17 00:00:00 2001 From: Myron Marston Date: Sat, 6 Jul 2013 08:29:53 -0700 Subject: [PATCH 18/22] The changelog is for user-facing changes. Internal refactorings don't need a changelog entry and add noise. [ci skip] --- Changelog.md | 1 - 1 file changed, 1 deletion(-) diff --git a/Changelog.md b/Changelog.md index bde6e2f550..e4cf7d2113 100644 --- a/Changelog.md +++ b/Changelog.md @@ -2,7 +2,6 @@ Enhancements -* Clean up some internal use of Enumerable methods. (Vipul A M) * Replace unmaintained syntax gem with coderay gem. (Xavier Shay) * Apply focus to examples defined with `fit` (equivalent of `it "description", focus: true`) (Michael de Silva) From 14d18dc0ca374d2a44dfa2324ca3b293afa7130e Mon Sep 17 00:00:00 2001 From: Myron Marston Date: Sat, 6 Jul 2013 08:39:02 -0700 Subject: [PATCH 19/22] This change is in master but not 2.14. [ci skip] --- Changelog.md | 1 - 1 file changed, 1 deletion(-) diff --git a/Changelog.md b/Changelog.md index e4cf7d2113..a03e51a851 100644 --- a/Changelog.md +++ b/Changelog.md @@ -2,7 +2,6 @@ Enhancements -* Replace unmaintained syntax gem with coderay gem. (Xavier Shay) * Apply focus to examples defined with `fit` (equivalent of `it "description", focus: true`) (Michael de Silva) From 4da065a434f2269de259586e33fe21338b6cb937 Mon Sep 17 00:00:00 2001 From: Andy Lindeman Date: Sat, 6 Jul 2013 13:34:35 -0400 Subject: [PATCH 20/22] Nukes deprecation warning --- features/hooks/around_hooks.feature | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/features/hooks/around_hooks.feature b/features/hooks/around_hooks.feature index d367e77d0f..d1cabec00b 100644 --- a/features/hooks/around_hooks.feature +++ b/features/hooks/around_hooks.feature @@ -182,7 +182,7 @@ Feature: around hooks def included_in_configure_block; true; end end - Rspec.configure do |c| + RSpec.configure do |c| c.include IncludedInConfigureBlock end From 02e4a666e864c14ad42b7cdf8753ba346b646d32 Mon Sep 17 00:00:00 2001 From: Myron Marston Date: Sat, 6 Jul 2013 15:37:44 -0700 Subject: [PATCH 21/22] Update changelog for v2.14.0 [ci skip] --- Changelog.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Changelog.md b/Changelog.md index a03e51a851..6c52626c40 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,4 +1,5 @@ -### Dev +### 2.14.0 / 2013-07-06 +[full changelog](http://github.com/rspec/rspec-core/compare/v2.14.0.rc1...v2.14.0) Enhancements From e5997dd306e097f8b897558fdf2f6b17d8ac461b Mon Sep 17 00:00:00 2001 From: Myron Marston Date: Sat, 6 Jul 2013 15:40:53 -0700 Subject: [PATCH 22/22] Release 2.14.0 --- lib/rspec/core/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/rspec/core/version.rb b/lib/rspec/core/version.rb index f9047bf14a..8c8b8ff904 100644 --- a/lib/rspec/core/version.rb +++ b/lib/rspec/core/version.rb @@ -1,7 +1,7 @@ module RSpec module Core module Version - STRING = '2.14.0.rc1' + STRING = '2.14.0' end end end