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,97 @@
1
+ module RSpec
2
+ module Mocks
3
+ # @private
4
+ class TargetBase
5
+ def initialize(target)
6
+ @target = target
7
+ end
8
+
9
+ def self.delegate_to(matcher_method)
10
+ define_method(:to) do |matcher, &block|
11
+ unless matcher_allowed?(matcher)
12
+ raise_unsupported_matcher(:to, matcher)
13
+ end
14
+ define_matcher(matcher, matcher_method, &block)
15
+ end
16
+ end
17
+
18
+ def self.delegate_not_to(matcher_method, options={})
19
+ method_name = options.fetch(:from)
20
+ define_method(method_name) do |matcher, &block|
21
+ case matcher
22
+ when Matchers::Receive
23
+ define_matcher(matcher, matcher_method, &block)
24
+ when Matchers::ReceiveMessages, Matchers::ReceiveMessageChain
25
+ raise_negation_unsupported(method_name, matcher)
26
+ else
27
+ raise_unsupported_matcher(method_name, matcher)
28
+ end
29
+ end
30
+ end
31
+
32
+ def self.disallow_negation(method_name)
33
+ define_method(method_name) do |matcher, *_args|
34
+ raise_negation_unsupported(method_name, matcher)
35
+ end
36
+ end
37
+
38
+ private
39
+
40
+ def matcher_allowed?(matcher)
41
+ matcher.class.name.start_with?("RSpec::Mocks::Matchers".freeze)
42
+ end
43
+
44
+ def define_matcher(matcher, name, &block)
45
+ matcher.__send__(name, @target, &block)
46
+ end
47
+
48
+ def raise_unsupported_matcher(method_name, matcher)
49
+ raise UnsupportedMatcherError,
50
+ "only the `receive` or `receive_messages` matchers are supported " \
51
+ "with `#{expression}(...).#{method_name}`, but you have provided: #{matcher}"
52
+ end
53
+
54
+ def raise_negation_unsupported(method_name, matcher)
55
+ raise NegationUnsupportedError,
56
+ "`#{expression}(...).#{method_name} #{matcher.name}` is not supported since it " \
57
+ "doesn't really make sense. What would it even mean?"
58
+ end
59
+
60
+ def expression
61
+ self.class::EXPRESSION
62
+ end
63
+ end
64
+
65
+ # @private
66
+ class AllowanceTarget < TargetBase
67
+ EXPRESSION = :allow
68
+ delegate_to :setup_allowance
69
+ disallow_negation :not_to
70
+ disallow_negation :to_not
71
+ end
72
+
73
+ # @private
74
+ class ExpectationTarget < TargetBase
75
+ EXPRESSION = :expect
76
+ delegate_to :setup_expectation
77
+ delegate_not_to :setup_negative_expectation, :from => :not_to
78
+ delegate_not_to :setup_negative_expectation, :from => :to_not
79
+ end
80
+
81
+ # @private
82
+ class AnyInstanceAllowanceTarget < TargetBase
83
+ EXPRESSION = :allow_any_instance_of
84
+ delegate_to :setup_any_instance_allowance
85
+ disallow_negation :not_to
86
+ disallow_negation :to_not
87
+ end
88
+
89
+ # @private
90
+ class AnyInstanceExpectationTarget < TargetBase
91
+ EXPRESSION = :expect_any_instance_of
92
+ delegate_to :setup_any_instance_expectation
93
+ delegate_not_to :setup_any_instance_negative_expectation, :from => :not_to
94
+ delegate_not_to :setup_any_instance_negative_expectation, :from => :to_not
95
+ end
96
+ end
97
+ end
@@ -0,0 +1,170 @@
1
+ module RSpec
2
+ module Mocks
3
+ # Implements the methods needed for a pure test double. RSpec::Mocks::Double
4
+ # includes this module, and it is provided for cases where you want a
5
+ # pure test double without subclassing RSpec::Mocks::Double.
6
+ module TestDouble
7
+ # Creates a new test double with a `name` (that will be used in error
8
+ # messages only)
9
+ def initialize(name=nil, stubs={})
10
+ @__expired = false
11
+ if Hash === name && stubs.empty?
12
+ stubs = name
13
+ @name = nil
14
+ else
15
+ @name = name
16
+ end
17
+ assign_stubs(stubs)
18
+ end
19
+
20
+ # Tells the object to respond to all messages. If specific stub values
21
+ # are declared, they'll work as expected. If not, the receiver is
22
+ # returned.
23
+ def as_null_object
24
+ __mock_proxy.as_null_object
25
+ end
26
+
27
+ # Returns true if this object has received `as_null_object`
28
+ def null_object?
29
+ __mock_proxy.null_object?
30
+ end
31
+
32
+ # This allows for comparing the mock to other objects that proxy such as
33
+ # ActiveRecords belongs_to proxy objects. By making the other object run
34
+ # the comparison, we're sure the call gets delegated to the proxy
35
+ # target.
36
+ def ==(other)
37
+ other == __mock_proxy
38
+ end
39
+
40
+ # @private
41
+ def inspect
42
+ TestDoubleFormatter.format(self)
43
+ end
44
+
45
+ # @private
46
+ def to_s
47
+ inspect.gsub('<', '[').gsub('>', ']')
48
+ end
49
+
50
+ # @private
51
+ def respond_to?(message, incl_private=false)
52
+ __mock_proxy.null_object? ? true : super
53
+ end
54
+
55
+ # @private
56
+ def __build_mock_proxy_unless_expired(order_group)
57
+ __raise_expired_error || __build_mock_proxy(order_group)
58
+ end
59
+
60
+ # @private
61
+ def __disallow_further_usage!
62
+ @__expired = true
63
+ end
64
+
65
+ # Override for default freeze implementation to prevent freezing of test
66
+ # doubles.
67
+ def freeze
68
+ RSpec.warn_with("WARNING: you attempted to freeze a test double. This is explicitly a no-op as freezing doubles can lead to undesired behaviour when resetting tests.")
69
+ end
70
+
71
+ private
72
+
73
+ def method_missing(message, *args, &block)
74
+ proxy = __mock_proxy
75
+ proxy.record_message_received(message, *args, &block)
76
+
77
+ if proxy.null_object?
78
+ case message
79
+ when :to_int then return 0
80
+ when :to_a, :to_ary then return nil
81
+ when :to_str then return to_s
82
+ else return self
83
+ end
84
+ end
85
+
86
+ # Defined private and protected methods will still trigger `method_missing`
87
+ # when called publicly. We want ruby's method visibility error to get raised,
88
+ # so we simply delegate to `super` in that case.
89
+ # ...well, we would delegate to `super`, but there's a JRuby
90
+ # bug, so we raise our own visibility error instead:
91
+ # https://github.com/jruby/jruby/issues/1398
92
+ visibility = proxy.visibility_for(message)
93
+ if visibility == :private || visibility == :protected
94
+ ErrorGenerator.new(self).raise_non_public_error(
95
+ message, visibility
96
+ )
97
+ end
98
+
99
+ # Required wrapping doubles in an Array on Ruby 1.9.2
100
+ raise NoMethodError if [:to_a, :to_ary].include? message
101
+ proxy.raise_unexpected_message_error(message, args)
102
+ end
103
+
104
+ def assign_stubs(stubs)
105
+ stubs.each_pair do |message, response|
106
+ __mock_proxy.add_simple_stub(message, response)
107
+ end
108
+ end
109
+
110
+ def __mock_proxy
111
+ ::RSpec::Mocks.space.proxy_for(self)
112
+ end
113
+
114
+ def __build_mock_proxy(order_group)
115
+ TestDoubleProxy.new(self, order_group)
116
+ end
117
+
118
+ def __raise_expired_error
119
+ return false unless @__expired
120
+ ErrorGenerator.new(self).raise_expired_test_double_error
121
+ end
122
+
123
+ def initialize_copy(other)
124
+ as_null_object if other.null_object?
125
+ super
126
+ end
127
+ end
128
+
129
+ # A generic test double object. `double`, `instance_double` and friends
130
+ # return an instance of this.
131
+ class Double
132
+ include TestDouble
133
+ end
134
+
135
+ # @private
136
+ module TestDoubleFormatter
137
+ def self.format(dbl, unwrap=false)
138
+ format = "#{type_desc(dbl)}#{verified_module_desc(dbl)} #{name_desc(dbl)}"
139
+ return format if unwrap
140
+ "#<#{format}>"
141
+ end
142
+
143
+ class << self
144
+ private
145
+
146
+ def type_desc(dbl)
147
+ case dbl
148
+ when InstanceVerifyingDouble then "InstanceDouble"
149
+ when ClassVerifyingDouble then "ClassDouble"
150
+ when ObjectVerifyingDouble then "ObjectDouble"
151
+ else "Double"
152
+ end
153
+ end
154
+
155
+ # @private
156
+ IVAR_GET = Object.instance_method(:instance_variable_get)
157
+
158
+ def verified_module_desc(dbl)
159
+ return nil unless VerifyingDouble === dbl
160
+ "(#{IVAR_GET.bind(dbl).call(:@doubled_module).description})"
161
+ end
162
+
163
+ def name_desc(dbl)
164
+ return "(anonymous)" unless (name = IVAR_GET.bind(dbl).call(:@name))
165
+ name.inspect
166
+ end
167
+ end
168
+ end
169
+ end
170
+ end
@@ -0,0 +1,129 @@
1
+ RSpec::Support.require_rspec_mocks 'verifying_proxy'
2
+
3
+ module RSpec
4
+ module Mocks
5
+ # @private
6
+ module VerifyingDouble
7
+ def respond_to?(message, include_private=false)
8
+ return super unless null_object?
9
+
10
+ method_ref = __mock_proxy.method_reference[message]
11
+
12
+ case method_ref.visibility
13
+ when :public then true
14
+ when :private then include_private
15
+ when :protected then include_private || RUBY_VERSION.to_f < 2.0
16
+ else !method_ref.unimplemented?
17
+ end
18
+ end
19
+
20
+ def method_missing(message, *args, &block)
21
+ # Null object conditional is an optimization. If not a null object,
22
+ # validity of method expectations will have been checked at definition
23
+ # time.
24
+ if null_object?
25
+ if @__sending_message == message
26
+ __mock_proxy.ensure_implemented(message)
27
+ else
28
+ __mock_proxy.ensure_publicly_implemented(message, self)
29
+ end
30
+
31
+ __mock_proxy.validate_arguments!(message, args)
32
+ end
33
+
34
+ super
35
+ end
36
+
37
+ # @private
38
+ module SilentIO
39
+ def self.method_missing(*); end
40
+ def self.respond_to?(*)
41
+ true
42
+ end
43
+ end
44
+
45
+ # Redefining `__send__` causes ruby to issue a warning.
46
+ old, $stderr = $stderr, SilentIO
47
+ def __send__(name, *args, &block)
48
+ @__sending_message = name
49
+ super
50
+ ensure
51
+ @__sending_message = nil
52
+ end
53
+ $stderr = old
54
+
55
+ def send(name, *args, &block)
56
+ __send__(name, *args, &block)
57
+ end
58
+
59
+ def initialize(doubled_module, *args)
60
+ @doubled_module = doubled_module
61
+
62
+ possible_name = args.first
63
+ name = if String === possible_name || Symbol === possible_name
64
+ args.shift
65
+ end
66
+
67
+ super(name, *args)
68
+ @__sending_message = nil
69
+ end
70
+ end
71
+
72
+ # A mock providing a custom proxy that can verify the validity of any
73
+ # method stubs or expectations against the public instance methods of the
74
+ # given class.
75
+ #
76
+ # @private
77
+ class InstanceVerifyingDouble
78
+ include TestDouble
79
+ include VerifyingDouble
80
+
81
+ def __build_mock_proxy(order_group)
82
+ VerifyingProxy.new(self, order_group,
83
+ @doubled_module,
84
+ InstanceMethodReference
85
+ )
86
+ end
87
+ end
88
+
89
+ # An awkward module necessary because we cannot otherwise have
90
+ # ClassVerifyingDouble inherit from Module and still share these methods.
91
+ #
92
+ # @private
93
+ module ObjectVerifyingDoubleMethods
94
+ include TestDouble
95
+ include VerifyingDouble
96
+
97
+ def as_stubbed_const(options={})
98
+ ConstantMutator.stub(@doubled_module.const_to_replace, self, options)
99
+ self
100
+ end
101
+
102
+ private
103
+
104
+ def __build_mock_proxy(order_group)
105
+ VerifyingProxy.new(self, order_group,
106
+ @doubled_module,
107
+ ObjectMethodReference
108
+ )
109
+ end
110
+ end
111
+
112
+ # Similar to an InstanceVerifyingDouble, except that it verifies against
113
+ # public methods of the given object.
114
+ #
115
+ # @private
116
+ class ObjectVerifyingDouble
117
+ include ObjectVerifyingDoubleMethods
118
+ end
119
+
120
+ # Effectively the same as an ObjectVerifyingDouble (since a class is a type
121
+ # of object), except with Module in the inheritance chain so that
122
+ # transferring nested constants to work.
123
+ #
124
+ # @private
125
+ class ClassVerifyingDouble < Module
126
+ include ObjectVerifyingDoubleMethods
127
+ end
128
+ end
129
+ end
@@ -0,0 +1,54 @@
1
+ RSpec::Support.require_rspec_support 'method_signature_verifier'
2
+
3
+ module RSpec
4
+ module Mocks
5
+ # A message expectation that knows about the real implementation of the
6
+ # message being expected, so that it can verify that any expectations
7
+ # have the valid arguments.
8
+ # @api private
9
+ class VerifyingMessageExpectation < MessageExpectation
10
+ # A level of indirection is used here rather than just passing in the
11
+ # method itself, since method look up is expensive and we only want to
12
+ # do it if actually needed.
13
+ #
14
+ # Conceptually the method reference makes more sense as a constructor
15
+ # argument since it should be immutable, but it is significantly more
16
+ # straight forward to build the object in pieces so for now it stays as
17
+ # an accessor.
18
+ attr_accessor :method_reference
19
+
20
+ def initialize(*args)
21
+ super
22
+ end
23
+
24
+ # @private
25
+ def with(*args, &block)
26
+ super(*args, &block).tap do
27
+ validate_expected_arguments! do |signature|
28
+ example_call_site_args = [:an_arg] * signature.min_non_kw_args
29
+ example_call_site_args << :kw_args_hash if signature.required_kw_args.any?
30
+ @argument_list_matcher.resolve_expected_args_based_on(example_call_site_args)
31
+ end
32
+ end
33
+ end
34
+
35
+ private
36
+
37
+ def validate_expected_arguments!
38
+ return if method_reference.nil?
39
+
40
+ method_reference.with_signature do |signature|
41
+ args = yield signature
42
+ verifier = Support::LooseSignatureVerifier.new(signature, args)
43
+
44
+ unless verifier.valid?
45
+ # Fail fast is required, otherwise the message expecation will fail
46
+ # as well ("expected method not called") and clobber this one.
47
+ @failed_fast = true
48
+ @error_generator.raise_invalid_arguments_error(verifier)
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end