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,83 @@
1
+ RSpec::Support.require_rspec_support "ruby_features"
2
+
3
+ module RSpec
4
+ # Consistent implementation for "cleaning" the caller method to strip out
5
+ # non-rspec lines. This enables errors to be reported at the call site in
6
+ # the code using the library, which is far more useful than the particular
7
+ # internal method that raised an error.
8
+ class CallerFilter
9
+ RSPEC_LIBS = %w[
10
+ core
11
+ mocks
12
+ expectations
13
+ support
14
+ matchers
15
+ rails
16
+ ]
17
+
18
+ ADDITIONAL_TOP_LEVEL_FILES = %w[ autorun ]
19
+
20
+ LIB_REGEX = %r{/lib/rspec/(#{(RSPEC_LIBS + ADDITIONAL_TOP_LEVEL_FILES).join('|')})(\.rb|/)}
21
+
22
+ # rubygems/core_ext/kernel_require.rb isn't actually part of rspec (obviously) but we want
23
+ # it ignored when we are looking for the first meaningful line of the backtrace outside
24
+ # of RSpec. It can show up in the backtrace as the immediate first caller
25
+ # when `CallerFilter.first_non_rspec_line` is called from the top level of a required
26
+ # file, but it depends on if rubygems is loaded or not. We don't want to have to deal
27
+ # with this complexity in our `RSpec.deprecate` calls, so we ignore it here.
28
+ IGNORE_REGEX = Regexp.union(LIB_REGEX, "rubygems/core_ext/kernel_require.rb")
29
+
30
+ if RSpec::Support::RubyFeatures.caller_locations_supported?
31
+ # This supports args because it's more efficient when the caller specifies
32
+ # these. It allows us to skip frames the caller knows are part of RSpec,
33
+ # and to decrease the increment size if the caller is confident the line will
34
+ # be found in a small number of stack frames from `skip_frames`.
35
+ #
36
+ # Note that there is a risk to passing a `skip_frames` value that is too high:
37
+ # If it skippped the first non-rspec line, then this method would return the
38
+ # 2nd or 3rd (or whatever) non-rspec line. Thus, you generally shouldn't pass
39
+ # values for these parameters, particularly since most places that use this are
40
+ # not hot spots (generally it gets used for deprecation warnings). However,
41
+ # if you do have a hot spot that calls this, passing `skip_frames` can make
42
+ # a significant difference. Just make sure that that particular use is tested
43
+ # so that if the provided `skip_frames` changes to no longer be accurate in
44
+ # such a way that would return the wrong stack frame, a test will fail to tell you.
45
+ #
46
+ # See benchmarks/skip_frames_for_caller_filter.rb for measurements.
47
+ def self.first_non_rspec_line(skip_frames=3, increment=5)
48
+ # Why a default `skip_frames` of 3?
49
+ # By the time `caller_locations` is called below, the first 3 frames are:
50
+ # lib/rspec/support/caller_filter.rb:63:in `block in first_non_rspec_line'
51
+ # lib/rspec/support/caller_filter.rb:62:in `loop'
52
+ # lib/rspec/support/caller_filter.rb:62:in `first_non_rspec_line'
53
+
54
+ # `caller` is an expensive method that scales linearly with the size of
55
+ # the stack. The performance hit for fetching it in chunks is small,
56
+ # and since the target line is probably near the top of the stack, the
57
+ # overall improvement of a chunked search like this is significant.
58
+ #
59
+ # See benchmarks/caller.rb for measurements.
60
+
61
+ # The default increment of 5 for this method are mostly arbitrary, but
62
+ # is chosen to give good performance on the common case of creating a double.
63
+
64
+ loop do
65
+ stack = caller_locations(skip_frames, increment)
66
+ raise "No non-lib lines in stack" unless stack
67
+
68
+ line = stack.find { |l| l.path !~ IGNORE_REGEX }
69
+ return line.to_s if line
70
+
71
+ skip_frames += increment
72
+ increment *= 2 # The choice of two here is arbitrary.
73
+ end
74
+ end
75
+ else
76
+ # Earlier rubies do not support the two argument form of `caller`. This
77
+ # fallback is logically the same, but slower.
78
+ def self.first_non_rspec_line(*)
79
+ caller.find { |line| line !~ IGNORE_REGEX }
80
+ end
81
+ end
82
+ end
83
+ end
@@ -0,0 +1,215 @@
1
+ RSpec::Support.require_rspec_support 'encoded_string'
2
+ RSpec::Support.require_rspec_support 'hunk_generator'
3
+ RSpec::Support.require_rspec_support "object_formatter"
4
+
5
+ require 'pp'
6
+
7
+ module RSpec
8
+ module Support
9
+ # rubocop:disable ClassLength
10
+ class Differ
11
+ def diff(actual, expected)
12
+ diff = ""
13
+
14
+ if actual && expected
15
+ if all_strings?(actual, expected)
16
+ if any_multiline_strings?(actual, expected)
17
+ diff = diff_as_string(coerce_to_string(actual), coerce_to_string(expected))
18
+ end
19
+ elsif no_procs?(actual, expected) && no_numbers?(actual, expected)
20
+ diff = diff_as_object(actual, expected)
21
+ end
22
+ end
23
+
24
+ diff.to_s
25
+ end
26
+
27
+ # rubocop:disable MethodLength
28
+ def diff_as_string(actual, expected)
29
+ encoding = EncodedString.pick_encoding(actual, expected)
30
+
31
+ actual = EncodedString.new(actual, encoding)
32
+ expected = EncodedString.new(expected, encoding)
33
+
34
+ output = EncodedString.new("\n", encoding)
35
+ hunks = build_hunks(actual, expected)
36
+
37
+ hunks.each_cons(2) do |prev_hunk, current_hunk|
38
+ begin
39
+ if current_hunk.overlaps?(prev_hunk)
40
+ add_old_hunk_to_hunk(current_hunk, prev_hunk)
41
+ else
42
+ add_to_output(output, prev_hunk.diff(format_type).to_s)
43
+ end
44
+ ensure
45
+ add_to_output(output, "\n")
46
+ end
47
+ end
48
+
49
+ finalize_output(output, hunks.last.diff(format_type).to_s) if hunks.last
50
+
51
+ color_diff output
52
+ rescue Encoding::CompatibilityError
53
+ handle_encoding_errors(actual, expected)
54
+ end
55
+ # rubocop:enable MethodLength
56
+
57
+ def diff_as_object(actual, expected)
58
+ actual_as_string = object_to_string(actual)
59
+ expected_as_string = object_to_string(expected)
60
+ diff_as_string(actual_as_string, expected_as_string)
61
+ end
62
+
63
+ def color?
64
+ @color
65
+ end
66
+
67
+ def initialize(opts={})
68
+ @color = opts.fetch(:color, false)
69
+ @object_preparer = opts.fetch(:object_preparer, lambda { |string| string })
70
+ end
71
+
72
+ private
73
+
74
+ def no_procs?(*args)
75
+ safely_flatten(args).none? { |a| Proc === a }
76
+ end
77
+
78
+ def all_strings?(*args)
79
+ safely_flatten(args).all? { |a| String === a }
80
+ end
81
+
82
+ def any_multiline_strings?(*args)
83
+ all_strings?(*args) && safely_flatten(args).any? { |a| multiline?(a) }
84
+ end
85
+
86
+ def no_numbers?(*args)
87
+ safely_flatten(args).none? { |a| Numeric === a }
88
+ end
89
+
90
+ def coerce_to_string(string_or_array)
91
+ return string_or_array unless Array === string_or_array
92
+ diffably_stringify(string_or_array).join("\n")
93
+ end
94
+
95
+ def diffably_stringify(array)
96
+ array.map do |entry|
97
+ if Array === entry
98
+ entry.inspect
99
+ else
100
+ entry.to_s.gsub("\n", "\\n")
101
+ end
102
+ end
103
+ end
104
+
105
+ if String.method_defined?(:encoding)
106
+ def multiline?(string)
107
+ string.include?("\n".encode(string.encoding))
108
+ end
109
+ else
110
+ def multiline?(string)
111
+ string.include?("\n")
112
+ end
113
+ end
114
+
115
+ def build_hunks(actual, expected)
116
+ HunkGenerator.new(actual, expected).hunks
117
+ end
118
+
119
+ def finalize_output(output, final_line)
120
+ add_to_output(output, final_line)
121
+ add_to_output(output, "\n")
122
+ end
123
+
124
+ def add_to_output(output, string)
125
+ output << string
126
+ end
127
+
128
+ def add_old_hunk_to_hunk(hunk, oldhunk)
129
+ hunk.merge(oldhunk)
130
+ end
131
+
132
+ def safely_flatten(array)
133
+ array = array.flatten(1) until (array == array.flatten(1))
134
+ array
135
+ end
136
+
137
+ def format_type
138
+ :unified
139
+ end
140
+
141
+ def color(text, color_code)
142
+ "\e[#{color_code}m#{text}\e[0m"
143
+ end
144
+
145
+ def red(text)
146
+ color(text, 31)
147
+ end
148
+
149
+ def green(text)
150
+ color(text, 32)
151
+ end
152
+
153
+ def blue(text)
154
+ color(text, 34)
155
+ end
156
+
157
+ def normal(text)
158
+ color(text, 0)
159
+ end
160
+
161
+ def color_diff(diff)
162
+ return diff unless color?
163
+
164
+ diff.lines.map do |line|
165
+ case line[0].chr
166
+ when "+"
167
+ green line
168
+ when "-"
169
+ red line
170
+ when "@"
171
+ line[1].chr == "@" ? blue(line) : normal(line)
172
+ else
173
+ normal(line)
174
+ end
175
+ end.join
176
+ end
177
+
178
+ def object_to_string(object)
179
+ object = @object_preparer.call(object)
180
+ case object
181
+ when Hash
182
+ hash_to_string(object)
183
+ when Array
184
+ PP.pp(ObjectFormatter.prepare_for_inspection(object), "")
185
+ when String
186
+ object =~ /\n/ ? object : object.inspect
187
+ else
188
+ PP.pp(object, "")
189
+ end
190
+ end
191
+
192
+ def hash_to_string(hash)
193
+ formatted_hash = ObjectFormatter.prepare_for_inspection(hash)
194
+ formatted_hash.keys.sort_by { |k| k.to_s }.map do |key|
195
+ pp_key = PP.singleline_pp(key, "")
196
+ pp_value = PP.singleline_pp(formatted_hash[key], "")
197
+
198
+ "#{pp_key} => #{pp_value},"
199
+ end.join("\n")
200
+ end
201
+
202
+ def handle_encoding_errors(actual, expected)
203
+ if actual.source_encoding != expected.source_encoding
204
+ "Could not produce a diff because the encoding of the actual string " \
205
+ "(#{actual.source_encoding}) differs from the encoding of the expected " \
206
+ "string (#{expected.source_encoding})"
207
+ else
208
+ "Could not produce a diff because of the encoding of the string " \
209
+ "(#{expected.source_encoding})"
210
+ end
211
+ end
212
+ end
213
+ # rubocop:enable ClassLength
214
+ end
215
+ end
@@ -0,0 +1,63 @@
1
+ RSpec::Support.require_rspec_support 'ruby_features'
2
+
3
+ module RSpec
4
+ module Support
5
+ # @api private
6
+ #
7
+ # Replacement for fileutils#mkdir_p because we don't want to require parts
8
+ # of stdlib in RSpec.
9
+ class DirectoryMaker
10
+ # @api private
11
+ #
12
+ # Implements nested directory construction
13
+ def self.mkdir_p(path)
14
+ stack = generate_stack(path)
15
+ path.split(File::SEPARATOR).each do |part|
16
+ stack = generate_path(stack, part)
17
+ begin
18
+ Dir.mkdir(stack) unless directory_exists?(stack)
19
+ rescue Errno::EEXIST => e
20
+ raise e unless directory_exists?(stack)
21
+ rescue Errno::ENOTDIR => e
22
+ raise Errno::EEXIST, e.message
23
+ end
24
+ end
25
+ end
26
+
27
+ if OS.windows_file_path?
28
+ def self.generate_stack(path)
29
+ if path.start_with?(File::SEPARATOR)
30
+ File::SEPARATOR
31
+ elsif path[1] == ':'
32
+ ''
33
+ else
34
+ '.'
35
+ end
36
+ end
37
+ def self.generate_path(stack, part)
38
+ if stack == ''
39
+ part
40
+ elsif stack == File::SEPARATOR
41
+ File.join('', part)
42
+ else
43
+ File.join(stack, part)
44
+ end
45
+ end
46
+ else
47
+ def self.generate_stack(path)
48
+ path.start_with?(File::SEPARATOR) ? File::SEPARATOR : "."
49
+ end
50
+ def self.generate_path(stack, part)
51
+ File.join(stack, part)
52
+ end
53
+ end
54
+
55
+ def self.directory_exists?(dirname)
56
+ File.exist?(dirname) && File.directory?(dirname)
57
+ end
58
+ private_class_method :directory_exists?
59
+ private_class_method :generate_stack
60
+ private_class_method :generate_path
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,155 @@
1
+ module RSpec
2
+ module Support
3
+ # @private
4
+ class EncodedString
5
+ # Reduce allocations by storing constants.
6
+ UTF_8 = "UTF-8"
7
+ US_ASCII = "US-ASCII"
8
+ #
9
+ # In MRI 2.1 'invalid: :replace' changed to also replace an invalid byte sequence
10
+ # see https://github.com/ruby/ruby/blob/v2_1_0/NEWS#L176
11
+ # https://www.ruby-forum.com/topic/6861247
12
+ # https://twitter.com/nalsh/status/553413844685438976
13
+ #
14
+ # For example, given:
15
+ # "\x80".force_encoding("Emacs-Mule").encode(:invalid => :replace).bytes.to_a
16
+ #
17
+ # On MRI 2.1 or above: 63 # '?'
18
+ # else : 128 # "\x80"
19
+ #
20
+ # Ruby's default replacement string is:
21
+ # U+FFFD ("\xEF\xBF\xBD"), for Unicode encoding forms, else
22
+ # ? ("\x3F")
23
+ REPLACE = "?"
24
+ ENCODE_UNCONVERTABLE_BYTES = {
25
+ :invalid => :replace,
26
+ :undef => :replace,
27
+ :replace => REPLACE
28
+ }
29
+ ENCODE_NO_CONVERTER = {
30
+ :invalid => :replace,
31
+ :replace => REPLACE
32
+ }
33
+
34
+ def initialize(string, encoding=nil)
35
+ @encoding = encoding
36
+ @source_encoding = detect_source_encoding(string)
37
+ @string = matching_encoding(string)
38
+ end
39
+ attr_reader :source_encoding
40
+
41
+ delegated_methods = String.instance_methods.map(&:to_s) & %w[eql? lines == encoding empty?]
42
+ delegated_methods.each do |name|
43
+ define_method(name) { |*args, &block| @string.__send__(name, *args, &block) }
44
+ end
45
+
46
+ def <<(string)
47
+ @string << matching_encoding(string)
48
+ end
49
+
50
+ def split(regex_or_string)
51
+ @string.split(matching_encoding(regex_or_string))
52
+ end
53
+
54
+ def to_s
55
+ @string
56
+ end
57
+ alias :to_str :to_s
58
+
59
+ if String.method_defined?(:encoding)
60
+
61
+ private
62
+
63
+ # Encoding Exceptions:
64
+ #
65
+ # Raised by Encoding and String methods:
66
+ # Encoding::UndefinedConversionError:
67
+ # when a transcoding operation fails
68
+ # if the String contains characters invalid for the target encoding
69
+ # e.g. "\x80".encode('UTF-8','ASCII-8BIT')
70
+ # vs "\x80".encode('UTF-8','ASCII-8BIT', undef: :replace, replace: '<undef>')
71
+ # # => '<undef>'
72
+ # Encoding::CompatibilityError
73
+ # when Encoding.compatibile?(str1, str2) is nil
74
+ # e.g. utf_16le_emoji_string.split("\n")
75
+ # e.g. valid_unicode_string.encode(utf8_encoding) << ascii_string
76
+ # Encoding::InvalidByteSequenceError:
77
+ # when the string being transcoded contains a byte invalid for
78
+ # either the source or target encoding
79
+ # e.g. "\x80".encode('UTF-8','US-ASCII')
80
+ # vs "\x80".encode('UTF-8','US-ASCII', invalid: :replace, replace: '<byte>')
81
+ # # => '<byte>'
82
+ # ArgumentError
83
+ # when operating on a string with invalid bytes
84
+ # e.g."\x80".split("\n")
85
+ # TypeError
86
+ # when a symbol is passed as an encoding
87
+ # Encoding.find(:"UTF-8")
88
+ # when calling force_encoding on an object
89
+ # that doesn't respond to #to_str
90
+ #
91
+ # Raised by transcoding methods:
92
+ # Encoding::ConverterNotFoundError:
93
+ # when a named encoding does not correspond with a known converter
94
+ # e.g. 'abc'.force_encoding('UTF-8').encode('foo')
95
+ # or a converter path cannot be found
96
+ # e.g. "\x80".force_encoding('ASCII-8BIT').encode('Emacs-Mule')
97
+ #
98
+ # Raised by byte <-> char conversions
99
+ # RangeError: out of char range
100
+ # e.g. the UTF-16LE emoji: 128169.chr
101
+ def matching_encoding(string)
102
+ string = remove_invalid_bytes(string)
103
+ string.encode(@encoding)
104
+ rescue Encoding::UndefinedConversionError, Encoding::InvalidByteSequenceError
105
+ string.encode(@encoding, ENCODE_UNCONVERTABLE_BYTES)
106
+ rescue Encoding::ConverterNotFoundError
107
+ string.dup.force_encoding(@encoding).encode(ENCODE_NO_CONVERTER)
108
+ end
109
+
110
+ # Prevents raising ArgumentError
111
+ if String.method_defined?(:scrub)
112
+ # https://github.com/ruby/ruby/blob/eeb05e8c11/doc/NEWS-2.1.0#L120-L123
113
+ # https://github.com/ruby/ruby/blob/v2_1_0/string.c#L8242
114
+ # https://github.com/hsbt/string-scrub
115
+ # https://github.com/rubinius/rubinius/blob/v2.5.2/kernel/common/string.rb#L1913-L1972
116
+ def remove_invalid_bytes(string)
117
+ string.scrub(REPLACE)
118
+ end
119
+ else
120
+ # http://stackoverflow.com/a/8711118/879854
121
+ # Loop over chars in a string replacing chars
122
+ # with invalid encoding, which is a pretty good proxy
123
+ # for the invalid byte sequence that causes an ArgumentError
124
+ def remove_invalid_bytes(string)
125
+ string.chars.map do |char|
126
+ char.valid_encoding? ? char : REPLACE
127
+ end.join
128
+ end
129
+ end
130
+
131
+ def detect_source_encoding(string)
132
+ string.encoding
133
+ end
134
+
135
+ def self.pick_encoding(source_a, source_b)
136
+ Encoding.compatible?(source_a, source_b) || Encoding.default_external
137
+ end
138
+ else
139
+
140
+ def self.pick_encoding(_source_a, _source_b)
141
+ end
142
+
143
+ private
144
+
145
+ def matching_encoding(string)
146
+ string
147
+ end
148
+
149
+ def detect_source_encoding(_string)
150
+ US_ASCII
151
+ end
152
+ end
153
+ end
154
+ end
155
+ end