rr 1.1.1 → 1.1.2.rc1

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.
Files changed (181) hide show
  1. checksums.yaml +4 -4
  2. data/Appraisals +46 -0
  3. data/CHANGES.md +21 -1
  4. data/Gemfile +19 -0
  5. data/README.md +91 -106
  6. data/Rakefile +55 -0
  7. data/gemfiles/ruby_18_rspec_1.gemfile +14 -0
  8. data/gemfiles/ruby_18_rspec_1.gemfile.lock +38 -0
  9. data/gemfiles/ruby_18_rspec_1_rails_2.gemfile +18 -0
  10. data/gemfiles/ruby_18_rspec_1_rails_2.gemfile.lock +64 -0
  11. data/gemfiles/ruby_19_rspec_2.gemfile +14 -0
  12. data/gemfiles/ruby_19_rspec_2.gemfile.lock +49 -0
  13. data/gemfiles/ruby_19_rspec_2_rails_3.gemfile +15 -0
  14. data/gemfiles/ruby_19_rspec_2_rails_3.gemfile.lock +123 -0
  15. data/gemfiles/ruby_19_rspec_2_rails_4.gemfile +15 -0
  16. data/gemfiles/ruby_19_rspec_2_rails_4.gemfile.lock +119 -0
  17. data/lib/rr/adapters.rb +4 -14
  18. data/lib/rr/integrations.rb +13 -12
  19. data/lib/rr/integrations/decorator.rb +4 -1
  20. data/lib/rr/integrations/rspec_2.rb +6 -1
  21. data/lib/rr/integrations/test_unit_1.rb +2 -2
  22. data/lib/rr/integrations/test_unit_2.rb +3 -1
  23. data/lib/rr/version.rb +1 -2
  24. data/lib/rr/without_autohook.rb +1 -1
  25. data/rr.gemspec +6 -2
  26. data/spec/custom_formatter_for_rspec.rb +18 -0
  27. data/spec/custom_formatter_for_rspec_2.rb +40 -0
  28. data/spec/defines_spec_suite_tasks.rb +45 -0
  29. data/spec/fixtures/rubygems_patch_for_187.rb +598 -0
  30. data/spec/global_helper.rb +33 -0
  31. data/spec/spec.opts +3 -0
  32. data/spec/spec_suite_configuration.rb +132 -0
  33. data/spec/spec_suite_runner.rb +47 -0
  34. data/spec/suites.yml +24 -0
  35. data/spec/suites/rspec_1/helper.rb +24 -0
  36. data/spec/suites/rspec_1/integration/rspec_1_spec.rb +93 -0
  37. data/spec/suites/rspec_1/integration/test_unit_1_spec.rb +102 -0
  38. data/spec/suites/rspec_1/integration/test_unit_2_spec.rb +109 -0
  39. data/spec/suites/rspec_1/spec_helper.rb +3 -0
  40. data/spec/suites/rspec_1_rails_2/integration/astc_rails_2_spec.rb +141 -0
  41. data/spec/suites/rspec_1_rails_2/integration/rspec_1_rails_2_spec.rb +132 -0
  42. data/spec/suites/rspec_1_rails_2/integration/test_unit_1_rails_2_spec.rb +141 -0
  43. data/spec/suites/rspec_1_rails_2/integration/test_unit_2_rails_2_spec.rb +148 -0
  44. data/spec/suites/rspec_1_rails_2/spec_helper.rb +3 -0
  45. data/spec/suites/rspec_2/functional/any_instance_of_spec.rb +47 -0
  46. data/spec/suites/rspec_2/functional/dont_allow_spec.rb +12 -0
  47. data/spec/suites/rspec_2/functional/dsl_spec.rb +13 -0
  48. data/spec/suites/rspec_2/functional/instance_of_spec.rb +14 -0
  49. data/spec/suites/rspec_2/functional/mock_spec.rb +241 -0
  50. data/spec/suites/rspec_2/functional/proxy_spec.rb +136 -0
  51. data/spec/suites/rspec_2/functional/spy_spec.rb +41 -0
  52. data/spec/suites/rspec_2/functional/strong_spec.rb +79 -0
  53. data/spec/suites/rspec_2/functional/stub_spec.rb +190 -0
  54. data/spec/suites/rspec_2/functional/wildcard_matchers_spec.rb +128 -0
  55. data/spec/suites/rspec_2/helper.rb +28 -0
  56. data/spec/suites/rspec_2/integration/minitest_4_spec.rb +109 -0
  57. data/spec/suites/rspec_2/integration/minitest_spec.rb +109 -0
  58. data/spec/suites/rspec_2/integration/rspec_2_spec.rb +133 -0
  59. data/spec/suites/rspec_2/integration/test_unit_200_spec.rb +102 -0
  60. data/spec/suites/rspec_2/integration/test_unit_2_spec.rb +109 -0
  61. data/spec/suites/rspec_2/spec_helper.rb +3 -0
  62. data/spec/suites/rspec_2/support/matchers/wildcard_matcher_matchers.rb +32 -0
  63. data/spec/suites/rspec_2/support/shared_examples/space.rb +13 -0
  64. data/spec/suites/rspec_2/support/shared_examples/times_called_expectation.rb +9 -0
  65. data/spec/suites/rspec_2/unit/adapters/rr_methods/double_creators_spec.rb +135 -0
  66. data/spec/suites/rspec_2/unit/adapters/rr_methods/space_spec.rb +101 -0
  67. data/spec/suites/rspec_2/unit/adapters/rr_methods/wildcard_matchers_spec.rb +69 -0
  68. data/spec/suites/rspec_2/unit/core_ext/array_spec.rb +39 -0
  69. data/spec/suites/rspec_2/unit/core_ext/enumerable_spec.rb +81 -0
  70. data/spec/suites/rspec_2/unit/core_ext/hash_spec.rb +55 -0
  71. data/spec/suites/rspec_2/unit/core_ext/range_spec.rb +41 -0
  72. data/spec/suites/rspec_2/unit/core_ext/regexp_spec.rb +41 -0
  73. data/spec/suites/rspec_2/unit/double_definitions/child_double_definition_create_spec.rb +114 -0
  74. data/spec/suites/rspec_2/unit/double_definitions/double_definition_create_blank_slate_spec.rb +93 -0
  75. data/spec/suites/rspec_2/unit/double_definitions/double_definition_create_spec.rb +446 -0
  76. data/spec/suites/rspec_2/unit/errors/rr_error_spec.rb +67 -0
  77. data/spec/suites/rspec_2/unit/expectations/any_argument_expectation_spec.rb +48 -0
  78. data/spec/suites/rspec_2/unit/expectations/anything_argument_equality_expectation_spec.rb +14 -0
  79. data/spec/suites/rspec_2/unit/expectations/argument_equality_expectation_spec.rb +135 -0
  80. data/spec/suites/rspec_2/unit/expectations/boolean_argument_equality_expectation_spec.rb +30 -0
  81. data/spec/suites/rspec_2/unit/expectations/hash_including_argument_equality_expectation_spec.rb +82 -0
  82. data/spec/suites/rspec_2/unit/expectations/satisfy_argument_equality_expectation_spec.rb +61 -0
  83. data/spec/suites/rspec_2/unit/expectations/times_called_expectation/any_times_matcher_spec.rb +22 -0
  84. data/spec/suites/rspec_2/unit/expectations/times_called_expectation/at_least_matcher_spec.rb +37 -0
  85. data/spec/suites/rspec_2/unit/expectations/times_called_expectation/at_most_matcher_spec.rb +43 -0
  86. data/spec/suites/rspec_2/unit/expectations/times_called_expectation/integer_matcher_spec.rb +58 -0
  87. data/spec/suites/rspec_2/unit/expectations/times_called_expectation/proc_matcher_spec.rb +35 -0
  88. data/spec/suites/rspec_2/unit/expectations/times_called_expectation/range_matcher_spec.rb +39 -0
  89. data/spec/suites/rspec_2/unit/hash_with_object_id_key_spec.rb +88 -0
  90. data/spec/suites/rspec_2/unit/injections/double_injection/double_injection_spec.rb +545 -0
  91. data/spec/suites/rspec_2/unit/injections/double_injection/double_injection_verify_spec.rb +32 -0
  92. data/spec/suites/rspec_2/unit/integrations/rspec/invocation_matcher_spec.rb +297 -0
  93. data/spec/suites/rspec_2/unit/integrations/rspec_spec.rb +85 -0
  94. data/spec/suites/rspec_2/unit/proc_from_block_spec.rb +14 -0
  95. data/spec/suites/rspec_2/unit/rr_spec.rb +28 -0
  96. data/spec/suites/rspec_2/unit/space_spec.rb +595 -0
  97. data/spec/suites/rspec_2/unit/spy_verification_spec.rb +133 -0
  98. data/spec/suites/rspec_2/unit/times_called_matchers/any_times_matcher_spec.rb +46 -0
  99. data/spec/suites/rspec_2/unit/times_called_matchers/at_least_matcher_spec.rb +54 -0
  100. data/spec/suites/rspec_2/unit/times_called_matchers/at_most_matcher_spec.rb +69 -0
  101. data/spec/suites/rspec_2/unit/times_called_matchers/integer_matcher_spec.rb +69 -0
  102. data/spec/suites/rspec_2/unit/times_called_matchers/proc_matcher_spec.rb +54 -0
  103. data/spec/suites/rspec_2/unit/times_called_matchers/range_matcher_spec.rb +75 -0
  104. data/spec/suites/rspec_2/unit/times_called_matchers/times_called_matcher_spec.rb +117 -0
  105. data/spec/suites/rspec_2/unit/wildcard_matchers/anything_spec.rb +33 -0
  106. data/spec/suites/rspec_2/unit/wildcard_matchers/boolean_spec.rb +45 -0
  107. data/spec/suites/rspec_2/unit/wildcard_matchers/duck_type_spec.rb +64 -0
  108. data/spec/suites/rspec_2/unit/wildcard_matchers/hash_including_spec.rb +64 -0
  109. data/spec/suites/rspec_2/unit/wildcard_matchers/is_a_spec.rb +55 -0
  110. data/spec/suites/rspec_2/unit/wildcard_matchers/numeric_spec.rb +46 -0
  111. data/spec/suites/rspec_2/unit/wildcard_matchers/satisfy_spec.rb +57 -0
  112. data/spec/suites/rspec_2_rails_3/integration/astc_rails_3_spec.rb +141 -0
  113. data/spec/suites/rspec_2_rails_3/integration/minitest_4_rails_3_spec.rb +148 -0
  114. data/spec/suites/rspec_2_rails_3/integration/rspec_2_rails_3_spec.rb +172 -0
  115. data/spec/suites/rspec_2_rails_3/integration/test_unit_200_rails_3_spec.rb +141 -0
  116. data/spec/suites/rspec_2_rails_3/integration/test_unit_2_rails_3_spec.rb +148 -0
  117. data/spec/suites/rspec_2_rails_3/spec_helper.rb +3 -0
  118. data/spec/suites/rspec_2_rails_4/integration/astc_rails_4_spec.rb +142 -0
  119. data/spec/suites/rspec_2_rails_4/integration/minitest_4_rails_4_spec.rb +149 -0
  120. data/spec/suites/rspec_2_rails_4/integration/rspec_2_rails_4_spec.rb +173 -0
  121. data/spec/suites/rspec_2_rails_4/integration/test_unit_200_rails_4_spec.rb +142 -0
  122. data/spec/suites/rspec_2_rails_4/integration/test_unit_2_rails_4_spec.rb +149 -0
  123. data/spec/suites/rspec_2_rails_4/spec_helper.rb +3 -0
  124. data/spec/support/adapter.rb +22 -0
  125. data/spec/support/adapter_tests/base.rb +45 -0
  126. data/spec/support/adapter_tests/minitest.rb +7 -0
  127. data/spec/support/adapter_tests/rspec.rb +66 -0
  128. data/spec/support/adapter_tests/test_unit.rb +47 -0
  129. data/spec/support/command_runner.rb +105 -0
  130. data/spec/support/generator.rb +56 -0
  131. data/spec/support/integration_tests/base.rb +64 -0
  132. data/spec/support/integration_tests/rails.rb +60 -0
  133. data/spec/support/integration_tests/rails_minitest.rb +13 -0
  134. data/spec/support/integration_tests/rails_rspec.rb +13 -0
  135. data/spec/support/integration_tests/rails_test_unit.rb +13 -0
  136. data/spec/support/integration_tests/rails_test_unit_like.rb +13 -0
  137. data/spec/support/integration_tests/ruby.rb +7 -0
  138. data/spec/support/integration_tests/ruby_minitest.rb +13 -0
  139. data/spec/support/integration_tests/ruby_rspec.rb +13 -0
  140. data/spec/support/integration_tests/ruby_test_unit.rb +13 -0
  141. data/spec/support/matchers/be_a_subset_of_matcher.rb +24 -0
  142. data/spec/support/project/cucumber.rb +50 -0
  143. data/spec/support/project/generator.rb +352 -0
  144. data/spec/support/project/minitest.rb +39 -0
  145. data/spec/support/project/rails.rb +199 -0
  146. data/spec/support/project/rails_minitest.rb +17 -0
  147. data/spec/support/project/rails_rspec.rb +50 -0
  148. data/spec/support/project/rails_test_unit.rb +17 -0
  149. data/spec/support/project/rails_test_unit_like.rb +17 -0
  150. data/spec/support/project/rspec.rb +69 -0
  151. data/spec/support/project/ruby.rb +34 -0
  152. data/spec/support/project/ruby_minitest.rb +11 -0
  153. data/spec/support/project/ruby_rspec.rb +29 -0
  154. data/spec/support/project/ruby_test_unit.rb +11 -0
  155. data/spec/support/project/ruby_test_unit_like.rb +21 -0
  156. data/spec/support/project/test_unit.rb +29 -0
  157. data/spec/support/project/test_unit_like.rb +7 -0
  158. data/spec/support/project/tests_runner.rb +22 -0
  159. data/spec/support/test.sqlite3 +0 -0
  160. data/spec/support/test_case/generator.rb +53 -0
  161. data/spec/support/test_case/minitest.rb +13 -0
  162. data/spec/support/test_case/rspec.rb +19 -0
  163. data/spec/support/test_case/test_unit.rb +21 -0
  164. data/spec/support/test_file/generator.rb +120 -0
  165. data/spec/support/test_file/minitest.rb +19 -0
  166. data/spec/support/test_file/rails_minitest.rb +7 -0
  167. data/spec/support/test_file/rails_rspec.rb +12 -0
  168. data/spec/support/test_file/rails_test_unit.rb +25 -0
  169. data/spec/support/test_file/rspec.rb +33 -0
  170. data/spec/support/test_file/test_unit.rb +36 -0
  171. data/spec/support/test_helper/generator.rb +27 -0
  172. data/spec/support/test_helper/minitest.rb +7 -0
  173. data/spec/support/test_helper/rails.rb +31 -0
  174. data/spec/support/test_helper/rails_minitest.rb +7 -0
  175. data/spec/support/test_helper/rails_rspec.rb +25 -0
  176. data/spec/support/test_helper/rails_test_unit.rb +23 -0
  177. data/spec/support/test_helper/rspec.rb +7 -0
  178. data/spec/support/test_helper/ruby.rb +31 -0
  179. data/spec/support/test_helper/test_unit.rb +7 -0
  180. metadata +172 -6
  181. data/VERSION +0 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ba1e0b3ea37112b713b116b3f42156d3d0269717
4
- data.tar.gz: 3e933262c2d9a50a495497067508d154e1d9ec9b
3
+ metadata.gz: fcd365900d797d064358a2e5971e188181dcac4f
4
+ data.tar.gz: 76b4b3f175b477d1ef4978d3c6c29dfec6240eb2
5
5
  SHA512:
6
- metadata.gz: 92301ad0c0e78016f5c10ca7c406a19612398a45b595892de2912159fd2b878ceaecf57b02a043332b5e086d0f45ab618989b79d501d1ad8b90982ff5469a1f7
7
- data.tar.gz: 0109fbc48ec0aac6ae07f3fecb9af272311c73deeaae702c61b705beb7429f5fb367406d8475b12ebb918f09840bb70ce0e430034958b8861f0674ab10bb4b71
6
+ metadata.gz: 7f961d11097a46ec5be81dd0c06081a599e974523da84129d095a40ce255d21d2b24390919ee02070f75a429f0febbe9380648839d8f39355f12dc1542271adf
7
+ data.tar.gz: a694d5160568ac9878482257f22f42493bc62db670feb5b20ca7ec15669072519916235cb5aa0b69a026e88de30c1479148918d73dc0572ad333e0777f224bc3
@@ -0,0 +1,46 @@
1
+ ruby_18_stuff = proc do
2
+ ruby_18_rails_2 = proc do
3
+ gem 'rails', '~> 2.3'
4
+ gem 'mocha', '~> 0.12.0'
5
+ gem 'sqlite3', '~> 1.3', :platforms => :ruby
6
+ gem 'activerecord-jdbcsqlite3-adapter', :platforms => :jruby
7
+ end
8
+
9
+ #---
10
+
11
+ appraise 'ruby_18_rspec_1' do
12
+ end
13
+
14
+ appraise 'ruby_18_rspec_1_rails_2' do
15
+ instance_eval &ruby_18_rails_2
16
+ end
17
+ end
18
+
19
+ ruby_19_stuff = proc do
20
+ ruby_19_rails_3 = proc do
21
+ gem 'rails', '~> 3.0'
22
+ end
23
+
24
+ ruby_19_rails_4 = proc do
25
+ gem 'rails', '4.0.0'
26
+ end
27
+
28
+ #---
29
+
30
+ appraise 'ruby_19_rspec_2' do
31
+ end
32
+
33
+ appraise 'ruby_19_rspec_2_rails_3' do
34
+ instance_eval &ruby_19_rails_3
35
+ end
36
+
37
+ appraise 'ruby_19_rspec_2_rails_4' do
38
+ instance_eval &ruby_19_rails_4
39
+ end
40
+ end
41
+
42
+ if RUBY_VERSION =~ /^1\.8/
43
+ instance_eval &ruby_18_stuff
44
+ else
45
+ instance_eval &ruby_19_stuff
46
+ end
data/CHANGES.md CHANGED
@@ -1,6 +1,23 @@
1
1
  # Changelog
2
2
 
3
- ## 1.1.1 (UNRELEASED)
3
+ ## HEAD
4
+
5
+ * Add back tests, appraisals, etc. to the published gem ([#32][i32]).
6
+ This is necessary because Debian wraps rr in a package, and they depend on the
7
+ tests to be present in order to run them prior to packaging.
8
+ * Add back RR::Adapters::RSpec2 which was removed accidentally ([#34][i34]).
9
+ This fixes failures when running tests against sham_rack.
10
+ * Remove deprecation warning about
11
+ RSpec.configuration.backtrace_clean_patterns under RSpec 2.14 ([#37][i37]).
12
+ * Bump integration tests from Rails 4.0.0.rc1 to 4.0.0.
13
+ * Fix Test::Unit 1 and 2 adapters to avoid a possible "undefined
14
+ Test::Unit::TestCase" error.
15
+ * Including RR::Adapters::TestUnit, RR::Adapters::MiniTest, or
16
+ RR::Adapters::RSpec2 now just re-runs the autohook mechanism instead of
17
+ building a fake adapter.
18
+ * Prevent adapters from being double-loaded.
19
+
20
+ ## 1.1.1 (June 17, 2013)
4
21
 
5
22
  * Fix incompatibility issues with Rails 4 ([#26][i26]) and Cucumber
6
23
  ([#29][i29]).
@@ -464,4 +481,7 @@ Issues are re-numbered beginning from 1 from this point on.
464
481
  [i26]: http://github.com/rr/rr/issues/26
465
482
  [i29]: http://github.com/rr/rr/issues/29
466
483
  [i27]: http://github.com/rr/rr/issues/27
484
+ [i34]: http://github.com/rr/rr/issues/34
485
+ [i32]: http://github.com/rr/rr/issues/32
486
+ [i37]: http://github.com/rr/rr/issues/37
467
487
 
data/Gemfile ADDED
@@ -0,0 +1,19 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'rake', '~> 10.0'
4
+ gem 'aws-sdk', '~> 1.0'
5
+ gem 'minitar', '~> 0.5'
6
+ gem 'dotenv', '~> 0.7'
7
+ gem 'simplecov', '~> 0.7'
8
+ gem 'appraisal', '~> 0.5'
9
+ gem 'posix-spawn', :platforms => :mri
10
+ gem 'open4', :platforms => :mri
11
+
12
+ # Put this here instead of in Appraisals so that when running a single test file
13
+ # in development we can say `rspec ...` or `spec ...` instead of having to
14
+ # prepend it with BUNDLE_GEMFILE=...
15
+ if RUBY_VERSION =~ /^1\.8/
16
+ gem 'rspec', '~> 1.3'
17
+ else
18
+ gem 'rspec', '~> 2.14'
19
+ end
data/README.md CHANGED
@@ -1,54 +1,9 @@
1
- # RR [![Build Status](https://secure.travis-ci.org/rr/rr.png)](http://travis-ci.org/rr/rr) [![Code Climate GPA](https://codeclimate.com/github/rr/rr.png)](https://codeclimate.com/github/rr/rr)
1
+ # RR [![Gem Version](https://badge.fury.io/rb/rr.png)](http://badge.fury.io/rb/rr) [![Build Status](https://travis-ci.org/rr/rr.png?branch=master)](https://travis-ci.org/rr/rr) [![Code Climate GPA](https://codeclimate.com/github/rr/rr.png)](https://codeclimate.com/github/rr/rr)
2
2
 
3
3
  RR is a test double framework for Ruby that features a rich selection of double
4
4
  techniques and a terse syntax.
5
5
 
6
6
 
7
- ## Installing RR into your project
8
-
9
- For minimal setup, RR looks for an existing test framework and then hooks itself
10
- into it. Hence, RR works best when loaded *after* the test framework that you
11
- are using is loaded.
12
-
13
- If you are using Bundler, you can achieve this by specifying the dependency on
14
- RR with `require: false`; then, require RR directly following your test
15
- framework.
16
-
17
- Here's what this looks like for different kinds of projects:
18
-
19
- ### Ruby project (without Bundler)
20
-
21
- ~~~ ruby
22
- require 'your/test/framework'
23
- require 'rr'
24
- ~~~
25
-
26
- ### Ruby project (with Bundler)
27
-
28
- ~~~ ruby
29
- # Gemfile
30
- gem 'rr', require: false
31
-
32
- # test helper
33
- require 'your/test/framework'
34
- require 'rr'
35
- ~~~
36
-
37
- ### Rails project
38
-
39
- ~~~ ruby
40
- # Gemfile
41
- group :test do
42
- gem 'rr', require: false
43
- end
44
-
45
- # test helper
46
- require File.expand_path('../../config/environment', __FILE__)
47
- require 'your/test/framework' # if you are using something other than MiniTest / Test::Unit
48
- require 'rr'
49
- ~~~
50
-
51
-
52
7
  ## A whirlwind tour of RR
53
8
 
54
9
  ### Stubs
@@ -130,6 +85,51 @@ end
130
85
  ~~~
131
86
 
132
87
 
88
+ ## Installing RR into your project
89
+
90
+ For minimal setup, RR looks for an existing test framework and then hooks itself
91
+ into it. Hence, RR works best when loaded *after* the test framework that you
92
+ are using is loaded.
93
+
94
+ If you are using Bundler, you can achieve this by specifying the dependency on
95
+ RR with `require: false`; then, require RR directly following your test
96
+ framework.
97
+
98
+ Here's what this looks like for different kinds of projects:
99
+
100
+ ### Ruby project (without Bundler)
101
+
102
+ ~~~ ruby
103
+ require 'your/test/framework'
104
+ require 'rr'
105
+ ~~~
106
+
107
+ ### Ruby project (with Bundler)
108
+
109
+ ~~~ ruby
110
+ # Gemfile
111
+ gem 'rr', require: false
112
+
113
+ # test helper
114
+ require 'your/test/framework'
115
+ require 'rr'
116
+ ~~~
117
+
118
+ ### Rails project
119
+
120
+ ~~~ ruby
121
+ # Gemfile
122
+ group :test do
123
+ gem 'rr', require: false
124
+ end
125
+
126
+ # test helper
127
+ require File.expand_path('../../config/environment', __FILE__)
128
+ require 'your/test/framework' # if you are using something other than MiniTest / Test::Unit
129
+ require 'rr'
130
+ ~~~
131
+
132
+
133
133
  ## Learning more
134
134
 
135
135
  1. [What is a test double?](doc/01_test_double.md)
@@ -137,83 +137,71 @@ end
137
137
  3. [API overview](doc/03_api_overview.md)
138
138
 
139
139
 
140
+ ## Compatibility
141
+
142
+ RR is designed and tested to work against the following Ruby versions:
143
+
144
+ * 1.8.7-p374
145
+ * 1.9.3-p392
146
+ * 2.0.0-p195
147
+ * JRuby 1.7.4
148
+
149
+ as well as the following test frameworks:
150
+
151
+ * RSpec 1 (Ruby 1.8.7)
152
+ * RSpec 2 (Ruby 1.9+)
153
+ * Test::Unit 1 (Ruby 1.8.7)
154
+ * Test::Unit 2.4.x (Ruby 1.8.7)
155
+ * Test::Unit 2.0.0 (Ruby 1.9+)
156
+ * Test::Unit 2.5.x (Ruby 1.9+)
157
+ * MiniTest 4 (Ruby 1.9+)
158
+ * Minitest 5 (Ruby 1.9+)
159
+
160
+ and the following Rails versions:
161
+
162
+ * Rails 2.3.x (Ruby 1.8.7)
163
+ * Rails 3.2.x (Ruby 1.9+)
164
+ * Rails 4.0.x (Ruby 1.9+)
165
+
166
+
140
167
  ## Help!
141
168
 
142
- While I may add one later, RR does not have a mailing list at this time, so if
143
- you have a question simply [post it as an issue](http://github.com/rr/rr/issues)
144
- and I'll respond as soon as I can.
169
+ If you have a question or are having trouble, simply [post it as an
170
+ issue](http://github.com/rr/rr/issues) and I'll respond as soon as I can.
145
171
 
146
172
 
147
173
  ## Contributing
148
174
 
149
- Want to contribute a bugfix or new feature to RR? Great! Follow these steps:
175
+ Want to contribute a bug fix or new feature to RR? Great! Follow these steps:
150
176
 
151
- 1. If you haven't already, install Ruby 2.0.0-p0 (this is the primary Ruby
177
+ 1. Make sure you have Ruby 2.0.0-p195 installed (this is the primary Ruby
152
178
  version that RR targets).
153
179
  2. Clone the repo (you probably knew that already).
154
180
  3. Make a new branch off of `master` with a descriptive name.
155
- 4. Work on your bugfix or feature.
181
+ 4. Work on your patch.
156
182
  5. Run `bundle install`.
157
183
  6. Ensure all of the tests pass by running `bundle exec rake`.
158
184
  7. If you want to go the extra mile, install the other Ruby versions listed
159
- below in the compatibility table, and repeat steps 5-6. See the "Running test
185
+ above in the compatibility table, and repeat steps 5-6. See the "Running test
160
186
  suites" section below for more information.
161
- 8. When you're done, come back to this repo and create a pull request from your
162
- branch. I'll respond as soon as I can.
187
+ 8. When you're done, push your branch and create a pull request from it.
188
+ I'll respond as soon as I can.
163
189
 
164
- ### Running test suites
190
+ ### Running tests
165
191
 
166
- In order to test support for multiple Ruby versions and environments, there are
167
- multiple test suites, and Rake tasks to run these suites. The list of available
168
- Rake tasks depends on which version of Ruby you are under, but you can get the
169
- full list with:
192
+ As indicated by the compatibility list above, in order to test support for
193
+ multiple Ruby versions and environments, there are multiple test suites, and
194
+ Rake tasks to run these suites. The list of available Rake tasks depends on
195
+ which version of Ruby you are under, but you can get the full list with:
170
196
 
171
- rake -D spec:
197
+ bundle exec rake -D spec:
172
198
 
173
199
  To run all the suites, simply say:
174
200
 
175
- rake
201
+ bundle exec rake
176
202
 
177
203
  (Incidentally, this is also the command which Travis runs.)
178
204
 
179
- Finally, to aid development only, if you're using rbenv, you can run all of the
180
- tests on all of the Rubies easily with:
181
-
182
- script/run_full_test_suite
183
-
184
- This requires that you have the
185
- [rbenv-only](https://github.com/rodreegez/rbenv-only) plugin installed, and of
186
- course, the necessary Rubies as well too.
187
-
188
-
189
- ## Compatibility
190
-
191
- RR is designed and tested to work against the following test frameworks and
192
- Ruby/Rails versions:
193
-
194
- | | Ruby 1.8.7-p371 | Ruby 1.9.3-p392 | Ruby 2.0.0-p0 | JRuby 1.7.3 (1.9 mode) |
195
- |-----------------------|:---------------:|:---------------:|:-------------:|:----------------------:|
196
- | MiniTest 4.x | | ✓ | ✓ | ✓ |
197
- | MiniTest 4.x + Rails 3 | | ✓ | ✓ | ✓ |
198
- | MiniTest 4.x + Rails 4.0.0.rc1 | | ✓ | ✓ | ✓ |
199
- | Minitest 5.x | | ✓ | ✓ | ✓ |
200
- | Minitest 5.x + Rails 3 | | ✓ | ✓ | ✓ |
201
- | Test::Unit 1 | ✓ | | | |
202
- | Test::Unit 1 + Rails 2.x | ✓ | | | |
203
- | Test::Unit 2.0.0 | | ✓ | ✓ | ✓ |
204
- | Test::Unit 2.0.0 + Rails 3.x | | ✓ | ✓ | ✓ |
205
- | Test::Unit 2.0.0 + Rails 4.0.0.rc1 | | ✓ | ✓ | ✓ |
206
- | Test::Unit 2.4.x | ✓ | | | |
207
- | Test::Unit 2.4.x + Rails 2.x | ✓ | | | |
208
- | Test::Unit ~> 2.5 | | ✓ | ✓ | ✓ |
209
- | Test::Unit ~> 2.5 + Rails 3.x | | ✓ | ✓ | ✓ |
210
- | Test::Unit ~> 2.5 + Rails 4.0.0.rc1 | | ✓ | ✓ | ✓ |
211
- | RSpec 1.x | ✓ | | | |
212
- | RSpec 1.x + Rails 2.x | ✓ | | | |
213
- | RSpec 2.x | | ✓ | ✓ | ✓ |
214
- | RSpec 2.x + Rails 3.x | | ✓ | ✓ | ✓ |
215
- | RSpec 2.x + Rails 4.0.0.rc1 | | ✓ | ✓ | ✓ |
216
-
217
205
 
218
206
  ## Author/Contact
219
207
 
@@ -224,13 +212,10 @@ Winkler (<elliot.winkler@gmail.com>).
224
212
  ## Credits
225
213
 
226
214
  With any development effort, there are countless people who have contributed to
227
- making it possible. We all are standing on the shoulders of giants! [You can
228
- read all the credits here](CREDITS.md). (Incidentally, if you've directly
229
- contributed to RR and I haven't included you in this list, please let me know.
230
- Thanks!)
215
+ making it possible; RR is no exception! [You can read the full list of
216
+ credits here](CREDITS.md).
231
217
 
232
218
 
233
219
  ## License
234
220
 
235
- RR is available under the MIT license. Read [LICENSE](LICENSE) for the full
236
- scoop.
221
+ RR is available under the [MIT license](LICENSE).
@@ -0,0 +1,55 @@
1
+ require 'rubygems'
2
+ require 'bundler'
3
+ require 'rake'
4
+
5
+ require 'pp'
6
+
7
+ # appraisal
8
+ require 'appraisal'
9
+
10
+ # build, install, release
11
+ require 'bundler/gem_tasks'
12
+
13
+ # appraisals
14
+ Appraisal::File.each do |appraisal|
15
+ desc "Resolve and install dependencies for the #{appraisal.name} appraisal"
16
+ task "appraisal:#{appraisal.name}:install" do
17
+ appraisal.install
18
+ end
19
+ end
20
+
21
+ # spec
22
+ require File.expand_path('../spec/defines_spec_suite_tasks', __FILE__)
23
+ DefinesSpecSuiteTasks.call
24
+ task :default => ['appraisal:install', :spec]
25
+
26
+ task :package_tests do
27
+ require File.expand_path('../lib/rr/version', __FILE__)
28
+ require 'aws/s3'
29
+ require 'archive/tar/minitar'
30
+ require 'dotenv'
31
+
32
+ Dotenv.load
33
+ AWS.config(
34
+ :access_key_id => ENV['AWS_ACCESS_KEY_ID'],
35
+ :secret_access_key => ENV['AWS_SECRET_ACCESS_KEY']
36
+ )
37
+
38
+ file_path = File.join(Dir.tmpdir, "rr-#{RR.version}-tests.tar")
39
+ File.open(file_path, 'wb') do |fh|
40
+ Zlib::GzipWriter.open(fh) do |zfh|
41
+ Archive::Tar::Minitar.pack('spec', zfh)
42
+ end
43
+ end
44
+ puts "Wrote to #{file_path}."
45
+
46
+ remote_file_path = "v#{RR.version}.tar.gz"
47
+ bucket_name = 'rubygem-rr/tests'
48
+ puts "Uploading #{file_path} to s3.amazonaws.com/#{bucket_name}/#{remote_file_path} ..."
49
+ s3 = AWS::S3.new
50
+ bucket = s3.buckets[bucket_name]
51
+ object = bucket.objects[remote_file_path]
52
+ File.open(file_path, 'rb') {|f| object.write(f) }
53
+ object.acl = :public_read
54
+ end
55
+ task :release => :package_tests
@@ -0,0 +1,14 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "rake", "~> 10.0"
6
+ gem "aws-sdk", "~> 1.0"
7
+ gem "minitar", "~> 0.5"
8
+ gem "dotenv", "~> 0.7"
9
+ gem "simplecov", "~> 0.7"
10
+ gem "appraisal", "~> 0.5"
11
+ gem "posix-spawn", :platforms=>:mri
12
+ gem "open4", :platforms=>:mri
13
+ gem "rspec", "~> 1.3"
14
+
@@ -0,0 +1,38 @@
1
+ GEM
2
+ remote: https://rubygems.org/
3
+ specs:
4
+ appraisal (0.5.2)
5
+ bundler
6
+ rake
7
+ aws-sdk (1.9.2)
8
+ json (~> 1.4)
9
+ nokogiri (>= 1.4.4)
10
+ uuidtools (~> 2.1)
11
+ dotenv (0.7.0)
12
+ json (1.7.7)
13
+ minitar (0.5.4)
14
+ multi_json (1.7.7)
15
+ nokogiri (1.5.9)
16
+ open4 (1.3.0)
17
+ posix-spawn (0.3.6)
18
+ rake (10.0.4)
19
+ rspec (1.3.2)
20
+ simplecov (0.7.1)
21
+ multi_json (~> 1.0)
22
+ simplecov-html (~> 0.7.1)
23
+ simplecov-html (0.7.1)
24
+ uuidtools (2.1.4)
25
+
26
+ PLATFORMS
27
+ ruby
28
+
29
+ DEPENDENCIES
30
+ appraisal (~> 0.5)
31
+ aws-sdk (~> 1.0)
32
+ dotenv (~> 0.7)
33
+ minitar (~> 0.5)
34
+ open4
35
+ posix-spawn
36
+ rake (~> 10.0)
37
+ rspec (~> 1.3)
38
+ simplecov (~> 0.7)