sublimetheme 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (276) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +9 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +4 -0
  5. data/CODE_OF_CONDUCT.md +13 -0
  6. data/Gemfile +4 -0
  7. data/LICENSE.txt +21 -0
  8. data/README.md +230 -0
  9. data/Rakefile +8 -0
  10. data/bin/console +14 -0
  11. data/bin/setup +7 -0
  12. data/lib/sublimetheme.rb +6832 -0
  13. data/lib/sublimetheme/version.rb +3 -0
  14. data/path/bin/htmldiff +25 -0
  15. data/path/bin/htmldiff.bat +6 -0
  16. data/path/bin/ldiff +25 -0
  17. data/path/bin/ldiff.bat +6 -0
  18. data/path/bin/rspec +23 -0
  19. data/path/bin/rspec.bat +6 -0
  20. data/path/cache/diff-lcs-1.2.5.gem +0 -0
  21. data/path/cache/rspec-3.3.0.gem +0 -0
  22. data/path/cache/rspec-core-3.3.2.gem +0 -0
  23. data/path/cache/rspec-expectations-3.3.1.gem +0 -0
  24. data/path/cache/rspec-mocks-3.3.2.gem +0 -0
  25. data/path/cache/rspec-support-3.3.0.gem +0 -0
  26. data/path/gems/diff-lcs-1.2.5/.autotest +3 -0
  27. data/path/gems/diff-lcs-1.2.5/.gemtest +0 -0
  28. data/path/gems/diff-lcs-1.2.5/.hoerc +2 -0
  29. data/path/gems/diff-lcs-1.2.5/.rspec +2 -0
  30. data/path/gems/diff-lcs-1.2.5/.travis.yml +22 -0
  31. data/path/gems/diff-lcs-1.2.5/Contributing.rdoc +64 -0
  32. data/path/gems/diff-lcs-1.2.5/Gemfile +20 -0
  33. data/path/gems/diff-lcs-1.2.5/History.rdoc +152 -0
  34. data/path/gems/diff-lcs-1.2.5/License.rdoc +39 -0
  35. data/path/gems/diff-lcs-1.2.5/Manifest.txt +38 -0
  36. data/path/gems/diff-lcs-1.2.5/README.rdoc +85 -0
  37. data/path/gems/diff-lcs-1.2.5/Rakefile +41 -0
  38. data/path/gems/diff-lcs-1.2.5/autotest/discover.rb +1 -0
  39. data/path/gems/diff-lcs-1.2.5/bin/htmldiff +32 -0
  40. data/path/gems/diff-lcs-1.2.5/bin/ldiff +6 -0
  41. data/path/gems/diff-lcs-1.2.5/docs/COPYING.txt +339 -0
  42. data/path/gems/diff-lcs-1.2.5/docs/artistic.txt +127 -0
  43. data/path/gems/diff-lcs-1.2.5/lib/diff-lcs.rb +3 -0
  44. data/path/gems/diff-lcs-1.2.5/lib/diff/lcs.rb +805 -0
  45. data/path/gems/diff-lcs-1.2.5/lib/diff/lcs/array.rb +7 -0
  46. data/path/gems/diff-lcs-1.2.5/lib/diff/lcs/block.rb +37 -0
  47. data/path/gems/diff-lcs-1.2.5/lib/diff/lcs/callbacks.rb +322 -0
  48. data/path/gems/diff-lcs-1.2.5/lib/diff/lcs/change.rb +177 -0
  49. data/path/gems/diff-lcs-1.2.5/lib/diff/lcs/htmldiff.rb +149 -0
  50. data/path/gems/diff-lcs-1.2.5/lib/diff/lcs/hunk.rb +276 -0
  51. data/path/gems/diff-lcs-1.2.5/lib/diff/lcs/internals.rb +301 -0
  52. data/path/gems/diff-lcs-1.2.5/lib/diff/lcs/ldiff.rb +195 -0
  53. data/path/gems/diff-lcs-1.2.5/lib/diff/lcs/string.rb +5 -0
  54. data/path/gems/diff-lcs-1.2.5/spec/change_spec.rb +65 -0
  55. data/path/gems/diff-lcs-1.2.5/spec/diff_spec.rb +47 -0
  56. data/path/gems/diff-lcs-1.2.5/spec/hunk_spec.rb +72 -0
  57. data/path/gems/diff-lcs-1.2.5/spec/issues_spec.rb +24 -0
  58. data/path/gems/diff-lcs-1.2.5/spec/lcs_spec.rb +54 -0
  59. data/path/gems/diff-lcs-1.2.5/spec/patch_spec.rb +414 -0
  60. data/path/gems/diff-lcs-1.2.5/spec/sdiff_spec.rb +214 -0
  61. data/path/gems/diff-lcs-1.2.5/spec/spec_helper.rb +290 -0
  62. data/path/gems/diff-lcs-1.2.5/spec/traverse_balanced_spec.rb +310 -0
  63. data/path/gems/diff-lcs-1.2.5/spec/traverse_sequences_spec.rb +139 -0
  64. data/path/gems/rspec-3.3.0/License.txt +24 -0
  65. data/path/gems/rspec-3.3.0/README.md +34 -0
  66. data/path/gems/rspec-3.3.0/lib/rspec.rb +3 -0
  67. data/path/gems/rspec-3.3.0/lib/rspec/version.rb +5 -0
  68. data/path/gems/rspec-core-3.3.2/.document +5 -0
  69. data/path/gems/rspec-core-3.3.2/.yardopts +8 -0
  70. data/path/gems/rspec-core-3.3.2/Changelog.md +1856 -0
  71. data/path/gems/rspec-core-3.3.2/License.txt +25 -0
  72. data/path/gems/rspec-core-3.3.2/README.md +369 -0
  73. data/path/gems/rspec-core-3.3.2/exe/rspec +4 -0
  74. data/path/gems/rspec-core-3.3.2/lib/rspec/autorun.rb +3 -0
  75. data/path/gems/rspec-core-3.3.2/lib/rspec/core.rb +181 -0
  76. data/path/gems/rspec-core-3.3.2/lib/rspec/core/backtrace_formatter.rb +64 -0
  77. data/path/gems/rspec-core-3.3.2/lib/rspec/core/bisect/coordinator.rb +66 -0
  78. data/path/gems/rspec-core-3.3.2/lib/rspec/core/bisect/example_minimizer.rb +130 -0
  79. data/path/gems/rspec-core-3.3.2/lib/rspec/core/bisect/runner.rb +139 -0
  80. data/path/gems/rspec-core-3.3.2/lib/rspec/core/bisect/server.rb +61 -0
  81. data/path/gems/rspec-core-3.3.2/lib/rspec/core/bisect/subset_enumerator.rb +39 -0
  82. data/path/gems/rspec-core-3.3.2/lib/rspec/core/configuration.rb +1807 -0
  83. data/path/gems/rspec-core-3.3.2/lib/rspec/core/configuration_options.rb +191 -0
  84. data/path/gems/rspec-core-3.3.2/lib/rspec/core/drb.rb +111 -0
  85. data/path/gems/rspec-core-3.3.2/lib/rspec/core/dsl.rb +96 -0
  86. data/path/gems/rspec-core-3.3.2/lib/rspec/core/example.rb +573 -0
  87. data/path/gems/rspec-core-3.3.2/lib/rspec/core/example_group.rb +796 -0
  88. data/path/gems/rspec-core-3.3.2/lib/rspec/core/example_status_persister.rb +235 -0
  89. data/path/gems/rspec-core-3.3.2/lib/rspec/core/filter_manager.rb +231 -0
  90. data/path/gems/rspec-core-3.3.2/lib/rspec/core/flat_map.rb +20 -0
  91. data/path/gems/rspec-core-3.3.2/lib/rspec/core/formatters.rb +254 -0
  92. data/path/gems/rspec-core-3.3.2/lib/rspec/core/formatters/base_formatter.rb +70 -0
  93. data/path/gems/rspec-core-3.3.2/lib/rspec/core/formatters/base_text_formatter.rb +77 -0
  94. data/path/gems/rspec-core-3.3.2/lib/rspec/core/formatters/bisect_formatter.rb +68 -0
  95. data/path/gems/rspec-core-3.3.2/lib/rspec/core/formatters/bisect_progress_formatter.rb +115 -0
  96. data/path/gems/rspec-core-3.3.2/lib/rspec/core/formatters/console_codes.rb +65 -0
  97. data/path/gems/rspec-core-3.3.2/lib/rspec/core/formatters/deprecation_formatter.rb +223 -0
  98. data/path/gems/rspec-core-3.3.2/lib/rspec/core/formatters/documentation_formatter.rb +70 -0
  99. data/path/gems/rspec-core-3.3.2/lib/rspec/core/formatters/exception_presenter.rb +393 -0
  100. data/path/gems/rspec-core-3.3.2/lib/rspec/core/formatters/fallback_message_formatter.rb +28 -0
  101. data/path/gems/rspec-core-3.3.2/lib/rspec/core/formatters/helpers.rb +109 -0
  102. data/path/gems/rspec-core-3.3.2/lib/rspec/core/formatters/html_formatter.rb +151 -0
  103. data/path/gems/rspec-core-3.3.2/lib/rspec/core/formatters/html_printer.rb +415 -0
  104. data/path/gems/rspec-core-3.3.2/lib/rspec/core/formatters/json_formatter.rb +96 -0
  105. data/path/gems/rspec-core-3.3.2/lib/rspec/core/formatters/profile_formatter.rb +68 -0
  106. data/path/gems/rspec-core-3.3.2/lib/rspec/core/formatters/progress_formatter.rb +28 -0
  107. data/path/gems/rspec-core-3.3.2/lib/rspec/core/formatters/protocol.rb +172 -0
  108. data/path/gems/rspec-core-3.3.2/lib/rspec/core/formatters/snippet_extractor.rb +116 -0
  109. data/path/gems/rspec-core-3.3.2/lib/rspec/core/hooks.rb +638 -0
  110. data/path/gems/rspec-core-3.3.2/lib/rspec/core/memoized_helpers.rb +532 -0
  111. data/path/gems/rspec-core-3.3.2/lib/rspec/core/metadata.rb +490 -0
  112. data/path/gems/rspec-core-3.3.2/lib/rspec/core/metadata_filter.rb +235 -0
  113. data/path/gems/rspec-core-3.3.2/lib/rspec/core/minitest_assertions_adapter.rb +31 -0
  114. data/path/gems/rspec-core-3.3.2/lib/rspec/core/mocking_adapters/flexmock.rb +31 -0
  115. data/path/gems/rspec-core-3.3.2/lib/rspec/core/mocking_adapters/mocha.rb +57 -0
  116. data/path/gems/rspec-core-3.3.2/lib/rspec/core/mocking_adapters/null.rb +14 -0
  117. data/path/gems/rspec-core-3.3.2/lib/rspec/core/mocking_adapters/rr.rb +31 -0
  118. data/path/gems/rspec-core-3.3.2/lib/rspec/core/mocking_adapters/rspec.rb +32 -0
  119. data/path/gems/rspec-core-3.3.2/lib/rspec/core/mutex.rb +63 -0
  120. data/path/gems/rspec-core-3.3.2/lib/rspec/core/notifications.rb +498 -0
  121. data/path/gems/rspec-core-3.3.2/lib/rspec/core/option_parser.rb +301 -0
  122. data/path/gems/rspec-core-3.3.2/lib/rspec/core/ordering.rb +158 -0
  123. data/path/gems/rspec-core-3.3.2/lib/rspec/core/pending.rb +165 -0
  124. data/path/gems/rspec-core-3.3.2/lib/rspec/core/profiler.rb +32 -0
  125. data/path/gems/rspec-core-3.3.2/lib/rspec/core/project_initializer.rb +48 -0
  126. data/path/gems/rspec-core-3.3.2/lib/rspec/core/project_initializer/.rspec +2 -0
  127. data/path/gems/rspec-core-3.3.2/lib/rspec/core/project_initializer/spec/spec_helper.rb +96 -0
  128. data/path/gems/rspec-core-3.3.2/lib/rspec/core/rake_task.rb +158 -0
  129. data/path/gems/rspec-core-3.3.2/lib/rspec/core/reentrant_mutex.rb +52 -0
  130. data/path/gems/rspec-core-3.3.2/lib/rspec/core/reporter.rb +220 -0
  131. data/path/gems/rspec-core-3.3.2/lib/rspec/core/ruby_project.rb +53 -0
  132. data/path/gems/rspec-core-3.3.2/lib/rspec/core/runner.rb +179 -0
  133. data/path/gems/rspec-core-3.3.2/lib/rspec/core/sandbox.rb +37 -0
  134. data/path/gems/rspec-core-3.3.2/lib/rspec/core/set.rb +49 -0
  135. data/path/gems/rspec-core-3.3.2/lib/rspec/core/shared_context.rb +55 -0
  136. data/path/gems/rspec-core-3.3.2/lib/rspec/core/shared_example_group.rb +210 -0
  137. data/path/gems/rspec-core-3.3.2/lib/rspec/core/shell_escape.rb +49 -0
  138. data/path/gems/rspec-core-3.3.2/lib/rspec/core/test_unit_assertions_adapter.rb +30 -0
  139. data/path/gems/rspec-core-3.3.2/lib/rspec/core/version.rb +9 -0
  140. data/path/gems/rspec-core-3.3.2/lib/rspec/core/warnings.rb +40 -0
  141. data/path/gems/rspec-core-3.3.2/lib/rspec/core/world.rb +178 -0
  142. data/path/gems/rspec-expectations-3.3.1/.document +5 -0
  143. data/path/gems/rspec-expectations-3.3.1/.yardopts +6 -0
  144. data/path/gems/rspec-expectations-3.3.1/Changelog.md +953 -0
  145. data/path/gems/rspec-expectations-3.3.1/License.txt +24 -0
  146. data/path/gems/rspec-expectations-3.3.1/README.md +289 -0
  147. data/path/gems/rspec-expectations-3.3.1/lib/rspec/expectations.rb +81 -0
  148. data/path/gems/rspec-expectations-3.3.1/lib/rspec/expectations/configuration.rb +164 -0
  149. data/path/gems/rspec-expectations-3.3.1/lib/rspec/expectations/expectation_target.rb +113 -0
  150. data/path/gems/rspec-expectations-3.3.1/lib/rspec/expectations/fail_with.rb +31 -0
  151. data/path/gems/rspec-expectations-3.3.1/lib/rspec/expectations/failure_aggregator.rb +194 -0
  152. data/path/gems/rspec-expectations-3.3.1/lib/rspec/expectations/handler.rb +170 -0
  153. data/path/gems/rspec-expectations-3.3.1/lib/rspec/expectations/minitest_integration.rb +31 -0
  154. data/path/gems/rspec-expectations-3.3.1/lib/rspec/expectations/syntax.rb +132 -0
  155. data/path/gems/rspec-expectations-3.3.1/lib/rspec/expectations/version.rb +8 -0
  156. data/path/gems/rspec-expectations-3.3.1/lib/rspec/matchers.rb +1009 -0
  157. data/path/gems/rspec-expectations-3.3.1/lib/rspec/matchers/aliased_matcher.rb +116 -0
  158. data/path/gems/rspec-expectations-3.3.1/lib/rspec/matchers/built_in.rb +52 -0
  159. data/path/gems/rspec-expectations-3.3.1/lib/rspec/matchers/built_in/all.rb +85 -0
  160. data/path/gems/rspec-expectations-3.3.1/lib/rspec/matchers/built_in/base_matcher.rb +181 -0
  161. data/path/gems/rspec-expectations-3.3.1/lib/rspec/matchers/built_in/be.rb +285 -0
  162. data/path/gems/rspec-expectations-3.3.1/lib/rspec/matchers/built_in/be_between.rb +77 -0
  163. data/path/gems/rspec-expectations-3.3.1/lib/rspec/matchers/built_in/be_instance_of.rb +22 -0
  164. data/path/gems/rspec-expectations-3.3.1/lib/rspec/matchers/built_in/be_kind_of.rb +16 -0
  165. data/path/gems/rspec-expectations-3.3.1/lib/rspec/matchers/built_in/be_within.rb +72 -0
  166. data/path/gems/rspec-expectations-3.3.1/lib/rspec/matchers/built_in/change.rb +337 -0
  167. data/path/gems/rspec-expectations-3.3.1/lib/rspec/matchers/built_in/compound.rb +293 -0
  168. data/path/gems/rspec-expectations-3.3.1/lib/rspec/matchers/built_in/contain_exactly.rb +253 -0
  169. data/path/gems/rspec-expectations-3.3.1/lib/rspec/matchers/built_in/cover.rb +24 -0
  170. data/path/gems/rspec-expectations-3.3.1/lib/rspec/matchers/built_in/eq.rb +40 -0
  171. data/path/gems/rspec-expectations-3.3.1/lib/rspec/matchers/built_in/eql.rb +34 -0
  172. data/path/gems/rspec-expectations-3.3.1/lib/rspec/matchers/built_in/equal.rb +81 -0
  173. data/path/gems/rspec-expectations-3.3.1/lib/rspec/matchers/built_in/exist.rb +86 -0
  174. data/path/gems/rspec-expectations-3.3.1/lib/rspec/matchers/built_in/has.rb +103 -0
  175. data/path/gems/rspec-expectations-3.3.1/lib/rspec/matchers/built_in/have_attributes.rb +114 -0
  176. data/path/gems/rspec-expectations-3.3.1/lib/rspec/matchers/built_in/include.rb +130 -0
  177. data/path/gems/rspec-expectations-3.3.1/lib/rspec/matchers/built_in/match.rb +37 -0
  178. data/path/gems/rspec-expectations-3.3.1/lib/rspec/matchers/built_in/operators.rb +128 -0
  179. data/path/gems/rspec-expectations-3.3.1/lib/rspec/matchers/built_in/output.rb +200 -0
  180. data/path/gems/rspec-expectations-3.3.1/lib/rspec/matchers/built_in/raise_error.rb +216 -0
  181. data/path/gems/rspec-expectations-3.3.1/lib/rspec/matchers/built_in/respond_to.rb +90 -0
  182. data/path/gems/rspec-expectations-3.3.1/lib/rspec/matchers/built_in/satisfy.rb +37 -0
  183. data/path/gems/rspec-expectations-3.3.1/lib/rspec/matchers/built_in/start_or_end_with.rb +94 -0
  184. data/path/gems/rspec-expectations-3.3.1/lib/rspec/matchers/built_in/throw_symbol.rb +132 -0
  185. data/path/gems/rspec-expectations-3.3.1/lib/rspec/matchers/built_in/yield.rb +418 -0
  186. data/path/gems/rspec-expectations-3.3.1/lib/rspec/matchers/composable.rb +184 -0
  187. data/path/gems/rspec-expectations-3.3.1/lib/rspec/matchers/dsl.rb +453 -0
  188. data/path/gems/rspec-expectations-3.3.1/lib/rspec/matchers/english_phrasing.rb +42 -0
  189. data/path/gems/rspec-expectations-3.3.1/lib/rspec/matchers/expecteds_for_multiple_diffs.rb +73 -0
  190. data/path/gems/rspec-expectations-3.3.1/lib/rspec/matchers/fail_matchers.rb +42 -0
  191. data/path/gems/rspec-expectations-3.3.1/lib/rspec/matchers/generated_descriptions.rb +42 -0
  192. data/path/gems/rspec-expectations-3.3.1/lib/rspec/matchers/matcher_delegator.rb +35 -0
  193. data/path/gems/rspec-expectations-3.3.1/lib/rspec/matchers/matcher_protocol.rb +99 -0
  194. data/path/gems/rspec-mocks-3.3.2/.document +5 -0
  195. data/path/gems/rspec-mocks-3.3.2/.yardopts +6 -0
  196. data/path/gems/rspec-mocks-3.3.2/Changelog.md +965 -0
  197. data/path/gems/rspec-mocks-3.3.2/License.txt +24 -0
  198. data/path/gems/rspec-mocks-3.3.2/README.md +430 -0
  199. data/path/gems/rspec-mocks-3.3.2/lib/rspec/mocks.rb +126 -0
  200. data/path/gems/rspec-mocks-3.3.2/lib/rspec/mocks/any_instance.rb +11 -0
  201. data/path/gems/rspec-mocks-3.3.2/lib/rspec/mocks/any_instance/chain.rb +110 -0
  202. data/path/gems/rspec-mocks-3.3.2/lib/rspec/mocks/any_instance/error_generator.rb +31 -0
  203. data/path/gems/rspec-mocks-3.3.2/lib/rspec/mocks/any_instance/expect_chain_chain.rb +35 -0
  204. data/path/gems/rspec-mocks-3.3.2/lib/rspec/mocks/any_instance/expectation_chain.rb +48 -0
  205. data/path/gems/rspec-mocks-3.3.2/lib/rspec/mocks/any_instance/message_chains.rb +83 -0
  206. data/path/gems/rspec-mocks-3.3.2/lib/rspec/mocks/any_instance/proxy.rb +116 -0
  207. data/path/gems/rspec-mocks-3.3.2/lib/rspec/mocks/any_instance/recorder.rb +264 -0
  208. data/path/gems/rspec-mocks-3.3.2/lib/rspec/mocks/any_instance/stub_chain.rb +46 -0
  209. data/path/gems/rspec-mocks-3.3.2/lib/rspec/mocks/any_instance/stub_chain_chain.rb +27 -0
  210. data/path/gems/rspec-mocks-3.3.2/lib/rspec/mocks/argument_list_matcher.rb +100 -0
  211. data/path/gems/rspec-mocks-3.3.2/lib/rspec/mocks/argument_matchers.rb +320 -0
  212. data/path/gems/rspec-mocks-3.3.2/lib/rspec/mocks/configuration.rb +188 -0
  213. data/path/gems/rspec-mocks-3.3.2/lib/rspec/mocks/error_generator.rb +362 -0
  214. data/path/gems/rspec-mocks-3.3.2/lib/rspec/mocks/example_methods.rb +421 -0
  215. data/path/gems/rspec-mocks-3.3.2/lib/rspec/mocks/instance_method_stasher.rb +135 -0
  216. data/path/gems/rspec-mocks-3.3.2/lib/rspec/mocks/marshal_extension.rb +41 -0
  217. data/path/gems/rspec-mocks-3.3.2/lib/rspec/mocks/matchers/expectation_customization.rb +20 -0
  218. data/path/gems/rspec-mocks-3.3.2/lib/rspec/mocks/matchers/have_received.rb +116 -0
  219. data/path/gems/rspec-mocks-3.3.2/lib/rspec/mocks/matchers/receive.rb +130 -0
  220. data/path/gems/rspec-mocks-3.3.2/lib/rspec/mocks/matchers/receive_message_chain.rb +80 -0
  221. data/path/gems/rspec-mocks-3.3.2/lib/rspec/mocks/matchers/receive_messages.rb +75 -0
  222. data/path/gems/rspec-mocks-3.3.2/lib/rspec/mocks/message_chain.rb +87 -0
  223. data/path/gems/rspec-mocks-3.3.2/lib/rspec/mocks/message_expectation.rb +717 -0
  224. data/path/gems/rspec-mocks-3.3.2/lib/rspec/mocks/method_double.rb +287 -0
  225. data/path/gems/rspec-mocks-3.3.2/lib/rspec/mocks/method_reference.rb +192 -0
  226. data/path/gems/rspec-mocks-3.3.2/lib/rspec/mocks/mutate_const.rb +335 -0
  227. data/path/gems/rspec-mocks-3.3.2/lib/rspec/mocks/mutex.rb +73 -0
  228. data/path/gems/rspec-mocks-3.3.2/lib/rspec/mocks/object_reference.rb +149 -0
  229. data/path/gems/rspec-mocks-3.3.2/lib/rspec/mocks/order_group.rb +81 -0
  230. data/path/gems/rspec-mocks-3.3.2/lib/rspec/mocks/proxy.rb +439 -0
  231. data/path/gems/rspec-mocks-3.3.2/lib/rspec/mocks/reentrant_mutex.rb +53 -0
  232. data/path/gems/rspec-mocks-3.3.2/lib/rspec/mocks/space.rb +238 -0
  233. data/path/gems/rspec-mocks-3.3.2/lib/rspec/mocks/standalone.rb +3 -0
  234. data/path/gems/rspec-mocks-3.3.2/lib/rspec/mocks/syntax.rb +325 -0
  235. data/path/gems/rspec-mocks-3.3.2/lib/rspec/mocks/targets.rb +97 -0
  236. data/path/gems/rspec-mocks-3.3.2/lib/rspec/mocks/test_double.rb +170 -0
  237. data/path/gems/rspec-mocks-3.3.2/lib/rspec/mocks/verifying_double.rb +129 -0
  238. data/path/gems/rspec-mocks-3.3.2/lib/rspec/mocks/verifying_message_expecation.rb +54 -0
  239. data/path/gems/rspec-mocks-3.3.2/lib/rspec/mocks/verifying_proxy.rb +213 -0
  240. data/path/gems/rspec-mocks-3.3.2/lib/rspec/mocks/version.rb +9 -0
  241. data/path/gems/rspec-support-3.3.0/Changelog.md +125 -0
  242. data/path/gems/rspec-support-3.3.0/LICENSE.txt +22 -0
  243. data/path/gems/rspec-support-3.3.0/README.md +26 -0
  244. data/path/gems/rspec-support-3.3.0/lib/rspec/support.rb +111 -0
  245. data/path/gems/rspec-support-3.3.0/lib/rspec/support/caller_filter.rb +83 -0
  246. data/path/gems/rspec-support-3.3.0/lib/rspec/support/differ.rb +215 -0
  247. data/path/gems/rspec-support-3.3.0/lib/rspec/support/directory_maker.rb +63 -0
  248. data/path/gems/rspec-support-3.3.0/lib/rspec/support/encoded_string.rb +155 -0
  249. data/path/gems/rspec-support-3.3.0/lib/rspec/support/fuzzy_matcher.rb +48 -0
  250. data/path/gems/rspec-support-3.3.0/lib/rspec/support/hunk_generator.rb +47 -0
  251. data/path/gems/rspec-support-3.3.0/lib/rspec/support/matcher_definition.rb +42 -0
  252. data/path/gems/rspec-support-3.3.0/lib/rspec/support/method_signature_verifier.rb +273 -0
  253. data/path/gems/rspec-support-3.3.0/lib/rspec/support/object_formatter.rb +93 -0
  254. data/path/gems/rspec-support-3.3.0/lib/rspec/support/recursive_const_methods.rb +76 -0
  255. data/path/gems/rspec-support-3.3.0/lib/rspec/support/ruby_features.rb +118 -0
  256. data/path/gems/rspec-support-3.3.0/lib/rspec/support/spec.rb +81 -0
  257. data/path/gems/rspec-support-3.3.0/lib/rspec/support/spec/deprecation_helpers.rb +64 -0
  258. data/path/gems/rspec-support-3.3.0/lib/rspec/support/spec/formatting_support.rb +9 -0
  259. data/path/gems/rspec-support-3.3.0/lib/rspec/support/spec/in_sub_process.rb +52 -0
  260. data/path/gems/rspec-support-3.3.0/lib/rspec/support/spec/library_wide_checks.rb +145 -0
  261. data/path/gems/rspec-support-3.3.0/lib/rspec/support/spec/shell_out.rb +71 -0
  262. data/path/gems/rspec-support-3.3.0/lib/rspec/support/spec/stderr_splitter.rb +63 -0
  263. data/path/gems/rspec-support-3.3.0/lib/rspec/support/spec/string_matcher.rb +46 -0
  264. data/path/gems/rspec-support-3.3.0/lib/rspec/support/spec/with_isolated_directory.rb +9 -0
  265. data/path/gems/rspec-support-3.3.0/lib/rspec/support/spec/with_isolated_stderr.rb +13 -0
  266. data/path/gems/rspec-support-3.3.0/lib/rspec/support/version.rb +7 -0
  267. data/path/gems/rspec-support-3.3.0/lib/rspec/support/version_checker.rb +53 -0
  268. data/path/gems/rspec-support-3.3.0/lib/rspec/support/warnings.rb +39 -0
  269. data/path/specifications/diff-lcs-1.2.5.gemspec +68 -0
  270. data/path/specifications/rspec-3.3.0.gemspec +42 -0
  271. data/path/specifications/rspec-core-3.3.2.gemspec +68 -0
  272. data/path/specifications/rspec-expectations-3.3.1.gemspec +50 -0
  273. data/path/specifications/rspec-mocks-3.3.2.gemspec +53 -0
  274. data/path/specifications/rspec-support-3.3.0.gemspec +38 -0
  275. data/sublimetheme.gemspec +32 -0
  276. metadata +363 -0
@@ -0,0 +1,287 @@
1
+ module RSpec
2
+ module Mocks
3
+ # @private
4
+ class MethodDouble
5
+ # @private
6
+ attr_reader :method_name, :object, :expectations, :stubs
7
+
8
+ # @private
9
+ def initialize(object, method_name, proxy)
10
+ @method_name = method_name
11
+ @object = object
12
+ @proxy = proxy
13
+
14
+ @original_visibility = nil
15
+ @method_stasher = InstanceMethodStasher.new(object, method_name)
16
+ @method_is_proxied = false
17
+ @expectations = []
18
+ @stubs = []
19
+ end
20
+
21
+ def original_implementation_callable
22
+ # If original method is not present, uses the `method_missing`
23
+ # handler of the object. This accounts for cases where the user has not
24
+ # correctly defined `respond_to?`, and also 1.8 which does not provide
25
+ # method handles for missing methods even if `respond_to?` is correct.
26
+ @original_implementation_callable ||= original_method ||
27
+ Proc.new do |*args, &block|
28
+ @object.__send__(:method_missing, @method_name, *args, &block)
29
+ end
30
+ end
31
+
32
+ alias_method :save_original_implementation_callable!, :original_implementation_callable
33
+
34
+ def original_method
35
+ @original_method ||=
36
+ @method_stasher.original_method ||
37
+ @proxy.original_method_handle_for(method_name)
38
+ end
39
+
40
+ # @private
41
+ def visibility
42
+ @proxy.visibility_for(@method_name)
43
+ end
44
+
45
+ # @private
46
+ def object_singleton_class
47
+ class << @object; self; end
48
+ end
49
+
50
+ # @private
51
+ def configure_method
52
+ @original_visibility = visibility
53
+ @method_stasher.stash unless @method_is_proxied
54
+ define_proxy_method
55
+ end
56
+
57
+ # @private
58
+ def define_proxy_method
59
+ return if @method_is_proxied
60
+
61
+ save_original_implementation_callable!
62
+ definition_target.class_exec(self, method_name, visibility) do |method_double, method_name, visibility|
63
+ define_method(method_name) do |*args, &block|
64
+ method_double.proxy_method_invoked(self, *args, &block)
65
+ end
66
+ __send__(visibility, method_name)
67
+ end
68
+
69
+ @method_is_proxied = true
70
+ end
71
+
72
+ # The implementation of the proxied method. Subclasses may override this
73
+ # method to perform additional operations.
74
+ #
75
+ # @private
76
+ def proxy_method_invoked(_obj, *args, &block)
77
+ @proxy.message_received method_name, *args, &block
78
+ end
79
+
80
+ # @private
81
+ def restore_original_method
82
+ return show_frozen_warning if object_singleton_class.frozen?
83
+ return unless @method_is_proxied
84
+
85
+ remove_method_from_definition_target
86
+ @method_stasher.restore if @method_stasher.method_is_stashed?
87
+ restore_original_visibility
88
+
89
+ @method_is_proxied = false
90
+ end
91
+
92
+ # @private
93
+ def show_frozen_warning
94
+ RSpec.warn_with(
95
+ "WARNING: rspec-mocks was unable to restore the original `#{@method_name}` " \
96
+ "method on #{@object.inspect} because it has been frozen. If you reuse this " \
97
+ "object, `#{@method_name}` will continue to respond with its stub implementation.",
98
+ :call_site => nil,
99
+ :use_spec_location_as_call_site => true
100
+ )
101
+ end
102
+
103
+ # @private
104
+ def restore_original_visibility
105
+ return unless @original_visibility &&
106
+ MethodReference.method_defined_at_any_visibility?(object_singleton_class, @method_name)
107
+
108
+ object_singleton_class.__send__(@original_visibility, method_name)
109
+ end
110
+
111
+ # @private
112
+ def verify
113
+ expectations.each { |e| e.verify_messages_received }
114
+ end
115
+
116
+ # @private
117
+ def reset
118
+ restore_original_method
119
+ clear
120
+ end
121
+
122
+ # @private
123
+ def clear
124
+ expectations.clear
125
+ stubs.clear
126
+ end
127
+
128
+ # The type of message expectation to create has been extracted to its own
129
+ # method so that subclasses can override it.
130
+ #
131
+ # @private
132
+ def message_expectation_class
133
+ MessageExpectation
134
+ end
135
+
136
+ # @private
137
+ def add_expectation(error_generator, expectation_ordering, expected_from, opts, &implementation)
138
+ configure_method
139
+ expectation = message_expectation_class.new(error_generator, expectation_ordering,
140
+ expected_from, self, :expectation, opts, &implementation)
141
+ expectations << expectation
142
+ expectation
143
+ end
144
+
145
+ # @private
146
+ def build_expectation(error_generator, expectation_ordering)
147
+ expected_from = IGNORED_BACKTRACE_LINE
148
+ message_expectation_class.new(error_generator, expectation_ordering, expected_from, self)
149
+ end
150
+
151
+ # @private
152
+ def add_stub(error_generator, expectation_ordering, expected_from, opts={}, &implementation)
153
+ configure_method
154
+ stub = message_expectation_class.new(error_generator, expectation_ordering, expected_from,
155
+ self, :stub, opts, &implementation)
156
+ stubs.unshift stub
157
+ stub
158
+ end
159
+
160
+ # A simple stub can only return a concrete value for a message, and
161
+ # cannot match on arguments. It is used as an optimization over
162
+ # `add_stub` / `add_expectation` where it is known in advance that this
163
+ # is all that will be required of a stub, such as when passing attributes
164
+ # to the `double` example method. They do not stash or restore existing method
165
+ # definitions.
166
+ #
167
+ # @private
168
+ def add_simple_stub(method_name, response)
169
+ setup_simple_method_double method_name, response, stubs
170
+ end
171
+
172
+ # @private
173
+ def add_simple_expectation(method_name, response, error_generator, backtrace_line)
174
+ setup_simple_method_double method_name, response, expectations, error_generator, backtrace_line
175
+ end
176
+
177
+ # @private
178
+ def setup_simple_method_double(method_name, response, collection, error_generator=nil, backtrace_line=nil)
179
+ define_proxy_method
180
+
181
+ me = SimpleMessageExpectation.new(method_name, response, error_generator, backtrace_line)
182
+ collection.unshift me
183
+ me
184
+ end
185
+
186
+ # @private
187
+ def add_default_stub(*args, &implementation)
188
+ return if stubs.any?
189
+ add_stub(*args, &implementation)
190
+ end
191
+
192
+ # @private
193
+ def remove_stub
194
+ raise_method_not_stubbed_error if stubs.empty?
195
+ remove_stub_if_present
196
+ end
197
+
198
+ # @private
199
+ def remove_stub_if_present
200
+ expectations.empty? ? reset : stubs.clear
201
+ end
202
+
203
+ # @private
204
+ def raise_method_not_stubbed_error
205
+ RSpec::Mocks.error_generator.raise_method_not_stubbed_error(method_name)
206
+ end
207
+
208
+ # In Ruby 2.0.0 and above prepend will alter the method lookup chain.
209
+ # We use an object's singleton class to define method doubles upon,
210
+ # however if the object has had it's singleton class (as opposed to
211
+ # it's actual class) prepended too then the the method lookup chain
212
+ # will look in the prepended module first, **before** the singleton
213
+ # class.
214
+ #
215
+ # This code works around that by providing a mock definition target
216
+ # that is either the singleton class, or if necessary, a prepended module
217
+ # of our own.
218
+ #
219
+ if Support::RubyFeatures.module_prepends_supported?
220
+
221
+ private
222
+
223
+ # We subclass `Module` in order to be able to easily detect our prepended module.
224
+ RSpecPrependedModule = Class.new(Module)
225
+
226
+ def definition_target
227
+ @definition_target ||= usable_rspec_prepended_module || object_singleton_class
228
+ end
229
+
230
+ def usable_rspec_prepended_module
231
+ @proxy.prepended_modules_of_singleton_class.each do |mod|
232
+ # If we have one of our modules prepended before one of the user's
233
+ # modules that defines the method, use that, since our module's
234
+ # definition will take precedence.
235
+ return mod if RSpecPrependedModule === mod
236
+
237
+ # If we hit a user module with the method defined first,
238
+ # we must create a new prepend module, even if one exists later,
239
+ # because ours will only take precedence if it comes first.
240
+ return new_rspec_prepended_module if mod.method_defined?(method_name)
241
+ end
242
+
243
+ nil
244
+ end
245
+
246
+ def new_rspec_prepended_module
247
+ RSpecPrependedModule.new.tap do |mod|
248
+ object_singleton_class.__send__ :prepend, mod
249
+ end
250
+ end
251
+
252
+ else
253
+
254
+ private
255
+
256
+ def definition_target
257
+ object_singleton_class
258
+ end
259
+
260
+ end
261
+
262
+ private
263
+
264
+ def remove_method_from_definition_target
265
+ definition_target.__send__(:remove_method, @method_name)
266
+ rescue NameError
267
+ # This can happen when the method has been monkeyed with by
268
+ # something outside RSpec. This happens, for example, when
269
+ # `file.write` has been stubbed, and then `file.reopen(other_io)`
270
+ # is later called, as `File#reopen` appears to redefine `write`.
271
+ #
272
+ # Note: we could avoid rescuing this by checking
273
+ # `definition_target.instance_method(@method_name).owner == definition_target`,
274
+ # saving us from the cost of the expensive exception, but this error is
275
+ # extremely rare (it was discovered on 2014-12-30, only happens on
276
+ # RUBY_VERSION < 2.0 and our spec suite only hits this condition once),
277
+ # so we'd rather avoid the cost of that check for every method double,
278
+ # and risk the rare situation where this exception will get raised.
279
+ RSpec.warn_with(
280
+ "WARNING: RSpec could not fully restore #{@object.inspect}." \
281
+ "#{@method_name}, possibly because the method has been redefined " \
282
+ "by something outside of RSpec."
283
+ )
284
+ end
285
+ end
286
+ end
287
+ end
@@ -0,0 +1,192 @@
1
+ module RSpec
2
+ module Mocks
3
+ # Represents a method on an object that may or may not be defined.
4
+ # The method may be an instance method on a module or a method on
5
+ # any object.
6
+ #
7
+ # @private
8
+ class MethodReference
9
+ def self.for(object_reference, method_name)
10
+ new(object_reference, method_name)
11
+ end
12
+
13
+ def initialize(object_reference, method_name)
14
+ @object_reference = object_reference
15
+ @method_name = method_name
16
+ end
17
+
18
+ # A method is implemented if sending the message does not result in
19
+ # a `NoMethodError`. It might be dynamically implemented by
20
+ # `method_missing`.
21
+ def implemented?
22
+ @object_reference.when_loaded do |m|
23
+ method_implemented?(m)
24
+ end
25
+ end
26
+
27
+ # Returns true if we definitively know that sending the method
28
+ # will result in a `NoMethodError`.
29
+ #
30
+ # This is not simply the inverse of `implemented?`: there are
31
+ # cases when we don't know if a method is implemented and
32
+ # both `implemented?` and `unimplemented?` will return false.
33
+ def unimplemented?
34
+ @object_reference.when_loaded do |_m|
35
+ return !implemented?
36
+ end
37
+
38
+ # If it's not loaded, then it may be implemented but we can't check.
39
+ false
40
+ end
41
+
42
+ # A method is defined if we are able to get a `Method` object for it.
43
+ # In that case, we can assert against metadata like the arity.
44
+ def defined?
45
+ @object_reference.when_loaded do |m|
46
+ method_defined?(m)
47
+ end
48
+ end
49
+
50
+ def with_signature
51
+ return unless (original = original_method)
52
+ yield Support::MethodSignature.new(original)
53
+ end
54
+
55
+ def visibility
56
+ @object_reference.when_loaded do |m|
57
+ return visibility_from(m)
58
+ end
59
+
60
+ # When it's not loaded, assume it's public. We don't want to
61
+ # wrongly treat the method as private.
62
+ :public
63
+ end
64
+
65
+ private
66
+
67
+ def original_method
68
+ @object_reference.when_loaded do |m|
69
+ self.defined? && find_method(m)
70
+ end
71
+ end
72
+
73
+ def self.instance_method_visibility_for(klass, method_name)
74
+ if klass.public_method_defined?(method_name)
75
+ :public
76
+ elsif klass.private_method_defined?(method_name)
77
+ :private
78
+ elsif klass.protected_method_defined?(method_name)
79
+ :protected
80
+ end
81
+ end
82
+
83
+ class << self
84
+ alias method_defined_at_any_visibility? instance_method_visibility_for
85
+ end
86
+
87
+ def self.method_visibility_for(object, method_name)
88
+ instance_method_visibility_for(class << object; self; end, method_name).tap do |vis|
89
+ # If the method is not defined on the class, `instance_method_visibility_for`
90
+ # returns `nil`. However, it may be handled dynamically by `method_missing`,
91
+ # so here we check `respond_to` (passing false to not check private methods).
92
+ #
93
+ # This only considers the public case, but I don't think it's possible to
94
+ # write `method_missing` in such a way that it handles a dynamic message
95
+ # with private or protected visibility. Ruby doesn't provide you with
96
+ # the caller info.
97
+ return :public if vis.nil? && object.respond_to?(method_name, false)
98
+ end
99
+ end
100
+ end
101
+
102
+ # @private
103
+ class InstanceMethodReference < MethodReference
104
+ private
105
+
106
+ def method_implemented?(mod)
107
+ MethodReference.method_defined_at_any_visibility?(mod, @method_name)
108
+ end
109
+
110
+ # Ideally, we'd use `respond_to?` for `method_implemented?` but we need a
111
+ # reference to an instance to do that and we don't have one. Note that
112
+ # we may get false negatives: if the method is implemented via
113
+ # `method_missing`, we'll return `false` even though it meets our
114
+ # definition of "implemented". However, it's the best we can do.
115
+ alias method_defined? method_implemented?
116
+
117
+ # works around the fact that repeated calls for method parameters will
118
+ # falsely return empty arrays on JRuby in certain circumstances, this
119
+ # is necessary here because we can't dup/clone UnboundMethods.
120
+ #
121
+ # This is necessary due to a bug in JRuby prior to 1.7.5 fixed in:
122
+ # https://github.com/jruby/jruby/commit/99a0613fe29935150d76a9a1ee4cf2b4f63f4a27
123
+ if RUBY_PLATFORM == 'java' && JRUBY_VERSION.split('.')[-1].to_i < 5
124
+ def find_method(mod)
125
+ mod.dup.instance_method(@method_name)
126
+ end
127
+ else
128
+ def find_method(mod)
129
+ mod.instance_method(@method_name)
130
+ end
131
+ end
132
+
133
+ def visibility_from(mod)
134
+ MethodReference.instance_method_visibility_for(mod, @method_name)
135
+ end
136
+ end
137
+
138
+ # @private
139
+ class ObjectMethodReference < MethodReference
140
+ def self.for(object_reference, method_name)
141
+ if ClassNewMethodReference.applies_to?(method_name) { object_reference.when_loaded { |o| o } }
142
+ ClassNewMethodReference.new(object_reference, method_name)
143
+ else
144
+ super
145
+ end
146
+ end
147
+
148
+ private
149
+
150
+ def method_implemented?(object)
151
+ object.respond_to?(@method_name, true)
152
+ end
153
+
154
+ def method_defined?(object)
155
+ (class << object; self; end).method_defined?(@method_name)
156
+ end
157
+
158
+ def find_method(object)
159
+ object.method(@method_name)
160
+ end
161
+
162
+ def visibility_from(object)
163
+ MethodReference.method_visibility_for(object, @method_name)
164
+ end
165
+ end
166
+
167
+ # When a class's `.new` method is stubbed, we want to use the method
168
+ # signature from `#initialize` because `.new`'s signature is a generic
169
+ # `def new(*args)` and it simply delegates to `#initialize` and forwards
170
+ # all args...so the method with the actually used signature is `#initialize`.
171
+ #
172
+ # This method reference implementation handles that specific case.
173
+ # @private
174
+ class ClassNewMethodReference < ObjectMethodReference
175
+ def self.applies_to?(method_name)
176
+ return false unless method_name == :new
177
+ klass = yield
178
+ return false unless klass.respond_to?(:new, true)
179
+
180
+ # We only want to apply our special logic to normal `new` methods.
181
+ # Methods that the user has monkeyed with should be left as-is.
182
+ klass.method(:new).owner == ::Class
183
+ end
184
+
185
+ def with_signature
186
+ @object_reference.when_loaded do |klass|
187
+ yield Support::MethodSignature.new(klass.instance_method(:initialize))
188
+ end
189
+ end
190
+ end
191
+ end
192
+ end