cocoapods-dependency-html 0.0.1

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 (2004) hide show
  1. checksums.yaml +7 -0
  2. data/.bundle/config +2 -0
  3. data/Gemfile +13 -0
  4. data/Gemfile.lock +106 -0
  5. data/LICENSE.txt +22 -0
  6. data/README.md +11 -0
  7. data/Rakefile +13 -0
  8. data/cocoapods-dependency-html.gemspec +27 -0
  9. data/lib/cocoapods-dependency-html.rb +1 -0
  10. data/lib/cocoapods-dependency-html/command.rb +1 -0
  11. data/lib/cocoapods-dependency-html/command/dependency.rb +391 -0
  12. data/lib/cocoapods-dependency-html/command/front-end/dependency_graph.html +90 -0
  13. data/lib/cocoapods-dependency-html/gem_version.rb +3 -0
  14. data/lib/cocoapods_plugin.rb +1 -0
  15. data/spec/command/html_spec.rb +12 -0
  16. data/spec/spec_helper.rb +50 -0
  17. data/vendor/bundle/bin/bacon +27 -0
  18. data/vendor/bundle/bin/fuzzy_match +27 -0
  19. data/vendor/bundle/bin/launchy +27 -0
  20. data/vendor/bundle/bin/pod +27 -0
  21. data/vendor/bundle/bin/rake +27 -0
  22. data/vendor/bundle/bin/sandbox-pod +27 -0
  23. data/vendor/bundle/bin/xcodeproj +27 -0
  24. data/vendor/bundle/cache/CFPropertyList-3.0.0.gem +0 -0
  25. data/vendor/bundle/cache/activesupport-4.2.11.1.gem +0 -0
  26. data/vendor/bundle/cache/addressable-2.6.0.gem +0 -0
  27. data/vendor/bundle/cache/atomos-0.1.3.gem +0 -0
  28. data/vendor/bundle/cache/bacon-1.2.0.gem +0 -0
  29. data/vendor/bundle/cache/claide-1.0.2.gem +0 -0
  30. data/vendor/bundle/cache/cocoapods-1.6.1.gem +0 -0
  31. data/vendor/bundle/cache/cocoapods-core-1.6.1.gem +0 -0
  32. data/vendor/bundle/cache/cocoapods-deintegrate-1.0.4.gem +0 -0
  33. data/vendor/bundle/cache/cocoapods-downloader-1.2.2.gem +0 -0
  34. data/vendor/bundle/cache/cocoapods-plugins-1.0.0.gem +0 -0
  35. data/vendor/bundle/cache/cocoapods-search-1.0.0.gem +0 -0
  36. data/vendor/bundle/cache/cocoapods-stats-1.1.0.gem +0 -0
  37. data/vendor/bundle/cache/cocoapods-trunk-1.3.1.gem +0 -0
  38. data/vendor/bundle/cache/cocoapods-try-1.1.0.gem +0 -0
  39. data/vendor/bundle/cache/colored2-3.1.2.gem +0 -0
  40. data/vendor/bundle/cache/concurrent-ruby-1.1.5.gem +0 -0
  41. data/vendor/bundle/cache/escape-0.0.4.gem +0 -0
  42. data/vendor/bundle/cache/fourflusher-2.2.0.gem +0 -0
  43. data/vendor/bundle/cache/fuzzy_match-2.0.4.gem +0 -0
  44. data/vendor/bundle/cache/gh_inspector-1.1.3.gem +0 -0
  45. data/vendor/bundle/cache/i18n-0.9.5.gem +0 -0
  46. data/vendor/bundle/cache/json-2.2.0.gem +0 -0
  47. data/vendor/bundle/cache/launchy-2.4.3.gem +0 -0
  48. data/vendor/bundle/cache/metaclass-0.0.4.gem +0 -0
  49. data/vendor/bundle/cache/minitest-5.11.3.gem +0 -0
  50. data/vendor/bundle/cache/mocha-1.8.0.gem +0 -0
  51. data/vendor/bundle/cache/mocha-on-bacon-0.2.3.gem +0 -0
  52. data/vendor/bundle/cache/molinillo-0.6.6.gem +0 -0
  53. data/vendor/bundle/cache/nanaimo-0.2.6.gem +0 -0
  54. data/vendor/bundle/cache/nap-1.1.0.gem +0 -0
  55. data/vendor/bundle/cache/netrc-0.11.0.gem +0 -0
  56. data/vendor/bundle/cache/prettybacon-0.0.2.gem +0 -0
  57. data/vendor/bundle/cache/public_suffix-3.0.3.gem +0 -0
  58. data/vendor/bundle/cache/rake-12.3.2.gem +0 -0
  59. data/vendor/bundle/cache/ruby-macho-1.4.0.gem +0 -0
  60. data/vendor/bundle/cache/thread_safe-0.3.6.gem +0 -0
  61. data/vendor/bundle/cache/tzinfo-1.2.5.gem +0 -0
  62. data/vendor/bundle/cache/xcodeproj-1.9.0.gem +0 -0
  63. data/vendor/bundle/extensions/x86_64-darwin-17/2.5.0/json-2.2.0/gem.build_complete +0 -0
  64. data/vendor/bundle/extensions/x86_64-darwin-17/2.5.0/json-2.2.0/gem_make.out +13 -0
  65. data/vendor/bundle/extensions/x86_64-darwin-17/2.5.0/json-2.2.0/json/ext/generator.bundle +0 -0
  66. data/vendor/bundle/extensions/x86_64-darwin-17/2.5.0/json-2.2.0/json/ext/parser.bundle +0 -0
  67. data/vendor/bundle/extensions/x86_64-darwin-17/2.5.0/json-2.2.0/mkmf.log +60 -0
  68. data/vendor/bundle/gems/CFPropertyList-3.0.0/LICENSE +19 -0
  69. data/vendor/bundle/gems/CFPropertyList-3.0.0/README.md +79 -0
  70. data/vendor/bundle/gems/CFPropertyList-3.0.0/README.rdoc +43 -0
  71. data/vendor/bundle/gems/CFPropertyList-3.0.0/THANKS +7 -0
  72. data/vendor/bundle/gems/CFPropertyList-3.0.0/lib/cfpropertylist.rb +6 -0
  73. data/vendor/bundle/gems/CFPropertyList-3.0.0/lib/cfpropertylist/rbBinaryCFPropertyList.rb +594 -0
  74. data/vendor/bundle/gems/CFPropertyList-3.0.0/lib/cfpropertylist/rbCFPlistError.rb +26 -0
  75. data/vendor/bundle/gems/CFPropertyList-3.0.0/lib/cfpropertylist/rbCFPropertyList.rb +449 -0
  76. data/vendor/bundle/gems/CFPropertyList-3.0.0/lib/cfpropertylist/rbCFTypes.rb +349 -0
  77. data/vendor/bundle/gems/CFPropertyList-3.0.0/lib/cfpropertylist/rbLibXMLParser.rb +147 -0
  78. data/vendor/bundle/gems/CFPropertyList-3.0.0/lib/cfpropertylist/rbNokogiriParser.rb +151 -0
  79. data/vendor/bundle/gems/CFPropertyList-3.0.0/lib/cfpropertylist/rbPlainCFPropertyList.rb +199 -0
  80. data/vendor/bundle/gems/CFPropertyList-3.0.0/lib/cfpropertylist/rbREXMLParser.rb +148 -0
  81. data/vendor/bundle/gems/activesupport-4.2.11.1/CHANGELOG.md +678 -0
  82. data/vendor/bundle/gems/activesupport-4.2.11.1/MIT-LICENSE +20 -0
  83. data/vendor/bundle/gems/activesupport-4.2.11.1/README.rdoc +40 -0
  84. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support.rb +94 -0
  85. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/all.rb +3 -0
  86. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/backtrace_cleaner.rb +103 -0
  87. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/benchmarkable.rb +49 -0
  88. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/builder.rb +6 -0
  89. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/cache.rb +717 -0
  90. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/cache/file_store.rb +190 -0
  91. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/cache/mem_cache_store.rb +198 -0
  92. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/cache/memory_store.rb +172 -0
  93. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/cache/null_store.rb +44 -0
  94. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/cache/strategy/local_cache.rb +161 -0
  95. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/cache/strategy/local_cache_middleware.rb +44 -0
  96. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/callbacks.rb +795 -0
  97. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/concern.rb +142 -0
  98. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/concurrency/latch.rb +27 -0
  99. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/configurable.rb +147 -0
  100. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext.rb +3 -0
  101. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/array.rb +6 -0
  102. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/array/access.rb +64 -0
  103. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/array/conversions.rb +209 -0
  104. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/array/extract_options.rb +29 -0
  105. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/array/grouping.rb +116 -0
  106. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/array/prepend_and_append.rb +7 -0
  107. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/array/wrap.rb +45 -0
  108. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/benchmark.rb +14 -0
  109. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/big_decimal.rb +1 -0
  110. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/big_decimal/conversions.rb +16 -0
  111. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/big_decimal/yaml_conversions.rb +16 -0
  112. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/class.rb +3 -0
  113. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/class/attribute.rb +127 -0
  114. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/class/attribute_accessors.rb +4 -0
  115. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/class/delegating_attributes.rb +45 -0
  116. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/class/subclasses.rb +40 -0
  117. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/date.rb +5 -0
  118. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/date/acts_like.rb +8 -0
  119. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/date/calculations.rb +143 -0
  120. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/date/conversions.rb +94 -0
  121. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/date/zones.rb +6 -0
  122. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/date_and_time/calculations.rb +262 -0
  123. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/date_and_time/compatibility.rb +15 -0
  124. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/date_and_time/zones.rb +41 -0
  125. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/date_time.rb +5 -0
  126. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/date_time/acts_like.rb +14 -0
  127. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/date_time/calculations.rb +193 -0
  128. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/date_time/compatibility.rb +16 -0
  129. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/date_time/conversions.rb +103 -0
  130. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/date_time/zones.rb +6 -0
  131. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/digest/uuid.rb +51 -0
  132. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/enumerable.rb +96 -0
  133. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/file.rb +1 -0
  134. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/file/atomic.rb +63 -0
  135. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/hash.rb +9 -0
  136. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/hash/compact.rb +24 -0
  137. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/hash/conversions.rb +242 -0
  138. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/hash/deep_merge.rb +38 -0
  139. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/hash/except.rb +21 -0
  140. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/hash/indifferent_access.rb +23 -0
  141. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/hash/keys.rb +166 -0
  142. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/hash/reverse_merge.rb +22 -0
  143. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/hash/slice.rb +48 -0
  144. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/hash/transform_values.rb +23 -0
  145. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/integer.rb +3 -0
  146. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/integer/inflections.rb +29 -0
  147. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/integer/multiple.rb +10 -0
  148. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/integer/time.rb +29 -0
  149. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/kernel.rb +5 -0
  150. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/kernel/agnostics.rb +11 -0
  151. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/kernel/concern.rb +10 -0
  152. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/kernel/debugger.rb +10 -0
  153. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/kernel/reporting.rb +125 -0
  154. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/kernel/singleton_class.rb +6 -0
  155. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/load_error.rb +28 -0
  156. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/marshal.rb +24 -0
  157. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/module.rb +11 -0
  158. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/module/aliasing.rb +69 -0
  159. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/module/anonymous.rb +19 -0
  160. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/module/attr_internal.rb +39 -0
  161. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/module/attribute_accessors.rb +212 -0
  162. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/module/concerning.rb +135 -0
  163. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/module/delegation.rb +217 -0
  164. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/module/deprecation.rb +23 -0
  165. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/module/introspection.rb +62 -0
  166. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/module/method_transplanting.rb +13 -0
  167. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/module/qualified_const.rb +52 -0
  168. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/module/reachable.rb +8 -0
  169. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/module/remove_method.rb +12 -0
  170. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/name_error.rb +18 -0
  171. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/numeric.rb +3 -0
  172. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/numeric/bytes.rb +44 -0
  173. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/numeric/conversions.rb +143 -0
  174. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/numeric/time.rb +54 -0
  175. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/object.rb +15 -0
  176. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/object/acts_like.rb +10 -0
  177. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/object/blank.rb +131 -0
  178. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/object/conversions.rb +4 -0
  179. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/object/deep_dup.rb +46 -0
  180. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/object/duplicable.rb +129 -0
  181. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/object/inclusion.rb +27 -0
  182. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/object/instance_variables.rb +28 -0
  183. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/object/itself.rb +15 -0
  184. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/object/json.rb +197 -0
  185. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/object/to_param.rb +1 -0
  186. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/object/to_query.rb +84 -0
  187. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/object/try.rb +100 -0
  188. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/object/with_options.rb +69 -0
  189. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/range.rb +4 -0
  190. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/range/conversions.rb +19 -0
  191. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/range/each.rb +23 -0
  192. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/range/include_range.rb +23 -0
  193. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/range/overlaps.rb +8 -0
  194. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/regexp.rb +5 -0
  195. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/string.rb +13 -0
  196. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/string/access.rb +104 -0
  197. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/string/behavior.rb +6 -0
  198. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/string/conversions.rb +56 -0
  199. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/string/exclude.rb +11 -0
  200. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/string/filters.rb +103 -0
  201. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/string/indent.rb +43 -0
  202. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/string/inflections.rb +217 -0
  203. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/string/inquiry.rb +13 -0
  204. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/string/multibyte.rb +49 -0
  205. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/string/output_safety.rb +262 -0
  206. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/string/starts_ends_with.rb +4 -0
  207. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/string/strip.rb +26 -0
  208. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/string/zones.rb +14 -0
  209. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/struct.rb +6 -0
  210. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/thread.rb +86 -0
  211. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/time.rb +6 -0
  212. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/time/acts_like.rb +8 -0
  213. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/time/calculations.rb +281 -0
  214. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/time/compatibility.rb +14 -0
  215. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/time/conversions.rb +65 -0
  216. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/time/marshal.rb +30 -0
  217. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/time/zones.rb +79 -0
  218. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/core_ext/uri.rb +26 -0
  219. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/dependencies.rb +762 -0
  220. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/dependencies/autoload.rb +77 -0
  221. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/deprecation.rb +43 -0
  222. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/deprecation/behaviors.rb +76 -0
  223. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/deprecation/instance_delegator.rb +24 -0
  224. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/deprecation/method_wrappers.rb +44 -0
  225. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/deprecation/proxy_wrappers.rb +126 -0
  226. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/deprecation/reporting.rb +94 -0
  227. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/descendants_tracker.rb +60 -0
  228. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/duration.rb +160 -0
  229. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/file_update_checker.rb +137 -0
  230. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/gem_version.rb +15 -0
  231. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/gzip.rb +36 -0
  232. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/hash_with_indifferent_access.rb +300 -0
  233. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/i18n.rb +13 -0
  234. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/i18n_railtie.rb +94 -0
  235. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/inflections.rb +70 -0
  236. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/inflector.rb +7 -0
  237. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/inflector/inflections.rb +211 -0
  238. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/inflector/methods.rb +383 -0
  239. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/inflector/transliterate.rb +97 -0
  240. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/json.rb +2 -0
  241. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/json/decoding.rb +73 -0
  242. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/json/encoding.rb +177 -0
  243. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/key_generator.rb +73 -0
  244. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/lazy_load_hooks.rb +48 -0
  245. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/locale/en.yml +133 -0
  246. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/log_subscriber.rb +109 -0
  247. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/log_subscriber/test_helper.rb +104 -0
  248. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/logger.rb +107 -0
  249. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/logger_silence.rb +27 -0
  250. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/logger_thread_safe_level.rb +32 -0
  251. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/message_encryptor.rb +114 -0
  252. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/message_verifier.rb +72 -0
  253. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/multibyte.rb +21 -0
  254. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/multibyte/chars.rb +222 -0
  255. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/multibyte/unicode.rb +390 -0
  256. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/notifications.rb +212 -0
  257. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/notifications/fanout.rb +157 -0
  258. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/notifications/instrumenter.rb +73 -0
  259. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/number_helper.rb +345 -0
  260. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/number_helper/number_converter.rb +182 -0
  261. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/number_helper/number_to_currency_converter.rb +46 -0
  262. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/number_helper/number_to_delimited_converter.rb +23 -0
  263. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/number_helper/number_to_human_converter.rb +66 -0
  264. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/number_helper/number_to_human_size_converter.rb +58 -0
  265. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/number_helper/number_to_percentage_converter.rb +12 -0
  266. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/number_helper/number_to_phone_converter.rb +49 -0
  267. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/number_helper/number_to_rounded_converter.rb +87 -0
  268. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/option_merger.rb +25 -0
  269. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/ordered_hash.rb +48 -0
  270. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/ordered_options.rb +67 -0
  271. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/per_thread_registry.rb +55 -0
  272. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/proxy_object.rb +13 -0
  273. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/rails.rb +27 -0
  274. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/railtie.rb +46 -0
  275. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/rescuable.rb +119 -0
  276. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/security_utils.rb +27 -0
  277. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/string_inquirer.rb +26 -0
  278. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/subscriber.rb +125 -0
  279. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/tagged_logging.rb +76 -0
  280. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/test_case.rb +100 -0
  281. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/testing/assertions.rb +97 -0
  282. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/testing/autorun.rb +5 -0
  283. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/testing/constant_lookup.rb +50 -0
  284. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/testing/declarative.rb +26 -0
  285. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/testing/deprecation.rb +35 -0
  286. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/testing/isolation.rb +101 -0
  287. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/testing/setup_and_teardown.rb +50 -0
  288. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/testing/tagged_logging.rb +25 -0
  289. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/testing/time_helpers.rb +134 -0
  290. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/time.rb +18 -0
  291. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/time_with_zone.rb +421 -0
  292. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/values/time_zone.rb +430 -0
  293. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/values/unicode_tables.dat +0 -0
  294. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/version.rb +8 -0
  295. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/xml_mini.rb +209 -0
  296. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/xml_mini/jdom.rb +181 -0
  297. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/xml_mini/libxml.rb +77 -0
  298. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/xml_mini/libxmlsax.rb +82 -0
  299. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/xml_mini/nokogiri.rb +81 -0
  300. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/xml_mini/nokogirisax.rb +85 -0
  301. data/vendor/bundle/gems/activesupport-4.2.11.1/lib/active_support/xml_mini/rexml.rb +128 -0
  302. data/vendor/bundle/gems/addressable-2.6.0/CHANGELOG.md +227 -0
  303. data/vendor/bundle/gems/addressable-2.6.0/Gemfile +32 -0
  304. data/vendor/bundle/gems/addressable-2.6.0/LICENSE.txt +202 -0
  305. data/vendor/bundle/gems/addressable-2.6.0/README.md +119 -0
  306. data/vendor/bundle/gems/addressable-2.6.0/Rakefile +34 -0
  307. data/vendor/bundle/gems/addressable-2.6.0/data/unicode.data +0 -0
  308. data/vendor/bundle/gems/addressable-2.6.0/lib/addressable.rb +4 -0
  309. data/vendor/bundle/gems/addressable-2.6.0/lib/addressable/idna.rb +27 -0
  310. data/vendor/bundle/gems/addressable-2.6.0/lib/addressable/idna/native.rb +61 -0
  311. data/vendor/bundle/gems/addressable-2.6.0/lib/addressable/idna/pure.rb +676 -0
  312. data/vendor/bundle/gems/addressable-2.6.0/lib/addressable/template.rb +1045 -0
  313. data/vendor/bundle/gems/addressable-2.6.0/lib/addressable/uri.rb +2510 -0
  314. data/vendor/bundle/gems/addressable-2.6.0/lib/addressable/version.rb +32 -0
  315. data/vendor/bundle/gems/addressable-2.6.0/spec/addressable/idna_spec.rb +300 -0
  316. data/vendor/bundle/gems/addressable-2.6.0/spec/addressable/net_http_compat_spec.rb +30 -0
  317. data/vendor/bundle/gems/addressable-2.6.0/spec/addressable/rack_mount_compat_spec.rb +106 -0
  318. data/vendor/bundle/gems/addressable-2.6.0/spec/addressable/security_spec.rb +59 -0
  319. data/vendor/bundle/gems/addressable-2.6.0/spec/addressable/template_spec.rb +1451 -0
  320. data/vendor/bundle/gems/addressable-2.6.0/spec/addressable/uri_spec.rb +6545 -0
  321. data/vendor/bundle/gems/addressable-2.6.0/spec/spec_helper.rb +24 -0
  322. data/vendor/bundle/gems/addressable-2.6.0/tasks/clobber.rake +4 -0
  323. data/vendor/bundle/gems/addressable-2.6.0/tasks/gem.rake +93 -0
  324. data/vendor/bundle/gems/addressable-2.6.0/tasks/git.rake +47 -0
  325. data/vendor/bundle/gems/addressable-2.6.0/tasks/metrics.rake +24 -0
  326. data/vendor/bundle/gems/addressable-2.6.0/tasks/rspec.rake +23 -0
  327. data/vendor/bundle/gems/addressable-2.6.0/tasks/yard.rake +29 -0
  328. data/vendor/bundle/gems/atomos-0.1.3/.rspec +3 -0
  329. data/vendor/bundle/gems/atomos-0.1.3/.rubocop.yml +2 -0
  330. data/vendor/bundle/gems/atomos-0.1.3/.rubocop_todo.yml +32 -0
  331. data/vendor/bundle/gems/atomos-0.1.3/.travis.yml +5 -0
  332. data/vendor/bundle/gems/atomos-0.1.3/CODE_OF_CONDUCT.md +74 -0
  333. data/vendor/bundle/gems/atomos-0.1.3/Gemfile +8 -0
  334. data/vendor/bundle/gems/atomos-0.1.3/Gemfile.lock +51 -0
  335. data/vendor/bundle/gems/atomos-0.1.3/LICENSE.txt +21 -0
  336. data/vendor/bundle/gems/atomos-0.1.3/README.md +43 -0
  337. data/vendor/bundle/gems/atomos-0.1.3/Rakefile +11 -0
  338. data/vendor/bundle/gems/atomos-0.1.3/VERSION +1 -0
  339. data/vendor/bundle/gems/atomos-0.1.3/atomos.gemspec +26 -0
  340. data/vendor/bundle/gems/atomos-0.1.3/bin/console +15 -0
  341. data/vendor/bundle/gems/atomos-0.1.3/bin/rake +29 -0
  342. data/vendor/bundle/gems/atomos-0.1.3/bin/rspec +29 -0
  343. data/vendor/bundle/gems/atomos-0.1.3/bin/rubocop +29 -0
  344. data/vendor/bundle/gems/atomos-0.1.3/bin/setup +8 -0
  345. data/vendor/bundle/gems/atomos-0.1.3/lib/atomos.rb +47 -0
  346. data/vendor/bundle/gems/atomos-0.1.3/lib/atomos/version.rb +5 -0
  347. data/vendor/bundle/gems/bacon-1.2.0/.travis.yml +12 -0
  348. data/vendor/bundle/gems/bacon-1.2.0/COPYING +18 -0
  349. data/vendor/bundle/gems/bacon-1.2.0/ChangeLog +350 -0
  350. data/vendor/bundle/gems/bacon-1.2.0/RDOX +73 -0
  351. data/vendor/bundle/gems/bacon-1.2.0/README.rdoc +299 -0
  352. data/vendor/bundle/gems/bacon-1.2.0/Rakefile +80 -0
  353. data/vendor/bundle/gems/bacon-1.2.0/bacon.gemspec +25 -0
  354. data/vendor/bundle/gems/bacon-1.2.0/bin/bacon +118 -0
  355. data/vendor/bundle/gems/bacon-1.2.0/lib/autotest/bacon.rb +36 -0
  356. data/vendor/bundle/gems/bacon-1.2.0/lib/autotest/bacon_rspec.rb +2 -0
  357. data/vendor/bundle/gems/bacon-1.2.0/lib/autotest/discover.rb +9 -0
  358. data/vendor/bundle/gems/bacon-1.2.0/lib/bacon.rb +351 -0
  359. data/vendor/bundle/gems/bacon-1.2.0/test/spec_bacon.rb +415 -0
  360. data/vendor/bundle/gems/bacon-1.2.0/test/spec_nontrue.rb +14 -0
  361. data/vendor/bundle/gems/bacon-1.2.0/test/spec_should.rb +32 -0
  362. data/vendor/bundle/gems/claide-1.0.2/.kick +30 -0
  363. data/vendor/bundle/gems/claide-1.0.2/.rubocop.yml +3 -0
  364. data/vendor/bundle/gems/claide-1.0.2/.rubocop_cocoapods.yml +133 -0
  365. data/vendor/bundle/gems/claide-1.0.2/.rubocop_todo.yml +70 -0
  366. data/vendor/bundle/gems/claide-1.0.2/.travis.yml +17 -0
  367. data/vendor/bundle/gems/claide-1.0.2/.yardopts +1 -0
  368. data/vendor/bundle/gems/claide-1.0.2/CHANGELOG.md +240 -0
  369. data/vendor/bundle/gems/claide-1.0.2/Gemfile +23 -0
  370. data/vendor/bundle/gems/claide-1.0.2/Gemfile.lock +74 -0
  371. data/vendor/bundle/gems/claide-1.0.2/LICENSE +21 -0
  372. data/vendor/bundle/gems/claide-1.0.2/README.markdown +118 -0
  373. data/vendor/bundle/gems/claide-1.0.2/Rakefile +57 -0
  374. data/vendor/bundle/gems/claide-1.0.2/claide.gemspec +21 -0
  375. data/vendor/bundle/gems/claide-1.0.2/lib/claide.rb +19 -0
  376. data/vendor/bundle/gems/claide-1.0.2/lib/claide/ansi.rb +126 -0
  377. data/vendor/bundle/gems/claide-1.0.2/lib/claide/ansi/cursor.rb +69 -0
  378. data/vendor/bundle/gems/claide-1.0.2/lib/claide/ansi/graphics.rb +72 -0
  379. data/vendor/bundle/gems/claide-1.0.2/lib/claide/ansi/string_escaper.rb +79 -0
  380. data/vendor/bundle/gems/claide-1.0.2/lib/claide/argument.rb +62 -0
  381. data/vendor/bundle/gems/claide-1.0.2/lib/claide/argv.rb +329 -0
  382. data/vendor/bundle/gems/claide-1.0.2/lib/claide/command.rb +659 -0
  383. data/vendor/bundle/gems/claide-1.0.2/lib/claide/command/argument_suggester.rb +99 -0
  384. data/vendor/bundle/gems/claide-1.0.2/lib/claide/command/banner.rb +307 -0
  385. data/vendor/bundle/gems/claide-1.0.2/lib/claide/command/plugin_manager.rb +123 -0
  386. data/vendor/bundle/gems/claide-1.0.2/lib/claide/help.rb +58 -0
  387. data/vendor/bundle/gems/claide-1.0.2/lib/claide/informative_error.rb +21 -0
  388. data/vendor/bundle/gems/cocoapods-1.6.1/CHANGELOG.md +6521 -0
  389. data/vendor/bundle/gems/cocoapods-1.6.1/LICENSE +28 -0
  390. data/vendor/bundle/gems/cocoapods-1.6.1/README.md +80 -0
  391. data/vendor/bundle/gems/cocoapods-1.6.1/bin/pod +56 -0
  392. data/vendor/bundle/gems/cocoapods-1.6.1/bin/sandbox-pod +168 -0
  393. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods.rb +73 -0
  394. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/command.rb +175 -0
  395. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/command/cache.rb +28 -0
  396. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/command/cache/clean.rb +90 -0
  397. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/command/cache/list.rb +69 -0
  398. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/command/env.rb +66 -0
  399. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/command/init.rb +130 -0
  400. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/command/install.rb +52 -0
  401. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/command/ipc.rb +19 -0
  402. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/command/ipc/list.rb +40 -0
  403. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/command/ipc/podfile.rb +31 -0
  404. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/command/ipc/podfile_json.rb +30 -0
  405. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/command/ipc/repl.rb +51 -0
  406. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/command/ipc/spec.rb +29 -0
  407. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/command/ipc/update_search_index.rb +24 -0
  408. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/command/lib.rb +11 -0
  409. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/command/lib/create.rb +105 -0
  410. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/command/lib/lint.rb +124 -0
  411. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/command/list.rb +39 -0
  412. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/command/options/project_directory.rb +36 -0
  413. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/command/options/repo_update.rb +34 -0
  414. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/command/outdated.rb +140 -0
  415. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/command/repo.rb +29 -0
  416. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/command/repo/add.rb +103 -0
  417. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/command/repo/lint.rb +82 -0
  418. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/command/repo/list.rb +93 -0
  419. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/command/repo/push.rb +286 -0
  420. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/command/repo/remove.rb +36 -0
  421. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/command/repo/update.rb +28 -0
  422. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/command/setup.rb +103 -0
  423. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/command/spec.rb +112 -0
  424. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/command/spec/cat.rb +51 -0
  425. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/command/spec/create.rb +283 -0
  426. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/command/spec/edit.rb +87 -0
  427. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/command/spec/env_spec.rb +53 -0
  428. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/command/spec/lint.rb +140 -0
  429. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/command/spec/which.rb +43 -0
  430. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/command/update.rb +101 -0
  431. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/config.rb +347 -0
  432. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/core_overrides.rb +1 -0
  433. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/downloader.rb +190 -0
  434. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/downloader/cache.rb +233 -0
  435. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/downloader/request.rb +86 -0
  436. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/downloader/response.rb +16 -0
  437. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/executable.rb +222 -0
  438. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/external_sources.rb +57 -0
  439. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/external_sources/abstract_external_source.rb +205 -0
  440. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/external_sources/downloader_source.rb +30 -0
  441. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/external_sources/path_source.rb +55 -0
  442. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/external_sources/podspec_source.rb +54 -0
  443. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/gem_version.rb +5 -0
  444. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/generator/acknowledgements.rb +107 -0
  445. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/generator/acknowledgements/markdown.rb +44 -0
  446. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/generator/acknowledgements/plist.rb +94 -0
  447. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/generator/app_target_helper.rb +351 -0
  448. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/generator/bridge_support.rb +22 -0
  449. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/generator/constant.rb +19 -0
  450. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/generator/copy_resources_script.rb +235 -0
  451. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/generator/dummy_source.rb +31 -0
  452. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/generator/embed_frameworks_script.rb +221 -0
  453. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/generator/header.rb +103 -0
  454. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/generator/info_plist_file.rb +124 -0
  455. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/generator/module_map.rb +99 -0
  456. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/generator/prefix_header.rb +60 -0
  457. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/generator/umbrella_header.rb +46 -0
  458. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/hooks_manager.rb +132 -0
  459. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/installer.rb +765 -0
  460. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/installer/analyzer.rb +1039 -0
  461. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/installer/analyzer/analysis_result.rb +87 -0
  462. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/installer/analyzer/locking_dependency_analyzer.rb +103 -0
  463. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/installer/analyzer/pod_variant.rb +67 -0
  464. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/installer/analyzer/pod_variant_set.rb +157 -0
  465. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/installer/analyzer/podfile_dependency_cache.rb +54 -0
  466. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/installer/analyzer/sandbox_analyzer.rb +240 -0
  467. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/installer/analyzer/specs_state.rb +108 -0
  468. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/installer/analyzer/target_inspection_result.rb +58 -0
  469. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/installer/analyzer/target_inspector.rb +260 -0
  470. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/installer/installation_options.rb +160 -0
  471. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/installer/pod_source_installer.rb +202 -0
  472. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/installer/pod_source_preparer.rb +77 -0
  473. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/installer/podfile_validator.rb +139 -0
  474. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/installer/post_install_hooks_context.rb +132 -0
  475. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/installer/pre_install_hooks_context.rb +51 -0
  476. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/installer/source_provider_hooks_context.rb +34 -0
  477. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/installer/user_project_integrator.rb +254 -0
  478. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/installer/user_project_integrator/target_integrator.rb +501 -0
  479. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/installer/user_project_integrator/target_integrator/xcconfig_integrator.rb +179 -0
  480. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/installer/xcode.rb +8 -0
  481. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/installer/xcode/pods_project_generator.rb +361 -0
  482. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/installer/xcode/pods_project_generator/aggregate_target_installer.rb +181 -0
  483. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/installer/xcode/pods_project_generator/app_host_installer.rb +104 -0
  484. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/installer/xcode/pods_project_generator/file_references_installer.rb +340 -0
  485. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/installer/xcode/pods_project_generator/pod_target_installer.rb +837 -0
  486. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/installer/xcode/pods_project_generator/pod_target_integrator.rb +129 -0
  487. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/installer/xcode/pods_project_generator/target_installation_result.rb +93 -0
  488. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/installer/xcode/pods_project_generator/target_installer.rb +258 -0
  489. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/installer/xcode/pods_project_generator/target_installer_helper.rb +72 -0
  490. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/installer/xcode/target_validator.rb +147 -0
  491. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/open-uri.rb +33 -0
  492. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/project.rb +416 -0
  493. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/resolver.rb +578 -0
  494. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/resolver/lazy_specification.rb +79 -0
  495. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/resolver/resolver_specification.rb +41 -0
  496. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/sandbox.rb +408 -0
  497. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/sandbox/file_accessor.rb +444 -0
  498. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/sandbox/headers_store.rb +146 -0
  499. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/sandbox/path_list.rb +220 -0
  500. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/sandbox/pod_dir_cleaner.rb +85 -0
  501. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/sandbox/podspec_finder.rb +23 -0
  502. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/sources_manager.rb +157 -0
  503. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/target.rb +261 -0
  504. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/target/aggregate_target.rb +373 -0
  505. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/target/build_settings.rb +1124 -0
  506. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/target/framework_paths.rb +36 -0
  507. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/target/pod_target.rb +556 -0
  508. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/user_interface.rb +459 -0
  509. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/user_interface/error_report.rb +187 -0
  510. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/user_interface/inspector_reporter.rb +109 -0
  511. data/vendor/bundle/gems/cocoapods-1.6.1/lib/cocoapods/validator.rb +999 -0
  512. data/vendor/bundle/gems/cocoapods-core-1.6.1/LICENSE +20 -0
  513. data/vendor/bundle/gems/cocoapods-core-1.6.1/README.md +42 -0
  514. data/vendor/bundle/gems/cocoapods-core-1.6.1/lib/cocoapods-core.rb +38 -0
  515. data/vendor/bundle/gems/cocoapods-core-1.6.1/lib/cocoapods-core/core_ui.rb +19 -0
  516. data/vendor/bundle/gems/cocoapods-core-1.6.1/lib/cocoapods-core/dependency.rb +424 -0
  517. data/vendor/bundle/gems/cocoapods-core-1.6.1/lib/cocoapods-core/gem_version.rb +5 -0
  518. data/vendor/bundle/gems/cocoapods-core-1.6.1/lib/cocoapods-core/github.rb +161 -0
  519. data/vendor/bundle/gems/cocoapods-core-1.6.1/lib/cocoapods-core/http.rb +84 -0
  520. data/vendor/bundle/gems/cocoapods-core-1.6.1/lib/cocoapods-core/lockfile.rb +541 -0
  521. data/vendor/bundle/gems/cocoapods-core-1.6.1/lib/cocoapods-core/master_source.rb +8 -0
  522. data/vendor/bundle/gems/cocoapods-core-1.6.1/lib/cocoapods-core/metrics.rb +47 -0
  523. data/vendor/bundle/gems/cocoapods-core-1.6.1/lib/cocoapods-core/platform.rb +242 -0
  524. data/vendor/bundle/gems/cocoapods-core-1.6.1/lib/cocoapods-core/podfile.rb +402 -0
  525. data/vendor/bundle/gems/cocoapods-core-1.6.1/lib/cocoapods-core/podfile/dsl.rb +852 -0
  526. data/vendor/bundle/gems/cocoapods-core-1.6.1/lib/cocoapods-core/podfile/target_definition.rb +1068 -0
  527. data/vendor/bundle/gems/cocoapods-core-1.6.1/lib/cocoapods-core/requirement.rb +104 -0
  528. data/vendor/bundle/gems/cocoapods-core-1.6.1/lib/cocoapods-core/source.rb +458 -0
  529. data/vendor/bundle/gems/cocoapods-core-1.6.1/lib/cocoapods-core/source/acceptor.rb +170 -0
  530. data/vendor/bundle/gems/cocoapods-core-1.6.1/lib/cocoapods-core/source/aggregate.rb +218 -0
  531. data/vendor/bundle/gems/cocoapods-core-1.6.1/lib/cocoapods-core/source/health_reporter.rb +192 -0
  532. data/vendor/bundle/gems/cocoapods-core-1.6.1/lib/cocoapods-core/source/manager.rb +412 -0
  533. data/vendor/bundle/gems/cocoapods-core-1.6.1/lib/cocoapods-core/source/metadata.rb +79 -0
  534. data/vendor/bundle/gems/cocoapods-core-1.6.1/lib/cocoapods-core/specification.rb +732 -0
  535. data/vendor/bundle/gems/cocoapods-core-1.6.1/lib/cocoapods-core/specification/consumer.rb +418 -0
  536. data/vendor/bundle/gems/cocoapods-core-1.6.1/lib/cocoapods-core/specification/dsl.rb +1588 -0
  537. data/vendor/bundle/gems/cocoapods-core-1.6.1/lib/cocoapods-core/specification/dsl/attribute.rb +199 -0
  538. data/vendor/bundle/gems/cocoapods-core-1.6.1/lib/cocoapods-core/specification/dsl/attribute_support.rb +74 -0
  539. data/vendor/bundle/gems/cocoapods-core-1.6.1/lib/cocoapods-core/specification/dsl/deprecations.rb +20 -0
  540. data/vendor/bundle/gems/cocoapods-core-1.6.1/lib/cocoapods-core/specification/dsl/platform_proxy.rb +82 -0
  541. data/vendor/bundle/gems/cocoapods-core-1.6.1/lib/cocoapods-core/specification/json.rb +85 -0
  542. data/vendor/bundle/gems/cocoapods-core-1.6.1/lib/cocoapods-core/specification/linter.rb +499 -0
  543. data/vendor/bundle/gems/cocoapods-core-1.6.1/lib/cocoapods-core/specification/linter/analyzer.rb +205 -0
  544. data/vendor/bundle/gems/cocoapods-core-1.6.1/lib/cocoapods-core/specification/linter/result.rb +128 -0
  545. data/vendor/bundle/gems/cocoapods-core-1.6.1/lib/cocoapods-core/specification/root_attribute_accessors.rb +201 -0
  546. data/vendor/bundle/gems/cocoapods-core-1.6.1/lib/cocoapods-core/specification/set.rb +177 -0
  547. data/vendor/bundle/gems/cocoapods-core-1.6.1/lib/cocoapods-core/specification/set/presenter.rb +203 -0
  548. data/vendor/bundle/gems/cocoapods-core-1.6.1/lib/cocoapods-core/standard_error.rb +108 -0
  549. data/vendor/bundle/gems/cocoapods-core-1.6.1/lib/cocoapods-core/vendor.rb +50 -0
  550. data/vendor/bundle/gems/cocoapods-core-1.6.1/lib/cocoapods-core/vendor/requirement.rb +288 -0
  551. data/vendor/bundle/gems/cocoapods-core-1.6.1/lib/cocoapods-core/vendor/version.rb +377 -0
  552. data/vendor/bundle/gems/cocoapods-core-1.6.1/lib/cocoapods-core/version.rb +237 -0
  553. data/vendor/bundle/gems/cocoapods-core-1.6.1/lib/cocoapods-core/yaml_helper.rb +319 -0
  554. data/vendor/bundle/gems/cocoapods-deintegrate-1.0.4/LICENSE +23 -0
  555. data/vendor/bundle/gems/cocoapods-deintegrate-1.0.4/README.md +56 -0
  556. data/vendor/bundle/gems/cocoapods-deintegrate-1.0.4/lib/cocoapods/command/deintegrate.rb +53 -0
  557. data/vendor/bundle/gems/cocoapods-deintegrate-1.0.4/lib/cocoapods/deintegrate/gem_version.rb +3 -0
  558. data/vendor/bundle/gems/cocoapods-deintegrate-1.0.4/lib/cocoapods/deintegrator.rb +145 -0
  559. data/vendor/bundle/gems/cocoapods-deintegrate-1.0.4/lib/cocoapods_deintegrate.rb +2 -0
  560. data/vendor/bundle/gems/cocoapods-deintegrate-1.0.4/lib/cocoapods_plugin.rb +4 -0
  561. data/vendor/bundle/gems/cocoapods-downloader-1.2.2/LICENSE +21 -0
  562. data/vendor/bundle/gems/cocoapods-downloader-1.2.2/README.markdown +77 -0
  563. data/vendor/bundle/gems/cocoapods-downloader-1.2.2/lib/cocoapods-downloader.rb +102 -0
  564. data/vendor/bundle/gems/cocoapods-downloader-1.2.2/lib/cocoapods-downloader/api.rb +73 -0
  565. data/vendor/bundle/gems/cocoapods-downloader-1.2.2/lib/cocoapods-downloader/api_exposable.rb +23 -0
  566. data/vendor/bundle/gems/cocoapods-downloader-1.2.2/lib/cocoapods-downloader/base.rb +173 -0
  567. data/vendor/bundle/gems/cocoapods-downloader-1.2.2/lib/cocoapods-downloader/bazaar.rb +60 -0
  568. data/vendor/bundle/gems/cocoapods-downloader-1.2.2/lib/cocoapods-downloader/gem_version.rb +8 -0
  569. data/vendor/bundle/gems/cocoapods-downloader-1.2.2/lib/cocoapods-downloader/git.rb +136 -0
  570. data/vendor/bundle/gems/cocoapods-downloader-1.2.2/lib/cocoapods-downloader/http.rb +15 -0
  571. data/vendor/bundle/gems/cocoapods-downloader-1.2.2/lib/cocoapods-downloader/mercurial.rb +54 -0
  572. data/vendor/bundle/gems/cocoapods-downloader-1.2.2/lib/cocoapods-downloader/remote_file.rb +178 -0
  573. data/vendor/bundle/gems/cocoapods-downloader-1.2.2/lib/cocoapods-downloader/scp.rb +30 -0
  574. data/vendor/bundle/gems/cocoapods-downloader-1.2.2/lib/cocoapods-downloader/subversion.rb +69 -0
  575. data/vendor/bundle/gems/cocoapods-plugins-1.0.0/.rubocop.yml +4 -0
  576. data/vendor/bundle/gems/cocoapods-plugins-1.0.0/.rubocop_cocoapods.yml +116 -0
  577. data/vendor/bundle/gems/cocoapods-plugins-1.0.0/.travis.yml +24 -0
  578. data/vendor/bundle/gems/cocoapods-plugins-1.0.0/CHANGELOG.md +102 -0
  579. data/vendor/bundle/gems/cocoapods-plugins-1.0.0/Gemfile +18 -0
  580. data/vendor/bundle/gems/cocoapods-plugins-1.0.0/Gemfile.lock +134 -0
  581. data/vendor/bundle/gems/cocoapods-plugins-1.0.0/LICENSE +21 -0
  582. data/vendor/bundle/gems/cocoapods-plugins-1.0.0/README.md +44 -0
  583. data/vendor/bundle/gems/cocoapods-plugins-1.0.0/Rakefile +88 -0
  584. data/vendor/bundle/gems/cocoapods-plugins-1.0.0/cocoapods-plugins.gemspec +31 -0
  585. data/vendor/bundle/gems/cocoapods-plugins-1.0.0/lib/cocoapods_plugin.rb +1 -0
  586. data/vendor/bundle/gems/cocoapods-plugins-1.0.0/lib/cocoapods_plugins.rb +5 -0
  587. data/vendor/bundle/gems/cocoapods-plugins-1.0.0/lib/pod/command/gem_helper.rb +120 -0
  588. data/vendor/bundle/gems/cocoapods-plugins-1.0.0/lib/pod/command/gem_index_cache.rb +87 -0
  589. data/vendor/bundle/gems/cocoapods-plugins-1.0.0/lib/pod/command/plugins.rb +30 -0
  590. data/vendor/bundle/gems/cocoapods-plugins-1.0.0/lib/pod/command/plugins/create.rb +120 -0
  591. data/vendor/bundle/gems/cocoapods-plugins-1.0.0/lib/pod/command/plugins/installed.rb +92 -0
  592. data/vendor/bundle/gems/cocoapods-plugins-1.0.0/lib/pod/command/plugins/list.rb +33 -0
  593. data/vendor/bundle/gems/cocoapods-plugins-1.0.0/lib/pod/command/plugins/publish.rb +76 -0
  594. data/vendor/bundle/gems/cocoapods-plugins-1.0.0/lib/pod/command/plugins/search.rb +58 -0
  595. data/vendor/bundle/gems/cocoapods-plugins-1.0.0/lib/pod/command/plugins_helper.rb +137 -0
  596. data/vendor/bundle/gems/cocoapods-plugins-1.0.0/plugins.json +245 -0
  597. data/vendor/bundle/gems/cocoapods-plugins-1.0.0/spec/command/gem_helper_spec.rb +40 -0
  598. data/vendor/bundle/gems/cocoapods-plugins-1.0.0/spec/command/gem_index_cache_spec.rb +37 -0
  599. data/vendor/bundle/gems/cocoapods-plugins-1.0.0/spec/command/plugins/create_spec.rb +89 -0
  600. data/vendor/bundle/gems/cocoapods-plugins-1.0.0/spec/command/plugins/installed_spec.rb +140 -0
  601. data/vendor/bundle/gems/cocoapods-plugins-1.0.0/spec/command/plugins/list_spec.rb +29 -0
  602. data/vendor/bundle/gems/cocoapods-plugins-1.0.0/spec/command/plugins/publish_spec.rb +132 -0
  603. data/vendor/bundle/gems/cocoapods-plugins-1.0.0/spec/command/plugins/search_spec.rb +55 -0
  604. data/vendor/bundle/gems/cocoapods-plugins-1.0.0/spec/command/plugins_helper_spec.rb +33 -0
  605. data/vendor/bundle/gems/cocoapods-plugins-1.0.0/spec/command/plugins_spec.rb +20 -0
  606. data/vendor/bundle/gems/cocoapods-plugins-1.0.0/spec/fixtures/cocoapods-foo1.gemspec +10 -0
  607. data/vendor/bundle/gems/cocoapods-plugins-1.0.0/spec/fixtures/cocoapods-foo2.gemspec +9 -0
  608. data/vendor/bundle/gems/cocoapods-plugins-1.0.0/spec/fixtures/plugins.json +22 -0
  609. data/vendor/bundle/gems/cocoapods-plugins-1.0.0/spec/fixtures/unprefixed.gemspec +10 -0
  610. data/vendor/bundle/gems/cocoapods-plugins-1.0.0/spec/spec_helper.rb +122 -0
  611. data/vendor/bundle/gems/cocoapods-search-1.0.0/.gitmodules +3 -0
  612. data/vendor/bundle/gems/cocoapods-search-1.0.0/.travis.yml +10 -0
  613. data/vendor/bundle/gems/cocoapods-search-1.0.0/CHANGELOG.md +70 -0
  614. data/vendor/bundle/gems/cocoapods-search-1.0.0/Gemfile +13 -0
  615. data/vendor/bundle/gems/cocoapods-search-1.0.0/Gemfile.lock +99 -0
  616. data/vendor/bundle/gems/cocoapods-search-1.0.0/LICENSE.txt +21 -0
  617. data/vendor/bundle/gems/cocoapods-search-1.0.0/README.md +106 -0
  618. data/vendor/bundle/gems/cocoapods-search-1.0.0/Rakefile +13 -0
  619. data/vendor/bundle/gems/cocoapods-search-1.0.0/cocoapods-search.gemspec +25 -0
  620. data/vendor/bundle/gems/cocoapods-search-1.0.0/lib/cocoapods-search.rb +1 -0
  621. data/vendor/bundle/gems/cocoapods-search-1.0.0/lib/cocoapods-search/command.rb +1 -0
  622. data/vendor/bundle/gems/cocoapods-search-1.0.0/lib/cocoapods-search/command/search.rb +115 -0
  623. data/vendor/bundle/gems/cocoapods-search-1.0.0/lib/cocoapods-search/gem_version.rb +3 -0
  624. data/vendor/bundle/gems/cocoapods-search-1.0.0/lib/cocoapods_plugin.rb +1 -0
  625. data/vendor/bundle/gems/cocoapods-search-1.0.0/spec/command/search_spec.rb +154 -0
  626. data/vendor/bundle/gems/cocoapods-search-1.0.0/spec/fixtures/spec-repos/test_repo/BananaLib/1.0/BananaLib.podspec +21 -0
  627. data/vendor/bundle/gems/cocoapods-search-1.0.0/spec/fixtures/spec-repos/test_repo/JSONKit/1.4/JSONKit.podspec +11 -0
  628. data/vendor/bundle/gems/cocoapods-search-1.0.0/spec/fixtures/spec-repos/test_repo/JSONKit/999.999.999/JSONKit.podspec +12 -0
  629. data/vendor/bundle/gems/cocoapods-search-1.0.0/spec/fixtures/spec-repos/test_repo/OrangeFramework/0.1.0/OrangeFramework.podspec +16 -0
  630. data/vendor/bundle/gems/cocoapods-search-1.0.0/spec/fixtures/spec-repos/test_repo/Pod+With+Plus+Signs/1.0/Pod+With+Plus+Signs.podspec +17 -0
  631. data/vendor/bundle/gems/cocoapods-search-1.0.0/spec/fixtures/spec-repos/test_repo/Realm/0.94/Realm.podspec +18 -0
  632. data/vendor/bundle/gems/cocoapods-search-1.0.0/spec/fixtures/spec-repos/test_repo/monkey/1.0.2/monkey.podspec +11 -0
  633. data/vendor/bundle/gems/cocoapods-search-1.0.0/spec/spec_helper.rb +85 -0
  634. data/vendor/bundle/gems/cocoapods-search-1.0.0/spec/spec_helper/command.rb +27 -0
  635. data/vendor/bundle/gems/cocoapods-search-1.0.0/spec/spec_helper/fixture.rb +32 -0
  636. data/vendor/bundle/gems/cocoapods-search-1.0.0/spec/spec_helper/pre_flight.rb +36 -0
  637. data/vendor/bundle/gems/cocoapods-search-1.0.0/spec/spec_helper/temporary_repos.rb +90 -0
  638. data/vendor/bundle/gems/cocoapods-search-1.0.0/spec/spec_helper/user_interface.rb +36 -0
  639. data/vendor/bundle/gems/cocoapods-stats-1.1.0/.rubocop.yml +9 -0
  640. data/vendor/bundle/gems/cocoapods-stats-1.1.0/.rubocop_cocoapods.yml +138 -0
  641. data/vendor/bundle/gems/cocoapods-stats-1.1.0/.travis.yml +8 -0
  642. data/vendor/bundle/gems/cocoapods-stats-1.1.0/CHANGELOG.md +125 -0
  643. data/vendor/bundle/gems/cocoapods-stats-1.1.0/Gemfile +14 -0
  644. data/vendor/bundle/gems/cocoapods-stats-1.1.0/Gemfile.lock +109 -0
  645. data/vendor/bundle/gems/cocoapods-stats-1.1.0/LICENSE.txt +22 -0
  646. data/vendor/bundle/gems/cocoapods-stats-1.1.0/README.md +11 -0
  647. data/vendor/bundle/gems/cocoapods-stats-1.1.0/Rakefile +26 -0
  648. data/vendor/bundle/gems/cocoapods-stats-1.1.0/cocoapods-stats.gemspec +24 -0
  649. data/vendor/bundle/gems/cocoapods-stats-1.1.0/lib/cocoapods_plugin.rb +74 -0
  650. data/vendor/bundle/gems/cocoapods-stats-1.1.0/lib/cocoapods_stats.rb +1 -0
  651. data/vendor/bundle/gems/cocoapods-stats-1.1.0/lib/cocoapods_stats/gem_version.rb +3 -0
  652. data/vendor/bundle/gems/cocoapods-stats-1.1.0/lib/cocoapods_stats/sender.rb +29 -0
  653. data/vendor/bundle/gems/cocoapods-stats-1.1.0/lib/cocoapods_stats/target_mapper.rb +44 -0
  654. data/vendor/bundle/gems/cocoapods-stats-1.1.0/spec/env_validator_spec.rb +19 -0
  655. data/vendor/bundle/gems/cocoapods-stats-1.1.0/spec/spec_helper.rb +46 -0
  656. data/vendor/bundle/gems/cocoapods-stats-1.1.0/spec/stats_spec.rb +36 -0
  657. data/vendor/bundle/gems/cocoapods-stats-1.1.0/spec/target_mapper_spec.rb +61 -0
  658. data/vendor/bundle/gems/cocoapods-stats-1.1.0/spec/validator_spec.rb +33 -0
  659. data/vendor/bundle/gems/cocoapods-trunk-1.3.1/.kick +29 -0
  660. data/vendor/bundle/gems/cocoapods-trunk-1.3.1/.rubocop.yml +3 -0
  661. data/vendor/bundle/gems/cocoapods-trunk-1.3.1/.rubocop_cocoapods.yml +138 -0
  662. data/vendor/bundle/gems/cocoapods-trunk-1.3.1/.rubocop_todo.yml +33 -0
  663. data/vendor/bundle/gems/cocoapods-trunk-1.3.1/.travis.yml +24 -0
  664. data/vendor/bundle/gems/cocoapods-trunk-1.3.1/CHANGELOG.md +326 -0
  665. data/vendor/bundle/gems/cocoapods-trunk-1.3.1/Gemfile +25 -0
  666. data/vendor/bundle/gems/cocoapods-trunk-1.3.1/Gemfile.lock +171 -0
  667. data/vendor/bundle/gems/cocoapods-trunk-1.3.1/LICENSE.txt +22 -0
  668. data/vendor/bundle/gems/cocoapods-trunk-1.3.1/README.md +36 -0
  669. data/vendor/bundle/gems/cocoapods-trunk-1.3.1/Rakefile +68 -0
  670. data/vendor/bundle/gems/cocoapods-trunk-1.3.1/cocoapods-trunk.gemspec +26 -0
  671. data/vendor/bundle/gems/cocoapods-trunk-1.3.1/lib/cocoapods_plugin.rb +1 -0
  672. data/vendor/bundle/gems/cocoapods-trunk-1.3.1/lib/cocoapods_trunk.rb +3 -0
  673. data/vendor/bundle/gems/cocoapods-trunk-1.3.1/lib/pod/command/trunk.rb +146 -0
  674. data/vendor/bundle/gems/cocoapods-trunk-1.3.1/lib/pod/command/trunk/add_owner.rb +47 -0
  675. data/vendor/bundle/gems/cocoapods-trunk-1.3.1/lib/pod/command/trunk/delete.rb +70 -0
  676. data/vendor/bundle/gems/cocoapods-trunk-1.3.1/lib/pod/command/trunk/deprecate.rb +48 -0
  677. data/vendor/bundle/gems/cocoapods-trunk-1.3.1/lib/pod/command/trunk/info.rb +35 -0
  678. data/vendor/bundle/gems/cocoapods-trunk-1.3.1/lib/pod/command/trunk/me.rb +119 -0
  679. data/vendor/bundle/gems/cocoapods-trunk-1.3.1/lib/pod/command/trunk/push.rb +157 -0
  680. data/vendor/bundle/gems/cocoapods-trunk-1.3.1/lib/pod/command/trunk/register.rb +78 -0
  681. data/vendor/bundle/gems/cocoapods-trunk-1.3.1/lib/pod/command/trunk/remove_owner.rb +46 -0
  682. data/vendor/bundle/gems/cocoapods-trunk-1.3.1/spec/command/trunk/addowner_spec.rb +52 -0
  683. data/vendor/bundle/gems/cocoapods-trunk-1.3.1/spec/command/trunk/delete_spec.rb +68 -0
  684. data/vendor/bundle/gems/cocoapods-trunk-1.3.1/spec/command/trunk/deprecate_spec.rb +58 -0
  685. data/vendor/bundle/gems/cocoapods-trunk-1.3.1/spec/command/trunk/info_spec.rb +36 -0
  686. data/vendor/bundle/gems/cocoapods-trunk-1.3.1/spec/command/trunk/me_spec.rb +17 -0
  687. data/vendor/bundle/gems/cocoapods-trunk-1.3.1/spec/command/trunk/push_spec.rb +286 -0
  688. data/vendor/bundle/gems/cocoapods-trunk-1.3.1/spec/command/trunk/register_spec.rb +31 -0
  689. data/vendor/bundle/gems/cocoapods-trunk-1.3.1/spec/command/trunk/remove_owner_spec.rb +51 -0
  690. data/vendor/bundle/gems/cocoapods-trunk-1.3.1/spec/command/trunk_spec.rb +23 -0
  691. data/vendor/bundle/gems/cocoapods-trunk-1.3.1/spec/fixtures/BananaLib.podspec +25 -0
  692. data/vendor/bundle/gems/cocoapods-trunk-1.3.1/spec/spec_helper.rb +97 -0
  693. data/vendor/bundle/gems/cocoapods-try-1.1.0/.rubocop.yml +3 -0
  694. data/vendor/bundle/gems/cocoapods-try-1.1.0/.rubocop_cocoapods.yml +121 -0
  695. data/vendor/bundle/gems/cocoapods-try-1.1.0/.rubocop_todo.yml +12 -0
  696. data/vendor/bundle/gems/cocoapods-try-1.1.0/.travis.yml +30 -0
  697. data/vendor/bundle/gems/cocoapods-try-1.1.0/CHANGELOG.md +190 -0
  698. data/vendor/bundle/gems/cocoapods-try-1.1.0/Gemfile +19 -0
  699. data/vendor/bundle/gems/cocoapods-try-1.1.0/Gemfile.lock +131 -0
  700. data/vendor/bundle/gems/cocoapods-try-1.1.0/LICENSE +22 -0
  701. data/vendor/bundle/gems/cocoapods-try-1.1.0/README.md +19 -0
  702. data/vendor/bundle/gems/cocoapods-try-1.1.0/Rakefile +56 -0
  703. data/vendor/bundle/gems/cocoapods-try-1.1.0/cocoapods-try.gemspec +21 -0
  704. data/vendor/bundle/gems/cocoapods-try-1.1.0/lib/cocoapods_plugin.rb +1 -0
  705. data/vendor/bundle/gems/cocoapods-try-1.1.0/lib/cocoapods_try.rb +5 -0
  706. data/vendor/bundle/gems/cocoapods-try-1.1.0/lib/pod/command/try.rb +267 -0
  707. data/vendor/bundle/gems/cocoapods-try-1.1.0/lib/pod/try_settings.rb +53 -0
  708. data/vendor/bundle/gems/cocoapods-try-1.1.0/spec/command/try_settings_spec.rb +105 -0
  709. data/vendor/bundle/gems/cocoapods-try-1.1.0/spec/command/try_spec.rb +223 -0
  710. data/vendor/bundle/gems/cocoapods-try-1.1.0/spec/spec_helper.rb +60 -0
  711. data/vendor/bundle/gems/colored2-3.1.2/LICENSE +23 -0
  712. data/vendor/bundle/gems/colored2-3.1.2/README.md +93 -0
  713. data/vendor/bundle/gems/colored2-3.1.2/Rakefile +13 -0
  714. data/vendor/bundle/gems/colored2-3.1.2/lib/colored2.rb +85 -0
  715. data/vendor/bundle/gems/colored2-3.1.2/lib/colored2/ascii_decorator.rb +86 -0
  716. data/vendor/bundle/gems/colored2-3.1.2/lib/colored2/codes.rb +63 -0
  717. data/vendor/bundle/gems/colored2-3.1.2/lib/colored2/numbers.rb +11 -0
  718. data/vendor/bundle/gems/colored2-3.1.2/lib/colored2/object.rb +2 -0
  719. data/vendor/bundle/gems/colored2-3.1.2/lib/colored2/strings.rb +2 -0
  720. data/vendor/bundle/gems/colored2-3.1.2/lib/colored2/version.rb +3 -0
  721. data/vendor/bundle/gems/colored2-3.1.2/spec/colored2/numbers_spec.rb +26 -0
  722. data/vendor/bundle/gems/colored2-3.1.2/spec/colored2/object_spec.rb +24 -0
  723. data/vendor/bundle/gems/colored2-3.1.2/spec/colored2/strings_spec.rb +77 -0
  724. data/vendor/bundle/gems/colored2-3.1.2/spec/colored2_spec.rb +23 -0
  725. data/vendor/bundle/gems/colored2-3.1.2/spec/spec_helper.rb +5 -0
  726. data/vendor/bundle/gems/concurrent-ruby-1.1.5/CHANGELOG.md +478 -0
  727. data/vendor/bundle/gems/concurrent-ruby-1.1.5/Gemfile +41 -0
  728. data/vendor/bundle/gems/concurrent-ruby-1.1.5/LICENSE.md +23 -0
  729. data/vendor/bundle/gems/concurrent-ruby-1.1.5/README.md +381 -0
  730. data/vendor/bundle/gems/concurrent-ruby-1.1.5/Rakefile +327 -0
  731. data/vendor/bundle/gems/concurrent-ruby-1.1.5/ext/concurrent-ruby/ConcurrentRubyService.java +17 -0
  732. data/vendor/bundle/gems/concurrent-ruby-1.1.5/ext/concurrent-ruby/com/concurrent_ruby/ext/AtomicReferenceLibrary.java +175 -0
  733. data/vendor/bundle/gems/concurrent-ruby-1.1.5/ext/concurrent-ruby/com/concurrent_ruby/ext/JRubyMapBackendLibrary.java +248 -0
  734. data/vendor/bundle/gems/concurrent-ruby-1.1.5/ext/concurrent-ruby/com/concurrent_ruby/ext/JavaAtomicBooleanLibrary.java +93 -0
  735. data/vendor/bundle/gems/concurrent-ruby-1.1.5/ext/concurrent-ruby/com/concurrent_ruby/ext/JavaAtomicFixnumLibrary.java +113 -0
  736. data/vendor/bundle/gems/concurrent-ruby-1.1.5/ext/concurrent-ruby/com/concurrent_ruby/ext/JavaSemaphoreLibrary.java +159 -0
  737. data/vendor/bundle/gems/concurrent-ruby-1.1.5/ext/concurrent-ruby/com/concurrent_ruby/ext/SynchronizationLibrary.java +307 -0
  738. data/vendor/bundle/gems/concurrent-ruby-1.1.5/ext/concurrent-ruby/com/concurrent_ruby/ext/jsr166e/ConcurrentHashMap.java +31 -0
  739. data/vendor/bundle/gems/concurrent-ruby-1.1.5/ext/concurrent-ruby/com/concurrent_ruby/ext/jsr166e/ConcurrentHashMapV8.java +3863 -0
  740. data/vendor/bundle/gems/concurrent-ruby-1.1.5/ext/concurrent-ruby/com/concurrent_ruby/ext/jsr166e/LongAdder.java +203 -0
  741. data/vendor/bundle/gems/concurrent-ruby-1.1.5/ext/concurrent-ruby/com/concurrent_ruby/ext/jsr166e/Striped64.java +342 -0
  742. data/vendor/bundle/gems/concurrent-ruby-1.1.5/ext/concurrent-ruby/com/concurrent_ruby/ext/jsr166e/nounsafe/ConcurrentHashMapV8.java +3800 -0
  743. data/vendor/bundle/gems/concurrent-ruby-1.1.5/ext/concurrent-ruby/com/concurrent_ruby/ext/jsr166e/nounsafe/LongAdder.java +204 -0
  744. data/vendor/bundle/gems/concurrent-ruby-1.1.5/ext/concurrent-ruby/com/concurrent_ruby/ext/jsr166e/nounsafe/Striped64.java +291 -0
  745. data/vendor/bundle/gems/concurrent-ruby-1.1.5/ext/concurrent-ruby/com/concurrent_ruby/ext/jsr166y/ThreadLocalRandom.java +199 -0
  746. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent-ruby.rb +1 -0
  747. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent.rb +134 -0
  748. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/agent.rb +587 -0
  749. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/array.rb +66 -0
  750. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/async.rb +459 -0
  751. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/atom.rb +222 -0
  752. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic/abstract_thread_local_var.rb +66 -0
  753. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic/atomic_boolean.rb +126 -0
  754. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic/atomic_fixnum.rb +143 -0
  755. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic/atomic_markable_reference.rb +164 -0
  756. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic/atomic_reference.rb +204 -0
  757. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic/count_down_latch.rb +100 -0
  758. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic/cyclic_barrier.rb +128 -0
  759. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic/event.rb +109 -0
  760. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic/java_count_down_latch.rb +42 -0
  761. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic/java_thread_local_var.rb +37 -0
  762. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic/mutex_atomic_boolean.rb +62 -0
  763. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic/mutex_atomic_fixnum.rb +75 -0
  764. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic/mutex_count_down_latch.rb +44 -0
  765. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic/mutex_semaphore.rb +115 -0
  766. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic/read_write_lock.rb +254 -0
  767. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic/reentrant_read_write_lock.rb +379 -0
  768. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic/ruby_thread_local_var.rb +161 -0
  769. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic/semaphore.rb +145 -0
  770. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic/thread_local_var.rb +104 -0
  771. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic_reference/mutex_atomic.rb +56 -0
  772. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic_reference/numeric_cas_wrapper.rb +28 -0
  773. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/atomics.rb +10 -0
  774. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/collection/copy_on_notify_observer_set.rb +107 -0
  775. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/collection/copy_on_write_observer_set.rb +111 -0
  776. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/collection/java_non_concurrent_priority_queue.rb +84 -0
  777. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/collection/lock_free_stack.rb +158 -0
  778. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/collection/map/atomic_reference_map_backend.rb +927 -0
  779. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/collection/map/mri_map_backend.rb +66 -0
  780. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/collection/map/non_concurrent_map_backend.rb +140 -0
  781. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/collection/map/synchronized_map_backend.rb +82 -0
  782. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/collection/non_concurrent_priority_queue.rb +143 -0
  783. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/collection/ruby_non_concurrent_priority_queue.rb +150 -0
  784. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/concern/deprecation.rb +34 -0
  785. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/concern/dereferenceable.rb +73 -0
  786. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/concern/logging.rb +32 -0
  787. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/concern/obligation.rb +220 -0
  788. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/concern/observable.rb +110 -0
  789. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/concurrent_ruby.jar +0 -0
  790. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/configuration.rb +184 -0
  791. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/constants.rb +8 -0
  792. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/dataflow.rb +81 -0
  793. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/delay.rb +199 -0
  794. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/errors.rb +69 -0
  795. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/exchanger.rb +352 -0
  796. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/abstract_executor_service.rb +134 -0
  797. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/cached_thread_pool.rb +62 -0
  798. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/executor_service.rb +185 -0
  799. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/fixed_thread_pool.rb +206 -0
  800. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/immediate_executor.rb +66 -0
  801. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/indirect_immediate_executor.rb +44 -0
  802. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/java_executor_service.rb +91 -0
  803. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/java_single_thread_executor.rb +29 -0
  804. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/java_thread_pool_executor.rb +123 -0
  805. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_executor_service.rb +78 -0
  806. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_single_thread_executor.rb +22 -0
  807. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb +362 -0
  808. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/safe_task_executor.rb +35 -0
  809. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/serial_executor_service.rb +34 -0
  810. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/serialized_execution.rb +107 -0
  811. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/serialized_execution_delegator.rb +28 -0
  812. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/simple_executor_service.rb +100 -0
  813. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/single_thread_executor.rb +56 -0
  814. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/thread_pool_executor.rb +87 -0
  815. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/timer_set.rb +173 -0
  816. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/executors.rb +20 -0
  817. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/future.rb +141 -0
  818. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/hash.rb +59 -0
  819. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/immutable_struct.rb +93 -0
  820. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/ivar.rb +207 -0
  821. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/map.rb +337 -0
  822. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/maybe.rb +229 -0
  823. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/mutable_struct.rb +229 -0
  824. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/mvar.rb +242 -0
  825. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/options.rb +42 -0
  826. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/promise.rb +579 -0
  827. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/promises.rb +2167 -0
  828. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/re_include.rb +58 -0
  829. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/scheduled_task.rb +318 -0
  830. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/set.rb +66 -0
  831. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/settable_struct.rb +129 -0
  832. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization.rb +30 -0
  833. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/abstract_lockable_object.rb +98 -0
  834. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/abstract_object.rb +24 -0
  835. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/abstract_struct.rb +160 -0
  836. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/condition.rb +60 -0
  837. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/jruby_lockable_object.rb +13 -0
  838. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/jruby_object.rb +45 -0
  839. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/lock.rb +36 -0
  840. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/lockable_object.rb +74 -0
  841. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/mri_object.rb +44 -0
  842. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/mutex_lockable_object.rb +76 -0
  843. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/object.rb +183 -0
  844. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/rbx_lockable_object.rb +65 -0
  845. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/rbx_object.rb +49 -0
  846. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/truffleruby_object.rb +47 -0
  847. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/volatile.rb +36 -0
  848. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/thread_safe/synchronized_delegator.rb +50 -0
  849. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/thread_safe/util.rb +16 -0
  850. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/thread_safe/util/adder.rb +74 -0
  851. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/thread_safe/util/cheap_lockable.rb +118 -0
  852. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/thread_safe/util/data_structures.rb +63 -0
  853. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/thread_safe/util/power_of_two_tuple.rb +38 -0
  854. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/thread_safe/util/striped64.rb +246 -0
  855. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/thread_safe/util/volatile.rb +75 -0
  856. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/thread_safe/util/xor_shift_random.rb +50 -0
  857. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/timer_task.rb +334 -0
  858. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/tuple.rb +86 -0
  859. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/tvar.rb +258 -0
  860. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/utility/at_exit.rb +97 -0
  861. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/utility/engine.rb +56 -0
  862. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/utility/monotonic_time.rb +58 -0
  863. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/utility/native_extension_loader.rb +79 -0
  864. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/utility/native_integer.rb +53 -0
  865. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/utility/processor_counter.rb +158 -0
  866. data/vendor/bundle/gems/concurrent-ruby-1.1.5/lib/concurrent/version.rb +3 -0
  867. data/vendor/bundle/gems/escape-0.0.4/Readme +21 -0
  868. data/vendor/bundle/gems/escape-0.0.4/doc_include/template/qualitysmith.rb +631 -0
  869. data/vendor/bundle/gems/escape-0.0.4/lib/escape.rb +247 -0
  870. data/vendor/bundle/gems/fourflusher-2.2.0/.rubocop.yml +30 -0
  871. data/vendor/bundle/gems/fourflusher-2.2.0/.travis.yml +8 -0
  872. data/vendor/bundle/gems/fourflusher-2.2.0/CHANGELOG.md +116 -0
  873. data/vendor/bundle/gems/fourflusher-2.2.0/Gemfile +3 -0
  874. data/vendor/bundle/gems/fourflusher-2.2.0/Gemfile.lock +47 -0
  875. data/vendor/bundle/gems/fourflusher-2.2.0/LICENSE.txt +21 -0
  876. data/vendor/bundle/gems/fourflusher-2.2.0/README.md +33 -0
  877. data/vendor/bundle/gems/fourflusher-2.2.0/Rakefile +9 -0
  878. data/vendor/bundle/gems/fourflusher-2.2.0/bin/console +14 -0
  879. data/vendor/bundle/gems/fourflusher-2.2.0/bin/setup +8 -0
  880. data/vendor/bundle/gems/fourflusher-2.2.0/fourflusher.gemspec +27 -0
  881. data/vendor/bundle/gems/fourflusher-2.2.0/lib/fourflusher.rb +3 -0
  882. data/vendor/bundle/gems/fourflusher-2.2.0/lib/fourflusher/compat.rb +24 -0
  883. data/vendor/bundle/gems/fourflusher-2.2.0/lib/fourflusher/executable.rb +236 -0
  884. data/vendor/bundle/gems/fourflusher-2.2.0/lib/fourflusher/find.rb +150 -0
  885. data/vendor/bundle/gems/fourflusher-2.2.0/lib/fourflusher/simctl.rb +19 -0
  886. data/vendor/bundle/gems/fourflusher-2.2.0/lib/fourflusher/version.rb +3 -0
  887. data/vendor/bundle/gems/fourflusher-2.2.0/lib/fourflusher/xcodebuild.rb +13 -0
  888. data/vendor/bundle/gems/fuzzy_match-2.0.4/.rspec +2 -0
  889. data/vendor/bundle/gems/fuzzy_match-2.0.4/CHANGELOG +93 -0
  890. data/vendor/bundle/gems/fuzzy_match-2.0.4/Gemfile +11 -0
  891. data/vendor/bundle/gems/fuzzy_match-2.0.4/LICENSE +20 -0
  892. data/vendor/bundle/gems/fuzzy_match-2.0.4/README.markdown +191 -0
  893. data/vendor/bundle/gems/fuzzy_match-2.0.4/Rakefile +5 -0
  894. data/vendor/bundle/gems/fuzzy_match-2.0.4/THANKS-WILLIAM-JAMES.rb +37 -0
  895. data/vendor/bundle/gems/fuzzy_match-2.0.4/benchmark/before-with-free.txt +283 -0
  896. data/vendor/bundle/gems/fuzzy_match-2.0.4/benchmark/before-without-last-result.txt +257 -0
  897. data/vendor/bundle/gems/fuzzy_match-2.0.4/benchmark/before.txt +304 -0
  898. data/vendor/bundle/gems/fuzzy_match-2.0.4/benchmark/memory.rb +53 -0
  899. data/vendor/bundle/gems/fuzzy_match-2.0.4/bin/fuzzy_match +106 -0
  900. data/vendor/bundle/gems/fuzzy_match-2.0.4/fuzzy_match.gemspec +34 -0
  901. data/vendor/bundle/gems/fuzzy_match-2.0.4/groupings-screenshot.png +0 -0
  902. data/vendor/bundle/gems/fuzzy_match-2.0.4/highlevel.graffle +0 -0
  903. data/vendor/bundle/gems/fuzzy_match-2.0.4/highlevel.png +0 -0
  904. data/vendor/bundle/gems/fuzzy_match-2.0.4/lib/fuzzy_match.rb +335 -0
  905. data/vendor/bundle/gems/fuzzy_match-2.0.4/lib/fuzzy_match/cached_result.rb +79 -0
  906. data/vendor/bundle/gems/fuzzy_match-2.0.4/lib/fuzzy_match/record.rb +58 -0
  907. data/vendor/bundle/gems/fuzzy_match-2.0.4/lib/fuzzy_match/result.rb +45 -0
  908. data/vendor/bundle/gems/fuzzy_match-2.0.4/lib/fuzzy_match/rule.rb +17 -0
  909. data/vendor/bundle/gems/fuzzy_match-2.0.4/lib/fuzzy_match/rule/grouping.rb +90 -0
  910. data/vendor/bundle/gems/fuzzy_match-2.0.4/lib/fuzzy_match/rule/identity.rb +40 -0
  911. data/vendor/bundle/gems/fuzzy_match-2.0.4/lib/fuzzy_match/score.rb +30 -0
  912. data/vendor/bundle/gems/fuzzy_match-2.0.4/lib/fuzzy_match/score/amatch.rb +21 -0
  913. data/vendor/bundle/gems/fuzzy_match-2.0.4/lib/fuzzy_match/score/pure_ruby.rb +94 -0
  914. data/vendor/bundle/gems/fuzzy_match-2.0.4/lib/fuzzy_match/similarity.rb +39 -0
  915. data/vendor/bundle/gems/fuzzy_match-2.0.4/lib/fuzzy_match/version.rb +3 -0
  916. data/vendor/bundle/gems/fuzzy_match-2.0.4/spec/amatch_spec.rb +17 -0
  917. data/vendor/bundle/gems/fuzzy_match-2.0.4/spec/cache_spec.rb +132 -0
  918. data/vendor/bundle/gems/fuzzy_match-2.0.4/spec/foo.rb +9 -0
  919. data/vendor/bundle/gems/fuzzy_match-2.0.4/spec/fuzzy_match_spec.rb +367 -0
  920. data/vendor/bundle/gems/fuzzy_match-2.0.4/spec/grouping_spec.rb +60 -0
  921. data/vendor/bundle/gems/fuzzy_match-2.0.4/spec/identity_spec.rb +29 -0
  922. data/vendor/bundle/gems/fuzzy_match-2.0.4/spec/record_spec.rb +25 -0
  923. data/vendor/bundle/gems/fuzzy_match-2.0.4/spec/spec_helper.rb +21 -0
  924. data/vendor/bundle/gems/gh_inspector-1.1.3/.rspec +2 -0
  925. data/vendor/bundle/gems/gh_inspector-1.1.3/.rubocop.yml +134 -0
  926. data/vendor/bundle/gems/gh_inspector-1.1.3/.travis.yml +9 -0
  927. data/vendor/bundle/gems/gh_inspector-1.1.3/CHANGELOG.md +26 -0
  928. data/vendor/bundle/gems/gh_inspector-1.1.3/Gemfile +4 -0
  929. data/vendor/bundle/gems/gh_inspector-1.1.3/LICENSE +21 -0
  930. data/vendor/bundle/gems/gh_inspector-1.1.3/README.md +102 -0
  931. data/vendor/bundle/gems/gh_inspector-1.1.3/Rakefile +62 -0
  932. data/vendor/bundle/gems/gh_inspector-1.1.3/bin/console +10 -0
  933. data/vendor/bundle/gems/gh_inspector-1.1.3/bin/setup +8 -0
  934. data/vendor/bundle/gems/gh_inspector-1.1.3/gh_inspector.gemspec +27 -0
  935. data/vendor/bundle/gems/gh_inspector-1.1.3/lib/gh_inspector.rb +8 -0
  936. data/vendor/bundle/gems/gh_inspector-1.1.3/lib/gh_inspector/evidence.rb +118 -0
  937. data/vendor/bundle/gems/gh_inspector-1.1.3/lib/gh_inspector/exception_hound.rb +45 -0
  938. data/vendor/bundle/gems/gh_inspector-1.1.3/lib/gh_inspector/inspector.rb +71 -0
  939. data/vendor/bundle/gems/gh_inspector-1.1.3/lib/gh_inspector/sidekick.rb +138 -0
  940. data/vendor/bundle/gems/gh_inspector-1.1.3/lib/gh_inspector/version.rb +3 -0
  941. data/vendor/bundle/gems/i18n-0.9.5/MIT-LICENSE +20 -0
  942. data/vendor/bundle/gems/i18n-0.9.5/README.md +84 -0
  943. data/vendor/bundle/gems/i18n-0.9.5/gemfiles/Gemfile.rails-3.2.x +10 -0
  944. data/vendor/bundle/gems/i18n-0.9.5/gemfiles/Gemfile.rails-4.0.x +10 -0
  945. data/vendor/bundle/gems/i18n-0.9.5/gemfiles/Gemfile.rails-4.1.x +10 -0
  946. data/vendor/bundle/gems/i18n-0.9.5/gemfiles/Gemfile.rails-4.2.x +10 -0
  947. data/vendor/bundle/gems/i18n-0.9.5/gemfiles/Gemfile.rails-5.0.x +10 -0
  948. data/vendor/bundle/gems/i18n-0.9.5/gemfiles/Gemfile.rails-5.1.x +10 -0
  949. data/vendor/bundle/gems/i18n-0.9.5/gemfiles/Gemfile.rails-master +10 -0
  950. data/vendor/bundle/gems/i18n-0.9.5/lib/i18n.rb +356 -0
  951. data/vendor/bundle/gems/i18n-0.9.5/lib/i18n/backend.rb +18 -0
  952. data/vendor/bundle/gems/i18n-0.9.5/lib/i18n/backend/base.rb +255 -0
  953. data/vendor/bundle/gems/i18n-0.9.5/lib/i18n/backend/cache.rb +114 -0
  954. data/vendor/bundle/gems/i18n-0.9.5/lib/i18n/backend/cascade.rb +54 -0
  955. data/vendor/bundle/gems/i18n-0.9.5/lib/i18n/backend/chain.rb +97 -0
  956. data/vendor/bundle/gems/i18n-0.9.5/lib/i18n/backend/fallbacks.rb +86 -0
  957. data/vendor/bundle/gems/i18n-0.9.5/lib/i18n/backend/flatten.rb +113 -0
  958. data/vendor/bundle/gems/i18n-0.9.5/lib/i18n/backend/gettext.rb +81 -0
  959. data/vendor/bundle/gems/i18n-0.9.5/lib/i18n/backend/interpolation_compiler.rb +121 -0
  960. data/vendor/bundle/gems/i18n-0.9.5/lib/i18n/backend/key_value.rb +177 -0
  961. data/vendor/bundle/gems/i18n-0.9.5/lib/i18n/backend/memoize.rb +46 -0
  962. data/vendor/bundle/gems/i18n-0.9.5/lib/i18n/backend/metadata.rb +69 -0
  963. data/vendor/bundle/gems/i18n-0.9.5/lib/i18n/backend/pluralization.rb +53 -0
  964. data/vendor/bundle/gems/i18n-0.9.5/lib/i18n/backend/simple.rb +93 -0
  965. data/vendor/bundle/gems/i18n-0.9.5/lib/i18n/backend/transliterator.rb +106 -0
  966. data/vendor/bundle/gems/i18n-0.9.5/lib/i18n/config.rb +147 -0
  967. data/vendor/bundle/gems/i18n-0.9.5/lib/i18n/core_ext/hash.rb +29 -0
  968. data/vendor/bundle/gems/i18n-0.9.5/lib/i18n/core_ext/kernel/suppress_warnings.rb +8 -0
  969. data/vendor/bundle/gems/i18n-0.9.5/lib/i18n/core_ext/string/interpolate.rb +9 -0
  970. data/vendor/bundle/gems/i18n-0.9.5/lib/i18n/exceptions.rb +104 -0
  971. data/vendor/bundle/gems/i18n-0.9.5/lib/i18n/gettext.rb +26 -0
  972. data/vendor/bundle/gems/i18n-0.9.5/lib/i18n/gettext/helpers.rb +73 -0
  973. data/vendor/bundle/gems/i18n-0.9.5/lib/i18n/gettext/po_parser.rb +329 -0
  974. data/vendor/bundle/gems/i18n-0.9.5/lib/i18n/interpolate/ruby.rb +37 -0
  975. data/vendor/bundle/gems/i18n-0.9.5/lib/i18n/locale.rb +6 -0
  976. data/vendor/bundle/gems/i18n-0.9.5/lib/i18n/locale/fallbacks.rb +96 -0
  977. data/vendor/bundle/gems/i18n-0.9.5/lib/i18n/locale/tag.rb +28 -0
  978. data/vendor/bundle/gems/i18n-0.9.5/lib/i18n/locale/tag/parents.rb +22 -0
  979. data/vendor/bundle/gems/i18n-0.9.5/lib/i18n/locale/tag/rfc4646.rb +74 -0
  980. data/vendor/bundle/gems/i18n-0.9.5/lib/i18n/locale/tag/simple.rb +39 -0
  981. data/vendor/bundle/gems/i18n-0.9.5/lib/i18n/middleware.rb +15 -0
  982. data/vendor/bundle/gems/i18n-0.9.5/lib/i18n/tests.rb +12 -0
  983. data/vendor/bundle/gems/i18n-0.9.5/lib/i18n/tests/basics.rb +60 -0
  984. data/vendor/bundle/gems/i18n-0.9.5/lib/i18n/tests/defaults.rb +52 -0
  985. data/vendor/bundle/gems/i18n-0.9.5/lib/i18n/tests/interpolation.rb +158 -0
  986. data/vendor/bundle/gems/i18n-0.9.5/lib/i18n/tests/link.rb +56 -0
  987. data/vendor/bundle/gems/i18n-0.9.5/lib/i18n/tests/localization.rb +19 -0
  988. data/vendor/bundle/gems/i18n-0.9.5/lib/i18n/tests/localization/date.rb +95 -0
  989. data/vendor/bundle/gems/i18n-0.9.5/lib/i18n/tests/localization/date_time.rb +82 -0
  990. data/vendor/bundle/gems/i18n-0.9.5/lib/i18n/tests/localization/procs.rb +116 -0
  991. data/vendor/bundle/gems/i18n-0.9.5/lib/i18n/tests/localization/time.rb +81 -0
  992. data/vendor/bundle/gems/i18n-0.9.5/lib/i18n/tests/lookup.rb +81 -0
  993. data/vendor/bundle/gems/i18n-0.9.5/lib/i18n/tests/pluralization.rb +35 -0
  994. data/vendor/bundle/gems/i18n-0.9.5/lib/i18n/tests/procs.rb +55 -0
  995. data/vendor/bundle/gems/i18n-0.9.5/lib/i18n/version.rb +3 -0
  996. data/vendor/bundle/gems/i18n-0.9.5/test/api/all_features_test.rb +58 -0
  997. data/vendor/bundle/gems/i18n-0.9.5/test/api/cascade_test.rb +28 -0
  998. data/vendor/bundle/gems/i18n-0.9.5/test/api/chain_test.rb +24 -0
  999. data/vendor/bundle/gems/i18n-0.9.5/test/api/fallbacks_test.rb +30 -0
  1000. data/vendor/bundle/gems/i18n-0.9.5/test/api/key_value_test.rb +24 -0
  1001. data/vendor/bundle/gems/i18n-0.9.5/test/api/memoize_test.rb +56 -0
  1002. data/vendor/bundle/gems/i18n-0.9.5/test/api/override_test.rb +42 -0
  1003. data/vendor/bundle/gems/i18n-0.9.5/test/api/pluralization_test.rb +30 -0
  1004. data/vendor/bundle/gems/i18n-0.9.5/test/api/simple_test.rb +28 -0
  1005. data/vendor/bundle/gems/i18n-0.9.5/test/backend/cache_test.rb +109 -0
  1006. data/vendor/bundle/gems/i18n-0.9.5/test/backend/cascade_test.rb +86 -0
  1007. data/vendor/bundle/gems/i18n-0.9.5/test/backend/chain_test.rb +122 -0
  1008. data/vendor/bundle/gems/i18n-0.9.5/test/backend/exceptions_test.rb +36 -0
  1009. data/vendor/bundle/gems/i18n-0.9.5/test/backend/fallbacks_test.rb +219 -0
  1010. data/vendor/bundle/gems/i18n-0.9.5/test/backend/interpolation_compiler_test.rb +118 -0
  1011. data/vendor/bundle/gems/i18n-0.9.5/test/backend/key_value_test.rb +61 -0
  1012. data/vendor/bundle/gems/i18n-0.9.5/test/backend/memoize_test.rb +79 -0
  1013. data/vendor/bundle/gems/i18n-0.9.5/test/backend/metadata_test.rb +48 -0
  1014. data/vendor/bundle/gems/i18n-0.9.5/test/backend/pluralization_test.rb +45 -0
  1015. data/vendor/bundle/gems/i18n-0.9.5/test/backend/simple_test.rb +103 -0
  1016. data/vendor/bundle/gems/i18n-0.9.5/test/backend/transliterator_test.rb +84 -0
  1017. data/vendor/bundle/gems/i18n-0.9.5/test/core_ext/hash_test.rb +36 -0
  1018. data/vendor/bundle/gems/i18n-0.9.5/test/gettext/api_test.rb +214 -0
  1019. data/vendor/bundle/gems/i18n-0.9.5/test/gettext/backend_test.rb +92 -0
  1020. data/vendor/bundle/gems/i18n-0.9.5/test/i18n/exceptions_test.rb +117 -0
  1021. data/vendor/bundle/gems/i18n-0.9.5/test/i18n/gettext_plural_keys_test.rb +20 -0
  1022. data/vendor/bundle/gems/i18n-0.9.5/test/i18n/interpolate_test.rb +91 -0
  1023. data/vendor/bundle/gems/i18n-0.9.5/test/i18n/load_path_test.rb +34 -0
  1024. data/vendor/bundle/gems/i18n-0.9.5/test/i18n/middleware_test.rb +24 -0
  1025. data/vendor/bundle/gems/i18n-0.9.5/test/i18n_test.rb +462 -0
  1026. data/vendor/bundle/gems/i18n-0.9.5/test/locale/fallbacks_test.rb +133 -0
  1027. data/vendor/bundle/gems/i18n-0.9.5/test/locale/tag/rfc4646_test.rb +143 -0
  1028. data/vendor/bundle/gems/i18n-0.9.5/test/locale/tag/simple_test.rb +32 -0
  1029. data/vendor/bundle/gems/i18n-0.9.5/test/run_all.rb +20 -0
  1030. data/vendor/bundle/gems/i18n-0.9.5/test/test_data/locales/de.po +82 -0
  1031. data/vendor/bundle/gems/i18n-0.9.5/test/test_data/locales/en.rb +3 -0
  1032. data/vendor/bundle/gems/i18n-0.9.5/test/test_data/locales/en.yml +3 -0
  1033. data/vendor/bundle/gems/i18n-0.9.5/test/test_data/locales/invalid/empty.yml +0 -0
  1034. data/vendor/bundle/gems/i18n-0.9.5/test/test_data/locales/invalid/syntax.yml +4 -0
  1035. data/vendor/bundle/gems/i18n-0.9.5/test/test_data/locales/plurals.rb +113 -0
  1036. data/vendor/bundle/gems/i18n-0.9.5/test/test_helper.rb +61 -0
  1037. data/vendor/bundle/gems/json-2.2.0/.travis.yml +23 -0
  1038. data/vendor/bundle/gems/json-2.2.0/CHANGES.md +391 -0
  1039. data/vendor/bundle/gems/json-2.2.0/Gemfile +14 -0
  1040. data/vendor/bundle/gems/json-2.2.0/README-json-jruby.md +33 -0
  1041. data/vendor/bundle/gems/json-2.2.0/README.md +409 -0
  1042. data/vendor/bundle/gems/json-2.2.0/Rakefile +408 -0
  1043. data/vendor/bundle/gems/json-2.2.0/VERSION +1 -0
  1044. data/vendor/bundle/gems/json-2.2.0/diagrams/.keep +0 -0
  1045. data/vendor/bundle/gems/json-2.2.0/ext/json/ext/fbuffer/fbuffer.h +187 -0
  1046. data/vendor/bundle/gems/json-2.2.0/ext/json/ext/generator/.sitearchdir.-.json.-.ext.time +0 -0
  1047. data/vendor/bundle/gems/json-2.2.0/ext/json/ext/generator/depend +1 -0
  1048. data/vendor/bundle/gems/json-2.2.0/ext/json/ext/generator/extconf.rb +4 -0
  1049. data/vendor/bundle/gems/json-2.2.0/ext/json/ext/generator/generator.c +1444 -0
  1050. data/vendor/bundle/gems/json-2.2.0/ext/json/ext/generator/generator.h +171 -0
  1051. data/vendor/bundle/gems/json-2.2.0/ext/json/ext/parser/.sitearchdir.-.json.-.ext.time +0 -0
  1052. data/vendor/bundle/gems/json-2.2.0/ext/json/ext/parser/depend +1 -0
  1053. data/vendor/bundle/gems/json-2.2.0/ext/json/ext/parser/extconf.rb +6 -0
  1054. data/vendor/bundle/gems/json-2.2.0/ext/json/ext/parser/parser.c +2131 -0
  1055. data/vendor/bundle/gems/json-2.2.0/ext/json/ext/parser/parser.h +91 -0
  1056. data/vendor/bundle/gems/json-2.2.0/ext/json/ext/parser/parser.rl +891 -0
  1057. data/vendor/bundle/gems/json-2.2.0/ext/json/extconf.rb +2 -0
  1058. data/vendor/bundle/gems/json-2.2.0/install.rb +23 -0
  1059. data/vendor/bundle/gems/json-2.2.0/java/src/json/ext/ByteListTranscoder.java +166 -0
  1060. data/vendor/bundle/gems/json-2.2.0/java/src/json/ext/Generator.java +443 -0
  1061. data/vendor/bundle/gems/json-2.2.0/java/src/json/ext/GeneratorMethods.java +231 -0
  1062. data/vendor/bundle/gems/json-2.2.0/java/src/json/ext/GeneratorService.java +42 -0
  1063. data/vendor/bundle/gems/json-2.2.0/java/src/json/ext/GeneratorState.java +490 -0
  1064. data/vendor/bundle/gems/json-2.2.0/java/src/json/ext/OptionsReader.java +113 -0
  1065. data/vendor/bundle/gems/json-2.2.0/java/src/json/ext/Parser.java +2362 -0
  1066. data/vendor/bundle/gems/json-2.2.0/java/src/json/ext/Parser.rl +893 -0
  1067. data/vendor/bundle/gems/json-2.2.0/java/src/json/ext/ParserService.java +34 -0
  1068. data/vendor/bundle/gems/json-2.2.0/java/src/json/ext/RuntimeInfo.java +116 -0
  1069. data/vendor/bundle/gems/json-2.2.0/java/src/json/ext/StringDecoder.java +166 -0
  1070. data/vendor/bundle/gems/json-2.2.0/java/src/json/ext/StringEncoder.java +111 -0
  1071. data/vendor/bundle/gems/json-2.2.0/java/src/json/ext/Utils.java +88 -0
  1072. data/vendor/bundle/gems/json-2.2.0/json-java.gemspec +38 -0
  1073. data/vendor/bundle/gems/json-2.2.0/json.gemspec +0 -0
  1074. data/vendor/bundle/gems/json-2.2.0/json_pure.gemspec +38 -0
  1075. data/vendor/bundle/gems/json-2.2.0/lib/json.rb +63 -0
  1076. data/vendor/bundle/gems/json-2.2.0/lib/json/add/bigdecimal.rb +29 -0
  1077. data/vendor/bundle/gems/json-2.2.0/lib/json/add/complex.rb +29 -0
  1078. data/vendor/bundle/gems/json-2.2.0/lib/json/add/core.rb +12 -0
  1079. data/vendor/bundle/gems/json-2.2.0/lib/json/add/date.rb +34 -0
  1080. data/vendor/bundle/gems/json-2.2.0/lib/json/add/date_time.rb +50 -0
  1081. data/vendor/bundle/gems/json-2.2.0/lib/json/add/exception.rb +31 -0
  1082. data/vendor/bundle/gems/json-2.2.0/lib/json/add/ostruct.rb +31 -0
  1083. data/vendor/bundle/gems/json-2.2.0/lib/json/add/range.rb +29 -0
  1084. data/vendor/bundle/gems/json-2.2.0/lib/json/add/rational.rb +28 -0
  1085. data/vendor/bundle/gems/json-2.2.0/lib/json/add/regexp.rb +30 -0
  1086. data/vendor/bundle/gems/json-2.2.0/lib/json/add/set.rb +29 -0
  1087. data/vendor/bundle/gems/json-2.2.0/lib/json/add/struct.rb +30 -0
  1088. data/vendor/bundle/gems/json-2.2.0/lib/json/add/symbol.rb +25 -0
  1089. data/vendor/bundle/gems/json-2.2.0/lib/json/add/time.rb +38 -0
  1090. data/vendor/bundle/gems/json-2.2.0/lib/json/common.rb +456 -0
  1091. data/vendor/bundle/gems/json-2.2.0/lib/json/ext.rb +15 -0
  1092. data/vendor/bundle/gems/json-2.2.0/lib/json/ext/.keep +0 -0
  1093. data/vendor/bundle/gems/json-2.2.0/lib/json/generic_object.rb +71 -0
  1094. data/vendor/bundle/gems/json-2.2.0/lib/json/pure.rb +15 -0
  1095. data/vendor/bundle/gems/json-2.2.0/lib/json/pure/generator.rb +458 -0
  1096. data/vendor/bundle/gems/json-2.2.0/lib/json/pure/parser.rb +311 -0
  1097. data/vendor/bundle/gems/json-2.2.0/lib/json/version.rb +9 -0
  1098. data/vendor/bundle/gems/json-2.2.0/references/rfc7159.txt +899 -0
  1099. data/vendor/bundle/gems/json-2.2.0/tests/fixtures/fail10.json +1 -0
  1100. data/vendor/bundle/gems/json-2.2.0/tests/fixtures/fail11.json +1 -0
  1101. data/vendor/bundle/gems/json-2.2.0/tests/fixtures/fail12.json +1 -0
  1102. data/vendor/bundle/gems/json-2.2.0/tests/fixtures/fail13.json +1 -0
  1103. data/vendor/bundle/gems/json-2.2.0/tests/fixtures/fail14.json +1 -0
  1104. data/vendor/bundle/gems/json-2.2.0/tests/fixtures/fail18.json +1 -0
  1105. data/vendor/bundle/gems/json-2.2.0/tests/fixtures/fail19.json +1 -0
  1106. data/vendor/bundle/gems/json-2.2.0/tests/fixtures/fail2.json +1 -0
  1107. data/vendor/bundle/gems/json-2.2.0/tests/fixtures/fail20.json +1 -0
  1108. data/vendor/bundle/gems/json-2.2.0/tests/fixtures/fail21.json +1 -0
  1109. data/vendor/bundle/gems/json-2.2.0/tests/fixtures/fail22.json +1 -0
  1110. data/vendor/bundle/gems/json-2.2.0/tests/fixtures/fail23.json +1 -0
  1111. data/vendor/bundle/gems/json-2.2.0/tests/fixtures/fail24.json +1 -0
  1112. data/vendor/bundle/gems/json-2.2.0/tests/fixtures/fail25.json +1 -0
  1113. data/vendor/bundle/gems/json-2.2.0/tests/fixtures/fail27.json +2 -0
  1114. data/vendor/bundle/gems/json-2.2.0/tests/fixtures/fail28.json +2 -0
  1115. data/vendor/bundle/gems/json-2.2.0/tests/fixtures/fail3.json +1 -0
  1116. data/vendor/bundle/gems/json-2.2.0/tests/fixtures/fail4.json +1 -0
  1117. data/vendor/bundle/gems/json-2.2.0/tests/fixtures/fail5.json +1 -0
  1118. data/vendor/bundle/gems/json-2.2.0/tests/fixtures/fail6.json +1 -0
  1119. data/vendor/bundle/gems/json-2.2.0/tests/fixtures/fail7.json +1 -0
  1120. data/vendor/bundle/gems/json-2.2.0/tests/fixtures/fail8.json +1 -0
  1121. data/vendor/bundle/gems/json-2.2.0/tests/fixtures/fail9.json +1 -0
  1122. data/vendor/bundle/gems/json-2.2.0/tests/fixtures/obsolete_fail1.json +1 -0
  1123. data/vendor/bundle/gems/json-2.2.0/tests/fixtures/pass1.json +56 -0
  1124. data/vendor/bundle/gems/json-2.2.0/tests/fixtures/pass15.json +1 -0
  1125. data/vendor/bundle/gems/json-2.2.0/tests/fixtures/pass16.json +1 -0
  1126. data/vendor/bundle/gems/json-2.2.0/tests/fixtures/pass17.json +1 -0
  1127. data/vendor/bundle/gems/json-2.2.0/tests/fixtures/pass2.json +1 -0
  1128. data/vendor/bundle/gems/json-2.2.0/tests/fixtures/pass26.json +1 -0
  1129. data/vendor/bundle/gems/json-2.2.0/tests/fixtures/pass3.json +6 -0
  1130. data/vendor/bundle/gems/json-2.2.0/tests/json_addition_test.rb +203 -0
  1131. data/vendor/bundle/gems/json-2.2.0/tests/json_common_interface_test.rb +126 -0
  1132. data/vendor/bundle/gems/json-2.2.0/tests/json_encoding_test.rb +107 -0
  1133. data/vendor/bundle/gems/json-2.2.0/tests/json_ext_parser_test.rb +15 -0
  1134. data/vendor/bundle/gems/json-2.2.0/tests/json_fixtures_test.rb +32 -0
  1135. data/vendor/bundle/gems/json-2.2.0/tests/json_generator_test.rb +377 -0
  1136. data/vendor/bundle/gems/json-2.2.0/tests/json_generic_object_test.rb +82 -0
  1137. data/vendor/bundle/gems/json-2.2.0/tests/json_parser_test.rb +472 -0
  1138. data/vendor/bundle/gems/json-2.2.0/tests/json_string_matching_test.rb +38 -0
  1139. data/vendor/bundle/gems/json-2.2.0/tests/test_helper.rb +17 -0
  1140. data/vendor/bundle/gems/json-2.2.0/tools/diff.sh +18 -0
  1141. data/vendor/bundle/gems/json-2.2.0/tools/fuzz.rb +131 -0
  1142. data/vendor/bundle/gems/json-2.2.0/tools/server.rb +62 -0
  1143. data/vendor/bundle/gems/launchy-2.4.3/CONTRIBUTING.md +59 -0
  1144. data/vendor/bundle/gems/launchy-2.4.3/HISTORY.md +160 -0
  1145. data/vendor/bundle/gems/launchy-2.4.3/LICENSE +16 -0
  1146. data/vendor/bundle/gems/launchy-2.4.3/Manifest.txt +38 -0
  1147. data/vendor/bundle/gems/launchy-2.4.3/README.md +136 -0
  1148. data/vendor/bundle/gems/launchy-2.4.3/Rakefile +25 -0
  1149. data/vendor/bundle/gems/launchy-2.4.3/bin/launchy +4 -0
  1150. data/vendor/bundle/gems/launchy-2.4.3/lib/launchy.rb +152 -0
  1151. data/vendor/bundle/gems/launchy-2.4.3/lib/launchy/application.rb +62 -0
  1152. data/vendor/bundle/gems/launchy-2.4.3/lib/launchy/applications/browser.rb +82 -0
  1153. data/vendor/bundle/gems/launchy-2.4.3/lib/launchy/argv.rb +36 -0
  1154. data/vendor/bundle/gems/launchy-2.4.3/lib/launchy/cli.rb +89 -0
  1155. data/vendor/bundle/gems/launchy-2.4.3/lib/launchy/deprecated.rb +52 -0
  1156. data/vendor/bundle/gems/launchy-2.4.3/lib/launchy/descendant_tracker.rb +49 -0
  1157. data/vendor/bundle/gems/launchy-2.4.3/lib/launchy/detect.rb +10 -0
  1158. data/vendor/bundle/gems/launchy-2.4.3/lib/launchy/detect/host_os.rb +32 -0
  1159. data/vendor/bundle/gems/launchy-2.4.3/lib/launchy/detect/host_os_family.rb +71 -0
  1160. data/vendor/bundle/gems/launchy-2.4.3/lib/launchy/detect/nix_desktop_environment.rb +92 -0
  1161. data/vendor/bundle/gems/launchy-2.4.3/lib/launchy/detect/ruby_engine.rb +78 -0
  1162. data/vendor/bundle/gems/launchy-2.4.3/lib/launchy/detect/runner.rb +152 -0
  1163. data/vendor/bundle/gems/launchy-2.4.3/lib/launchy/error.rb +6 -0
  1164. data/vendor/bundle/gems/launchy-2.4.3/lib/launchy/os_family.rb +8 -0
  1165. data/vendor/bundle/gems/launchy-2.4.3/lib/launchy/version.rb +18 -0
  1166. data/vendor/bundle/gems/launchy-2.4.3/spec/application_spec.rb +43 -0
  1167. data/vendor/bundle/gems/launchy-2.4.3/spec/applications/browser_spec.rb +68 -0
  1168. data/vendor/bundle/gems/launchy-2.4.3/spec/cli_spec.rb +75 -0
  1169. data/vendor/bundle/gems/launchy-2.4.3/spec/detect/host_os_family_spec.rb +40 -0
  1170. data/vendor/bundle/gems/launchy-2.4.3/spec/detect/host_os_spec.rb +19 -0
  1171. data/vendor/bundle/gems/launchy-2.4.3/spec/detect/nix_desktop_environment_spec.rb +36 -0
  1172. data/vendor/bundle/gems/launchy-2.4.3/spec/detect/ruby_engine_spec.rb +37 -0
  1173. data/vendor/bundle/gems/launchy-2.4.3/spec/detect/runner_spec.rb +103 -0
  1174. data/vendor/bundle/gems/launchy-2.4.3/spec/launchy_spec.rb +110 -0
  1175. data/vendor/bundle/gems/launchy-2.4.3/spec/mock_application.rb +9 -0
  1176. data/vendor/bundle/gems/launchy-2.4.3/spec/spec_helper.rb +11 -0
  1177. data/vendor/bundle/gems/launchy-2.4.3/spec/tattle-host-os.yaml +427 -0
  1178. data/vendor/bundle/gems/launchy-2.4.3/spec/version_spec.rb +11 -0
  1179. data/vendor/bundle/gems/launchy-2.4.3/tasks/default.rake +272 -0
  1180. data/vendor/bundle/gems/launchy-2.4.3/tasks/this.rb +209 -0
  1181. data/vendor/bundle/gems/metaclass-0.0.4/COPYING.txt +21 -0
  1182. data/vendor/bundle/gems/metaclass-0.0.4/Gemfile +3 -0
  1183. data/vendor/bundle/gems/metaclass-0.0.4/README.md +10 -0
  1184. data/vendor/bundle/gems/metaclass-0.0.4/Rakefile +11 -0
  1185. data/vendor/bundle/gems/metaclass-0.0.4/lib/metaclass.rb +5 -0
  1186. data/vendor/bundle/gems/metaclass-0.0.4/lib/metaclass/object_methods.rb +11 -0
  1187. data/vendor/bundle/gems/metaclass-0.0.4/lib/metaclass/version.rb +3 -0
  1188. data/vendor/bundle/gems/metaclass-0.0.4/metaclass.gemspec +20 -0
  1189. data/vendor/bundle/gems/metaclass-0.0.4/test/object_methods_test.rb +31 -0
  1190. data/vendor/bundle/gems/metaclass-0.0.4/test/test_helper.rb +5 -0
  1191. data/vendor/bundle/gems/minitest-5.11.3/.autotest +34 -0
  1192. data/vendor/bundle/gems/minitest-5.11.3/History.rdoc +1310 -0
  1193. data/vendor/bundle/gems/minitest-5.11.3/Manifest.txt +26 -0
  1194. data/vendor/bundle/gems/minitest-5.11.3/README.rdoc +746 -0
  1195. data/vendor/bundle/gems/minitest-5.11.3/Rakefile +86 -0
  1196. data/vendor/bundle/gems/minitest-5.11.3/design_rationale.rb +52 -0
  1197. data/vendor/bundle/gems/minitest-5.11.3/lib/hoe/minitest.rb +32 -0
  1198. data/vendor/bundle/gems/minitest-5.11.3/lib/minitest.rb +987 -0
  1199. data/vendor/bundle/gems/minitest-5.11.3/lib/minitest/assertions.rb +693 -0
  1200. data/vendor/bundle/gems/minitest-5.11.3/lib/minitest/autorun.rb +13 -0
  1201. data/vendor/bundle/gems/minitest-5.11.3/lib/minitest/benchmark.rb +455 -0
  1202. data/vendor/bundle/gems/minitest-5.11.3/lib/minitest/expectations.rb +284 -0
  1203. data/vendor/bundle/gems/minitest-5.11.3/lib/minitest/hell.rb +11 -0
  1204. data/vendor/bundle/gems/minitest-5.11.3/lib/minitest/mock.rb +240 -0
  1205. data/vendor/bundle/gems/minitest-5.11.3/lib/minitest/parallel.rb +70 -0
  1206. data/vendor/bundle/gems/minitest-5.11.3/lib/minitest/pride.rb +4 -0
  1207. data/vendor/bundle/gems/minitest-5.11.3/lib/minitest/pride_plugin.rb +142 -0
  1208. data/vendor/bundle/gems/minitest-5.11.3/lib/minitest/spec.rb +331 -0
  1209. data/vendor/bundle/gems/minitest-5.11.3/lib/minitest/test.rb +220 -0
  1210. data/vendor/bundle/gems/minitest-5.11.3/lib/minitest/unit.rb +45 -0
  1211. data/vendor/bundle/gems/minitest-5.11.3/test/minitest/metametameta.rb +102 -0
  1212. data/vendor/bundle/gems/minitest-5.11.3/test/minitest/test_minitest_benchmark.rb +137 -0
  1213. data/vendor/bundle/gems/minitest-5.11.3/test/minitest/test_minitest_mock.rb +874 -0
  1214. data/vendor/bundle/gems/minitest-5.11.3/test/minitest/test_minitest_reporter.rb +299 -0
  1215. data/vendor/bundle/gems/minitest-5.11.3/test/minitest/test_minitest_spec.rb +987 -0
  1216. data/vendor/bundle/gems/minitest-5.11.3/test/minitest/test_minitest_test.rb +2142 -0
  1217. data/vendor/bundle/gems/mocha-1.8.0/.gemtest +0 -0
  1218. data/vendor/bundle/gems/mocha-1.8.0/.rubocop.yml +58 -0
  1219. data/vendor/bundle/gems/mocha-1.8.0/.rubocop_todo.yml +50 -0
  1220. data/vendor/bundle/gems/mocha-1.8.0/.yardopts +23 -0
  1221. data/vendor/bundle/gems/mocha-1.8.0/CONTRIBUTING.md +7 -0
  1222. data/vendor/bundle/gems/mocha-1.8.0/COPYING.md +3 -0
  1223. data/vendor/bundle/gems/mocha-1.8.0/Gemfile +3 -0
  1224. data/vendor/bundle/gems/mocha-1.8.0/MIT-LICENSE.md +7 -0
  1225. data/vendor/bundle/gems/mocha-1.8.0/README.md +338 -0
  1226. data/vendor/bundle/gems/mocha-1.8.0/RELEASE.md +617 -0
  1227. data/vendor/bundle/gems/mocha-1.8.0/Rakefile +149 -0
  1228. data/vendor/bundle/gems/mocha-1.8.0/bin/build-matrix +83 -0
  1229. data/vendor/bundle/gems/mocha-1.8.0/docs/CNAME +1 -0
  1230. data/vendor/bundle/gems/mocha-1.8.0/docs/Mocha.html +127 -0
  1231. data/vendor/bundle/gems/mocha-1.8.0/docs/Mocha/API.html +1056 -0
  1232. data/vendor/bundle/gems/mocha-1.8.0/docs/Mocha/ClassMethods.html +267 -0
  1233. data/vendor/bundle/gems/mocha-1.8.0/docs/Mocha/Configuration.html +626 -0
  1234. data/vendor/bundle/gems/mocha-1.8.0/docs/Mocha/Expectation.html +2709 -0
  1235. data/vendor/bundle/gems/mocha-1.8.0/docs/Mocha/ExpectationError.html +157 -0
  1236. data/vendor/bundle/gems/mocha-1.8.0/docs/Mocha/ExpectationErrorFactory.html +269 -0
  1237. data/vendor/bundle/gems/mocha-1.8.0/docs/Mocha/Hooks.html +385 -0
  1238. data/vendor/bundle/gems/mocha-1.8.0/docs/Mocha/Integration.html +125 -0
  1239. data/vendor/bundle/gems/mocha-1.8.0/docs/Mocha/Integration/MiniTest.html +123 -0
  1240. data/vendor/bundle/gems/mocha-1.8.0/docs/Mocha/Integration/MiniTest/Adapter.html +165 -0
  1241. data/vendor/bundle/gems/mocha-1.8.0/docs/Mocha/Integration/TestUnit.html +123 -0
  1242. data/vendor/bundle/gems/mocha-1.8.0/docs/Mocha/Integration/TestUnit/Adapter.html +165 -0
  1243. data/vendor/bundle/gems/mocha-1.8.0/docs/Mocha/Mock.html +1197 -0
  1244. data/vendor/bundle/gems/mocha-1.8.0/docs/Mocha/ObjectMethods.html +712 -0
  1245. data/vendor/bundle/gems/mocha-1.8.0/docs/Mocha/ParameterMatchers.html +3049 -0
  1246. data/vendor/bundle/gems/mocha-1.8.0/docs/Mocha/ParameterMatchers/AllOf.html +154 -0
  1247. data/vendor/bundle/gems/mocha-1.8.0/docs/Mocha/ParameterMatchers/AnyOf.html +154 -0
  1248. data/vendor/bundle/gems/mocha-1.8.0/docs/Mocha/ParameterMatchers/AnyParameters.html +153 -0
  1249. data/vendor/bundle/gems/mocha-1.8.0/docs/Mocha/ParameterMatchers/Anything.html +153 -0
  1250. data/vendor/bundle/gems/mocha-1.8.0/docs/Mocha/ParameterMatchers/Base.html +448 -0
  1251. data/vendor/bundle/gems/mocha-1.8.0/docs/Mocha/ParameterMatchers/Equals.html +154 -0
  1252. data/vendor/bundle/gems/mocha-1.8.0/docs/Mocha/ParameterMatchers/EquivalentUri.html +153 -0
  1253. data/vendor/bundle/gems/mocha-1.8.0/docs/Mocha/ParameterMatchers/HasEntries.html +154 -0
  1254. data/vendor/bundle/gems/mocha-1.8.0/docs/Mocha/ParameterMatchers/HasEntry.html +154 -0
  1255. data/vendor/bundle/gems/mocha-1.8.0/docs/Mocha/ParameterMatchers/HasKey.html +154 -0
  1256. data/vendor/bundle/gems/mocha-1.8.0/docs/Mocha/ParameterMatchers/HasValue.html +154 -0
  1257. data/vendor/bundle/gems/mocha-1.8.0/docs/Mocha/ParameterMatchers/Includes.html +154 -0
  1258. data/vendor/bundle/gems/mocha-1.8.0/docs/Mocha/ParameterMatchers/InstanceOf.html +154 -0
  1259. data/vendor/bundle/gems/mocha-1.8.0/docs/Mocha/ParameterMatchers/IsA.html +153 -0
  1260. data/vendor/bundle/gems/mocha-1.8.0/docs/Mocha/ParameterMatchers/KindOf.html +154 -0
  1261. data/vendor/bundle/gems/mocha-1.8.0/docs/Mocha/ParameterMatchers/Not.html +154 -0
  1262. data/vendor/bundle/gems/mocha-1.8.0/docs/Mocha/ParameterMatchers/Optionally.html +153 -0
  1263. data/vendor/bundle/gems/mocha-1.8.0/docs/Mocha/ParameterMatchers/RegexpMatches.html +154 -0
  1264. data/vendor/bundle/gems/mocha-1.8.0/docs/Mocha/ParameterMatchers/RespondsWith.html +154 -0
  1265. data/vendor/bundle/gems/mocha-1.8.0/docs/Mocha/ParameterMatchers/YamlEquivalent.html +154 -0
  1266. data/vendor/bundle/gems/mocha-1.8.0/docs/Mocha/Sequence.html +149 -0
  1267. data/vendor/bundle/gems/mocha-1.8.0/docs/Mocha/StateMachine.html +539 -0
  1268. data/vendor/bundle/gems/mocha-1.8.0/docs/Mocha/StateMachine/State.html +141 -0
  1269. data/vendor/bundle/gems/mocha-1.8.0/docs/Mocha/StateMachine/StatePredicate.html +141 -0
  1270. data/vendor/bundle/gems/mocha-1.8.0/docs/Mocha/StubbingError.html +150 -0
  1271. data/vendor/bundle/gems/mocha-1.8.0/docs/Mocha/UnexpectedInvocation.html +140 -0
  1272. data/vendor/bundle/gems/mocha-1.8.0/docs/_index.html +537 -0
  1273. data/vendor/bundle/gems/mocha-1.8.0/docs/class_list.html +51 -0
  1274. data/vendor/bundle/gems/mocha-1.8.0/docs/css/common.css +1 -0
  1275. data/vendor/bundle/gems/mocha-1.8.0/docs/css/full_list.css +58 -0
  1276. data/vendor/bundle/gems/mocha-1.8.0/docs/css/style.css +496 -0
  1277. data/vendor/bundle/gems/mocha-1.8.0/docs/file.COPYING.html +81 -0
  1278. data/vendor/bundle/gems/mocha-1.8.0/docs/file.MIT-LICENSE.html +85 -0
  1279. data/vendor/bundle/gems/mocha-1.8.0/docs/file.README.html +418 -0
  1280. data/vendor/bundle/gems/mocha-1.8.0/docs/file.RELEASE.html +875 -0
  1281. data/vendor/bundle/gems/mocha-1.8.0/docs/file_list.html +71 -0
  1282. data/vendor/bundle/gems/mocha-1.8.0/docs/frames.html +17 -0
  1283. data/vendor/bundle/gems/mocha-1.8.0/docs/index.html +418 -0
  1284. data/vendor/bundle/gems/mocha-1.8.0/docs/js/app.js +292 -0
  1285. data/vendor/bundle/gems/mocha-1.8.0/docs/js/full_list.js +216 -0
  1286. data/vendor/bundle/gems/mocha-1.8.0/docs/js/jquery.js +4 -0
  1287. data/vendor/bundle/gems/mocha-1.8.0/docs/method_list.html +571 -0
  1288. data/vendor/bundle/gems/mocha-1.8.0/docs/top-level-namespace.html +118 -0
  1289. data/vendor/bundle/gems/mocha-1.8.0/gemfiles/Gemfile.minitest.1.3.0 +7 -0
  1290. data/vendor/bundle/gems/mocha-1.8.0/gemfiles/Gemfile.minitest.1.4.0 +7 -0
  1291. data/vendor/bundle/gems/mocha-1.8.0/gemfiles/Gemfile.minitest.1.4.1 +7 -0
  1292. data/vendor/bundle/gems/mocha-1.8.0/gemfiles/Gemfile.minitest.1.4.2 +7 -0
  1293. data/vendor/bundle/gems/mocha-1.8.0/gemfiles/Gemfile.minitest.2.0.0 +7 -0
  1294. data/vendor/bundle/gems/mocha-1.8.0/gemfiles/Gemfile.minitest.2.0.1 +7 -0
  1295. data/vendor/bundle/gems/mocha-1.8.0/gemfiles/Gemfile.minitest.2.11.0 +7 -0
  1296. data/vendor/bundle/gems/mocha-1.8.0/gemfiles/Gemfile.minitest.2.11.2 +7 -0
  1297. data/vendor/bundle/gems/mocha-1.8.0/gemfiles/Gemfile.minitest.2.3.0 +7 -0
  1298. data/vendor/bundle/gems/mocha-1.8.0/gemfiles/Gemfile.minitest.latest +7 -0
  1299. data/vendor/bundle/gems/mocha-1.8.0/gemfiles/Gemfile.test-unit.2.0.0 +7 -0
  1300. data/vendor/bundle/gems/mocha-1.8.0/gemfiles/Gemfile.test-unit.2.0.1 +7 -0
  1301. data/vendor/bundle/gems/mocha-1.8.0/gemfiles/Gemfile.test-unit.2.0.3 +7 -0
  1302. data/vendor/bundle/gems/mocha-1.8.0/gemfiles/Gemfile.test-unit.latest +11 -0
  1303. data/vendor/bundle/gems/mocha-1.8.0/init.rb +3 -0
  1304. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha.rb +1 -0
  1305. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/any_instance_method.rb +66 -0
  1306. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/api.rb +178 -0
  1307. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/argument_iterator.rb +17 -0
  1308. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/backtrace_filter.rb +13 -0
  1309. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/cardinality.rb +88 -0
  1310. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/central.rb +42 -0
  1311. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/change_state_side_effect.rb +15 -0
  1312. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/class_method.rb +113 -0
  1313. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/class_methods.rb +60 -0
  1314. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/configuration.rb +148 -0
  1315. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/debug.rb +12 -0
  1316. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/deprecation.rb +20 -0
  1317. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/detection/mini_test.rb +23 -0
  1318. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/detection/test_unit.rb +29 -0
  1319. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/error_with_filtered_backtrace.rb +13 -0
  1320. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/exception_raiser.rb +14 -0
  1321. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/expectation.rb +609 -0
  1322. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/expectation_error.rb +10 -0
  1323. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/expectation_error_factory.rb +35 -0
  1324. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/expectation_list.rb +58 -0
  1325. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/hooks.rb +42 -0
  1326. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/in_state_ordering_constraint.rb +15 -0
  1327. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/inspect.rb +55 -0
  1328. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/instance_method.rb +6 -0
  1329. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/integration.rb +13 -0
  1330. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/integration/assertion_counter.rb +13 -0
  1331. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/integration/mini_test.rb +49 -0
  1332. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/integration/mini_test/adapter.rb +52 -0
  1333. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/integration/mini_test/exception_translation.rb +14 -0
  1334. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/integration/mini_test/nothing.rb +19 -0
  1335. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/integration/mini_test/version_13.rb +54 -0
  1336. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/integration/mini_test/version_140.rb +54 -0
  1337. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/integration/mini_test/version_141.rb +65 -0
  1338. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/integration/mini_test/version_142_to_172.rb +65 -0
  1339. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/integration/mini_test/version_200.rb +66 -0
  1340. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/integration/mini_test/version_201_to_222.rb +66 -0
  1341. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/integration/mini_test/version_2110_to_2111.rb +70 -0
  1342. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/integration/mini_test/version_2112_to_320.rb +73 -0
  1343. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/integration/mini_test/version_230_to_2101.rb +68 -0
  1344. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/integration/monkey_patcher.rb +24 -0
  1345. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/integration/test_unit.rb +44 -0
  1346. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/integration/test_unit/adapter.rb +50 -0
  1347. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/integration/test_unit/gem_version_200.rb +62 -0
  1348. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/integration/test_unit/gem_version_201_to_202.rb +62 -0
  1349. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/integration/test_unit/gem_version_203_to_220.rb +62 -0
  1350. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/integration/test_unit/gem_version_230_to_250.rb +68 -0
  1351. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/integration/test_unit/nothing.rb +19 -0
  1352. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/integration/test_unit/ruby_version_185_and_below.rb +61 -0
  1353. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb +63 -0
  1354. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/is_a.rb +7 -0
  1355. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/logger.rb +11 -0
  1356. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/method_matcher.rb +17 -0
  1357. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/mini_test.rb +5 -0
  1358. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/minitest.rb +3 -0
  1359. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/mock.rb +359 -0
  1360. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/mockery.rb +225 -0
  1361. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/module_method.rb +6 -0
  1362. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/module_methods.rb +10 -0
  1363. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/multiple_yields.rb +15 -0
  1364. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/names.rb +43 -0
  1365. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/no_yields.rb +5 -0
  1366. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/not_initialized_error.rb +7 -0
  1367. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/object_methods.rb +175 -0
  1368. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/parameter_matchers.rb +26 -0
  1369. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/parameter_matchers/all_of.rb +46 -0
  1370. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/parameter_matchers/any_of.rb +52 -0
  1371. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/parameter_matchers/any_parameters.rb +41 -0
  1372. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/parameter_matchers/anything.rb +36 -0
  1373. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/parameter_matchers/base.rb +65 -0
  1374. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/parameter_matchers/equals.rb +47 -0
  1375. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/parameter_matchers/equivalent_uri.rb +67 -0
  1376. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/parameter_matchers/has_entries.rb +51 -0
  1377. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/parameter_matchers/has_entry.rb +90 -0
  1378. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/parameter_matchers/has_key.rb +49 -0
  1379. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/parameter_matchers/has_value.rb +49 -0
  1380. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/parameter_matchers/includes.rb +100 -0
  1381. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/parameter_matchers/instance_of.rb +47 -0
  1382. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/parameter_matchers/is_a.rb +49 -0
  1383. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/parameter_matchers/kind_of.rb +49 -0
  1384. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/parameter_matchers/not.rb +48 -0
  1385. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/parameter_matchers/object.rb +15 -0
  1386. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/parameter_matchers/optionally.rb +61 -0
  1387. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/parameter_matchers/regexp_matches.rb +48 -0
  1388. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/parameter_matchers/responds_with.rb +49 -0
  1389. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/parameter_matchers/yaml_equivalent.rb +49 -0
  1390. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/parameters_matcher.rb +34 -0
  1391. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/pretty_parameters.rb +24 -0
  1392. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/receivers.rb +45 -0
  1393. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/return_values.rb +27 -0
  1394. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/ruby_version.rb +4 -0
  1395. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/sequence.rb +46 -0
  1396. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/setup.rb +9 -0
  1397. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/single_return_value.rb +13 -0
  1398. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/single_yield.rb +13 -0
  1399. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/standalone.rb +4 -0
  1400. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/state_machine.rb +102 -0
  1401. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/stubbing_error.rb +8 -0
  1402. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/test_unit.rb +3 -0
  1403. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/thrower.rb +12 -0
  1404. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/unexpected_invocation.rb +24 -0
  1405. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/version.rb +3 -0
  1406. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha/yield_parameters.rb +27 -0
  1407. data/vendor/bundle/gems/mocha-1.8.0/lib/mocha_standalone.rb +4 -0
  1408. data/vendor/bundle/gems/mocha-1.8.0/mocha.gemspec +51 -0
  1409. data/vendor/bundle/gems/mocha-1.8.0/test/acceptance/acceptance_test_helper.rb +35 -0
  1410. data/vendor/bundle/gems/mocha-1.8.0/test/acceptance/bug_18914_test.rb +38 -0
  1411. data/vendor/bundle/gems/mocha-1.8.0/test/acceptance/bug_21465_test.rb +32 -0
  1412. data/vendor/bundle/gems/mocha-1.8.0/test/acceptance/bug_21563_test.rb +23 -0
  1413. data/vendor/bundle/gems/mocha-1.8.0/test/acceptance/exception_rescue_test.rb +54 -0
  1414. data/vendor/bundle/gems/mocha-1.8.0/test/acceptance/expectations_on_multiple_methods_test.rb +56 -0
  1415. data/vendor/bundle/gems/mocha-1.8.0/test/acceptance/expected_invocation_count_test.rb +230 -0
  1416. data/vendor/bundle/gems/mocha-1.8.0/test/acceptance/failure_messages_test.rb +62 -0
  1417. data/vendor/bundle/gems/mocha-1.8.0/test/acceptance/issue_272_test.rb +51 -0
  1418. data/vendor/bundle/gems/mocha-1.8.0/test/acceptance/issue_65_test.rb +65 -0
  1419. data/vendor/bundle/gems/mocha-1.8.0/test/acceptance/issue_70_test.rb +54 -0
  1420. data/vendor/bundle/gems/mocha-1.8.0/test/acceptance/mocha_example_test.rb +97 -0
  1421. data/vendor/bundle/gems/mocha-1.8.0/test/acceptance/mocha_test_result_test.rb +84 -0
  1422. data/vendor/bundle/gems/mocha-1.8.0/test/acceptance/mock_test.rb +98 -0
  1423. data/vendor/bundle/gems/mocha-1.8.0/test/acceptance/mock_with_initializer_block_test.rb +56 -0
  1424. data/vendor/bundle/gems/mocha-1.8.0/test/acceptance/mocked_methods_dispatch_test.rb +76 -0
  1425. data/vendor/bundle/gems/mocha-1.8.0/test/acceptance/multiple_expectations_failure_message_test.rb +67 -0
  1426. data/vendor/bundle/gems/mocha-1.8.0/test/acceptance/optional_parameters_test.rb +68 -0
  1427. data/vendor/bundle/gems/mocha-1.8.0/test/acceptance/parameter_matcher_test.rb +300 -0
  1428. data/vendor/bundle/gems/mocha-1.8.0/test/acceptance/partial_mocks_test.rb +45 -0
  1429. data/vendor/bundle/gems/mocha-1.8.0/test/acceptance/prepend_test.rb +87 -0
  1430. data/vendor/bundle/gems/mocha-1.8.0/test/acceptance/prevent_use_of_mocha_outside_test_test.rb +77 -0
  1431. data/vendor/bundle/gems/mocha-1.8.0/test/acceptance/raise_exception_test.rb +37 -0
  1432. data/vendor/bundle/gems/mocha-1.8.0/test/acceptance/return_value_test.rb +50 -0
  1433. data/vendor/bundle/gems/mocha-1.8.0/test/acceptance/sequence_test.rb +190 -0
  1434. data/vendor/bundle/gems/mocha-1.8.0/test/acceptance/states_test.rb +72 -0
  1435. data/vendor/bundle/gems/mocha-1.8.0/test/acceptance/stub_any_instance_method_defined_on_superclass_test.rb +65 -0
  1436. data/vendor/bundle/gems/mocha-1.8.0/test/acceptance/stub_any_instance_method_test.rb +282 -0
  1437. data/vendor/bundle/gems/mocha-1.8.0/test/acceptance/stub_class_method_defined_on_active_record_association_proxy_test.rb +106 -0
  1438. data/vendor/bundle/gems/mocha-1.8.0/test/acceptance/stub_class_method_defined_on_class_test.rb +79 -0
  1439. data/vendor/bundle/gems/mocha-1.8.0/test/acceptance/stub_class_method_defined_on_module_test.rb +74 -0
  1440. data/vendor/bundle/gems/mocha-1.8.0/test/acceptance/stub_class_method_defined_on_superclass_test.rb +145 -0
  1441. data/vendor/bundle/gems/mocha-1.8.0/test/acceptance/stub_everything_test.rb +54 -0
  1442. data/vendor/bundle/gems/mocha-1.8.0/test/acceptance/stub_instance_method_defined_on_active_record_association_proxy_test.rb +92 -0
  1443. data/vendor/bundle/gems/mocha-1.8.0/test/acceptance/stub_instance_method_defined_on_class_and_aliased_test.rb +68 -0
  1444. data/vendor/bundle/gems/mocha-1.8.0/test/acceptance/stub_instance_method_defined_on_class_test.rb +68 -0
  1445. data/vendor/bundle/gems/mocha-1.8.0/test/acceptance/stub_instance_method_defined_on_kernel_module_test.rb +137 -0
  1446. data/vendor/bundle/gems/mocha-1.8.0/test/acceptance/stub_instance_method_defined_on_module_test.rb +77 -0
  1447. data/vendor/bundle/gems/mocha-1.8.0/test/acceptance/stub_instance_method_defined_on_object_class_test.rb +76 -0
  1448. data/vendor/bundle/gems/mocha-1.8.0/test/acceptance/stub_instance_method_defined_on_singleton_class_test.rb +68 -0
  1449. data/vendor/bundle/gems/mocha-1.8.0/test/acceptance/stub_instance_method_defined_on_superclass_test.rb +71 -0
  1450. data/vendor/bundle/gems/mocha-1.8.0/test/acceptance/stub_method_defined_on_module_and_aliased_test.rb +39 -0
  1451. data/vendor/bundle/gems/mocha-1.8.0/test/acceptance/stub_module_method_test.rb +201 -0
  1452. data/vendor/bundle/gems/mocha-1.8.0/test/acceptance/stub_test.rb +50 -0
  1453. data/vendor/bundle/gems/mocha-1.8.0/test/acceptance/stubba_example_test.rb +94 -0
  1454. data/vendor/bundle/gems/mocha-1.8.0/test/acceptance/stubba_test_result_test.rb +72 -0
  1455. data/vendor/bundle/gems/mocha-1.8.0/test/acceptance/stubbing_error_backtrace_test.rb +64 -0
  1456. data/vendor/bundle/gems/mocha-1.8.0/test/acceptance/stubbing_frozen_object_test.rb +89 -0
  1457. data/vendor/bundle/gems/mocha-1.8.0/test/acceptance/stubbing_method_accepting_block_parameter_test.rb +53 -0
  1458. data/vendor/bundle/gems/mocha-1.8.0/test/acceptance/stubbing_method_unnecessarily_test.rb +63 -0
  1459. data/vendor/bundle/gems/mocha-1.8.0/test/acceptance/stubbing_nil_test.rb +60 -0
  1460. data/vendor/bundle/gems/mocha-1.8.0/test/acceptance/stubbing_non_existent_any_instance_method_test.rb +141 -0
  1461. data/vendor/bundle/gems/mocha-1.8.0/test/acceptance/stubbing_non_existent_class_method_test.rb +157 -0
  1462. data/vendor/bundle/gems/mocha-1.8.0/test/acceptance/stubbing_non_existent_instance_method_test.rb +145 -0
  1463. data/vendor/bundle/gems/mocha-1.8.0/test/acceptance/stubbing_non_public_any_instance_method_test.rb +128 -0
  1464. data/vendor/bundle/gems/mocha-1.8.0/test/acceptance/stubbing_non_public_class_method_test.rb +163 -0
  1465. data/vendor/bundle/gems/mocha-1.8.0/test/acceptance/stubbing_non_public_instance_method_test.rb +141 -0
  1466. data/vendor/bundle/gems/mocha-1.8.0/test/acceptance/stubbing_on_non_mock_object_test.rb +70 -0
  1467. data/vendor/bundle/gems/mocha-1.8.0/test/acceptance/stubbing_same_class_method_on_parent_and_child_classes_test.rb +34 -0
  1468. data/vendor/bundle/gems/mocha-1.8.0/test/acceptance/throw_test.rb +43 -0
  1469. data/vendor/bundle/gems/mocha-1.8.0/test/acceptance/unexpected_invocation_test.rb +24 -0
  1470. data/vendor/bundle/gems/mocha-1.8.0/test/acceptance/unstubbing_test.rb +195 -0
  1471. data/vendor/bundle/gems/mocha-1.8.0/test/assertions.rb +8 -0
  1472. data/vendor/bundle/gems/mocha-1.8.0/test/deprecation_disabler.rb +15 -0
  1473. data/vendor/bundle/gems/mocha-1.8.0/test/execution_point.rb +36 -0
  1474. data/vendor/bundle/gems/mocha-1.8.0/test/integration/mini_test_test.rb +8 -0
  1475. data/vendor/bundle/gems/mocha-1.8.0/test/integration/shared_tests.rb +176 -0
  1476. data/vendor/bundle/gems/mocha-1.8.0/test/integration/test_unit_test.rb +8 -0
  1477. data/vendor/bundle/gems/mocha-1.8.0/test/method_definer.rb +22 -0
  1478. data/vendor/bundle/gems/mocha-1.8.0/test/mini_test_result.rb +96 -0
  1479. data/vendor/bundle/gems/mocha-1.8.0/test/minitest_result.rb +48 -0
  1480. data/vendor/bundle/gems/mocha-1.8.0/test/simple_counter.rb +11 -0
  1481. data/vendor/bundle/gems/mocha-1.8.0/test/test_helper.rb +58 -0
  1482. data/vendor/bundle/gems/mocha-1.8.0/test/test_runner.rb +56 -0
  1483. data/vendor/bundle/gems/mocha-1.8.0/test/test_unit_result.rb +22 -0
  1484. data/vendor/bundle/gems/mocha-1.8.0/test/unit/any_instance_method_test.rb +150 -0
  1485. data/vendor/bundle/gems/mocha-1.8.0/test/unit/array_inspect_test.rb +14 -0
  1486. data/vendor/bundle/gems/mocha-1.8.0/test/unit/backtrace_filter_test.rb +17 -0
  1487. data/vendor/bundle/gems/mocha-1.8.0/test/unit/cardinality_test.rb +54 -0
  1488. data/vendor/bundle/gems/mocha-1.8.0/test/unit/central_test.rb +99 -0
  1489. data/vendor/bundle/gems/mocha-1.8.0/test/unit/change_state_side_effect_test.rb +37 -0
  1490. data/vendor/bundle/gems/mocha-1.8.0/test/unit/class_method_test.rb +254 -0
  1491. data/vendor/bundle/gems/mocha-1.8.0/test/unit/class_methods_test.rb +69 -0
  1492. data/vendor/bundle/gems/mocha-1.8.0/test/unit/configuration_test.rb +37 -0
  1493. data/vendor/bundle/gems/mocha-1.8.0/test/unit/date_time_inspect_test.rb +19 -0
  1494. data/vendor/bundle/gems/mocha-1.8.0/test/unit/exception_raiser_test.rb +40 -0
  1495. data/vendor/bundle/gems/mocha-1.8.0/test/unit/expectation_list_test.rb +80 -0
  1496. data/vendor/bundle/gems/mocha-1.8.0/test/unit/expectation_test.rb +492 -0
  1497. data/vendor/bundle/gems/mocha-1.8.0/test/unit/hash_inspect_test.rb +14 -0
  1498. data/vendor/bundle/gems/mocha-1.8.0/test/unit/hooks_test.rb +35 -0
  1499. data/vendor/bundle/gems/mocha-1.8.0/test/unit/in_state_ordering_constraint_test.rb +39 -0
  1500. data/vendor/bundle/gems/mocha-1.8.0/test/unit/method_matcher_test.rb +26 -0
  1501. data/vendor/bundle/gems/mocha-1.8.0/test/unit/mock_test.rb +363 -0
  1502. data/vendor/bundle/gems/mocha-1.8.0/test/unit/mockery_test.rb +174 -0
  1503. data/vendor/bundle/gems/mocha-1.8.0/test/unit/module_methods_test.rb +17 -0
  1504. data/vendor/bundle/gems/mocha-1.8.0/test/unit/multiple_yields_test.rb +16 -0
  1505. data/vendor/bundle/gems/mocha-1.8.0/test/unit/no_yields_test.rb +16 -0
  1506. data/vendor/bundle/gems/mocha-1.8.0/test/unit/object_inspect_test.rb +58 -0
  1507. data/vendor/bundle/gems/mocha-1.8.0/test/unit/object_methods_test.rb +62 -0
  1508. data/vendor/bundle/gems/mocha-1.8.0/test/unit/parameter_matchers/all_of_test.rb +24 -0
  1509. data/vendor/bundle/gems/mocha-1.8.0/test/unit/parameter_matchers/any_of_test.rb +24 -0
  1510. data/vendor/bundle/gems/mocha-1.8.0/test/unit/parameter_matchers/anything_test.rb +19 -0
  1511. data/vendor/bundle/gems/mocha-1.8.0/test/unit/parameter_matchers/equals_test.rb +23 -0
  1512. data/vendor/bundle/gems/mocha-1.8.0/test/unit/parameter_matchers/equivalent_uri_test.rb +50 -0
  1513. data/vendor/bundle/gems/mocha-1.8.0/test/unit/parameter_matchers/has_entries_test.rb +51 -0
  1514. data/vendor/bundle/gems/mocha-1.8.0/test/unit/parameter_matchers/has_entry_test.rb +128 -0
  1515. data/vendor/bundle/gems/mocha-1.8.0/test/unit/parameter_matchers/has_key_test.rb +54 -0
  1516. data/vendor/bundle/gems/mocha-1.8.0/test/unit/parameter_matchers/has_value_test.rb +55 -0
  1517. data/vendor/bundle/gems/mocha-1.8.0/test/unit/parameter_matchers/includes_test.rb +106 -0
  1518. data/vendor/bundle/gems/mocha-1.8.0/test/unit/parameter_matchers/instance_of_test.rb +23 -0
  1519. data/vendor/bundle/gems/mocha-1.8.0/test/unit/parameter_matchers/is_a_test.rb +23 -0
  1520. data/vendor/bundle/gems/mocha-1.8.0/test/unit/parameter_matchers/kind_of_test.rb +23 -0
  1521. data/vendor/bundle/gems/mocha-1.8.0/test/unit/parameter_matchers/not_test.rb +24 -0
  1522. data/vendor/bundle/gems/mocha-1.8.0/test/unit/parameter_matchers/regexp_matches_test.rb +45 -0
  1523. data/vendor/bundle/gems/mocha-1.8.0/test/unit/parameter_matchers/responds_with_test.rb +38 -0
  1524. data/vendor/bundle/gems/mocha-1.8.0/test/unit/parameter_matchers/stub_matcher.rb +23 -0
  1525. data/vendor/bundle/gems/mocha-1.8.0/test/unit/parameter_matchers/yaml_equivalent_test.rb +23 -0
  1526. data/vendor/bundle/gems/mocha-1.8.0/test/unit/parameters_matcher_test.rb +119 -0
  1527. data/vendor/bundle/gems/mocha-1.8.0/test/unit/receivers_test.rb +96 -0
  1528. data/vendor/bundle/gems/mocha-1.8.0/test/unit/return_values_test.rb +61 -0
  1529. data/vendor/bundle/gems/mocha-1.8.0/test/unit/sequence_test.rb +100 -0
  1530. data/vendor/bundle/gems/mocha-1.8.0/test/unit/single_return_value_test.rb +12 -0
  1531. data/vendor/bundle/gems/mocha-1.8.0/test/unit/single_yield_test.rb +16 -0
  1532. data/vendor/bundle/gems/mocha-1.8.0/test/unit/state_machine_test.rb +96 -0
  1533. data/vendor/bundle/gems/mocha-1.8.0/test/unit/string_inspect_test.rb +9 -0
  1534. data/vendor/bundle/gems/mocha-1.8.0/test/unit/thrower_test.rb +18 -0
  1535. data/vendor/bundle/gems/mocha-1.8.0/test/unit/yield_parameters_test.rb +91 -0
  1536. data/vendor/bundle/gems/mocha-1.8.0/yard-templates/default/layout/html/google_analytics.erb +8 -0
  1537. data/vendor/bundle/gems/mocha-1.8.0/yard-templates/default/layout/html/setup.rb +5 -0
  1538. data/vendor/bundle/gems/mocha-on-bacon-0.2.3/LICENSE +20 -0
  1539. data/vendor/bundle/gems/mocha-on-bacon-0.2.3/README.md +75 -0
  1540. data/vendor/bundle/gems/mocha-on-bacon-0.2.3/lib/mocha-on-bacon.rb +69 -0
  1541. data/vendor/bundle/gems/molinillo-0.6.6/ARCHITECTURE.md +102 -0
  1542. data/vendor/bundle/gems/molinillo-0.6.6/CHANGELOG.md +438 -0
  1543. data/vendor/bundle/gems/molinillo-0.6.6/LICENSE +9 -0
  1544. data/vendor/bundle/gems/molinillo-0.6.6/README.md +45 -0
  1545. data/vendor/bundle/gems/molinillo-0.6.6/lib/molinillo.rb +12 -0
  1546. data/vendor/bundle/gems/molinillo-0.6.6/lib/molinillo/compatibility.rb +26 -0
  1547. data/vendor/bundle/gems/molinillo-0.6.6/lib/molinillo/delegates/resolution_state.rb +57 -0
  1548. data/vendor/bundle/gems/molinillo-0.6.6/lib/molinillo/delegates/specification_provider.rb +81 -0
  1549. data/vendor/bundle/gems/molinillo-0.6.6/lib/molinillo/dependency_graph.rb +223 -0
  1550. data/vendor/bundle/gems/molinillo-0.6.6/lib/molinillo/dependency_graph/action.rb +36 -0
  1551. data/vendor/bundle/gems/molinillo-0.6.6/lib/molinillo/dependency_graph/add_edge_no_circular.rb +66 -0
  1552. data/vendor/bundle/gems/molinillo-0.6.6/lib/molinillo/dependency_graph/add_vertex.rb +62 -0
  1553. data/vendor/bundle/gems/molinillo-0.6.6/lib/molinillo/dependency_graph/delete_edge.rb +63 -0
  1554. data/vendor/bundle/gems/molinillo-0.6.6/lib/molinillo/dependency_graph/detach_vertex_named.rb +61 -0
  1555. data/vendor/bundle/gems/molinillo-0.6.6/lib/molinillo/dependency_graph/log.rb +126 -0
  1556. data/vendor/bundle/gems/molinillo-0.6.6/lib/molinillo/dependency_graph/set_payload.rb +46 -0
  1557. data/vendor/bundle/gems/molinillo-0.6.6/lib/molinillo/dependency_graph/tag.rb +36 -0
  1558. data/vendor/bundle/gems/molinillo-0.6.6/lib/molinillo/dependency_graph/vertex.rb +158 -0
  1559. data/vendor/bundle/gems/molinillo-0.6.6/lib/molinillo/errors.rb +143 -0
  1560. data/vendor/bundle/gems/molinillo-0.6.6/lib/molinillo/gem_metadata.rb +6 -0
  1561. data/vendor/bundle/gems/molinillo-0.6.6/lib/molinillo/modules/specification_provider.rb +101 -0
  1562. data/vendor/bundle/gems/molinillo-0.6.6/lib/molinillo/modules/ui.rb +67 -0
  1563. data/vendor/bundle/gems/molinillo-0.6.6/lib/molinillo/resolution.rb +837 -0
  1564. data/vendor/bundle/gems/molinillo-0.6.6/lib/molinillo/resolver.rb +46 -0
  1565. data/vendor/bundle/gems/molinillo-0.6.6/lib/molinillo/state.rb +58 -0
  1566. data/vendor/bundle/gems/nanaimo-0.2.6/.rspec +2 -0
  1567. data/vendor/bundle/gems/nanaimo-0.2.6/.rubocop.yml +14 -0
  1568. data/vendor/bundle/gems/nanaimo-0.2.6/.rubocop_todo.yml +104 -0
  1569. data/vendor/bundle/gems/nanaimo-0.2.6/.travis.yml +12 -0
  1570. data/vendor/bundle/gems/nanaimo-0.2.6/CHANGELOG.md +157 -0
  1571. data/vendor/bundle/gems/nanaimo-0.2.6/CODE_OF_CONDUCT.md +49 -0
  1572. data/vendor/bundle/gems/nanaimo-0.2.6/Gemfile +10 -0
  1573. data/vendor/bundle/gems/nanaimo-0.2.6/Gemfile.lock +51 -0
  1574. data/vendor/bundle/gems/nanaimo-0.2.6/LICENSE.txt +21 -0
  1575. data/vendor/bundle/gems/nanaimo-0.2.6/README.md +55 -0
  1576. data/vendor/bundle/gems/nanaimo-0.2.6/Rakefile +80 -0
  1577. data/vendor/bundle/gems/nanaimo-0.2.6/bin/console +15 -0
  1578. data/vendor/bundle/gems/nanaimo-0.2.6/bin/setup +8 -0
  1579. data/vendor/bundle/gems/nanaimo-0.2.6/lib/nanaimo.rb +22 -0
  1580. data/vendor/bundle/gems/nanaimo-0.2.6/lib/nanaimo/object.rb +102 -0
  1581. data/vendor/bundle/gems/nanaimo-0.2.6/lib/nanaimo/plist.rb +35 -0
  1582. data/vendor/bundle/gems/nanaimo-0.2.6/lib/nanaimo/reader.rb +287 -0
  1583. data/vendor/bundle/gems/nanaimo-0.2.6/lib/nanaimo/unicode.rb +89 -0
  1584. data/vendor/bundle/gems/nanaimo-0.2.6/lib/nanaimo/unicode/next_step_mapping.rb +136 -0
  1585. data/vendor/bundle/gems/nanaimo-0.2.6/lib/nanaimo/unicode/quote_maps.rb +57 -0
  1586. data/vendor/bundle/gems/nanaimo-0.2.6/lib/nanaimo/version.rb +5 -0
  1587. data/vendor/bundle/gems/nanaimo-0.2.6/lib/nanaimo/writer.rb +206 -0
  1588. data/vendor/bundle/gems/nanaimo-0.2.6/lib/nanaimo/writer/pbxproj.rb +83 -0
  1589. data/vendor/bundle/gems/nanaimo-0.2.6/lib/nanaimo/writer/xml.rb +139 -0
  1590. data/vendor/bundle/gems/nanaimo-0.2.6/nanaimo.gemspec +26 -0
  1591. data/vendor/bundle/gems/nap-1.1.0/LICENSE +18 -0
  1592. data/vendor/bundle/gems/nap-1.1.0/README.md +80 -0
  1593. data/vendor/bundle/gems/nap-1.1.0/lib/rest.rb +106 -0
  1594. data/vendor/bundle/gems/nap-1.1.0/lib/rest/error.rb +92 -0
  1595. data/vendor/bundle/gems/nap-1.1.0/lib/rest/request.rb +196 -0
  1596. data/vendor/bundle/gems/nap-1.1.0/lib/rest/response.rb +46 -0
  1597. data/vendor/bundle/gems/nap-1.1.0/support/cacert.pem +3988 -0
  1598. data/vendor/bundle/gems/netrc-0.11.0/LICENSE.md +20 -0
  1599. data/vendor/bundle/gems/netrc-0.11.0/Readme.md +53 -0
  1600. data/vendor/bundle/gems/netrc-0.11.0/changelog.txt +93 -0
  1601. data/vendor/bundle/gems/netrc-0.11.0/data/default_only.netrc +4 -0
  1602. data/vendor/bundle/gems/netrc-0.11.0/data/login.netrc +3 -0
  1603. data/vendor/bundle/gems/netrc-0.11.0/data/newlineless.netrc +4 -0
  1604. data/vendor/bundle/gems/netrc-0.11.0/data/password.netrc +3 -0
  1605. data/vendor/bundle/gems/netrc-0.11.0/data/permissive.netrc +4 -0
  1606. data/vendor/bundle/gems/netrc-0.11.0/data/sample.netrc +4 -0
  1607. data/vendor/bundle/gems/netrc-0.11.0/data/sample_multi.netrc +8 -0
  1608. data/vendor/bundle/gems/netrc-0.11.0/data/sample_multi_with_default.netrc +12 -0
  1609. data/vendor/bundle/gems/netrc-0.11.0/data/sample_with_default.netrc +8 -0
  1610. data/vendor/bundle/gems/netrc-0.11.0/lib/netrc.rb +251 -0
  1611. data/vendor/bundle/gems/netrc-0.11.0/test/test_lex.rb +58 -0
  1612. data/vendor/bundle/gems/netrc-0.11.0/test/test_netrc.rb +273 -0
  1613. data/vendor/bundle/gems/netrc-0.11.0/test/test_parse.rb +34 -0
  1614. data/vendor/bundle/gems/prettybacon-0.0.2/Gemfile +3 -0
  1615. data/vendor/bundle/gems/prettybacon-0.0.2/LICENSE.txt +22 -0
  1616. data/vendor/bundle/gems/prettybacon-0.0.2/PrettyBacon.gemspec +24 -0
  1617. data/vendor/bundle/gems/prettybacon-0.0.2/README.md +19 -0
  1618. data/vendor/bundle/gems/prettybacon-0.0.2/Rakefile +1 -0
  1619. data/vendor/bundle/gems/prettybacon-0.0.2/lib/pretty_bacon.rb +42 -0
  1620. data/vendor/bundle/gems/prettybacon-0.0.2/lib/pretty_bacon/context.rb +41 -0
  1621. data/vendor/bundle/gems/prettybacon-0.0.2/lib/pretty_bacon/spec_dox_output.rb +81 -0
  1622. data/vendor/bundle/gems/prettybacon-0.0.2/lib/pretty_bacon/test_unit_output.rb +79 -0
  1623. data/vendor/bundle/gems/prettybacon-0.0.2/lib/pretty_bacon/version.rb +3 -0
  1624. data/vendor/bundle/gems/public_suffix-3.0.3/.rubocop.yml +36 -0
  1625. data/vendor/bundle/gems/public_suffix-3.0.3/.rubocop_defaults.yml +184 -0
  1626. data/vendor/bundle/gems/public_suffix-3.0.3/.ruby-gemset +1 -0
  1627. data/vendor/bundle/gems/public_suffix-3.0.3/.travis.yml +25 -0
  1628. data/vendor/bundle/gems/public_suffix-3.0.3/.yardopts +1 -0
  1629. data/vendor/bundle/gems/public_suffix-3.0.3/2.0-Upgrade.md +52 -0
  1630. data/vendor/bundle/gems/public_suffix-3.0.3/CHANGELOG.md +340 -0
  1631. data/vendor/bundle/gems/public_suffix-3.0.3/Gemfile +10 -0
  1632. data/vendor/bundle/gems/public_suffix-3.0.3/LICENSE.txt +22 -0
  1633. data/vendor/bundle/gems/public_suffix-3.0.3/README.md +202 -0
  1634. data/vendor/bundle/gems/public_suffix-3.0.3/Rakefile +49 -0
  1635. data/vendor/bundle/gems/public_suffix-3.0.3/bin/console +14 -0
  1636. data/vendor/bundle/gems/public_suffix-3.0.3/data/list.txt +12659 -0
  1637. data/vendor/bundle/gems/public_suffix-3.0.3/lib/public_suffix.rb +175 -0
  1638. data/vendor/bundle/gems/public_suffix-3.0.3/lib/public_suffix/domain.rb +233 -0
  1639. data/vendor/bundle/gems/public_suffix-3.0.3/lib/public_suffix/errors.rb +39 -0
  1640. data/vendor/bundle/gems/public_suffix-3.0.3/lib/public_suffix/list.rb +243 -0
  1641. data/vendor/bundle/gems/public_suffix-3.0.3/lib/public_suffix/rule.rb +348 -0
  1642. data/vendor/bundle/gems/public_suffix-3.0.3/lib/public_suffix/version.rb +10 -0
  1643. data/vendor/bundle/gems/public_suffix-3.0.3/public_suffix.gemspec +25 -0
  1644. data/vendor/bundle/gems/public_suffix-3.0.3/test/.empty +2 -0
  1645. data/vendor/bundle/gems/public_suffix-3.0.3/test/acceptance_test.rb +127 -0
  1646. data/vendor/bundle/gems/public_suffix-3.0.3/test/benchmarks/bm_find.rb +66 -0
  1647. data/vendor/bundle/gems/public_suffix-3.0.3/test/benchmarks/bm_find_all.rb +102 -0
  1648. data/vendor/bundle/gems/public_suffix-3.0.3/test/benchmarks/bm_names.rb +91 -0
  1649. data/vendor/bundle/gems/public_suffix-3.0.3/test/benchmarks/bm_select.rb +26 -0
  1650. data/vendor/bundle/gems/public_suffix-3.0.3/test/benchmarks/bm_select_incremental.rb +25 -0
  1651. data/vendor/bundle/gems/public_suffix-3.0.3/test/benchmarks/bm_valid.rb +101 -0
  1652. data/vendor/bundle/gems/public_suffix-3.0.3/test/profilers/domain_profiler.rb +12 -0
  1653. data/vendor/bundle/gems/public_suffix-3.0.3/test/profilers/find_profiler.rb +12 -0
  1654. data/vendor/bundle/gems/public_suffix-3.0.3/test/profilers/find_profiler_jp.rb +12 -0
  1655. data/vendor/bundle/gems/public_suffix-3.0.3/test/profilers/initialization_profiler.rb +11 -0
  1656. data/vendor/bundle/gems/public_suffix-3.0.3/test/profilers/list_profsize.rb +11 -0
  1657. data/vendor/bundle/gems/public_suffix-3.0.3/test/profilers/object_binsize.rb +57 -0
  1658. data/vendor/bundle/gems/public_suffix-3.0.3/test/psl_test.rb +49 -0
  1659. data/vendor/bundle/gems/public_suffix-3.0.3/test/test_helper.rb +13 -0
  1660. data/vendor/bundle/gems/public_suffix-3.0.3/test/tests.txt +98 -0
  1661. data/vendor/bundle/gems/public_suffix-3.0.3/test/unit/domain_test.rb +104 -0
  1662. data/vendor/bundle/gems/public_suffix-3.0.3/test/unit/errors_test.rb +23 -0
  1663. data/vendor/bundle/gems/public_suffix-3.0.3/test/unit/list_test.rb +239 -0
  1664. data/vendor/bundle/gems/public_suffix-3.0.3/test/unit/public_suffix_test.rb +186 -0
  1665. data/vendor/bundle/gems/public_suffix-3.0.3/test/unit/rule_test.rb +220 -0
  1666. data/vendor/bundle/gems/rake-12.3.2/CONTRIBUTING.rdoc +43 -0
  1667. data/vendor/bundle/gems/rake-12.3.2/Gemfile +3 -0
  1668. data/vendor/bundle/gems/rake-12.3.2/History.rdoc +2333 -0
  1669. data/vendor/bundle/gems/rake-12.3.2/MIT-LICENSE +21 -0
  1670. data/vendor/bundle/gems/rake-12.3.2/README.rdoc +156 -0
  1671. data/vendor/bundle/gems/rake-12.3.2/Rakefile +41 -0
  1672. data/vendor/bundle/gems/rake-12.3.2/bin/bundle +105 -0
  1673. data/vendor/bundle/gems/rake-12.3.2/bin/console +7 -0
  1674. data/vendor/bundle/gems/rake-12.3.2/bin/rake +29 -0
  1675. data/vendor/bundle/gems/rake-12.3.2/bin/rdoc +29 -0
  1676. data/vendor/bundle/gems/rake-12.3.2/bin/rubocop +29 -0
  1677. data/vendor/bundle/gems/rake-12.3.2/bin/setup +6 -0
  1678. data/vendor/bundle/gems/rake-12.3.2/doc/command_line_usage.rdoc +158 -0
  1679. data/vendor/bundle/gems/rake-12.3.2/doc/example/Rakefile1 +38 -0
  1680. data/vendor/bundle/gems/rake-12.3.2/doc/example/Rakefile2 +35 -0
  1681. data/vendor/bundle/gems/rake-12.3.2/doc/example/a.c +6 -0
  1682. data/vendor/bundle/gems/rake-12.3.2/doc/example/b.c +6 -0
  1683. data/vendor/bundle/gems/rake-12.3.2/doc/example/main.c +11 -0
  1684. data/vendor/bundle/gems/rake-12.3.2/doc/glossary.rdoc +42 -0
  1685. data/vendor/bundle/gems/rake-12.3.2/doc/jamis.rb +592 -0
  1686. data/vendor/bundle/gems/rake-12.3.2/doc/proto_rake.rdoc +127 -0
  1687. data/vendor/bundle/gems/rake-12.3.2/doc/rake.1 +156 -0
  1688. data/vendor/bundle/gems/rake-12.3.2/doc/rakefile.rdoc +622 -0
  1689. data/vendor/bundle/gems/rake-12.3.2/doc/rational.rdoc +151 -0
  1690. data/vendor/bundle/gems/rake-12.3.2/exe/rake +27 -0
  1691. data/vendor/bundle/gems/rake-12.3.2/lib/rake.rb +71 -0
  1692. data/vendor/bundle/gems/rake-12.3.2/lib/rake/application.rb +824 -0
  1693. data/vendor/bundle/gems/rake-12.3.2/lib/rake/backtrace.rb +24 -0
  1694. data/vendor/bundle/gems/rake-12.3.2/lib/rake/clean.rb +78 -0
  1695. data/vendor/bundle/gems/rake-12.3.2/lib/rake/cloneable.rb +17 -0
  1696. data/vendor/bundle/gems/rake-12.3.2/lib/rake/cpu_counter.rb +107 -0
  1697. data/vendor/bundle/gems/rake-12.3.2/lib/rake/default_loader.rb +15 -0
  1698. data/vendor/bundle/gems/rake-12.3.2/lib/rake/dsl_definition.rb +195 -0
  1699. data/vendor/bundle/gems/rake-12.3.2/lib/rake/early_time.rb +22 -0
  1700. data/vendor/bundle/gems/rake-12.3.2/lib/rake/ext/core.rb +26 -0
  1701. data/vendor/bundle/gems/rake-12.3.2/lib/rake/ext/string.rb +176 -0
  1702. data/vendor/bundle/gems/rake-12.3.2/lib/rake/file_creation_task.rb +25 -0
  1703. data/vendor/bundle/gems/rake-12.3.2/lib/rake/file_list.rb +435 -0
  1704. data/vendor/bundle/gems/rake-12.3.2/lib/rake/file_task.rb +54 -0
  1705. data/vendor/bundle/gems/rake-12.3.2/lib/rake/file_utils.rb +137 -0
  1706. data/vendor/bundle/gems/rake-12.3.2/lib/rake/file_utils_ext.rb +145 -0
  1707. data/vendor/bundle/gems/rake-12.3.2/lib/rake/invocation_chain.rb +57 -0
  1708. data/vendor/bundle/gems/rake-12.3.2/lib/rake/invocation_exception_mixin.rb +17 -0
  1709. data/vendor/bundle/gems/rake-12.3.2/lib/rake/late_time.rb +18 -0
  1710. data/vendor/bundle/gems/rake-12.3.2/lib/rake/linked_list.rb +112 -0
  1711. data/vendor/bundle/gems/rake-12.3.2/lib/rake/loaders/makefile.rb +54 -0
  1712. data/vendor/bundle/gems/rake-12.3.2/lib/rake/multi_task.rb +14 -0
  1713. data/vendor/bundle/gems/rake-12.3.2/lib/rake/name_space.rb +38 -0
  1714. data/vendor/bundle/gems/rake-12.3.2/lib/rake/packagetask.rb +207 -0
  1715. data/vendor/bundle/gems/rake-12.3.2/lib/rake/phony.rb +16 -0
  1716. data/vendor/bundle/gems/rake-12.3.2/lib/rake/private_reader.rb +21 -0
  1717. data/vendor/bundle/gems/rake-12.3.2/lib/rake/promise.rb +100 -0
  1718. data/vendor/bundle/gems/rake-12.3.2/lib/rake/pseudo_status.rb +30 -0
  1719. data/vendor/bundle/gems/rake-12.3.2/lib/rake/rake_module.rb +67 -0
  1720. data/vendor/bundle/gems/rake-12.3.2/lib/rake/rake_test_loader.rb +27 -0
  1721. data/vendor/bundle/gems/rake-12.3.2/lib/rake/rule_recursion_overflow_error.rb +20 -0
  1722. data/vendor/bundle/gems/rake-12.3.2/lib/rake/scope.rb +43 -0
  1723. data/vendor/bundle/gems/rake-12.3.2/lib/rake/task.rb +413 -0
  1724. data/vendor/bundle/gems/rake-12.3.2/lib/rake/task_argument_error.rb +8 -0
  1725. data/vendor/bundle/gems/rake-12.3.2/lib/rake/task_arguments.rb +109 -0
  1726. data/vendor/bundle/gems/rake-12.3.2/lib/rake/task_manager.rb +323 -0
  1727. data/vendor/bundle/gems/rake-12.3.2/lib/rake/tasklib.rb +12 -0
  1728. data/vendor/bundle/gems/rake-12.3.2/lib/rake/testtask.rb +224 -0
  1729. data/vendor/bundle/gems/rake-12.3.2/lib/rake/thread_history_display.rb +49 -0
  1730. data/vendor/bundle/gems/rake-12.3.2/lib/rake/thread_pool.rb +163 -0
  1731. data/vendor/bundle/gems/rake-12.3.2/lib/rake/trace_output.rb +23 -0
  1732. data/vendor/bundle/gems/rake-12.3.2/lib/rake/version.rb +10 -0
  1733. data/vendor/bundle/gems/rake-12.3.2/lib/rake/win32.rb +51 -0
  1734. data/vendor/bundle/gems/rake-12.3.2/rake.gemspec +42 -0
  1735. data/vendor/bundle/gems/ruby-macho-1.4.0/.yardopts +1 -0
  1736. data/vendor/bundle/gems/ruby-macho-1.4.0/LICENSE +21 -0
  1737. data/vendor/bundle/gems/ruby-macho-1.4.0/README.md +62 -0
  1738. data/vendor/bundle/gems/ruby-macho-1.4.0/lib/macho.rb +40 -0
  1739. data/vendor/bundle/gems/ruby-macho-1.4.0/lib/macho/exceptions.rb +207 -0
  1740. data/vendor/bundle/gems/ruby-macho-1.4.0/lib/macho/fat_file.rb +419 -0
  1741. data/vendor/bundle/gems/ruby-macho-1.4.0/lib/macho/headers.rb +784 -0
  1742. data/vendor/bundle/gems/ruby-macho-1.4.0/lib/macho/load_commands.rb +1790 -0
  1743. data/vendor/bundle/gems/ruby-macho-1.4.0/lib/macho/macho_file.rb +577 -0
  1744. data/vendor/bundle/gems/ruby-macho-1.4.0/lib/macho/sections.rb +204 -0
  1745. data/vendor/bundle/gems/ruby-macho-1.4.0/lib/macho/structure.rb +40 -0
  1746. data/vendor/bundle/gems/ruby-macho-1.4.0/lib/macho/tools.rb +109 -0
  1747. data/vendor/bundle/gems/ruby-macho-1.4.0/lib/macho/utils.rb +123 -0
  1748. data/vendor/bundle/gems/ruby-macho-1.4.0/lib/macho/view.rb +31 -0
  1749. data/vendor/bundle/gems/thread_safe-0.3.6/.rspec +2 -0
  1750. data/vendor/bundle/gems/thread_safe-0.3.6/.travis.yml +46 -0
  1751. data/vendor/bundle/gems/thread_safe-0.3.6/.yardopts +13 -0
  1752. data/vendor/bundle/gems/thread_safe-0.3.6/Gemfile +20 -0
  1753. data/vendor/bundle/gems/thread_safe-0.3.6/LICENSE +144 -0
  1754. data/vendor/bundle/gems/thread_safe-0.3.6/README.md +60 -0
  1755. data/vendor/bundle/gems/thread_safe-0.3.6/Rakefile +62 -0
  1756. data/vendor/bundle/gems/thread_safe-0.3.6/examples/bench_cache.rb +35 -0
  1757. data/vendor/bundle/gems/thread_safe-0.3.6/ext/org/jruby/ext/thread_safe/JRubyCacheBackendLibrary.java +245 -0
  1758. data/vendor/bundle/gems/thread_safe-0.3.6/ext/org/jruby/ext/thread_safe/jsr166e/ConcurrentHashMap.java +31 -0
  1759. data/vendor/bundle/gems/thread_safe-0.3.6/ext/org/jruby/ext/thread_safe/jsr166e/ConcurrentHashMapV8.java +3863 -0
  1760. data/vendor/bundle/gems/thread_safe-0.3.6/ext/org/jruby/ext/thread_safe/jsr166e/LongAdder.java +203 -0
  1761. data/vendor/bundle/gems/thread_safe-0.3.6/ext/org/jruby/ext/thread_safe/jsr166e/Striped64.java +342 -0
  1762. data/vendor/bundle/gems/thread_safe-0.3.6/ext/org/jruby/ext/thread_safe/jsr166e/nounsafe/ConcurrentHashMapV8.java +3800 -0
  1763. data/vendor/bundle/gems/thread_safe-0.3.6/ext/org/jruby/ext/thread_safe/jsr166e/nounsafe/LongAdder.java +204 -0
  1764. data/vendor/bundle/gems/thread_safe-0.3.6/ext/org/jruby/ext/thread_safe/jsr166e/nounsafe/Striped64.java +291 -0
  1765. data/vendor/bundle/gems/thread_safe-0.3.6/ext/org/jruby/ext/thread_safe/jsr166y/ThreadLocalRandom.java +199 -0
  1766. data/vendor/bundle/gems/thread_safe-0.3.6/ext/thread_safe/JrubyCacheBackendService.java +15 -0
  1767. data/vendor/bundle/gems/thread_safe-0.3.6/lib/thread_safe.rb +65 -0
  1768. data/vendor/bundle/gems/thread_safe-0.3.6/lib/thread_safe/atomic_reference_cache_backend.rb +908 -0
  1769. data/vendor/bundle/gems/thread_safe-0.3.6/lib/thread_safe/cache.rb +161 -0
  1770. data/vendor/bundle/gems/thread_safe-0.3.6/lib/thread_safe/mri_cache_backend.rb +60 -0
  1771. data/vendor/bundle/gems/thread_safe-0.3.6/lib/thread_safe/non_concurrent_cache_backend.rb +135 -0
  1772. data/vendor/bundle/gems/thread_safe-0.3.6/lib/thread_safe/synchronized_cache_backend.rb +77 -0
  1773. data/vendor/bundle/gems/thread_safe-0.3.6/lib/thread_safe/synchronized_delegator.rb +43 -0
  1774. data/vendor/bundle/gems/thread_safe-0.3.6/lib/thread_safe/util.rb +16 -0
  1775. data/vendor/bundle/gems/thread_safe-0.3.6/lib/thread_safe/util/adder.rb +62 -0
  1776. data/vendor/bundle/gems/thread_safe-0.3.6/lib/thread_safe/util/atomic_reference.rb +44 -0
  1777. data/vendor/bundle/gems/thread_safe-0.3.6/lib/thread_safe/util/cheap_lockable.rb +106 -0
  1778. data/vendor/bundle/gems/thread_safe-0.3.6/lib/thread_safe/util/power_of_two_tuple.rb +26 -0
  1779. data/vendor/bundle/gems/thread_safe-0.3.6/lib/thread_safe/util/striped64.rb +222 -0
  1780. data/vendor/bundle/gems/thread_safe-0.3.6/lib/thread_safe/util/volatile.rb +64 -0
  1781. data/vendor/bundle/gems/thread_safe-0.3.6/lib/thread_safe/util/volatile_tuple.rb +46 -0
  1782. data/vendor/bundle/gems/thread_safe-0.3.6/lib/thread_safe/util/xor_shift_random.rb +41 -0
  1783. data/vendor/bundle/gems/thread_safe-0.3.6/lib/thread_safe/version.rb +21 -0
  1784. data/vendor/bundle/gems/thread_safe-0.3.6/spec/spec_helper.rb +31 -0
  1785. data/vendor/bundle/gems/thread_safe-0.3.6/spec/src/thread_safe/SecurityManager.java +21 -0
  1786. data/vendor/bundle/gems/thread_safe-0.3.6/spec/support/threads.rb +1 -0
  1787. data/vendor/bundle/gems/thread_safe-0.3.6/spec/support/threadsafe_test.rb +75 -0
  1788. data/vendor/bundle/gems/thread_safe-0.3.6/spec/thread_safe/array_spec.rb +18 -0
  1789. data/vendor/bundle/gems/thread_safe-0.3.6/spec/thread_safe/cache_loops_spec.rb +507 -0
  1790. data/vendor/bundle/gems/thread_safe-0.3.6/spec/thread_safe/cache_spec.rb +943 -0
  1791. data/vendor/bundle/gems/thread_safe-0.3.6/spec/thread_safe/hash_spec.rb +17 -0
  1792. data/vendor/bundle/gems/thread_safe-0.3.6/spec/thread_safe/no_unsafe_spec.rb +27 -0
  1793. data/vendor/bundle/gems/thread_safe-0.3.6/spec/thread_safe/synchronized_delegator_spec.rb +85 -0
  1794. data/vendor/bundle/gems/thread_safe-0.3.6/tasks/update_doc.rake +45 -0
  1795. data/vendor/bundle/gems/thread_safe-0.3.6/thread_safe.gemspec +26 -0
  1796. data/vendor/bundle/gems/thread_safe-0.3.6/yard-template/default/fulldoc/html/css/common.css +125 -0
  1797. data/vendor/bundle/gems/thread_safe-0.3.6/yard-template/default/layout/html/footer.erb +16 -0
  1798. data/vendor/bundle/gems/tzinfo-1.2.5/.yardopts +6 -0
  1799. data/vendor/bundle/gems/tzinfo-1.2.5/CHANGES.md +786 -0
  1800. data/vendor/bundle/gems/tzinfo-1.2.5/LICENSE +19 -0
  1801. data/vendor/bundle/gems/tzinfo-1.2.5/README.md +151 -0
  1802. data/vendor/bundle/gems/tzinfo-1.2.5/Rakefile +107 -0
  1803. data/vendor/bundle/gems/tzinfo-1.2.5/lib/tzinfo.rb +40 -0
  1804. data/vendor/bundle/gems/tzinfo-1.2.5/lib/tzinfo/country.rb +196 -0
  1805. data/vendor/bundle/gems/tzinfo-1.2.5/lib/tzinfo/country_index_definition.rb +31 -0
  1806. data/vendor/bundle/gems/tzinfo-1.2.5/lib/tzinfo/country_info.rb +42 -0
  1807. data/vendor/bundle/gems/tzinfo-1.2.5/lib/tzinfo/country_timezone.rb +135 -0
  1808. data/vendor/bundle/gems/tzinfo-1.2.5/lib/tzinfo/data_source.rb +190 -0
  1809. data/vendor/bundle/gems/tzinfo-1.2.5/lib/tzinfo/data_timezone.rb +58 -0
  1810. data/vendor/bundle/gems/tzinfo-1.2.5/lib/tzinfo/data_timezone_info.rb +55 -0
  1811. data/vendor/bundle/gems/tzinfo-1.2.5/lib/tzinfo/info_timezone.rb +30 -0
  1812. data/vendor/bundle/gems/tzinfo-1.2.5/lib/tzinfo/linked_timezone.rb +63 -0
  1813. data/vendor/bundle/gems/tzinfo-1.2.5/lib/tzinfo/linked_timezone_info.rb +26 -0
  1814. data/vendor/bundle/gems/tzinfo-1.2.5/lib/tzinfo/offset_rationals.rb +77 -0
  1815. data/vendor/bundle/gems/tzinfo-1.2.5/lib/tzinfo/ruby_core_support.rb +146 -0
  1816. data/vendor/bundle/gems/tzinfo-1.2.5/lib/tzinfo/ruby_country_info.rb +74 -0
  1817. data/vendor/bundle/gems/tzinfo-1.2.5/lib/tzinfo/ruby_data_source.rb +136 -0
  1818. data/vendor/bundle/gems/tzinfo-1.2.5/lib/tzinfo/time_or_datetime.rb +340 -0
  1819. data/vendor/bundle/gems/tzinfo-1.2.5/lib/tzinfo/timezone.rb +669 -0
  1820. data/vendor/bundle/gems/tzinfo-1.2.5/lib/tzinfo/timezone_definition.rb +36 -0
  1821. data/vendor/bundle/gems/tzinfo-1.2.5/lib/tzinfo/timezone_index_definition.rb +54 -0
  1822. data/vendor/bundle/gems/tzinfo-1.2.5/lib/tzinfo/timezone_info.rb +30 -0
  1823. data/vendor/bundle/gems/tzinfo-1.2.5/lib/tzinfo/timezone_offset.rb +101 -0
  1824. data/vendor/bundle/gems/tzinfo-1.2.5/lib/tzinfo/timezone_period.rb +245 -0
  1825. data/vendor/bundle/gems/tzinfo-1.2.5/lib/tzinfo/timezone_proxy.rb +105 -0
  1826. data/vendor/bundle/gems/tzinfo-1.2.5/lib/tzinfo/timezone_transition.rb +130 -0
  1827. data/vendor/bundle/gems/tzinfo-1.2.5/lib/tzinfo/timezone_transition_definition.rb +104 -0
  1828. data/vendor/bundle/gems/tzinfo-1.2.5/lib/tzinfo/transition_data_timezone_info.rb +274 -0
  1829. data/vendor/bundle/gems/tzinfo-1.2.5/lib/tzinfo/zoneinfo_country_info.rb +37 -0
  1830. data/vendor/bundle/gems/tzinfo-1.2.5/lib/tzinfo/zoneinfo_data_source.rb +488 -0
  1831. data/vendor/bundle/gems/tzinfo-1.2.5/lib/tzinfo/zoneinfo_timezone_info.rb +296 -0
  1832. data/vendor/bundle/gems/tzinfo-1.2.5/test/tc_country.rb +234 -0
  1833. data/vendor/bundle/gems/tzinfo-1.2.5/test/tc_country_index_definition.rb +69 -0
  1834. data/vendor/bundle/gems/tzinfo-1.2.5/test/tc_country_info.rb +16 -0
  1835. data/vendor/bundle/gems/tzinfo-1.2.5/test/tc_country_timezone.rb +173 -0
  1836. data/vendor/bundle/gems/tzinfo-1.2.5/test/tc_data_source.rb +218 -0
  1837. data/vendor/bundle/gems/tzinfo-1.2.5/test/tc_data_timezone.rb +99 -0
  1838. data/vendor/bundle/gems/tzinfo-1.2.5/test/tc_data_timezone_info.rb +18 -0
  1839. data/vendor/bundle/gems/tzinfo-1.2.5/test/tc_info_timezone.rb +34 -0
  1840. data/vendor/bundle/gems/tzinfo-1.2.5/test/tc_linked_timezone.rb +155 -0
  1841. data/vendor/bundle/gems/tzinfo-1.2.5/test/tc_linked_timezone_info.rb +23 -0
  1842. data/vendor/bundle/gems/tzinfo-1.2.5/test/tc_offset_rationals.rb +23 -0
  1843. data/vendor/bundle/gems/tzinfo-1.2.5/test/tc_ruby_core_support.rb +168 -0
  1844. data/vendor/bundle/gems/tzinfo-1.2.5/test/tc_ruby_country_info.rb +110 -0
  1845. data/vendor/bundle/gems/tzinfo-1.2.5/test/tc_ruby_data_source.rb +143 -0
  1846. data/vendor/bundle/gems/tzinfo-1.2.5/test/tc_time_or_datetime.rb +654 -0
  1847. data/vendor/bundle/gems/tzinfo-1.2.5/test/tc_timezone.rb +1350 -0
  1848. data/vendor/bundle/gems/tzinfo-1.2.5/test/tc_timezone_definition.rb +113 -0
  1849. data/vendor/bundle/gems/tzinfo-1.2.5/test/tc_timezone_index_definition.rb +73 -0
  1850. data/vendor/bundle/gems/tzinfo-1.2.5/test/tc_timezone_info.rb +11 -0
  1851. data/vendor/bundle/gems/tzinfo-1.2.5/test/tc_timezone_london.rb +143 -0
  1852. data/vendor/bundle/gems/tzinfo-1.2.5/test/tc_timezone_melbourne.rb +142 -0
  1853. data/vendor/bundle/gems/tzinfo-1.2.5/test/tc_timezone_new_york.rb +142 -0
  1854. data/vendor/bundle/gems/tzinfo-1.2.5/test/tc_timezone_offset.rb +126 -0
  1855. data/vendor/bundle/gems/tzinfo-1.2.5/test/tc_timezone_period.rb +555 -0
  1856. data/vendor/bundle/gems/tzinfo-1.2.5/test/tc_timezone_proxy.rb +136 -0
  1857. data/vendor/bundle/gems/tzinfo-1.2.5/test/tc_timezone_transition.rb +366 -0
  1858. data/vendor/bundle/gems/tzinfo-1.2.5/test/tc_timezone_transition_definition.rb +295 -0
  1859. data/vendor/bundle/gems/tzinfo-1.2.5/test/tc_timezone_utc.rb +27 -0
  1860. data/vendor/bundle/gems/tzinfo-1.2.5/test/tc_transition_data_timezone_info.rb +423 -0
  1861. data/vendor/bundle/gems/tzinfo-1.2.5/test/tc_zoneinfo_country_info.rb +78 -0
  1862. data/vendor/bundle/gems/tzinfo-1.2.5/test/tc_zoneinfo_data_source.rb +1195 -0
  1863. data/vendor/bundle/gems/tzinfo-1.2.5/test/tc_zoneinfo_timezone_info.rb +1232 -0
  1864. data/vendor/bundle/gems/tzinfo-1.2.5/test/test_utils.rb +163 -0
  1865. data/vendor/bundle/gems/tzinfo-1.2.5/test/ts_all.rb +7 -0
  1866. data/vendor/bundle/gems/tzinfo-1.2.5/test/ts_all_ruby.rb +5 -0
  1867. data/vendor/bundle/gems/tzinfo-1.2.5/test/ts_all_zoneinfo.rb +7 -0
  1868. data/vendor/bundle/gems/tzinfo-1.2.5/test/tzinfo-data/tzinfo/data.rb +8 -0
  1869. data/vendor/bundle/gems/tzinfo-1.2.5/test/tzinfo-data/tzinfo/data/definitions/America/Argentina/Buenos_Aires.rb +89 -0
  1870. data/vendor/bundle/gems/tzinfo-1.2.5/test/tzinfo-data/tzinfo/data/definitions/America/New_York.rb +315 -0
  1871. data/vendor/bundle/gems/tzinfo-1.2.5/test/tzinfo-data/tzinfo/data/definitions/Australia/Melbourne.rb +218 -0
  1872. data/vendor/bundle/gems/tzinfo-1.2.5/test/tzinfo-data/tzinfo/data/definitions/EST.rb +19 -0
  1873. data/vendor/bundle/gems/tzinfo-1.2.5/test/tzinfo-data/tzinfo/data/definitions/Etc/GMT__m__1.rb +21 -0
  1874. data/vendor/bundle/gems/tzinfo-1.2.5/test/tzinfo-data/tzinfo/data/definitions/Etc/GMT__p__1.rb +21 -0
  1875. data/vendor/bundle/gems/tzinfo-1.2.5/test/tzinfo-data/tzinfo/data/definitions/Etc/UTC.rb +21 -0
  1876. data/vendor/bundle/gems/tzinfo-1.2.5/test/tzinfo-data/tzinfo/data/definitions/Europe/Amsterdam.rb +261 -0
  1877. data/vendor/bundle/gems/tzinfo-1.2.5/test/tzinfo-data/tzinfo/data/definitions/Europe/Andorra.rb +186 -0
  1878. data/vendor/bundle/gems/tzinfo-1.2.5/test/tzinfo-data/tzinfo/data/definitions/Europe/London.rb +321 -0
  1879. data/vendor/bundle/gems/tzinfo-1.2.5/test/tzinfo-data/tzinfo/data/definitions/Europe/Paris.rb +265 -0
  1880. data/vendor/bundle/gems/tzinfo-1.2.5/test/tzinfo-data/tzinfo/data/definitions/Europe/Prague.rb +220 -0
  1881. data/vendor/bundle/gems/tzinfo-1.2.5/test/tzinfo-data/tzinfo/data/definitions/UTC.rb +16 -0
  1882. data/vendor/bundle/gems/tzinfo-1.2.5/test/tzinfo-data/tzinfo/data/indexes/countries.rb +927 -0
  1883. data/vendor/bundle/gems/tzinfo-1.2.5/test/tzinfo-data/tzinfo/data/indexes/timezones.rb +596 -0
  1884. data/vendor/bundle/gems/tzinfo-1.2.5/test/tzinfo-data/tzinfo/data/version.rb +14 -0
  1885. data/vendor/bundle/gems/tzinfo-1.2.5/test/zoneinfo/America/Argentina/Buenos_Aires +0 -0
  1886. data/vendor/bundle/gems/tzinfo-1.2.5/test/zoneinfo/America/New_York +0 -0
  1887. data/vendor/bundle/gems/tzinfo-1.2.5/test/zoneinfo/Australia/Melbourne +0 -0
  1888. data/vendor/bundle/gems/tzinfo-1.2.5/test/zoneinfo/EST +0 -0
  1889. data/vendor/bundle/gems/tzinfo-1.2.5/test/zoneinfo/Etc/UTC +0 -0
  1890. data/vendor/bundle/gems/tzinfo-1.2.5/test/zoneinfo/Europe/Amsterdam +0 -0
  1891. data/vendor/bundle/gems/tzinfo-1.2.5/test/zoneinfo/Europe/Andorra +0 -0
  1892. data/vendor/bundle/gems/tzinfo-1.2.5/test/zoneinfo/Europe/London +0 -0
  1893. data/vendor/bundle/gems/tzinfo-1.2.5/test/zoneinfo/Europe/Paris +0 -0
  1894. data/vendor/bundle/gems/tzinfo-1.2.5/test/zoneinfo/Europe/Prague +0 -0
  1895. data/vendor/bundle/gems/tzinfo-1.2.5/test/zoneinfo/Factory +0 -0
  1896. data/vendor/bundle/gems/tzinfo-1.2.5/test/zoneinfo/iso3166.tab +275 -0
  1897. data/vendor/bundle/gems/tzinfo-1.2.5/test/zoneinfo/leapseconds +61 -0
  1898. data/vendor/bundle/gems/tzinfo-1.2.5/test/zoneinfo/posix/Europe/London +0 -0
  1899. data/vendor/bundle/gems/tzinfo-1.2.5/test/zoneinfo/posixrules +0 -0
  1900. data/vendor/bundle/gems/tzinfo-1.2.5/test/zoneinfo/right/Europe/London +0 -0
  1901. data/vendor/bundle/gems/tzinfo-1.2.5/test/zoneinfo/zone.tab +439 -0
  1902. data/vendor/bundle/gems/tzinfo-1.2.5/test/zoneinfo/zone1970.tab +369 -0
  1903. data/vendor/bundle/gems/tzinfo-1.2.5/tzinfo.gemspec +21 -0
  1904. data/vendor/bundle/gems/xcodeproj-1.9.0/LICENSE +19 -0
  1905. data/vendor/bundle/gems/xcodeproj-1.9.0/README.md +94 -0
  1906. data/vendor/bundle/gems/xcodeproj-1.9.0/bin/xcodeproj +10 -0
  1907. data/vendor/bundle/gems/xcodeproj-1.9.0/lib/xcodeproj.rb +29 -0
  1908. data/vendor/bundle/gems/xcodeproj-1.9.0/lib/xcodeproj/command.rb +63 -0
  1909. data/vendor/bundle/gems/xcodeproj-1.9.0/lib/xcodeproj/command/config_dump.rb +87 -0
  1910. data/vendor/bundle/gems/xcodeproj-1.9.0/lib/xcodeproj/command/project_diff.rb +56 -0
  1911. data/vendor/bundle/gems/xcodeproj-1.9.0/lib/xcodeproj/command/show.rb +60 -0
  1912. data/vendor/bundle/gems/xcodeproj-1.9.0/lib/xcodeproj/command/sort.rb +33 -0
  1913. data/vendor/bundle/gems/xcodeproj-1.9.0/lib/xcodeproj/command/target_diff.rb +43 -0
  1914. data/vendor/bundle/gems/xcodeproj-1.9.0/lib/xcodeproj/config.rb +374 -0
  1915. data/vendor/bundle/gems/xcodeproj-1.9.0/lib/xcodeproj/config/other_linker_flags_parser.rb +68 -0
  1916. data/vendor/bundle/gems/xcodeproj-1.9.0/lib/xcodeproj/constants.rb +445 -0
  1917. data/vendor/bundle/gems/xcodeproj-1.9.0/lib/xcodeproj/differ.rb +239 -0
  1918. data/vendor/bundle/gems/xcodeproj-1.9.0/lib/xcodeproj/gem_version.rb +5 -0
  1919. data/vendor/bundle/gems/xcodeproj-1.9.0/lib/xcodeproj/helper.rb +30 -0
  1920. data/vendor/bundle/gems/xcodeproj-1.9.0/lib/xcodeproj/plist.rb +94 -0
  1921. data/vendor/bundle/gems/xcodeproj-1.9.0/lib/xcodeproj/project.rb +867 -0
  1922. data/vendor/bundle/gems/xcodeproj-1.9.0/lib/xcodeproj/project/case_converter.rb +90 -0
  1923. data/vendor/bundle/gems/xcodeproj-1.9.0/lib/xcodeproj/project/object.rb +532 -0
  1924. data/vendor/bundle/gems/xcodeproj-1.9.0/lib/xcodeproj/project/object/build_configuration.rb +224 -0
  1925. data/vendor/bundle/gems/xcodeproj-1.9.0/lib/xcodeproj/project/object/build_file.rb +70 -0
  1926. data/vendor/bundle/gems/xcodeproj-1.9.0/lib/xcodeproj/project/object/build_phase.rb +305 -0
  1927. data/vendor/bundle/gems/xcodeproj-1.9.0/lib/xcodeproj/project/object/build_rule.rb +90 -0
  1928. data/vendor/bundle/gems/xcodeproj-1.9.0/lib/xcodeproj/project/object/configuration_list.rb +117 -0
  1929. data/vendor/bundle/gems/xcodeproj-1.9.0/lib/xcodeproj/project/object/container_item_proxy.rb +116 -0
  1930. data/vendor/bundle/gems/xcodeproj-1.9.0/lib/xcodeproj/project/object/file_reference.rb +337 -0
  1931. data/vendor/bundle/gems/xcodeproj-1.9.0/lib/xcodeproj/project/object/group.rb +485 -0
  1932. data/vendor/bundle/gems/xcodeproj-1.9.0/lib/xcodeproj/project/object/helpers/build_settings_array_settings_by_object_version.rb +72 -0
  1933. data/vendor/bundle/gems/xcodeproj-1.9.0/lib/xcodeproj/project/object/helpers/file_references_factory.rb +242 -0
  1934. data/vendor/bundle/gems/xcodeproj-1.9.0/lib/xcodeproj/project/object/helpers/groupable_helper.rb +259 -0
  1935. data/vendor/bundle/gems/xcodeproj-1.9.0/lib/xcodeproj/project/object/native_target.rb +683 -0
  1936. data/vendor/bundle/gems/xcodeproj-1.9.0/lib/xcodeproj/project/object/reference_proxy.rb +67 -0
  1937. data/vendor/bundle/gems/xcodeproj-1.9.0/lib/xcodeproj/project/object/root_object.rb +87 -0
  1938. data/vendor/bundle/gems/xcodeproj-1.9.0/lib/xcodeproj/project/object/target_dependency.rb +81 -0
  1939. data/vendor/bundle/gems/xcodeproj-1.9.0/lib/xcodeproj/project/object_attributes.rb +522 -0
  1940. data/vendor/bundle/gems/xcodeproj-1.9.0/lib/xcodeproj/project/object_dictionary.rb +210 -0
  1941. data/vendor/bundle/gems/xcodeproj-1.9.0/lib/xcodeproj/project/object_list.rb +223 -0
  1942. data/vendor/bundle/gems/xcodeproj-1.9.0/lib/xcodeproj/project/project_helper.rb +340 -0
  1943. data/vendor/bundle/gems/xcodeproj-1.9.0/lib/xcodeproj/project/uuid_generator.rb +132 -0
  1944. data/vendor/bundle/gems/xcodeproj-1.9.0/lib/xcodeproj/scheme.rb +371 -0
  1945. data/vendor/bundle/gems/xcodeproj-1.9.0/lib/xcodeproj/scheme/abstract_scheme_action.rb +28 -0
  1946. data/vendor/bundle/gems/xcodeproj-1.9.0/lib/xcodeproj/scheme/analyze_action.rb +19 -0
  1947. data/vendor/bundle/gems/xcodeproj-1.9.0/lib/xcodeproj/scheme/archive_action.rb +59 -0
  1948. data/vendor/bundle/gems/xcodeproj-1.9.0/lib/xcodeproj/scheme/build_action.rb +191 -0
  1949. data/vendor/bundle/gems/xcodeproj-1.9.0/lib/xcodeproj/scheme/buildable_product_runnable.rb +55 -0
  1950. data/vendor/bundle/gems/xcodeproj-1.9.0/lib/xcodeproj/scheme/buildable_reference.rb +129 -0
  1951. data/vendor/bundle/gems/xcodeproj-1.9.0/lib/xcodeproj/scheme/command_line_arguments.rb +162 -0
  1952. data/vendor/bundle/gems/xcodeproj-1.9.0/lib/xcodeproj/scheme/environment_variables.rb +170 -0
  1953. data/vendor/bundle/gems/xcodeproj-1.9.0/lib/xcodeproj/scheme/launch_action.rb +148 -0
  1954. data/vendor/bundle/gems/xcodeproj-1.9.0/lib/xcodeproj/scheme/macro_expansion.rb +34 -0
  1955. data/vendor/bundle/gems/xcodeproj-1.9.0/lib/xcodeproj/scheme/profile_action.rb +57 -0
  1956. data/vendor/bundle/gems/xcodeproj-1.9.0/lib/xcodeproj/scheme/remote_runnable.rb +92 -0
  1957. data/vendor/bundle/gems/xcodeproj-1.9.0/lib/xcodeproj/scheme/test_action.rb +333 -0
  1958. data/vendor/bundle/gems/xcodeproj-1.9.0/lib/xcodeproj/scheme/xml_element_wrapper.rb +82 -0
  1959. data/vendor/bundle/gems/xcodeproj-1.9.0/lib/xcodeproj/user_interface.rb +22 -0
  1960. data/vendor/bundle/gems/xcodeproj-1.9.0/lib/xcodeproj/workspace.rb +276 -0
  1961. data/vendor/bundle/gems/xcodeproj-1.9.0/lib/xcodeproj/workspace/file_reference.rb +79 -0
  1962. data/vendor/bundle/gems/xcodeproj-1.9.0/lib/xcodeproj/workspace/group_reference.rb +67 -0
  1963. data/vendor/bundle/gems/xcodeproj-1.9.0/lib/xcodeproj/workspace/reference.rb +40 -0
  1964. data/vendor/bundle/gems/xcodeproj-1.9.0/lib/xcodeproj/xcodebuild_helper.rb +108 -0
  1965. data/vendor/bundle/specifications/CFPropertyList-3.0.0.gemspec +34 -0
  1966. data/vendor/bundle/specifications/activesupport-4.2.11.1.gemspec +43 -0
  1967. data/vendor/bundle/specifications/addressable-2.6.0.gemspec +39 -0
  1968. data/vendor/bundle/specifications/atomos-0.1.3.gemspec +42 -0
  1969. data/vendor/bundle/specifications/bacon-1.2.0.gemspec +22 -0
  1970. data/vendor/bundle/specifications/claide-1.0.2.gemspec +19 -0
  1971. data/vendor/bundle/specifications/cocoapods-1.6.1.gemspec +95 -0
  1972. data/vendor/bundle/specifications/cocoapods-core-1.6.1.gemspec +42 -0
  1973. data/vendor/bundle/specifications/cocoapods-deintegrate-1.0.4.gemspec +20 -0
  1974. data/vendor/bundle/specifications/cocoapods-downloader-1.2.2.gemspec +20 -0
  1975. data/vendor/bundle/specifications/cocoapods-plugins-1.0.0.gemspec +38 -0
  1976. data/vendor/bundle/specifications/cocoapods-search-1.0.0.gemspec +35 -0
  1977. data/vendor/bundle/specifications/cocoapods-stats-1.1.0.gemspec +35 -0
  1978. data/vendor/bundle/specifications/cocoapods-trunk-1.3.1.gemspec +41 -0
  1979. data/vendor/bundle/specifications/cocoapods-try-1.1.0.gemspec +33 -0
  1980. data/vendor/bundle/specifications/colored2-3.1.2.gemspec +39 -0
  1981. data/vendor/bundle/specifications/concurrent-ruby-1.1.5.gemspec +24 -0
  1982. data/vendor/bundle/specifications/escape-0.0.4.gemspec +23 -0
  1983. data/vendor/bundle/specifications/fourflusher-2.2.0.gemspec +41 -0
  1984. data/vendor/bundle/specifications/fuzzy_match-2.0.4.gemspec +64 -0
  1985. data/vendor/bundle/specifications/gh_inspector-1.1.3.gemspec +47 -0
  1986. data/vendor/bundle/specifications/i18n-0.9.5.gemspec +34 -0
  1987. data/vendor/bundle/specifications/json-2.2.0.gemspec +0 -0
  1988. data/vendor/bundle/specifications/launchy-2.4.3.gemspec +45 -0
  1989. data/vendor/bundle/specifications/metaclass-0.0.4.gemspec +20 -0
  1990. data/vendor/bundle/specifications/minitest-5.11.3.gemspec +39 -0
  1991. data/vendor/bundle/specifications/mocha-1.8.0.gemspec +45 -0
  1992. data/vendor/bundle/specifications/mocha-on-bacon-0.2.3.gemspec +34 -0
  1993. data/vendor/bundle/specifications/molinillo-0.6.6.gemspec +34 -0
  1994. data/vendor/bundle/specifications/nanaimo-0.2.6.gemspec +38 -0
  1995. data/vendor/bundle/specifications/nap-1.1.0.gemspec +38 -0
  1996. data/vendor/bundle/specifications/netrc-0.11.0.gemspec +32 -0
  1997. data/vendor/bundle/specifications/prettybacon-0.0.2.gemspec +38 -0
  1998. data/vendor/bundle/specifications/public_suffix-3.0.3.gemspec +41 -0
  1999. data/vendor/bundle/specifications/rake-12.3.2.gemspec +49 -0
  2000. data/vendor/bundle/specifications/ruby-macho-1.4.0.gemspec +21 -0
  2001. data/vendor/bundle/specifications/thread_safe-0.3.6.gemspec +38 -0
  2002. data/vendor/bundle/specifications/tzinfo-1.2.5.gemspec +37 -0
  2003. data/vendor/bundle/specifications/xcodeproj-1.9.0.gemspec +47 -0
  2004. metadata +2118 -0
@@ -0,0 +1,2510 @@
1
+ # frozen_string_literal: true
2
+
3
+ # encoding:utf-8
4
+ #--
5
+ # Copyright (C) Bob Aman
6
+ #
7
+ # Licensed under the Apache License, Version 2.0 (the "License");
8
+ # you may not use this file except in compliance with the License.
9
+ # You may obtain a copy of the License at
10
+ #
11
+ # http://www.apache.org/licenses/LICENSE-2.0
12
+ #
13
+ # Unless required by applicable law or agreed to in writing, software
14
+ # distributed under the License is distributed on an "AS IS" BASIS,
15
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ # See the License for the specific language governing permissions and
17
+ # limitations under the License.
18
+ #++
19
+
20
+
21
+ require "addressable/version"
22
+ require "addressable/idna"
23
+ require "public_suffix"
24
+
25
+ ##
26
+ # Addressable is a library for processing links and URIs.
27
+ module Addressable
28
+ ##
29
+ # This is an implementation of a URI parser based on
30
+ # <a href="http://www.ietf.org/rfc/rfc3986.txt">RFC 3986</a>,
31
+ # <a href="http://www.ietf.org/rfc/rfc3987.txt">RFC 3987</a>.
32
+ class URI
33
+ ##
34
+ # Raised if something other than a uri is supplied.
35
+ class InvalidURIError < StandardError
36
+ end
37
+
38
+ ##
39
+ # Container for the character classes specified in
40
+ # <a href="http://www.ietf.org/rfc/rfc3986.txt">RFC 3986</a>.
41
+ module CharacterClasses
42
+ ALPHA = "a-zA-Z"
43
+ DIGIT = "0-9"
44
+ GEN_DELIMS = "\\:\\/\\?\\#\\[\\]\\@"
45
+ SUB_DELIMS = "\\!\\$\\&\\'\\(\\)\\*\\+\\,\\;\\="
46
+ RESERVED = GEN_DELIMS + SUB_DELIMS
47
+ UNRESERVED = ALPHA + DIGIT + "\\-\\.\\_\\~"
48
+ PCHAR = UNRESERVED + SUB_DELIMS + "\\:\\@"
49
+ SCHEME = ALPHA + DIGIT + "\\-\\+\\."
50
+ HOST = UNRESERVED + SUB_DELIMS + "\\[\\:\\]"
51
+ AUTHORITY = PCHAR
52
+ PATH = PCHAR + "\\/"
53
+ QUERY = PCHAR + "\\/\\?"
54
+ FRAGMENT = PCHAR + "\\/\\?"
55
+ end
56
+
57
+ SLASH = '/'
58
+ EMPTY_STR = ''
59
+
60
+ URIREGEX = /^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/
61
+
62
+ PORT_MAPPING = {
63
+ "http" => 80,
64
+ "https" => 443,
65
+ "ftp" => 21,
66
+ "tftp" => 69,
67
+ "sftp" => 22,
68
+ "ssh" => 22,
69
+ "svn+ssh" => 22,
70
+ "telnet" => 23,
71
+ "nntp" => 119,
72
+ "gopher" => 70,
73
+ "wais" => 210,
74
+ "ldap" => 389,
75
+ "prospero" => 1525
76
+ }
77
+
78
+ ##
79
+ # Returns a URI object based on the parsed string.
80
+ #
81
+ # @param [String, Addressable::URI, #to_str] uri
82
+ # The URI string to parse.
83
+ # No parsing is performed if the object is already an
84
+ # <code>Addressable::URI</code>.
85
+ #
86
+ # @return [Addressable::URI] The parsed URI.
87
+ def self.parse(uri)
88
+ # If we were given nil, return nil.
89
+ return nil unless uri
90
+ # If a URI object is passed, just return itself.
91
+ return uri.dup if uri.kind_of?(self)
92
+
93
+ # If a URI object of the Ruby standard library variety is passed,
94
+ # convert it to a string, then parse the string.
95
+ # We do the check this way because we don't want to accidentally
96
+ # cause a missing constant exception to be thrown.
97
+ if uri.class.name =~ /^URI\b/
98
+ uri = uri.to_s
99
+ end
100
+
101
+ # Otherwise, convert to a String
102
+ begin
103
+ uri = uri.to_str
104
+ rescue TypeError, NoMethodError
105
+ raise TypeError, "Can't convert #{uri.class} into String."
106
+ end if not uri.is_a? String
107
+
108
+ # This Regexp supplied as an example in RFC 3986, and it works great.
109
+ scan = uri.scan(URIREGEX)
110
+ fragments = scan[0]
111
+ scheme = fragments[1]
112
+ authority = fragments[3]
113
+ path = fragments[4]
114
+ query = fragments[6]
115
+ fragment = fragments[8]
116
+ user = nil
117
+ password = nil
118
+ host = nil
119
+ port = nil
120
+ if authority != nil
121
+ # The Regexp above doesn't split apart the authority.
122
+ userinfo = authority[/^([^\[\]]*)@/, 1]
123
+ if userinfo != nil
124
+ user = userinfo.strip[/^([^:]*):?/, 1]
125
+ password = userinfo.strip[/:(.*)$/, 1]
126
+ end
127
+ host = authority.sub(
128
+ /^([^\[\]]*)@/, EMPTY_STR
129
+ ).sub(
130
+ /:([^:@\[\]]*?)$/, EMPTY_STR
131
+ )
132
+ port = authority[/:([^:@\[\]]*?)$/, 1]
133
+ end
134
+ if port == EMPTY_STR
135
+ port = nil
136
+ end
137
+
138
+ return new(
139
+ :scheme => scheme,
140
+ :user => user,
141
+ :password => password,
142
+ :host => host,
143
+ :port => port,
144
+ :path => path,
145
+ :query => query,
146
+ :fragment => fragment
147
+ )
148
+ end
149
+
150
+ ##
151
+ # Converts an input to a URI. The input does not have to be a valid
152
+ # URI — the method will use heuristics to guess what URI was intended.
153
+ # This is not standards-compliant, merely user-friendly.
154
+ #
155
+ # @param [String, Addressable::URI, #to_str] uri
156
+ # The URI string to parse.
157
+ # No parsing is performed if the object is already an
158
+ # <code>Addressable::URI</code>.
159
+ # @param [Hash] hints
160
+ # A <code>Hash</code> of hints to the heuristic parser.
161
+ # Defaults to <code>{:scheme => "http"}</code>.
162
+ #
163
+ # @return [Addressable::URI] The parsed URI.
164
+ def self.heuristic_parse(uri, hints={})
165
+ # If we were given nil, return nil.
166
+ return nil unless uri
167
+ # If a URI object is passed, just return itself.
168
+ return uri.dup if uri.kind_of?(self)
169
+
170
+ # If a URI object of the Ruby standard library variety is passed,
171
+ # convert it to a string, then parse the string.
172
+ # We do the check this way because we don't want to accidentally
173
+ # cause a missing constant exception to be thrown.
174
+ if uri.class.name =~ /^URI\b/
175
+ uri = uri.to_s
176
+ end
177
+
178
+ if !uri.respond_to?(:to_str)
179
+ raise TypeError, "Can't convert #{uri.class} into String."
180
+ end
181
+ # Otherwise, convert to a String
182
+ uri = uri.to_str.dup.strip
183
+ hints = {
184
+ :scheme => "http"
185
+ }.merge(hints)
186
+ case uri
187
+ when /^http:\//i
188
+ uri.sub!(/^http:\/+/i, "http://")
189
+ when /^https:\//i
190
+ uri.sub!(/^https:\/+/i, "https://")
191
+ when /^feed:\/+http:\//i
192
+ uri.sub!(/^feed:\/+http:\/+/i, "feed:http://")
193
+ when /^feed:\//i
194
+ uri.sub!(/^feed:\/+/i, "feed://")
195
+ when %r[^file:/{4}]i
196
+ uri.sub!(%r[^file:/+]i, "file:////")
197
+ when %r[^file://localhost/]i
198
+ uri.sub!(%r[^file://localhost/+]i, "file:///")
199
+ when %r[^file:/+]i
200
+ uri.sub!(%r[^file:/+]i, "file:///")
201
+ when /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/
202
+ uri.sub!(/^/, hints[:scheme] + "://")
203
+ when /\A\d+\..*:\d+\z/
204
+ uri = "#{hints[:scheme]}://#{uri}"
205
+ end
206
+ match = uri.match(URIREGEX)
207
+ fragments = match.captures
208
+ authority = fragments[3]
209
+ if authority && authority.length > 0
210
+ new_authority = authority.gsub(/\\/, '/').gsub(/ /, '%20')
211
+ # NOTE: We want offset 4, not 3!
212
+ offset = match.offset(4)
213
+ uri = uri.dup
214
+ uri[offset[0]...offset[1]] = new_authority
215
+ end
216
+ parsed = self.parse(uri)
217
+ if parsed.scheme =~ /^[^\/?#\.]+\.[^\/?#]+$/
218
+ parsed = self.parse(hints[:scheme] + "://" + uri)
219
+ end
220
+ if parsed.path.include?(".")
221
+ new_host = parsed.path[/^([^\/]+\.[^\/]*)/, 1]
222
+ if new_host
223
+ parsed.defer_validation do
224
+ new_path = parsed.path.sub(
225
+ Regexp.new("^" + Regexp.escape(new_host)), EMPTY_STR)
226
+ parsed.host = new_host
227
+ parsed.path = new_path
228
+ parsed.scheme = hints[:scheme] unless parsed.scheme
229
+ end
230
+ end
231
+ end
232
+ return parsed
233
+ end
234
+
235
+ ##
236
+ # Converts a path to a file scheme URI. If the path supplied is
237
+ # relative, it will be returned as a relative URI. If the path supplied
238
+ # is actually a non-file URI, it will parse the URI as if it had been
239
+ # parsed with <code>Addressable::URI.parse</code>. Handles all of the
240
+ # various Microsoft-specific formats for specifying paths.
241
+ #
242
+ # @param [String, Addressable::URI, #to_str] path
243
+ # Typically a <code>String</code> path to a file or directory, but
244
+ # will return a sensible return value if an absolute URI is supplied
245
+ # instead.
246
+ #
247
+ # @return [Addressable::URI]
248
+ # The parsed file scheme URI or the original URI if some other URI
249
+ # scheme was provided.
250
+ #
251
+ # @example
252
+ # base = Addressable::URI.convert_path("/absolute/path/")
253
+ # uri = Addressable::URI.convert_path("relative/path")
254
+ # (base + uri).to_s
255
+ # #=> "file:///absolute/path/relative/path"
256
+ #
257
+ # Addressable::URI.convert_path(
258
+ # "c:\\windows\\My Documents 100%20\\foo.txt"
259
+ # ).to_s
260
+ # #=> "file:///c:/windows/My%20Documents%20100%20/foo.txt"
261
+ #
262
+ # Addressable::URI.convert_path("http://example.com/").to_s
263
+ # #=> "http://example.com/"
264
+ def self.convert_path(path)
265
+ # If we were given nil, return nil.
266
+ return nil unless path
267
+ # If a URI object is passed, just return itself.
268
+ return path if path.kind_of?(self)
269
+ if !path.respond_to?(:to_str)
270
+ raise TypeError, "Can't convert #{path.class} into String."
271
+ end
272
+ # Otherwise, convert to a String
273
+ path = path.to_str.strip
274
+
275
+ path.sub!(/^file:\/?\/?/, EMPTY_STR) if path =~ /^file:\/?\/?/
276
+ path = SLASH + path if path =~ /^([a-zA-Z])[\|:]/
277
+ uri = self.parse(path)
278
+
279
+ if uri.scheme == nil
280
+ # Adjust windows-style uris
281
+ uri.path.sub!(/^\/?([a-zA-Z])[\|:][\\\/]/) do
282
+ "/#{$1.downcase}:/"
283
+ end
284
+ uri.path.gsub!(/\\/, SLASH)
285
+ if File.exist?(uri.path) &&
286
+ File.stat(uri.path).directory?
287
+ uri.path.sub!(/\/$/, EMPTY_STR)
288
+ uri.path = uri.path + '/'
289
+ end
290
+
291
+ # If the path is absolute, set the scheme and host.
292
+ if uri.path =~ /^\//
293
+ uri.scheme = "file"
294
+ uri.host = EMPTY_STR
295
+ end
296
+ uri.normalize!
297
+ end
298
+
299
+ return uri
300
+ end
301
+
302
+ ##
303
+ # Joins several URIs together.
304
+ #
305
+ # @param [String, Addressable::URI, #to_str] *uris
306
+ # The URIs to join.
307
+ #
308
+ # @return [Addressable::URI] The joined URI.
309
+ #
310
+ # @example
311
+ # base = "http://example.com/"
312
+ # uri = Addressable::URI.parse("relative/path")
313
+ # Addressable::URI.join(base, uri)
314
+ # #=> #<Addressable::URI:0xcab390 URI:http://example.com/relative/path>
315
+ def self.join(*uris)
316
+ uri_objects = uris.collect do |uri|
317
+ if !uri.respond_to?(:to_str)
318
+ raise TypeError, "Can't convert #{uri.class} into String."
319
+ end
320
+ uri.kind_of?(self) ? uri : self.parse(uri.to_str)
321
+ end
322
+ result = uri_objects.shift.dup
323
+ for uri in uri_objects
324
+ result.join!(uri)
325
+ end
326
+ return result
327
+ end
328
+
329
+ ##
330
+ # Percent encodes a URI component.
331
+ #
332
+ # @param [String, #to_str] component The URI component to encode.
333
+ #
334
+ # @param [String, Regexp] character_class
335
+ # The characters which are not percent encoded. If a <code>String</code>
336
+ # is passed, the <code>String</code> must be formatted as a regular
337
+ # expression character class. (Do not include the surrounding square
338
+ # brackets.) For example, <code>"b-zB-Z0-9"</code> would cause
339
+ # everything but the letters 'b' through 'z' and the numbers '0' through
340
+ # '9' to be percent encoded. If a <code>Regexp</code> is passed, the
341
+ # value <code>/[^b-zB-Z0-9]/</code> would have the same effect. A set of
342
+ # useful <code>String</code> values may be found in the
343
+ # <code>Addressable::URI::CharacterClasses</code> module. The default
344
+ # value is the reserved plus unreserved character classes specified in
345
+ # <a href="http://www.ietf.org/rfc/rfc3986.txt">RFC 3986</a>.
346
+ #
347
+ # @param [Regexp] upcase_encoded
348
+ # A string of characters that may already be percent encoded, and whose
349
+ # encodings should be upcased. This allows normalization of percent
350
+ # encodings for characters not included in the
351
+ # <code>character_class</code>.
352
+ #
353
+ # @return [String] The encoded component.
354
+ #
355
+ # @example
356
+ # Addressable::URI.encode_component("simple/example", "b-zB-Z0-9")
357
+ # => "simple%2Fex%61mple"
358
+ # Addressable::URI.encode_component("simple/example", /[^b-zB-Z0-9]/)
359
+ # => "simple%2Fex%61mple"
360
+ # Addressable::URI.encode_component(
361
+ # "simple/example", Addressable::URI::CharacterClasses::UNRESERVED
362
+ # )
363
+ # => "simple%2Fexample"
364
+ def self.encode_component(component, character_class=
365
+ CharacterClasses::RESERVED + CharacterClasses::UNRESERVED,
366
+ upcase_encoded='')
367
+ return nil if component.nil?
368
+
369
+ begin
370
+ if component.kind_of?(Symbol) ||
371
+ component.kind_of?(Numeric) ||
372
+ component.kind_of?(TrueClass) ||
373
+ component.kind_of?(FalseClass)
374
+ component = component.to_s
375
+ else
376
+ component = component.to_str
377
+ end
378
+ rescue TypeError, NoMethodError
379
+ raise TypeError, "Can't convert #{component.class} into String."
380
+ end if !component.is_a? String
381
+
382
+ if ![String, Regexp].include?(character_class.class)
383
+ raise TypeError,
384
+ "Expected String or Regexp, got #{character_class.inspect}"
385
+ end
386
+ if character_class.kind_of?(String)
387
+ character_class = /[^#{character_class}]/
388
+ end
389
+ # We can't perform regexps on invalid UTF sequences, but
390
+ # here we need to, so switch to ASCII.
391
+ component = component.dup
392
+ component.force_encoding(Encoding::ASCII_8BIT)
393
+ # Avoiding gsub! because there are edge cases with frozen strings
394
+ component = component.gsub(character_class) do |sequence|
395
+ (sequence.unpack('C*').map { |c| "%" + ("%02x" % c).upcase }).join
396
+ end
397
+ if upcase_encoded.length > 0
398
+ component = component.gsub(/%(#{upcase_encoded.chars.map do |char|
399
+ char.unpack('C*').map { |c| '%02x' % c }.join
400
+ end.join('|')})/i) { |s| s.upcase }
401
+ end
402
+ return component
403
+ end
404
+
405
+ class << self
406
+ alias_method :encode_component, :encode_component
407
+ end
408
+
409
+ ##
410
+ # Unencodes any percent encoded characters within a URI component.
411
+ # This method may be used for unencoding either components or full URIs,
412
+ # however, it is recommended to use the <code>unencode_component</code>
413
+ # alias when unencoding components.
414
+ #
415
+ # @param [String, Addressable::URI, #to_str] uri
416
+ # The URI or component to unencode.
417
+ #
418
+ # @param [Class] return_type
419
+ # The type of object to return.
420
+ # This value may only be set to <code>String</code> or
421
+ # <code>Addressable::URI</code>. All other values are invalid. Defaults
422
+ # to <code>String</code>.
423
+ #
424
+ # @param [String] leave_encoded
425
+ # A string of characters to leave encoded. If a percent encoded character
426
+ # in this list is encountered then it will remain percent encoded.
427
+ #
428
+ # @return [String, Addressable::URI]
429
+ # The unencoded component or URI.
430
+ # The return type is determined by the <code>return_type</code>
431
+ # parameter.
432
+ def self.unencode(uri, return_type=String, leave_encoded='')
433
+ return nil if uri.nil?
434
+
435
+ begin
436
+ uri = uri.to_str
437
+ rescue NoMethodError, TypeError
438
+ raise TypeError, "Can't convert #{uri.class} into String."
439
+ end if !uri.is_a? String
440
+ if ![String, ::Addressable::URI].include?(return_type)
441
+ raise TypeError,
442
+ "Expected Class (String or Addressable::URI), " +
443
+ "got #{return_type.inspect}"
444
+ end
445
+ uri = uri.dup
446
+ # Seriously, only use UTF-8. I'm really not kidding!
447
+ uri.force_encoding("utf-8")
448
+ leave_encoded = leave_encoded.dup.force_encoding("utf-8")
449
+ result = uri.gsub(/%[0-9a-f]{2}/iu) do |sequence|
450
+ c = sequence[1..3].to_i(16).chr
451
+ c.force_encoding("utf-8")
452
+ leave_encoded.include?(c) ? sequence : c
453
+ end
454
+ result.force_encoding("utf-8")
455
+ if return_type == String
456
+ return result
457
+ elsif return_type == ::Addressable::URI
458
+ return ::Addressable::URI.parse(result)
459
+ end
460
+ end
461
+
462
+ class << self
463
+ alias_method :unescape, :unencode
464
+ alias_method :unencode_component, :unencode
465
+ alias_method :unescape_component, :unencode
466
+ end
467
+
468
+
469
+ ##
470
+ # Normalizes the encoding of a URI component.
471
+ #
472
+ # @param [String, #to_str] component The URI component to encode.
473
+ #
474
+ # @param [String, Regexp] character_class
475
+ # The characters which are not percent encoded. If a <code>String</code>
476
+ # is passed, the <code>String</code> must be formatted as a regular
477
+ # expression character class. (Do not include the surrounding square
478
+ # brackets.) For example, <code>"b-zB-Z0-9"</code> would cause
479
+ # everything but the letters 'b' through 'z' and the numbers '0'
480
+ # through '9' to be percent encoded. If a <code>Regexp</code> is passed,
481
+ # the value <code>/[^b-zB-Z0-9]/</code> would have the same effect. A
482
+ # set of useful <code>String</code> values may be found in the
483
+ # <code>Addressable::URI::CharacterClasses</code> module. The default
484
+ # value is the reserved plus unreserved character classes specified in
485
+ # <a href="http://www.ietf.org/rfc/rfc3986.txt">RFC 3986</a>.
486
+ #
487
+ # @param [String] leave_encoded
488
+ # When <code>character_class</code> is a <code>String</code> then
489
+ # <code>leave_encoded</code> is a string of characters that should remain
490
+ # percent encoded while normalizing the component; if they appear percent
491
+ # encoded in the original component, then they will be upcased ("%2f"
492
+ # normalized to "%2F") but otherwise left alone.
493
+ #
494
+ # @return [String] The normalized component.
495
+ #
496
+ # @example
497
+ # Addressable::URI.normalize_component("simpl%65/%65xampl%65", "b-zB-Z")
498
+ # => "simple%2Fex%61mple"
499
+ # Addressable::URI.normalize_component(
500
+ # "simpl%65/%65xampl%65", /[^b-zB-Z]/
501
+ # )
502
+ # => "simple%2Fex%61mple"
503
+ # Addressable::URI.normalize_component(
504
+ # "simpl%65/%65xampl%65",
505
+ # Addressable::URI::CharacterClasses::UNRESERVED
506
+ # )
507
+ # => "simple%2Fexample"
508
+ # Addressable::URI.normalize_component(
509
+ # "one%20two%2fthree%26four",
510
+ # "0-9a-zA-Z &/",
511
+ # "/"
512
+ # )
513
+ # => "one two%2Fthree&four"
514
+ def self.normalize_component(component, character_class=
515
+ CharacterClasses::RESERVED + CharacterClasses::UNRESERVED,
516
+ leave_encoded='')
517
+ return nil if component.nil?
518
+
519
+ begin
520
+ component = component.to_str
521
+ rescue NoMethodError, TypeError
522
+ raise TypeError, "Can't convert #{component.class} into String."
523
+ end if !component.is_a? String
524
+
525
+ if ![String, Regexp].include?(character_class.class)
526
+ raise TypeError,
527
+ "Expected String or Regexp, got #{character_class.inspect}"
528
+ end
529
+ if character_class.kind_of?(String)
530
+ leave_re = if leave_encoded.length > 0
531
+ character_class = "#{character_class}%" unless character_class.include?('%')
532
+
533
+ "|%(?!#{leave_encoded.chars.map do |char|
534
+ seq = char.unpack('C*').map { |c| '%02x' % c }.join
535
+ [seq.upcase, seq.downcase]
536
+ end.flatten.join('|')})"
537
+ end
538
+
539
+ character_class = /[^#{character_class}]#{leave_re}/
540
+ end
541
+ # We can't perform regexps on invalid UTF sequences, but
542
+ # here we need to, so switch to ASCII.
543
+ component = component.dup
544
+ component.force_encoding(Encoding::ASCII_8BIT)
545
+ unencoded = self.unencode_component(component, String, leave_encoded)
546
+ begin
547
+ encoded = self.encode_component(
548
+ Addressable::IDNA.unicode_normalize_kc(unencoded),
549
+ character_class,
550
+ leave_encoded
551
+ )
552
+ rescue ArgumentError
553
+ encoded = self.encode_component(unencoded)
554
+ end
555
+ encoded.force_encoding(Encoding::UTF_8)
556
+ return encoded
557
+ end
558
+
559
+ ##
560
+ # Percent encodes any special characters in the URI.
561
+ #
562
+ # @param [String, Addressable::URI, #to_str] uri
563
+ # The URI to encode.
564
+ #
565
+ # @param [Class] return_type
566
+ # The type of object to return.
567
+ # This value may only be set to <code>String</code> or
568
+ # <code>Addressable::URI</code>. All other values are invalid. Defaults
569
+ # to <code>String</code>.
570
+ #
571
+ # @return [String, Addressable::URI]
572
+ # The encoded URI.
573
+ # The return type is determined by the <code>return_type</code>
574
+ # parameter.
575
+ def self.encode(uri, return_type=String)
576
+ return nil if uri.nil?
577
+
578
+ begin
579
+ uri = uri.to_str
580
+ rescue NoMethodError, TypeError
581
+ raise TypeError, "Can't convert #{uri.class} into String."
582
+ end if !uri.is_a? String
583
+
584
+ if ![String, ::Addressable::URI].include?(return_type)
585
+ raise TypeError,
586
+ "Expected Class (String or Addressable::URI), " +
587
+ "got #{return_type.inspect}"
588
+ end
589
+ uri_object = uri.kind_of?(self) ? uri : self.parse(uri)
590
+ encoded_uri = Addressable::URI.new(
591
+ :scheme => self.encode_component(uri_object.scheme,
592
+ Addressable::URI::CharacterClasses::SCHEME),
593
+ :authority => self.encode_component(uri_object.authority,
594
+ Addressable::URI::CharacterClasses::AUTHORITY),
595
+ :path => self.encode_component(uri_object.path,
596
+ Addressable::URI::CharacterClasses::PATH),
597
+ :query => self.encode_component(uri_object.query,
598
+ Addressable::URI::CharacterClasses::QUERY),
599
+ :fragment => self.encode_component(uri_object.fragment,
600
+ Addressable::URI::CharacterClasses::FRAGMENT)
601
+ )
602
+ if return_type == String
603
+ return encoded_uri.to_s
604
+ elsif return_type == ::Addressable::URI
605
+ return encoded_uri
606
+ end
607
+ end
608
+
609
+ class << self
610
+ alias_method :escape, :encode
611
+ end
612
+
613
+ ##
614
+ # Normalizes the encoding of a URI. Characters within a hostname are
615
+ # not percent encoded to allow for internationalized domain names.
616
+ #
617
+ # @param [String, Addressable::URI, #to_str] uri
618
+ # The URI to encode.
619
+ #
620
+ # @param [Class] return_type
621
+ # The type of object to return.
622
+ # This value may only be set to <code>String</code> or
623
+ # <code>Addressable::URI</code>. All other values are invalid. Defaults
624
+ # to <code>String</code>.
625
+ #
626
+ # @return [String, Addressable::URI]
627
+ # The encoded URI.
628
+ # The return type is determined by the <code>return_type</code>
629
+ # parameter.
630
+ def self.normalized_encode(uri, return_type=String)
631
+ begin
632
+ uri = uri.to_str
633
+ rescue NoMethodError, TypeError
634
+ raise TypeError, "Can't convert #{uri.class} into String."
635
+ end if !uri.is_a? String
636
+
637
+ if ![String, ::Addressable::URI].include?(return_type)
638
+ raise TypeError,
639
+ "Expected Class (String or Addressable::URI), " +
640
+ "got #{return_type.inspect}"
641
+ end
642
+ uri_object = uri.kind_of?(self) ? uri : self.parse(uri)
643
+ components = {
644
+ :scheme => self.unencode_component(uri_object.scheme),
645
+ :user => self.unencode_component(uri_object.user),
646
+ :password => self.unencode_component(uri_object.password),
647
+ :host => self.unencode_component(uri_object.host),
648
+ :port => (uri_object.port.nil? ? nil : uri_object.port.to_s),
649
+ :path => self.unencode_component(uri_object.path),
650
+ :query => self.unencode_component(uri_object.query),
651
+ :fragment => self.unencode_component(uri_object.fragment)
652
+ }
653
+ components.each do |key, value|
654
+ if value != nil
655
+ begin
656
+ components[key] =
657
+ Addressable::IDNA.unicode_normalize_kc(value.to_str)
658
+ rescue ArgumentError
659
+ # Likely a malformed UTF-8 character, skip unicode normalization
660
+ components[key] = value.to_str
661
+ end
662
+ end
663
+ end
664
+ encoded_uri = Addressable::URI.new(
665
+ :scheme => self.encode_component(components[:scheme],
666
+ Addressable::URI::CharacterClasses::SCHEME),
667
+ :user => self.encode_component(components[:user],
668
+ Addressable::URI::CharacterClasses::UNRESERVED),
669
+ :password => self.encode_component(components[:password],
670
+ Addressable::URI::CharacterClasses::UNRESERVED),
671
+ :host => components[:host],
672
+ :port => components[:port],
673
+ :path => self.encode_component(components[:path],
674
+ Addressable::URI::CharacterClasses::PATH),
675
+ :query => self.encode_component(components[:query],
676
+ Addressable::URI::CharacterClasses::QUERY),
677
+ :fragment => self.encode_component(components[:fragment],
678
+ Addressable::URI::CharacterClasses::FRAGMENT)
679
+ )
680
+ if return_type == String
681
+ return encoded_uri.to_s
682
+ elsif return_type == ::Addressable::URI
683
+ return encoded_uri
684
+ end
685
+ end
686
+
687
+ ##
688
+ # Encodes a set of key/value pairs according to the rules for the
689
+ # <code>application/x-www-form-urlencoded</code> MIME type.
690
+ #
691
+ # @param [#to_hash, #to_ary] form_values
692
+ # The form values to encode.
693
+ #
694
+ # @param [TrueClass, FalseClass] sort
695
+ # Sort the key/value pairs prior to encoding.
696
+ # Defaults to <code>false</code>.
697
+ #
698
+ # @return [String]
699
+ # The encoded value.
700
+ def self.form_encode(form_values, sort=false)
701
+ if form_values.respond_to?(:to_hash)
702
+ form_values = form_values.to_hash.to_a
703
+ elsif form_values.respond_to?(:to_ary)
704
+ form_values = form_values.to_ary
705
+ else
706
+ raise TypeError, "Can't convert #{form_values.class} into Array."
707
+ end
708
+
709
+ form_values = form_values.inject([]) do |accu, (key, value)|
710
+ if value.kind_of?(Array)
711
+ value.each do |v|
712
+ accu << [key.to_s, v.to_s]
713
+ end
714
+ else
715
+ accu << [key.to_s, value.to_s]
716
+ end
717
+ accu
718
+ end
719
+
720
+ if sort
721
+ # Useful for OAuth and optimizing caching systems
722
+ form_values = form_values.sort
723
+ end
724
+ escaped_form_values = form_values.map do |(key, value)|
725
+ # Line breaks are CRLF pairs
726
+ [
727
+ self.encode_component(
728
+ key.gsub(/(\r\n|\n|\r)/, "\r\n"),
729
+ CharacterClasses::UNRESERVED
730
+ ).gsub("%20", "+"),
731
+ self.encode_component(
732
+ value.gsub(/(\r\n|\n|\r)/, "\r\n"),
733
+ CharacterClasses::UNRESERVED
734
+ ).gsub("%20", "+")
735
+ ]
736
+ end
737
+ return escaped_form_values.map do |(key, value)|
738
+ "#{key}=#{value}"
739
+ end.join("&")
740
+ end
741
+
742
+ ##
743
+ # Decodes a <code>String</code> according to the rules for the
744
+ # <code>application/x-www-form-urlencoded</code> MIME type.
745
+ #
746
+ # @param [String, #to_str] encoded_value
747
+ # The form values to decode.
748
+ #
749
+ # @return [Array]
750
+ # The decoded values.
751
+ # This is not a <code>Hash</code> because of the possibility for
752
+ # duplicate keys.
753
+ def self.form_unencode(encoded_value)
754
+ if !encoded_value.respond_to?(:to_str)
755
+ raise TypeError, "Can't convert #{encoded_value.class} into String."
756
+ end
757
+ encoded_value = encoded_value.to_str
758
+ split_values = encoded_value.split("&").map do |pair|
759
+ pair.split("=", 2)
760
+ end
761
+ return split_values.map do |(key, value)|
762
+ [
763
+ key ? self.unencode_component(
764
+ key.gsub("+", "%20")).gsub(/(\r\n|\n|\r)/, "\n") : nil,
765
+ value ? (self.unencode_component(
766
+ value.gsub("+", "%20")).gsub(/(\r\n|\n|\r)/, "\n")) : nil
767
+ ]
768
+ end
769
+ end
770
+
771
+ ##
772
+ # Creates a new uri object from component parts.
773
+ #
774
+ # @option [String, #to_str] scheme The scheme component.
775
+ # @option [String, #to_str] user The user component.
776
+ # @option [String, #to_str] password The password component.
777
+ # @option [String, #to_str] userinfo
778
+ # The userinfo component. If this is supplied, the user and password
779
+ # components must be omitted.
780
+ # @option [String, #to_str] host The host component.
781
+ # @option [String, #to_str] port The port component.
782
+ # @option [String, #to_str] authority
783
+ # The authority component. If this is supplied, the user, password,
784
+ # userinfo, host, and port components must be omitted.
785
+ # @option [String, #to_str] path The path component.
786
+ # @option [String, #to_str] query The query component.
787
+ # @option [String, #to_str] fragment The fragment component.
788
+ #
789
+ # @return [Addressable::URI] The constructed URI object.
790
+ def initialize(options={})
791
+ if options.has_key?(:authority)
792
+ if (options.keys & [:userinfo, :user, :password, :host, :port]).any?
793
+ raise ArgumentError,
794
+ "Cannot specify both an authority and any of the components " +
795
+ "within the authority."
796
+ end
797
+ end
798
+ if options.has_key?(:userinfo)
799
+ if (options.keys & [:user, :password]).any?
800
+ raise ArgumentError,
801
+ "Cannot specify both a userinfo and either the user or password."
802
+ end
803
+ end
804
+
805
+ self.defer_validation do
806
+ # Bunch of crazy logic required because of the composite components
807
+ # like userinfo and authority.
808
+ self.scheme = options[:scheme] if options[:scheme]
809
+ self.user = options[:user] if options[:user]
810
+ self.password = options[:password] if options[:password]
811
+ self.userinfo = options[:userinfo] if options[:userinfo]
812
+ self.host = options[:host] if options[:host]
813
+ self.port = options[:port] if options[:port]
814
+ self.authority = options[:authority] if options[:authority]
815
+ self.path = options[:path] if options[:path]
816
+ self.query = options[:query] if options[:query]
817
+ self.query_values = options[:query_values] if options[:query_values]
818
+ self.fragment = options[:fragment] if options[:fragment]
819
+ end
820
+ self.to_s
821
+ end
822
+
823
+ ##
824
+ # Freeze URI, initializing instance variables.
825
+ #
826
+ # @return [Addressable::URI] The frozen URI object.
827
+ def freeze
828
+ self.normalized_scheme
829
+ self.normalized_user
830
+ self.normalized_password
831
+ self.normalized_userinfo
832
+ self.normalized_host
833
+ self.normalized_port
834
+ self.normalized_authority
835
+ self.normalized_site
836
+ self.normalized_path
837
+ self.normalized_query
838
+ self.normalized_fragment
839
+ self.hash
840
+ super
841
+ end
842
+
843
+ ##
844
+ # The scheme component for this URI.
845
+ #
846
+ # @return [String] The scheme component.
847
+ def scheme
848
+ return defined?(@scheme) ? @scheme : nil
849
+ end
850
+
851
+ ##
852
+ # The scheme component for this URI, normalized.
853
+ #
854
+ # @return [String] The scheme component, normalized.
855
+ def normalized_scheme
856
+ return nil unless self.scheme
857
+ @normalized_scheme ||= begin
858
+ if self.scheme =~ /^\s*ssh\+svn\s*$/i
859
+ "svn+ssh".dup
860
+ else
861
+ Addressable::URI.normalize_component(
862
+ self.scheme.strip.downcase,
863
+ Addressable::URI::CharacterClasses::SCHEME
864
+ )
865
+ end
866
+ end
867
+ # All normalized values should be UTF-8
868
+ @normalized_scheme.force_encoding(Encoding::UTF_8) if @normalized_scheme
869
+ @normalized_scheme
870
+ end
871
+
872
+ ##
873
+ # Sets the scheme component for this URI.
874
+ #
875
+ # @param [String, #to_str] new_scheme The new scheme component.
876
+ def scheme=(new_scheme)
877
+ if new_scheme && !new_scheme.respond_to?(:to_str)
878
+ raise TypeError, "Can't convert #{new_scheme.class} into String."
879
+ elsif new_scheme
880
+ new_scheme = new_scheme.to_str
881
+ end
882
+ if new_scheme && new_scheme !~ /\A[a-z][a-z0-9\.\+\-]*\z/i
883
+ raise InvalidURIError, "Invalid scheme format: #{new_scheme}"
884
+ end
885
+ @scheme = new_scheme
886
+ @scheme = nil if @scheme.to_s.strip.empty?
887
+
888
+ # Reset dependent values
889
+ remove_instance_variable(:@normalized_scheme) if defined?(@normalized_scheme)
890
+ remove_composite_values
891
+
892
+ # Ensure we haven't created an invalid URI
893
+ validate()
894
+ end
895
+
896
+ ##
897
+ # The user component for this URI.
898
+ #
899
+ # @return [String] The user component.
900
+ def user
901
+ return defined?(@user) ? @user : nil
902
+ end
903
+
904
+ ##
905
+ # The user component for this URI, normalized.
906
+ #
907
+ # @return [String] The user component, normalized.
908
+ def normalized_user
909
+ return nil unless self.user
910
+ return @normalized_user if defined?(@normalized_user)
911
+ @normalized_user ||= begin
912
+ if normalized_scheme =~ /https?/ && self.user.strip.empty? &&
913
+ (!self.password || self.password.strip.empty?)
914
+ nil
915
+ else
916
+ Addressable::URI.normalize_component(
917
+ self.user.strip,
918
+ Addressable::URI::CharacterClasses::UNRESERVED
919
+ )
920
+ end
921
+ end
922
+ # All normalized values should be UTF-8
923
+ @normalized_user.force_encoding(Encoding::UTF_8) if @normalized_user
924
+ @normalized_user
925
+ end
926
+
927
+ ##
928
+ # Sets the user component for this URI.
929
+ #
930
+ # @param [String, #to_str] new_user The new user component.
931
+ def user=(new_user)
932
+ if new_user && !new_user.respond_to?(:to_str)
933
+ raise TypeError, "Can't convert #{new_user.class} into String."
934
+ end
935
+ @user = new_user ? new_user.to_str : nil
936
+
937
+ # You can't have a nil user with a non-nil password
938
+ if password != nil
939
+ @user = EMPTY_STR if @user.nil?
940
+ end
941
+
942
+ # Reset dependent values
943
+ remove_instance_variable(:@userinfo) if defined?(@userinfo)
944
+ remove_instance_variable(:@normalized_userinfo) if defined?(@normalized_userinfo)
945
+ remove_instance_variable(:@authority) if defined?(@authority)
946
+ remove_instance_variable(:@normalized_user) if defined?(@normalized_user)
947
+ remove_composite_values
948
+
949
+ # Ensure we haven't created an invalid URI
950
+ validate()
951
+ end
952
+
953
+ ##
954
+ # The password component for this URI.
955
+ #
956
+ # @return [String] The password component.
957
+ def password
958
+ return defined?(@password) ? @password : nil
959
+ end
960
+
961
+ ##
962
+ # The password component for this URI, normalized.
963
+ #
964
+ # @return [String] The password component, normalized.
965
+ def normalized_password
966
+ return nil unless self.password
967
+ return @normalized_password if defined?(@normalized_password)
968
+ @normalized_password ||= begin
969
+ if self.normalized_scheme =~ /https?/ && self.password.strip.empty? &&
970
+ (!self.user || self.user.strip.empty?)
971
+ nil
972
+ else
973
+ Addressable::URI.normalize_component(
974
+ self.password.strip,
975
+ Addressable::URI::CharacterClasses::UNRESERVED
976
+ )
977
+ end
978
+ end
979
+ # All normalized values should be UTF-8
980
+ if @normalized_password
981
+ @normalized_password.force_encoding(Encoding::UTF_8)
982
+ end
983
+ @normalized_password
984
+ end
985
+
986
+ ##
987
+ # Sets the password component for this URI.
988
+ #
989
+ # @param [String, #to_str] new_password The new password component.
990
+ def password=(new_password)
991
+ if new_password && !new_password.respond_to?(:to_str)
992
+ raise TypeError, "Can't convert #{new_password.class} into String."
993
+ end
994
+ @password = new_password ? new_password.to_str : nil
995
+
996
+ # You can't have a nil user with a non-nil password
997
+ @password ||= nil
998
+ @user ||= nil
999
+ if @password != nil
1000
+ @user = EMPTY_STR if @user.nil?
1001
+ end
1002
+
1003
+ # Reset dependent values
1004
+ remove_instance_variable(:@userinfo) if defined?(@userinfo)
1005
+ remove_instance_variable(:@normalized_userinfo) if defined?(@normalized_userinfo)
1006
+ remove_instance_variable(:@authority) if defined?(@authority)
1007
+ remove_instance_variable(:@normalized_password) if defined?(@normalized_password)
1008
+ remove_composite_values
1009
+
1010
+ # Ensure we haven't created an invalid URI
1011
+ validate()
1012
+ end
1013
+
1014
+ ##
1015
+ # The userinfo component for this URI.
1016
+ # Combines the user and password components.
1017
+ #
1018
+ # @return [String] The userinfo component.
1019
+ def userinfo
1020
+ current_user = self.user
1021
+ current_password = self.password
1022
+ (current_user || current_password) && @userinfo ||= begin
1023
+ if current_user && current_password
1024
+ "#{current_user}:#{current_password}"
1025
+ elsif current_user && !current_password
1026
+ "#{current_user}"
1027
+ end
1028
+ end
1029
+ end
1030
+
1031
+ ##
1032
+ # The userinfo component for this URI, normalized.
1033
+ #
1034
+ # @return [String] The userinfo component, normalized.
1035
+ def normalized_userinfo
1036
+ return nil unless self.userinfo
1037
+ return @normalized_userinfo if defined?(@normalized_userinfo)
1038
+ @normalized_userinfo ||= begin
1039
+ current_user = self.normalized_user
1040
+ current_password = self.normalized_password
1041
+ if !current_user && !current_password
1042
+ nil
1043
+ elsif current_user && current_password
1044
+ "#{current_user}:#{current_password}".dup
1045
+ elsif current_user && !current_password
1046
+ "#{current_user}".dup
1047
+ end
1048
+ end
1049
+ # All normalized values should be UTF-8
1050
+ if @normalized_userinfo
1051
+ @normalized_userinfo.force_encoding(Encoding::UTF_8)
1052
+ end
1053
+ @normalized_userinfo
1054
+ end
1055
+
1056
+ ##
1057
+ # Sets the userinfo component for this URI.
1058
+ #
1059
+ # @param [String, #to_str] new_userinfo The new userinfo component.
1060
+ def userinfo=(new_userinfo)
1061
+ if new_userinfo && !new_userinfo.respond_to?(:to_str)
1062
+ raise TypeError, "Can't convert #{new_userinfo.class} into String."
1063
+ end
1064
+ new_user, new_password = if new_userinfo
1065
+ [
1066
+ new_userinfo.to_str.strip[/^(.*):/, 1],
1067
+ new_userinfo.to_str.strip[/:(.*)$/, 1]
1068
+ ]
1069
+ else
1070
+ [nil, nil]
1071
+ end
1072
+
1073
+ # Password assigned first to ensure validity in case of nil
1074
+ self.password = new_password
1075
+ self.user = new_user
1076
+
1077
+ # Reset dependent values
1078
+ remove_instance_variable(:@authority) if defined?(@authority)
1079
+ remove_composite_values
1080
+
1081
+ # Ensure we haven't created an invalid URI
1082
+ validate()
1083
+ end
1084
+
1085
+ ##
1086
+ # The host component for this URI.
1087
+ #
1088
+ # @return [String] The host component.
1089
+ def host
1090
+ return defined?(@host) ? @host : nil
1091
+ end
1092
+
1093
+ ##
1094
+ # The host component for this URI, normalized.
1095
+ #
1096
+ # @return [String] The host component, normalized.
1097
+ def normalized_host
1098
+ return nil unless self.host
1099
+ @normalized_host ||= begin
1100
+ if !self.host.strip.empty?
1101
+ result = ::Addressable::IDNA.to_ascii(
1102
+ URI.unencode_component(self.host.strip.downcase)
1103
+ )
1104
+ if result =~ /[^\.]\.$/
1105
+ # Single trailing dots are unnecessary.
1106
+ result = result[0...-1]
1107
+ end
1108
+ result = Addressable::URI.normalize_component(
1109
+ result,
1110
+ CharacterClasses::HOST)
1111
+ result
1112
+ else
1113
+ EMPTY_STR.dup
1114
+ end
1115
+ end
1116
+ # All normalized values should be UTF-8
1117
+ @normalized_host.force_encoding(Encoding::UTF_8) if @normalized_host
1118
+ @normalized_host
1119
+ end
1120
+
1121
+ ##
1122
+ # Sets the host component for this URI.
1123
+ #
1124
+ # @param [String, #to_str] new_host The new host component.
1125
+ def host=(new_host)
1126
+ if new_host && !new_host.respond_to?(:to_str)
1127
+ raise TypeError, "Can't convert #{new_host.class} into String."
1128
+ end
1129
+ @host = new_host ? new_host.to_str : nil
1130
+
1131
+ # Reset dependent values
1132
+ remove_instance_variable(:@authority) if defined?(@authority)
1133
+ remove_instance_variable(:@normalized_host) if defined?(@normalized_host)
1134
+ remove_composite_values
1135
+
1136
+ # Ensure we haven't created an invalid URI
1137
+ validate()
1138
+ end
1139
+
1140
+ ##
1141
+ # This method is same as URI::Generic#host except
1142
+ # brackets for IPv6 (and 'IPvFuture') addresses are removed.
1143
+ #
1144
+ # @see Addressable::URI#host
1145
+ #
1146
+ # @return [String] The hostname for this URI.
1147
+ def hostname
1148
+ v = self.host
1149
+ /\A\[(.*)\]\z/ =~ v ? $1 : v
1150
+ end
1151
+
1152
+ ##
1153
+ # This method is same as URI::Generic#host= except
1154
+ # the argument can be a bare IPv6 address (or 'IPvFuture').
1155
+ #
1156
+ # @see Addressable::URI#host=
1157
+ #
1158
+ # @param [String, #to_str] new_hostname The new hostname for this URI.
1159
+ def hostname=(new_hostname)
1160
+ if new_hostname &&
1161
+ (new_hostname.respond_to?(:ipv4?) || new_hostname.respond_to?(:ipv6?))
1162
+ new_hostname = new_hostname.to_s
1163
+ elsif new_hostname && !new_hostname.respond_to?(:to_str)
1164
+ raise TypeError, "Can't convert #{new_hostname.class} into String."
1165
+ end
1166
+ v = new_hostname ? new_hostname.to_str : nil
1167
+ v = "[#{v}]" if /\A\[.*\]\z/ !~ v && /:/ =~ v
1168
+ self.host = v
1169
+ end
1170
+
1171
+ ##
1172
+ # Returns the top-level domain for this host.
1173
+ #
1174
+ # @example
1175
+ # Addressable::URI.parse("www.example.co.uk").tld # => "co.uk"
1176
+ def tld
1177
+ PublicSuffix.parse(self.host, ignore_private: true).tld
1178
+ end
1179
+
1180
+ ##
1181
+ # Sets the top-level domain for this URI.
1182
+ #
1183
+ # @param [String, #to_str] new_tld The new top-level domain.
1184
+ def tld=(new_tld)
1185
+ replaced_tld = domain.sub(/#{tld}\z/, new_tld)
1186
+ self.host = PublicSuffix::Domain.new(replaced_tld).to_s
1187
+ end
1188
+
1189
+ ##
1190
+ # Returns the public suffix domain for this host.
1191
+ #
1192
+ # @example
1193
+ # Addressable::URI.parse("www.example.co.uk").domain # => "example.co.uk"
1194
+ def domain
1195
+ PublicSuffix.domain(self.host, ignore_private: true)
1196
+ end
1197
+
1198
+ ##
1199
+ # The authority component for this URI.
1200
+ # Combines the user, password, host, and port components.
1201
+ #
1202
+ # @return [String] The authority component.
1203
+ def authority
1204
+ self.host && @authority ||= begin
1205
+ authority = String.new
1206
+ if self.userinfo != nil
1207
+ authority << "#{self.userinfo}@"
1208
+ end
1209
+ authority << self.host
1210
+ if self.port != nil
1211
+ authority << ":#{self.port}"
1212
+ end
1213
+ authority
1214
+ end
1215
+ end
1216
+
1217
+ ##
1218
+ # The authority component for this URI, normalized.
1219
+ #
1220
+ # @return [String] The authority component, normalized.
1221
+ def normalized_authority
1222
+ return nil unless self.authority
1223
+ @normalized_authority ||= begin
1224
+ authority = String.new
1225
+ if self.normalized_userinfo != nil
1226
+ authority << "#{self.normalized_userinfo}@"
1227
+ end
1228
+ authority << self.normalized_host
1229
+ if self.normalized_port != nil
1230
+ authority << ":#{self.normalized_port}"
1231
+ end
1232
+ authority
1233
+ end
1234
+ # All normalized values should be UTF-8
1235
+ if @normalized_authority
1236
+ @normalized_authority.force_encoding(Encoding::UTF_8)
1237
+ end
1238
+ @normalized_authority
1239
+ end
1240
+
1241
+ ##
1242
+ # Sets the authority component for this URI.
1243
+ #
1244
+ # @param [String, #to_str] new_authority The new authority component.
1245
+ def authority=(new_authority)
1246
+ if new_authority
1247
+ if !new_authority.respond_to?(:to_str)
1248
+ raise TypeError, "Can't convert #{new_authority.class} into String."
1249
+ end
1250
+ new_authority = new_authority.to_str
1251
+ new_userinfo = new_authority[/^([^\[\]]*)@/, 1]
1252
+ if new_userinfo
1253
+ new_user = new_userinfo.strip[/^([^:]*):?/, 1]
1254
+ new_password = new_userinfo.strip[/:(.*)$/, 1]
1255
+ end
1256
+ new_host = new_authority.sub(
1257
+ /^([^\[\]]*)@/, EMPTY_STR
1258
+ ).sub(
1259
+ /:([^:@\[\]]*?)$/, EMPTY_STR
1260
+ )
1261
+ new_port =
1262
+ new_authority[/:([^:@\[\]]*?)$/, 1]
1263
+ end
1264
+
1265
+ # Password assigned first to ensure validity in case of nil
1266
+ self.password = defined?(new_password) ? new_password : nil
1267
+ self.user = defined?(new_user) ? new_user : nil
1268
+ self.host = defined?(new_host) ? new_host : nil
1269
+ self.port = defined?(new_port) ? new_port : nil
1270
+
1271
+ # Reset dependent values
1272
+ remove_instance_variable(:@userinfo) if defined?(@userinfo)
1273
+ remove_instance_variable(:@normalized_userinfo) if defined?(@normalized_userinfo)
1274
+ remove_composite_values
1275
+
1276
+ # Ensure we haven't created an invalid URI
1277
+ validate()
1278
+ end
1279
+
1280
+ ##
1281
+ # The origin for this URI, serialized to ASCII, as per
1282
+ # RFC 6454, section 6.2.
1283
+ #
1284
+ # @return [String] The serialized origin.
1285
+ def origin
1286
+ if self.scheme && self.authority
1287
+ if self.normalized_port
1288
+ "#{self.normalized_scheme}://#{self.normalized_host}" +
1289
+ ":#{self.normalized_port}"
1290
+ else
1291
+ "#{self.normalized_scheme}://#{self.normalized_host}"
1292
+ end
1293
+ else
1294
+ "null"
1295
+ end
1296
+ end
1297
+
1298
+ ##
1299
+ # Sets the origin for this URI, serialized to ASCII, as per
1300
+ # RFC 6454, section 6.2. This assignment will reset the `userinfo`
1301
+ # component.
1302
+ #
1303
+ # @param [String, #to_str] new_origin The new origin component.
1304
+ def origin=(new_origin)
1305
+ if new_origin
1306
+ if !new_origin.respond_to?(:to_str)
1307
+ raise TypeError, "Can't convert #{new_origin.class} into String."
1308
+ end
1309
+ new_origin = new_origin.to_str
1310
+ new_scheme = new_origin[/^([^:\/?#]+):\/\//, 1]
1311
+ unless new_scheme
1312
+ raise InvalidURIError, 'An origin cannot omit the scheme.'
1313
+ end
1314
+ new_host = new_origin[/:\/\/([^\/?#:]+)/, 1]
1315
+ unless new_host
1316
+ raise InvalidURIError, 'An origin cannot omit the host.'
1317
+ end
1318
+ new_port = new_origin[/:([^:@\[\]\/]*?)$/, 1]
1319
+ end
1320
+
1321
+ self.scheme = defined?(new_scheme) ? new_scheme : nil
1322
+ self.host = defined?(new_host) ? new_host : nil
1323
+ self.port = defined?(new_port) ? new_port : nil
1324
+ self.userinfo = nil
1325
+
1326
+ # Reset dependent values
1327
+ remove_instance_variable(:@userinfo) if defined?(@userinfo)
1328
+ remove_instance_variable(:@normalized_userinfo) if defined?(@normalized_userinfo)
1329
+ remove_instance_variable(:@authority) if defined?(@authority)
1330
+ remove_instance_variable(:@normalized_authority) if defined?(@normalized_authority)
1331
+ remove_composite_values
1332
+
1333
+ # Ensure we haven't created an invalid URI
1334
+ validate()
1335
+ end
1336
+
1337
+ # Returns an array of known ip-based schemes. These schemes typically
1338
+ # use a similar URI form:
1339
+ # <code>//<user>:<password>@<host>:<port>/<url-path></code>
1340
+ def self.ip_based_schemes
1341
+ return self.port_mapping.keys
1342
+ end
1343
+
1344
+ # Returns a hash of common IP-based schemes and their default port
1345
+ # numbers. Adding new schemes to this hash, as necessary, will allow
1346
+ # for better URI normalization.
1347
+ def self.port_mapping
1348
+ PORT_MAPPING
1349
+ end
1350
+
1351
+ ##
1352
+ # The port component for this URI.
1353
+ # This is the port number actually given in the URI. This does not
1354
+ # infer port numbers from default values.
1355
+ #
1356
+ # @return [Integer] The port component.
1357
+ def port
1358
+ return defined?(@port) ? @port : nil
1359
+ end
1360
+
1361
+ ##
1362
+ # The port component for this URI, normalized.
1363
+ #
1364
+ # @return [Integer] The port component, normalized.
1365
+ def normalized_port
1366
+ return nil unless self.port
1367
+ return @normalized_port if defined?(@normalized_port)
1368
+ @normalized_port ||= begin
1369
+ if URI.port_mapping[self.normalized_scheme] == self.port
1370
+ nil
1371
+ else
1372
+ self.port
1373
+ end
1374
+ end
1375
+ end
1376
+
1377
+ ##
1378
+ # Sets the port component for this URI.
1379
+ #
1380
+ # @param [String, Integer, #to_s] new_port The new port component.
1381
+ def port=(new_port)
1382
+ if new_port != nil && new_port.respond_to?(:to_str)
1383
+ new_port = Addressable::URI.unencode_component(new_port.to_str)
1384
+ end
1385
+
1386
+ if new_port.respond_to?(:valid_encoding?) && !new_port.valid_encoding?
1387
+ raise InvalidURIError, "Invalid encoding in port"
1388
+ end
1389
+
1390
+ if new_port != nil && !(new_port.to_s =~ /^\d+$/)
1391
+ raise InvalidURIError,
1392
+ "Invalid port number: #{new_port.inspect}"
1393
+ end
1394
+
1395
+ @port = new_port.to_s.to_i
1396
+ @port = nil if @port == 0
1397
+
1398
+ # Reset dependent values
1399
+ remove_instance_variable(:@authority) if defined?(@authority)
1400
+ remove_instance_variable(:@normalized_port) if defined?(@normalized_port)
1401
+ remove_composite_values
1402
+
1403
+ # Ensure we haven't created an invalid URI
1404
+ validate()
1405
+ end
1406
+
1407
+ ##
1408
+ # The inferred port component for this URI.
1409
+ # This method will normalize to the default port for the URI's scheme if
1410
+ # the port isn't explicitly specified in the URI.
1411
+ #
1412
+ # @return [Integer] The inferred port component.
1413
+ def inferred_port
1414
+ if self.port.to_i == 0
1415
+ self.default_port
1416
+ else
1417
+ self.port.to_i
1418
+ end
1419
+ end
1420
+
1421
+ ##
1422
+ # The default port for this URI's scheme.
1423
+ # This method will always returns the default port for the URI's scheme
1424
+ # regardless of the presence of an explicit port in the URI.
1425
+ #
1426
+ # @return [Integer] The default port.
1427
+ def default_port
1428
+ URI.port_mapping[self.scheme.strip.downcase] if self.scheme
1429
+ end
1430
+
1431
+ ##
1432
+ # The combination of components that represent a site.
1433
+ # Combines the scheme, user, password, host, and port components.
1434
+ # Primarily useful for HTTP and HTTPS.
1435
+ #
1436
+ # For example, <code>"http://example.com/path?query"</code> would have a
1437
+ # <code>site</code> value of <code>"http://example.com"</code>.
1438
+ #
1439
+ # @return [String] The components that identify a site.
1440
+ def site
1441
+ (self.scheme || self.authority) && @site ||= begin
1442
+ site_string = "".dup
1443
+ site_string << "#{self.scheme}:" if self.scheme != nil
1444
+ site_string << "//#{self.authority}" if self.authority != nil
1445
+ site_string
1446
+ end
1447
+ end
1448
+
1449
+ ##
1450
+ # The normalized combination of components that represent a site.
1451
+ # Combines the scheme, user, password, host, and port components.
1452
+ # Primarily useful for HTTP and HTTPS.
1453
+ #
1454
+ # For example, <code>"http://example.com/path?query"</code> would have a
1455
+ # <code>site</code> value of <code>"http://example.com"</code>.
1456
+ #
1457
+ # @return [String] The normalized components that identify a site.
1458
+ def normalized_site
1459
+ return nil unless self.site
1460
+ @normalized_site ||= begin
1461
+ site_string = "".dup
1462
+ if self.normalized_scheme != nil
1463
+ site_string << "#{self.normalized_scheme}:"
1464
+ end
1465
+ if self.normalized_authority != nil
1466
+ site_string << "//#{self.normalized_authority}"
1467
+ end
1468
+ site_string
1469
+ end
1470
+ # All normalized values should be UTF-8
1471
+ @normalized_site.force_encoding(Encoding::UTF_8) if @normalized_site
1472
+ @normalized_site
1473
+ end
1474
+
1475
+ ##
1476
+ # Sets the site value for this URI.
1477
+ #
1478
+ # @param [String, #to_str] new_site The new site value.
1479
+ def site=(new_site)
1480
+ if new_site
1481
+ if !new_site.respond_to?(:to_str)
1482
+ raise TypeError, "Can't convert #{new_site.class} into String."
1483
+ end
1484
+ new_site = new_site.to_str
1485
+ # These two regular expressions derived from the primary parsing
1486
+ # expression
1487
+ self.scheme = new_site[/^(?:([^:\/?#]+):)?(?:\/\/(?:[^\/?#]*))?$/, 1]
1488
+ self.authority = new_site[
1489
+ /^(?:(?:[^:\/?#]+):)?(?:\/\/([^\/?#]*))?$/, 1
1490
+ ]
1491
+ else
1492
+ self.scheme = nil
1493
+ self.authority = nil
1494
+ end
1495
+ end
1496
+
1497
+ ##
1498
+ # The path component for this URI.
1499
+ #
1500
+ # @return [String] The path component.
1501
+ def path
1502
+ return defined?(@path) ? @path : EMPTY_STR
1503
+ end
1504
+
1505
+ NORMPATH = /^(?!\/)[^\/:]*:.*$/
1506
+ ##
1507
+ # The path component for this URI, normalized.
1508
+ #
1509
+ # @return [String] The path component, normalized.
1510
+ def normalized_path
1511
+ @normalized_path ||= begin
1512
+ path = self.path.to_s
1513
+ if self.scheme == nil && path =~ NORMPATH
1514
+ # Relative paths with colons in the first segment are ambiguous.
1515
+ path = path.sub(":", "%2F")
1516
+ end
1517
+ # String#split(delimeter, -1) uses the more strict splitting behavior
1518
+ # found by default in Python.
1519
+ result = path.strip.split(SLASH, -1).map do |segment|
1520
+ Addressable::URI.normalize_component(
1521
+ segment,
1522
+ Addressable::URI::CharacterClasses::PCHAR
1523
+ )
1524
+ end.join(SLASH)
1525
+
1526
+ result = URI.normalize_path(result)
1527
+ if result.empty? &&
1528
+ ["http", "https", "ftp", "tftp"].include?(self.normalized_scheme)
1529
+ result = SLASH.dup
1530
+ end
1531
+ result
1532
+ end
1533
+ # All normalized values should be UTF-8
1534
+ @normalized_path.force_encoding(Encoding::UTF_8) if @normalized_path
1535
+ @normalized_path
1536
+ end
1537
+
1538
+ ##
1539
+ # Sets the path component for this URI.
1540
+ #
1541
+ # @param [String, #to_str] new_path The new path component.
1542
+ def path=(new_path)
1543
+ if new_path && !new_path.respond_to?(:to_str)
1544
+ raise TypeError, "Can't convert #{new_path.class} into String."
1545
+ end
1546
+ @path = (new_path || EMPTY_STR).to_str
1547
+ if !@path.empty? && @path[0..0] != SLASH && host != nil
1548
+ @path = "/#{@path}"
1549
+ end
1550
+
1551
+ # Reset dependent values
1552
+ remove_instance_variable(:@normalized_path) if defined?(@normalized_path)
1553
+ remove_composite_values
1554
+
1555
+ # Ensure we haven't created an invalid URI
1556
+ validate()
1557
+ end
1558
+
1559
+ ##
1560
+ # The basename, if any, of the file in the path component.
1561
+ #
1562
+ # @return [String] The path's basename.
1563
+ def basename
1564
+ # Path cannot be nil
1565
+ return File.basename(self.path).sub(/;[^\/]*$/, EMPTY_STR)
1566
+ end
1567
+
1568
+ ##
1569
+ # The extname, if any, of the file in the path component.
1570
+ # Empty string if there is no extension.
1571
+ #
1572
+ # @return [String] The path's extname.
1573
+ def extname
1574
+ return nil unless self.path
1575
+ return File.extname(self.basename)
1576
+ end
1577
+
1578
+ ##
1579
+ # The query component for this URI.
1580
+ #
1581
+ # @return [String] The query component.
1582
+ def query
1583
+ return defined?(@query) ? @query : nil
1584
+ end
1585
+
1586
+ ##
1587
+ # The query component for this URI, normalized.
1588
+ #
1589
+ # @return [String] The query component, normalized.
1590
+ def normalized_query(*flags)
1591
+ return nil unless self.query
1592
+ return @normalized_query if defined?(@normalized_query)
1593
+ @normalized_query ||= begin
1594
+ modified_query_class = Addressable::URI::CharacterClasses::QUERY.dup
1595
+ # Make sure possible key-value pair delimiters are escaped.
1596
+ modified_query_class.sub!("\\&", "").sub!("\\;", "")
1597
+ pairs = (self.query || "").split("&", -1)
1598
+ pairs.sort! if flags.include?(:sorted)
1599
+ component = pairs.map do |pair|
1600
+ Addressable::URI.normalize_component(pair, modified_query_class, "+")
1601
+ end.join("&")
1602
+ component == "" ? nil : component
1603
+ end
1604
+ # All normalized values should be UTF-8
1605
+ @normalized_query.force_encoding(Encoding::UTF_8) if @normalized_query
1606
+ @normalized_query
1607
+ end
1608
+
1609
+ ##
1610
+ # Sets the query component for this URI.
1611
+ #
1612
+ # @param [String, #to_str] new_query The new query component.
1613
+ def query=(new_query)
1614
+ if new_query && !new_query.respond_to?(:to_str)
1615
+ raise TypeError, "Can't convert #{new_query.class} into String."
1616
+ end
1617
+ @query = new_query ? new_query.to_str : nil
1618
+
1619
+ # Reset dependent values
1620
+ remove_instance_variable(:@normalized_query) if defined?(@normalized_query)
1621
+ remove_composite_values
1622
+ end
1623
+
1624
+ ##
1625
+ # Converts the query component to a Hash value.
1626
+ #
1627
+ # @param [Class] return_type The return type desired. Value must be either
1628
+ # `Hash` or `Array`.
1629
+ #
1630
+ # @return [Hash, Array, nil] The query string parsed as a Hash or Array
1631
+ # or nil if the query string is blank.
1632
+ #
1633
+ # @example
1634
+ # Addressable::URI.parse("?one=1&two=2&three=3").query_values
1635
+ # #=> {"one" => "1", "two" => "2", "three" => "3"}
1636
+ # Addressable::URI.parse("?one=two&one=three").query_values(Array)
1637
+ # #=> [["one", "two"], ["one", "three"]]
1638
+ # Addressable::URI.parse("?one=two&one=three").query_values(Hash)
1639
+ # #=> {"one" => "three"}
1640
+ # Addressable::URI.parse("?").query_values
1641
+ # #=> {}
1642
+ # Addressable::URI.parse("").query_values
1643
+ # #=> nil
1644
+ def query_values(return_type=Hash)
1645
+ empty_accumulator = Array == return_type ? [] : {}
1646
+ if return_type != Hash && return_type != Array
1647
+ raise ArgumentError, "Invalid return type. Must be Hash or Array."
1648
+ end
1649
+ return nil if self.query == nil
1650
+ split_query = self.query.split("&").map do |pair|
1651
+ pair.split("=", 2) if pair && !pair.empty?
1652
+ end.compact
1653
+ return split_query.inject(empty_accumulator.dup) do |accu, pair|
1654
+ # I'd rather use key/value identifiers instead of array lookups,
1655
+ # but in this case I really want to maintain the exact pair structure,
1656
+ # so it's best to make all changes in-place.
1657
+ pair[0] = URI.unencode_component(pair[0])
1658
+ if pair[1].respond_to?(:to_str)
1659
+ # I loathe the fact that I have to do this. Stupid HTML 4.01.
1660
+ # Treating '+' as a space was just an unbelievably bad idea.
1661
+ # There was nothing wrong with '%20'!
1662
+ # If it ain't broke, don't fix it!
1663
+ pair[1] = URI.unencode_component(pair[1].to_str.gsub(/\+/, " "))
1664
+ end
1665
+ if return_type == Hash
1666
+ accu[pair[0]] = pair[1]
1667
+ else
1668
+ accu << pair
1669
+ end
1670
+ accu
1671
+ end
1672
+ end
1673
+
1674
+ ##
1675
+ # Sets the query component for this URI from a Hash object.
1676
+ # An empty Hash or Array will result in an empty query string.
1677
+ #
1678
+ # @param [Hash, #to_hash, Array] new_query_values The new query values.
1679
+ #
1680
+ # @example
1681
+ # uri.query_values = {:a => "a", :b => ["c", "d", "e"]}
1682
+ # uri.query
1683
+ # # => "a=a&b=c&b=d&b=e"
1684
+ # uri.query_values = [['a', 'a'], ['b', 'c'], ['b', 'd'], ['b', 'e']]
1685
+ # uri.query
1686
+ # # => "a=a&b=c&b=d&b=e"
1687
+ # uri.query_values = [['a', 'a'], ['b', ['c', 'd', 'e']]]
1688
+ # uri.query
1689
+ # # => "a=a&b=c&b=d&b=e"
1690
+ # uri.query_values = [['flag'], ['key', 'value']]
1691
+ # uri.query
1692
+ # # => "flag&key=value"
1693
+ def query_values=(new_query_values)
1694
+ if new_query_values == nil
1695
+ self.query = nil
1696
+ return nil
1697
+ end
1698
+
1699
+ if !new_query_values.is_a?(Array)
1700
+ if !new_query_values.respond_to?(:to_hash)
1701
+ raise TypeError,
1702
+ "Can't convert #{new_query_values.class} into Hash."
1703
+ end
1704
+ new_query_values = new_query_values.to_hash
1705
+ new_query_values = new_query_values.map do |key, value|
1706
+ key = key.to_s if key.kind_of?(Symbol)
1707
+ [key, value]
1708
+ end
1709
+ # Useful default for OAuth and caching.
1710
+ # Only to be used for non-Array inputs. Arrays should preserve order.
1711
+ new_query_values.sort!
1712
+ end
1713
+
1714
+ # new_query_values have form [['key1', 'value1'], ['key2', 'value2']]
1715
+ buffer = "".dup
1716
+ new_query_values.each do |key, value|
1717
+ encoded_key = URI.encode_component(
1718
+ key, CharacterClasses::UNRESERVED
1719
+ )
1720
+ if value == nil
1721
+ buffer << "#{encoded_key}&"
1722
+ elsif value.kind_of?(Array)
1723
+ value.each do |sub_value|
1724
+ encoded_value = URI.encode_component(
1725
+ sub_value, CharacterClasses::UNRESERVED
1726
+ )
1727
+ buffer << "#{encoded_key}=#{encoded_value}&"
1728
+ end
1729
+ else
1730
+ encoded_value = URI.encode_component(
1731
+ value, CharacterClasses::UNRESERVED
1732
+ )
1733
+ buffer << "#{encoded_key}=#{encoded_value}&"
1734
+ end
1735
+ end
1736
+ self.query = buffer.chop
1737
+ end
1738
+
1739
+ ##
1740
+ # The HTTP request URI for this URI. This is the path and the
1741
+ # query string.
1742
+ #
1743
+ # @return [String] The request URI required for an HTTP request.
1744
+ def request_uri
1745
+ return nil if self.absolute? && self.scheme !~ /^https?$/i
1746
+ return (
1747
+ (!self.path.empty? ? self.path : SLASH) +
1748
+ (self.query ? "?#{self.query}" : EMPTY_STR)
1749
+ )
1750
+ end
1751
+
1752
+ ##
1753
+ # Sets the HTTP request URI for this URI.
1754
+ #
1755
+ # @param [String, #to_str] new_request_uri The new HTTP request URI.
1756
+ def request_uri=(new_request_uri)
1757
+ if !new_request_uri.respond_to?(:to_str)
1758
+ raise TypeError, "Can't convert #{new_request_uri.class} into String."
1759
+ end
1760
+ if self.absolute? && self.scheme !~ /^https?$/i
1761
+ raise InvalidURIError,
1762
+ "Cannot set an HTTP request URI for a non-HTTP URI."
1763
+ end
1764
+ new_request_uri = new_request_uri.to_str
1765
+ path_component = new_request_uri[/^([^\?]*)\??(?:.*)$/, 1]
1766
+ query_component = new_request_uri[/^(?:[^\?]*)\?(.*)$/, 1]
1767
+ path_component = path_component.to_s
1768
+ path_component = (!path_component.empty? ? path_component : SLASH)
1769
+ self.path = path_component
1770
+ self.query = query_component
1771
+
1772
+ # Reset dependent values
1773
+ remove_composite_values
1774
+ end
1775
+
1776
+ ##
1777
+ # The fragment component for this URI.
1778
+ #
1779
+ # @return [String] The fragment component.
1780
+ def fragment
1781
+ return defined?(@fragment) ? @fragment : nil
1782
+ end
1783
+
1784
+ ##
1785
+ # The fragment component for this URI, normalized.
1786
+ #
1787
+ # @return [String] The fragment component, normalized.
1788
+ def normalized_fragment
1789
+ return nil unless self.fragment
1790
+ return @normalized_fragment if defined?(@normalized_fragment)
1791
+ @normalized_fragment ||= begin
1792
+ component = Addressable::URI.normalize_component(
1793
+ self.fragment,
1794
+ Addressable::URI::CharacterClasses::FRAGMENT
1795
+ )
1796
+ component == "" ? nil : component
1797
+ end
1798
+ # All normalized values should be UTF-8
1799
+ if @normalized_fragment
1800
+ @normalized_fragment.force_encoding(Encoding::UTF_8)
1801
+ end
1802
+ @normalized_fragment
1803
+ end
1804
+
1805
+ ##
1806
+ # Sets the fragment component for this URI.
1807
+ #
1808
+ # @param [String, #to_str] new_fragment The new fragment component.
1809
+ def fragment=(new_fragment)
1810
+ if new_fragment && !new_fragment.respond_to?(:to_str)
1811
+ raise TypeError, "Can't convert #{new_fragment.class} into String."
1812
+ end
1813
+ @fragment = new_fragment ? new_fragment.to_str : nil
1814
+
1815
+ # Reset dependent values
1816
+ remove_instance_variable(:@normalized_fragment) if defined?(@normalized_fragment)
1817
+ remove_composite_values
1818
+
1819
+ # Ensure we haven't created an invalid URI
1820
+ validate()
1821
+ end
1822
+
1823
+ ##
1824
+ # Determines if the scheme indicates an IP-based protocol.
1825
+ #
1826
+ # @return [TrueClass, FalseClass]
1827
+ # <code>true</code> if the scheme indicates an IP-based protocol.
1828
+ # <code>false</code> otherwise.
1829
+ def ip_based?
1830
+ if self.scheme
1831
+ return URI.ip_based_schemes.include?(
1832
+ self.scheme.strip.downcase)
1833
+ end
1834
+ return false
1835
+ end
1836
+
1837
+ ##
1838
+ # Determines if the URI is relative.
1839
+ #
1840
+ # @return [TrueClass, FalseClass]
1841
+ # <code>true</code> if the URI is relative. <code>false</code>
1842
+ # otherwise.
1843
+ def relative?
1844
+ return self.scheme.nil?
1845
+ end
1846
+
1847
+ ##
1848
+ # Determines if the URI is absolute.
1849
+ #
1850
+ # @return [TrueClass, FalseClass]
1851
+ # <code>true</code> if the URI is absolute. <code>false</code>
1852
+ # otherwise.
1853
+ def absolute?
1854
+ return !relative?
1855
+ end
1856
+
1857
+ ##
1858
+ # Joins two URIs together.
1859
+ #
1860
+ # @param [String, Addressable::URI, #to_str] The URI to join with.
1861
+ #
1862
+ # @return [Addressable::URI] The joined URI.
1863
+ def join(uri)
1864
+ if !uri.respond_to?(:to_str)
1865
+ raise TypeError, "Can't convert #{uri.class} into String."
1866
+ end
1867
+ if !uri.kind_of?(URI)
1868
+ # Otherwise, convert to a String, then parse.
1869
+ uri = URI.parse(uri.to_str)
1870
+ end
1871
+ if uri.to_s.empty?
1872
+ return self.dup
1873
+ end
1874
+
1875
+ joined_scheme = nil
1876
+ joined_user = nil
1877
+ joined_password = nil
1878
+ joined_host = nil
1879
+ joined_port = nil
1880
+ joined_path = nil
1881
+ joined_query = nil
1882
+ joined_fragment = nil
1883
+
1884
+ # Section 5.2.2 of RFC 3986
1885
+ if uri.scheme != nil
1886
+ joined_scheme = uri.scheme
1887
+ joined_user = uri.user
1888
+ joined_password = uri.password
1889
+ joined_host = uri.host
1890
+ joined_port = uri.port
1891
+ joined_path = URI.normalize_path(uri.path)
1892
+ joined_query = uri.query
1893
+ else
1894
+ if uri.authority != nil
1895
+ joined_user = uri.user
1896
+ joined_password = uri.password
1897
+ joined_host = uri.host
1898
+ joined_port = uri.port
1899
+ joined_path = URI.normalize_path(uri.path)
1900
+ joined_query = uri.query
1901
+ else
1902
+ if uri.path == nil || uri.path.empty?
1903
+ joined_path = self.path
1904
+ if uri.query != nil
1905
+ joined_query = uri.query
1906
+ else
1907
+ joined_query = self.query
1908
+ end
1909
+ else
1910
+ if uri.path[0..0] == SLASH
1911
+ joined_path = URI.normalize_path(uri.path)
1912
+ else
1913
+ base_path = self.path.dup
1914
+ base_path = EMPTY_STR if base_path == nil
1915
+ base_path = URI.normalize_path(base_path)
1916
+
1917
+ # Section 5.2.3 of RFC 3986
1918
+ #
1919
+ # Removes the right-most path segment from the base path.
1920
+ if base_path =~ /\//
1921
+ base_path.sub!(/\/[^\/]+$/, SLASH)
1922
+ else
1923
+ base_path = EMPTY_STR
1924
+ end
1925
+
1926
+ # If the base path is empty and an authority segment has been
1927
+ # defined, use a base path of SLASH
1928
+ if base_path.empty? && self.authority != nil
1929
+ base_path = SLASH
1930
+ end
1931
+
1932
+ joined_path = URI.normalize_path(base_path + uri.path)
1933
+ end
1934
+ joined_query = uri.query
1935
+ end
1936
+ joined_user = self.user
1937
+ joined_password = self.password
1938
+ joined_host = self.host
1939
+ joined_port = self.port
1940
+ end
1941
+ joined_scheme = self.scheme
1942
+ end
1943
+ joined_fragment = uri.fragment
1944
+
1945
+ return self.class.new(
1946
+ :scheme => joined_scheme,
1947
+ :user => joined_user,
1948
+ :password => joined_password,
1949
+ :host => joined_host,
1950
+ :port => joined_port,
1951
+ :path => joined_path,
1952
+ :query => joined_query,
1953
+ :fragment => joined_fragment
1954
+ )
1955
+ end
1956
+ alias_method :+, :join
1957
+
1958
+ ##
1959
+ # Destructive form of <code>join</code>.
1960
+ #
1961
+ # @param [String, Addressable::URI, #to_str] The URI to join with.
1962
+ #
1963
+ # @return [Addressable::URI] The joined URI.
1964
+ #
1965
+ # @see Addressable::URI#join
1966
+ def join!(uri)
1967
+ replace_self(self.join(uri))
1968
+ end
1969
+
1970
+ ##
1971
+ # Merges a URI with a <code>Hash</code> of components.
1972
+ # This method has different behavior from <code>join</code>. Any
1973
+ # components present in the <code>hash</code> parameter will override the
1974
+ # original components. The path component is not treated specially.
1975
+ #
1976
+ # @param [Hash, Addressable::URI, #to_hash] The components to merge with.
1977
+ #
1978
+ # @return [Addressable::URI] The merged URI.
1979
+ #
1980
+ # @see Hash#merge
1981
+ def merge(hash)
1982
+ if !hash.respond_to?(:to_hash)
1983
+ raise TypeError, "Can't convert #{hash.class} into Hash."
1984
+ end
1985
+ hash = hash.to_hash
1986
+
1987
+ if hash.has_key?(:authority)
1988
+ if (hash.keys & [:userinfo, :user, :password, :host, :port]).any?
1989
+ raise ArgumentError,
1990
+ "Cannot specify both an authority and any of the components " +
1991
+ "within the authority."
1992
+ end
1993
+ end
1994
+ if hash.has_key?(:userinfo)
1995
+ if (hash.keys & [:user, :password]).any?
1996
+ raise ArgumentError,
1997
+ "Cannot specify both a userinfo and either the user or password."
1998
+ end
1999
+ end
2000
+
2001
+ uri = self.class.new
2002
+ uri.defer_validation do
2003
+ # Bunch of crazy logic required because of the composite components
2004
+ # like userinfo and authority.
2005
+ uri.scheme =
2006
+ hash.has_key?(:scheme) ? hash[:scheme] : self.scheme
2007
+ if hash.has_key?(:authority)
2008
+ uri.authority =
2009
+ hash.has_key?(:authority) ? hash[:authority] : self.authority
2010
+ end
2011
+ if hash.has_key?(:userinfo)
2012
+ uri.userinfo =
2013
+ hash.has_key?(:userinfo) ? hash[:userinfo] : self.userinfo
2014
+ end
2015
+ if !hash.has_key?(:userinfo) && !hash.has_key?(:authority)
2016
+ uri.user =
2017
+ hash.has_key?(:user) ? hash[:user] : self.user
2018
+ uri.password =
2019
+ hash.has_key?(:password) ? hash[:password] : self.password
2020
+ end
2021
+ if !hash.has_key?(:authority)
2022
+ uri.host =
2023
+ hash.has_key?(:host) ? hash[:host] : self.host
2024
+ uri.port =
2025
+ hash.has_key?(:port) ? hash[:port] : self.port
2026
+ end
2027
+ uri.path =
2028
+ hash.has_key?(:path) ? hash[:path] : self.path
2029
+ uri.query =
2030
+ hash.has_key?(:query) ? hash[:query] : self.query
2031
+ uri.fragment =
2032
+ hash.has_key?(:fragment) ? hash[:fragment] : self.fragment
2033
+ end
2034
+
2035
+ return uri
2036
+ end
2037
+
2038
+ ##
2039
+ # Destructive form of <code>merge</code>.
2040
+ #
2041
+ # @param [Hash, Addressable::URI, #to_hash] The components to merge with.
2042
+ #
2043
+ # @return [Addressable::URI] The merged URI.
2044
+ #
2045
+ # @see Addressable::URI#merge
2046
+ def merge!(uri)
2047
+ replace_self(self.merge(uri))
2048
+ end
2049
+
2050
+ ##
2051
+ # Returns the shortest normalized relative form of this URI that uses the
2052
+ # supplied URI as a base for resolution. Returns an absolute URI if
2053
+ # necessary. This is effectively the opposite of <code>route_to</code>.
2054
+ #
2055
+ # @param [String, Addressable::URI, #to_str] uri The URI to route from.
2056
+ #
2057
+ # @return [Addressable::URI]
2058
+ # The normalized relative URI that is equivalent to the original URI.
2059
+ def route_from(uri)
2060
+ uri = URI.parse(uri).normalize
2061
+ normalized_self = self.normalize
2062
+ if normalized_self.relative?
2063
+ raise ArgumentError, "Expected absolute URI, got: #{self.to_s}"
2064
+ end
2065
+ if uri.relative?
2066
+ raise ArgumentError, "Expected absolute URI, got: #{uri.to_s}"
2067
+ end
2068
+ if normalized_self == uri
2069
+ return Addressable::URI.parse("##{normalized_self.fragment}")
2070
+ end
2071
+ components = normalized_self.to_hash
2072
+ if normalized_self.scheme == uri.scheme
2073
+ components[:scheme] = nil
2074
+ if normalized_self.authority == uri.authority
2075
+ components[:user] = nil
2076
+ components[:password] = nil
2077
+ components[:host] = nil
2078
+ components[:port] = nil
2079
+ if normalized_self.path == uri.path
2080
+ components[:path] = nil
2081
+ if normalized_self.query == uri.query
2082
+ components[:query] = nil
2083
+ end
2084
+ else
2085
+ if uri.path != SLASH and components[:path]
2086
+ self_splitted_path = split_path(components[:path])
2087
+ uri_splitted_path = split_path(uri.path)
2088
+ self_dir = self_splitted_path.shift
2089
+ uri_dir = uri_splitted_path.shift
2090
+ while !self_splitted_path.empty? && !uri_splitted_path.empty? and self_dir == uri_dir
2091
+ self_dir = self_splitted_path.shift
2092
+ uri_dir = uri_splitted_path.shift
2093
+ end
2094
+ components[:path] = (uri_splitted_path.fill('..') + [self_dir] + self_splitted_path).join(SLASH)
2095
+ end
2096
+ end
2097
+ end
2098
+ end
2099
+ # Avoid network-path references.
2100
+ if components[:host] != nil
2101
+ components[:scheme] = normalized_self.scheme
2102
+ end
2103
+ return Addressable::URI.new(
2104
+ :scheme => components[:scheme],
2105
+ :user => components[:user],
2106
+ :password => components[:password],
2107
+ :host => components[:host],
2108
+ :port => components[:port],
2109
+ :path => components[:path],
2110
+ :query => components[:query],
2111
+ :fragment => components[:fragment]
2112
+ )
2113
+ end
2114
+
2115
+ ##
2116
+ # Returns the shortest normalized relative form of the supplied URI that
2117
+ # uses this URI as a base for resolution. Returns an absolute URI if
2118
+ # necessary. This is effectively the opposite of <code>route_from</code>.
2119
+ #
2120
+ # @param [String, Addressable::URI, #to_str] uri The URI to route to.
2121
+ #
2122
+ # @return [Addressable::URI]
2123
+ # The normalized relative URI that is equivalent to the supplied URI.
2124
+ def route_to(uri)
2125
+ return URI.parse(uri).route_from(self)
2126
+ end
2127
+
2128
+ ##
2129
+ # Returns a normalized URI object.
2130
+ #
2131
+ # NOTE: This method does not attempt to fully conform to specifications.
2132
+ # It exists largely to correct other people's failures to read the
2133
+ # specifications, and also to deal with caching issues since several
2134
+ # different URIs may represent the same resource and should not be
2135
+ # cached multiple times.
2136
+ #
2137
+ # @return [Addressable::URI] The normalized URI.
2138
+ def normalize
2139
+ # This is a special exception for the frequently misused feed
2140
+ # URI scheme.
2141
+ if normalized_scheme == "feed"
2142
+ if self.to_s =~ /^feed:\/*http:\/*/
2143
+ return URI.parse(
2144
+ self.to_s[/^feed:\/*(http:\/*.*)/, 1]
2145
+ ).normalize
2146
+ end
2147
+ end
2148
+
2149
+ return self.class.new(
2150
+ :scheme => normalized_scheme,
2151
+ :authority => normalized_authority,
2152
+ :path => normalized_path,
2153
+ :query => normalized_query,
2154
+ :fragment => normalized_fragment
2155
+ )
2156
+ end
2157
+
2158
+ ##
2159
+ # Destructively normalizes this URI object.
2160
+ #
2161
+ # @return [Addressable::URI] The normalized URI.
2162
+ #
2163
+ # @see Addressable::URI#normalize
2164
+ def normalize!
2165
+ replace_self(self.normalize)
2166
+ end
2167
+
2168
+ ##
2169
+ # Creates a URI suitable for display to users. If semantic attacks are
2170
+ # likely, the application should try to detect these and warn the user.
2171
+ # See <a href="http://www.ietf.org/rfc/rfc3986.txt">RFC 3986</a>,
2172
+ # section 7.6 for more information.
2173
+ #
2174
+ # @return [Addressable::URI] A URI suitable for display purposes.
2175
+ def display_uri
2176
+ display_uri = self.normalize
2177
+ display_uri.host = ::Addressable::IDNA.to_unicode(display_uri.host)
2178
+ return display_uri
2179
+ end
2180
+
2181
+ ##
2182
+ # Returns <code>true</code> if the URI objects are equal. This method
2183
+ # normalizes both URIs before doing the comparison, and allows comparison
2184
+ # against <code>Strings</code>.
2185
+ #
2186
+ # @param [Object] uri The URI to compare.
2187
+ #
2188
+ # @return [TrueClass, FalseClass]
2189
+ # <code>true</code> if the URIs are equivalent, <code>false</code>
2190
+ # otherwise.
2191
+ def ===(uri)
2192
+ if uri.respond_to?(:normalize)
2193
+ uri_string = uri.normalize.to_s
2194
+ else
2195
+ begin
2196
+ uri_string = ::Addressable::URI.parse(uri).normalize.to_s
2197
+ rescue InvalidURIError, TypeError
2198
+ return false
2199
+ end
2200
+ end
2201
+ return self.normalize.to_s == uri_string
2202
+ end
2203
+
2204
+ ##
2205
+ # Returns <code>true</code> if the URI objects are equal. This method
2206
+ # normalizes both URIs before doing the comparison.
2207
+ #
2208
+ # @param [Object] uri The URI to compare.
2209
+ #
2210
+ # @return [TrueClass, FalseClass]
2211
+ # <code>true</code> if the URIs are equivalent, <code>false</code>
2212
+ # otherwise.
2213
+ def ==(uri)
2214
+ return false unless uri.kind_of?(URI)
2215
+ return self.normalize.to_s == uri.normalize.to_s
2216
+ end
2217
+
2218
+ ##
2219
+ # Returns <code>true</code> if the URI objects are equal. This method
2220
+ # does NOT normalize either URI before doing the comparison.
2221
+ #
2222
+ # @param [Object] uri The URI to compare.
2223
+ #
2224
+ # @return [TrueClass, FalseClass]
2225
+ # <code>true</code> if the URIs are equivalent, <code>false</code>
2226
+ # otherwise.
2227
+ def eql?(uri)
2228
+ return false unless uri.kind_of?(URI)
2229
+ return self.to_s == uri.to_s
2230
+ end
2231
+
2232
+ ##
2233
+ # A hash value that will make a URI equivalent to its normalized
2234
+ # form.
2235
+ #
2236
+ # @return [Integer] A hash of the URI.
2237
+ def hash
2238
+ @hash ||= self.to_s.hash * -1
2239
+ end
2240
+
2241
+ ##
2242
+ # Clones the URI object.
2243
+ #
2244
+ # @return [Addressable::URI] The cloned URI.
2245
+ def dup
2246
+ duplicated_uri = self.class.new(
2247
+ :scheme => self.scheme ? self.scheme.dup : nil,
2248
+ :user => self.user ? self.user.dup : nil,
2249
+ :password => self.password ? self.password.dup : nil,
2250
+ :host => self.host ? self.host.dup : nil,
2251
+ :port => self.port,
2252
+ :path => self.path ? self.path.dup : nil,
2253
+ :query => self.query ? self.query.dup : nil,
2254
+ :fragment => self.fragment ? self.fragment.dup : nil
2255
+ )
2256
+ return duplicated_uri
2257
+ end
2258
+
2259
+ ##
2260
+ # Omits components from a URI.
2261
+ #
2262
+ # @param [Symbol] *components The components to be omitted.
2263
+ #
2264
+ # @return [Addressable::URI] The URI with components omitted.
2265
+ #
2266
+ # @example
2267
+ # uri = Addressable::URI.parse("http://example.com/path?query")
2268
+ # #=> #<Addressable::URI:0xcc5e7a URI:http://example.com/path?query>
2269
+ # uri.omit(:scheme, :authority)
2270
+ # #=> #<Addressable::URI:0xcc4d86 URI:/path?query>
2271
+ def omit(*components)
2272
+ invalid_components = components - [
2273
+ :scheme, :user, :password, :userinfo, :host, :port, :authority,
2274
+ :path, :query, :fragment
2275
+ ]
2276
+ unless invalid_components.empty?
2277
+ raise ArgumentError,
2278
+ "Invalid component names: #{invalid_components.inspect}."
2279
+ end
2280
+ duplicated_uri = self.dup
2281
+ duplicated_uri.defer_validation do
2282
+ components.each do |component|
2283
+ duplicated_uri.send((component.to_s + "=").to_sym, nil)
2284
+ end
2285
+ duplicated_uri.user = duplicated_uri.normalized_user
2286
+ end
2287
+ duplicated_uri
2288
+ end
2289
+
2290
+ ##
2291
+ # Destructive form of omit.
2292
+ #
2293
+ # @param [Symbol] *components The components to be omitted.
2294
+ #
2295
+ # @return [Addressable::URI] The URI with components omitted.
2296
+ #
2297
+ # @see Addressable::URI#omit
2298
+ def omit!(*components)
2299
+ replace_self(self.omit(*components))
2300
+ end
2301
+
2302
+ ##
2303
+ # Determines if the URI is an empty string.
2304
+ #
2305
+ # @return [TrueClass, FalseClass]
2306
+ # Returns <code>true</code> if empty, <code>false</code> otherwise.
2307
+ def empty?
2308
+ return self.to_s.empty?
2309
+ end
2310
+
2311
+ ##
2312
+ # Converts the URI to a <code>String</code>.
2313
+ #
2314
+ # @return [String] The URI's <code>String</code> representation.
2315
+ def to_s
2316
+ if self.scheme == nil && self.path != nil && !self.path.empty? &&
2317
+ self.path =~ NORMPATH
2318
+ raise InvalidURIError,
2319
+ "Cannot assemble URI string with ambiguous path: '#{self.path}'"
2320
+ end
2321
+ @uri_string ||= begin
2322
+ uri_string = String.new
2323
+ uri_string << "#{self.scheme}:" if self.scheme != nil
2324
+ uri_string << "//#{self.authority}" if self.authority != nil
2325
+ uri_string << self.path.to_s
2326
+ uri_string << "?#{self.query}" if self.query != nil
2327
+ uri_string << "##{self.fragment}" if self.fragment != nil
2328
+ uri_string.force_encoding(Encoding::UTF_8)
2329
+ uri_string
2330
+ end
2331
+ end
2332
+
2333
+ ##
2334
+ # URI's are glorified <code>Strings</code>. Allow implicit conversion.
2335
+ alias_method :to_str, :to_s
2336
+
2337
+ ##
2338
+ # Returns a Hash of the URI components.
2339
+ #
2340
+ # @return [Hash] The URI as a <code>Hash</code> of components.
2341
+ def to_hash
2342
+ return {
2343
+ :scheme => self.scheme,
2344
+ :user => self.user,
2345
+ :password => self.password,
2346
+ :host => self.host,
2347
+ :port => self.port,
2348
+ :path => self.path,
2349
+ :query => self.query,
2350
+ :fragment => self.fragment
2351
+ }
2352
+ end
2353
+
2354
+ ##
2355
+ # Returns a <code>String</code> representation of the URI object's state.
2356
+ #
2357
+ # @return [String] The URI object's state, as a <code>String</code>.
2358
+ def inspect
2359
+ sprintf("#<%s:%#0x URI:%s>", URI.to_s, self.object_id, self.to_s)
2360
+ end
2361
+
2362
+ ##
2363
+ # This method allows you to make several changes to a URI simultaneously,
2364
+ # which separately would cause validation errors, but in conjunction,
2365
+ # are valid. The URI will be revalidated as soon as the entire block has
2366
+ # been executed.
2367
+ #
2368
+ # @param [Proc] block
2369
+ # A set of operations to perform on a given URI.
2370
+ def defer_validation(&block)
2371
+ raise LocalJumpError, "No block given." unless block
2372
+ @validation_deferred = true
2373
+ block.call()
2374
+ @validation_deferred = false
2375
+ validate
2376
+ return nil
2377
+ end
2378
+
2379
+ protected
2380
+ SELF_REF = '.'
2381
+ PARENT = '..'
2382
+
2383
+ RULE_2A = /\/\.\/|\/\.$/
2384
+ RULE_2B_2C = /\/([^\/]*)\/\.\.\/|\/([^\/]*)\/\.\.$/
2385
+ RULE_2D = /^\.\.?\/?/
2386
+ RULE_PREFIXED_PARENT = /^\/\.\.?\/|^(\/\.\.?)+\/?$/
2387
+
2388
+ ##
2389
+ # Resolves paths to their simplest form.
2390
+ #
2391
+ # @param [String] path The path to normalize.
2392
+ #
2393
+ # @return [String] The normalized path.
2394
+ def self.normalize_path(path)
2395
+ # Section 5.2.4 of RFC 3986
2396
+
2397
+ return nil if path.nil?
2398
+ normalized_path = path.dup
2399
+ begin
2400
+ mod = nil
2401
+ mod ||= normalized_path.gsub!(RULE_2A, SLASH)
2402
+
2403
+ pair = normalized_path.match(RULE_2B_2C)
2404
+ parent, current = pair[1], pair[2] if pair
2405
+ if pair && ((parent != SELF_REF && parent != PARENT) ||
2406
+ (current != SELF_REF && current != PARENT))
2407
+ mod ||= normalized_path.gsub!(
2408
+ Regexp.new(
2409
+ "/#{Regexp.escape(parent.to_s)}/\\.\\./|" +
2410
+ "(/#{Regexp.escape(current.to_s)}/\\.\\.$)"
2411
+ ), SLASH
2412
+ )
2413
+ end
2414
+
2415
+ mod ||= normalized_path.gsub!(RULE_2D, EMPTY_STR)
2416
+ # Non-standard, removes prefixed dotted segments from path.
2417
+ mod ||= normalized_path.gsub!(RULE_PREFIXED_PARENT, SLASH)
2418
+ end until mod.nil?
2419
+
2420
+ return normalized_path
2421
+ end
2422
+
2423
+ ##
2424
+ # Ensures that the URI is valid.
2425
+ def validate
2426
+ return if !!@validation_deferred
2427
+ if self.scheme != nil && self.ip_based? &&
2428
+ (self.host == nil || self.host.empty?) &&
2429
+ (self.path == nil || self.path.empty?)
2430
+ raise InvalidURIError,
2431
+ "Absolute URI missing hierarchical segment: '#{self.to_s}'"
2432
+ end
2433
+ if self.host == nil
2434
+ if self.port != nil ||
2435
+ self.user != nil ||
2436
+ self.password != nil
2437
+ raise InvalidURIError, "Hostname not supplied: '#{self.to_s}'"
2438
+ end
2439
+ end
2440
+ if self.path != nil && !self.path.empty? && self.path[0..0] != SLASH &&
2441
+ self.authority != nil
2442
+ raise InvalidURIError,
2443
+ "Cannot have a relative path with an authority set: '#{self.to_s}'"
2444
+ end
2445
+ if self.path != nil && !self.path.empty? &&
2446
+ self.path[0..1] == SLASH + SLASH && self.authority == nil
2447
+ raise InvalidURIError,
2448
+ "Cannot have a path with two leading slashes " +
2449
+ "without an authority set: '#{self.to_s}'"
2450
+ end
2451
+ unreserved = CharacterClasses::UNRESERVED
2452
+ sub_delims = CharacterClasses::SUB_DELIMS
2453
+ if !self.host.nil? && (self.host =~ /[<>{}\/\\\?\#\@"[[:space:]]]/ ||
2454
+ (self.host[/^\[(.*)\]$/, 1] != nil && self.host[/^\[(.*)\]$/, 1] !~
2455
+ Regexp.new("^[#{unreserved}#{sub_delims}:]*$")))
2456
+ raise InvalidURIError, "Invalid character in host: '#{self.host.to_s}'"
2457
+ end
2458
+ return nil
2459
+ end
2460
+
2461
+ ##
2462
+ # Replaces the internal state of self with the specified URI's state.
2463
+ # Used in destructive operations to avoid massive code repetition.
2464
+ #
2465
+ # @param [Addressable::URI] uri The URI to replace <code>self</code> with.
2466
+ #
2467
+ # @return [Addressable::URI] <code>self</code>.
2468
+ def replace_self(uri)
2469
+ # Reset dependent values
2470
+ instance_variables.each do |var|
2471
+ if instance_variable_defined?(var) && var != :@validation_deferred
2472
+ remove_instance_variable(var)
2473
+ end
2474
+ end
2475
+
2476
+ @scheme = uri.scheme
2477
+ @user = uri.user
2478
+ @password = uri.password
2479
+ @host = uri.host
2480
+ @port = uri.port
2481
+ @path = uri.path
2482
+ @query = uri.query
2483
+ @fragment = uri.fragment
2484
+ return self
2485
+ end
2486
+
2487
+ ##
2488
+ # Splits path string with "/" (slash).
2489
+ # It is considered that there is empty string after last slash when
2490
+ # path ends with slash.
2491
+ #
2492
+ # @param [String] path The path to split.
2493
+ #
2494
+ # @return [Array<String>] An array of parts of path.
2495
+ def split_path(path)
2496
+ splitted = path.split(SLASH)
2497
+ splitted << EMPTY_STR if path.end_with? SLASH
2498
+ splitted
2499
+ end
2500
+
2501
+ ##
2502
+ # Resets composite values for the entire URI
2503
+ #
2504
+ # @api private
2505
+ def remove_composite_values
2506
+ remove_instance_variable(:@uri_string) if defined?(@uri_string)
2507
+ remove_instance_variable(:@hash) if defined?(@hash)
2508
+ end
2509
+ end
2510
+ end