asana2flowdock 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1601) hide show
  1. checksums.yaml +15 -0
  2. data/Gemfile +4 -0
  3. data/Gemfile.lock +58 -0
  4. data/README.md +85 -0
  5. data/Rakefile +394 -0
  6. data/a.rb +336 -0
  7. data/a.yml +6 -0
  8. data/asana2flowdock.gemspec +1878 -0
  9. data/bin/amalgalite-pack +16 -0
  10. data/bin/asana2flowdock +274 -0
  11. data/bin/asana2flowdock-daemon +16 -0
  12. data/bin/coderay +16 -0
  13. data/bin/httparty +16 -0
  14. data/bin/pry +16 -0
  15. data/bin/sekrets +16 -0
  16. data/bin/sequel +16 -0
  17. data/config/asana2flowdock.yml.enc +2 -0
  18. data/lib/asana2flowdock.rb +98 -0
  19. data/lib/asana2flowdock/asana.rb +225 -0
  20. data/vendor/bundle/ruby/1.9.1/bin/amalgalite-pack +23 -0
  21. data/vendor/bundle/ruby/1.9.1/bin/asana2flowdock +23 -0
  22. data/vendor/bundle/ruby/1.9.1/bin/asana2flowdock-daemon +23 -0
  23. data/vendor/bundle/ruby/1.9.1/bin/coderay +23 -0
  24. data/vendor/bundle/ruby/1.9.1/bin/httparty +23 -0
  25. data/vendor/bundle/ruby/1.9.1/bin/pry +23 -0
  26. data/vendor/bundle/ruby/1.9.1/bin/sekrets +23 -0
  27. data/vendor/bundle/ruby/1.9.1/bin/sequel +23 -0
  28. data/vendor/bundle/ruby/1.9.1/build_info/amalgalite-1.3.0.info +1 -0
  29. data/vendor/bundle/ruby/1.9.1/build_info/arrayfields-4.7.4.info +1 -0
  30. data/vendor/bundle/ruby/1.9.1/build_info/chronic-0.10.2.info +1 -0
  31. data/vendor/bundle/ruby/1.9.1/build_info/coderay-1.1.0.info +1 -0
  32. data/vendor/bundle/ruby/1.9.1/build_info/coerce-0.0.6.info +1 -0
  33. data/vendor/bundle/ruby/1.9.1/build_info/daemons-1.1.9.info +1 -0
  34. data/vendor/bundle/ruby/1.9.1/build_info/fastercsv-1.5.5.info +1 -0
  35. data/vendor/bundle/ruby/1.9.1/build_info/fattr-2.2.2.info +1 -0
  36. data/vendor/bundle/ruby/1.9.1/build_info/flowdock-0.5.0.info +1 -0
  37. data/vendor/bundle/ruby/1.9.1/build_info/highline-1.6.21.info +1 -0
  38. data/vendor/bundle/ruby/1.9.1/build_info/httparty-0.13.1.info +1 -0
  39. data/vendor/bundle/ruby/1.9.1/build_info/json-1.8.1.info +1 -0
  40. data/vendor/bundle/ruby/1.9.1/build_info/main-6.0.0.info +1 -0
  41. data/vendor/bundle/ruby/1.9.1/build_info/main-6.1.0.info +1 -0
  42. data/vendor/bundle/ruby/1.9.1/build_info/map-6.5.5.info +1 -0
  43. data/vendor/bundle/ruby/1.9.1/build_info/method_source-0.8.2.info +1 -0
  44. data/vendor/bundle/ruby/1.9.1/build_info/multi_json-1.10.1.info +1 -0
  45. data/vendor/bundle/ruby/1.9.1/build_info/multi_xml-0.5.5.info +1 -0
  46. data/vendor/bundle/ruby/1.9.1/build_info/pry-0.9.12.6.info +1 -0
  47. data/vendor/bundle/ruby/1.9.1/build_info/sekrets-1.7.0.info +1 -0
  48. data/vendor/bundle/ruby/1.9.1/build_info/sequel-4.15.0.info +1 -0
  49. data/vendor/bundle/ruby/1.9.1/build_info/slop-3.5.0.info +1 -0
  50. data/vendor/bundle/ruby/1.9.1/build_info/threadify-1.3.0.info +1 -0
  51. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/CONTRIBUTING.md +49 -0
  52. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/HISTORY.md +315 -0
  53. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/LICENSE +29 -0
  54. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/Manifest.txt +104 -0
  55. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/README.md +73 -0
  56. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/Rakefile +25 -0
  57. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/TODO.md +50 -0
  58. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/bin/amalgalite-pack +147 -0
  59. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/examples/a.rb +9 -0
  60. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/examples/blob.rb +88 -0
  61. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/examples/bootstrap.rb +36 -0
  62. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/examples/define_aggregate.rb +75 -0
  63. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/examples/define_function.rb +104 -0
  64. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/examples/fts3.rb +144 -0
  65. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/examples/gem-db.rb +94 -0
  66. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/examples/require_me.rb +11 -0
  67. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/examples/requires.rb +42 -0
  68. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/examples/schema-info.rb +34 -0
  69. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/ext/amalgalite/c/Makefile +220 -0
  70. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/ext/amalgalite/c/amalgalite.bundle +0 -0
  71. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/ext/amalgalite/c/amalgalite.c +329 -0
  72. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/ext/amalgalite/c/amalgalite.h +151 -0
  73. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/ext/amalgalite/c/amalgalite.o +0 -0
  74. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/ext/amalgalite/c/amalgalite_blob.c +240 -0
  75. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/ext/amalgalite/c/amalgalite_blob.o +0 -0
  76. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/ext/amalgalite/c/amalgalite_constants.c +378 -0
  77. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/ext/amalgalite/c/amalgalite_constants.o +0 -0
  78. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/ext/amalgalite/c/amalgalite_database.c +1177 -0
  79. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/ext/amalgalite/c/amalgalite_database.o +0 -0
  80. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/ext/amalgalite/c/amalgalite_requires_bootstrap.c +282 -0
  81. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/ext/amalgalite/c/amalgalite_requires_bootstrap.o +0 -0
  82. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/ext/amalgalite/c/amalgalite_statement.c +649 -0
  83. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/ext/amalgalite/c/amalgalite_statement.o +0 -0
  84. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/ext/amalgalite/c/extconf.rb +36 -0
  85. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/ext/amalgalite/c/gen_constants.rb +193 -0
  86. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/ext/amalgalite/c/notes.txt +134 -0
  87. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/ext/amalgalite/c/sqlite3.c +137414 -0
  88. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/ext/amalgalite/c/sqlite3.h +7160 -0
  89. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/ext/amalgalite/c/sqlite3.o +0 -0
  90. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/ext/amalgalite/c/sqlite3_options.h +4 -0
  91. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/ext/amalgalite/c/sqlite3ext.h +447 -0
  92. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/lib/amalgalite.rb +51 -0
  93. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/lib/amalgalite/1.9/amalgalite.bundle +0 -0
  94. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/lib/amalgalite/aggregate.rb +67 -0
  95. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/lib/amalgalite/blob.rb +186 -0
  96. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/lib/amalgalite/boolean.rb +42 -0
  97. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/lib/amalgalite/busy_timeout.rb +47 -0
  98. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/lib/amalgalite/column.rb +99 -0
  99. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/lib/amalgalite/core_ext/kernel/require.rb +21 -0
  100. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/lib/amalgalite/csv_table_importer.rb +74 -0
  101. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/lib/amalgalite/database.rb +984 -0
  102. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/lib/amalgalite/function.rb +61 -0
  103. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/lib/amalgalite/index.rb +43 -0
  104. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/lib/amalgalite/memory_database.rb +15 -0
  105. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/lib/amalgalite/packer.rb +231 -0
  106. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/lib/amalgalite/paths.rb +80 -0
  107. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/lib/amalgalite/profile_tap.rb +131 -0
  108. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/lib/amalgalite/progress_handler.rb +21 -0
  109. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/lib/amalgalite/requires.rb +151 -0
  110. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/lib/amalgalite/schema.rb +225 -0
  111. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/lib/amalgalite/sqlite3.rb +6 -0
  112. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/lib/amalgalite/sqlite3/constants.rb +95 -0
  113. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/lib/amalgalite/sqlite3/database/function.rb +48 -0
  114. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/lib/amalgalite/sqlite3/database/status.rb +68 -0
  115. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/lib/amalgalite/sqlite3/status.rb +60 -0
  116. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/lib/amalgalite/sqlite3/version.rb +55 -0
  117. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/lib/amalgalite/statement.rb +418 -0
  118. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/lib/amalgalite/table.rb +91 -0
  119. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/lib/amalgalite/taps.rb +2 -0
  120. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/lib/amalgalite/taps/console.rb +27 -0
  121. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/lib/amalgalite/taps/io.rb +71 -0
  122. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/lib/amalgalite/trace_tap.rb +35 -0
  123. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/lib/amalgalite/type_map.rb +63 -0
  124. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/lib/amalgalite/type_maps/default_map.rb +166 -0
  125. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/lib/amalgalite/type_maps/storage_map.rb +38 -0
  126. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/lib/amalgalite/type_maps/text_map.rb +21 -0
  127. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/lib/amalgalite/version.rb +8 -0
  128. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/lib/amalgalite/view.rb +26 -0
  129. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/spec/aggregate_spec.rb +150 -0
  130. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/spec/amalgalite_spec.rb +4 -0
  131. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/spec/blob_spec.rb +78 -0
  132. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/spec/boolean_spec.rb +24 -0
  133. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/spec/busy_handler.rb +157 -0
  134. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/spec/data/iso-3166-country.txt +242 -0
  135. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/spec/data/iso-3166-schema.sql +22 -0
  136. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/spec/data/iso-3166-subcountry.txt +3995 -0
  137. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/spec/data/make-iso-db.sh +12 -0
  138. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/spec/database_spec.rb +510 -0
  139. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/spec/default_map_spec.rb +92 -0
  140. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/spec/function_spec.rb +78 -0
  141. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/spec/integeration_spec.rb +97 -0
  142. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/spec/iso_3166_database.rb +58 -0
  143. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/spec/packer_spec.rb +60 -0
  144. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/spec/paths_spec.rb +28 -0
  145. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/spec/progress_handler_spec.rb +91 -0
  146. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/spec/requires_spec.rb +54 -0
  147. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/spec/rtree_spec.rb +66 -0
  148. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/spec/schema_spec.rb +131 -0
  149. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/spec/spec_helper.rb +43 -0
  150. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/spec/sqlite3/constants_spec.rb +108 -0
  151. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/spec/sqlite3/database_status_spec.rb +36 -0
  152. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/spec/sqlite3/status_spec.rb +22 -0
  153. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/spec/sqlite3/version_spec.rb +22 -0
  154. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/spec/sqlite3_spec.rb +53 -0
  155. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/spec/statement_spec.rb +168 -0
  156. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/spec/storage_map_spec.rb +38 -0
  157. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/spec/tap_spec.rb +57 -0
  158. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/spec/text_map_spec.rb +20 -0
  159. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/spec/type_map_spec.rb +14 -0
  160. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/spec/version_spec.rb +8 -0
  161. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/tasks/custom.rake +99 -0
  162. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/tasks/default.rake +277 -0
  163. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/tasks/extension.rake +38 -0
  164. data/vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/tasks/this.rb +209 -0
  165. data/vendor/bundle/ruby/1.9.1/gems/arrayfields-4.7.4/README +378 -0
  166. data/vendor/bundle/ruby/1.9.1/gems/arrayfields-4.7.4/arrayfields.gemspec +26 -0
  167. data/vendor/bundle/ruby/1.9.1/gems/arrayfields-4.7.4/gemspec.rb +62 -0
  168. data/vendor/bundle/ruby/1.9.1/gems/arrayfields-4.7.4/install.rb +206 -0
  169. data/vendor/bundle/ruby/1.9.1/gems/arrayfields-4.7.4/lib/arrayfields.rb +443 -0
  170. data/vendor/bundle/ruby/1.9.1/gems/arrayfields-4.7.4/readme.rb +248 -0
  171. data/vendor/bundle/ruby/1.9.1/gems/arrayfields-4.7.4/sample/a.rb +40 -0
  172. data/vendor/bundle/ruby/1.9.1/gems/arrayfields-4.7.4/sample/b.rb +16 -0
  173. data/vendor/bundle/ruby/1.9.1/gems/arrayfields-4.7.4/sample/c.rb +9 -0
  174. data/vendor/bundle/ruby/1.9.1/gems/arrayfields-4.7.4/sample/d.rb +25 -0
  175. data/vendor/bundle/ruby/1.9.1/gems/arrayfields-4.7.4/sample/e.rb +15 -0
  176. data/vendor/bundle/ruby/1.9.1/gems/arrayfields-4.7.4/test/arrayfields.rb +324 -0
  177. data/vendor/bundle/ruby/1.9.1/gems/arrayfields-4.7.4/test/memtest.rb +41 -0
  178. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/HISTORY.md +243 -0
  179. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/LICENSE +21 -0
  180. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/README.md +182 -0
  181. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/Rakefile +66 -0
  182. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/chronic.gemspec +23 -0
  183. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/lib/chronic.rb +150 -0
  184. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/lib/chronic/date.rb +82 -0
  185. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/lib/chronic/grabber.rb +33 -0
  186. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/lib/chronic/handler.rb +97 -0
  187. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/lib/chronic/handlers.rb +647 -0
  188. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/lib/chronic/mini_date.rb +38 -0
  189. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/lib/chronic/numerizer.rb +130 -0
  190. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/lib/chronic/ordinal.rb +49 -0
  191. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/lib/chronic/parser.rb +268 -0
  192. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/lib/chronic/pointer.rb +32 -0
  193. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/lib/chronic/repeater.rb +145 -0
  194. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/lib/chronic/repeaters/repeater_day.rb +54 -0
  195. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/lib/chronic/repeaters/repeater_day_name.rb +53 -0
  196. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/lib/chronic/repeaters/repeater_day_portion.rb +109 -0
  197. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/lib/chronic/repeaters/repeater_fortnight.rb +72 -0
  198. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/lib/chronic/repeaters/repeater_hour.rb +59 -0
  199. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/lib/chronic/repeaters/repeater_minute.rb +59 -0
  200. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/lib/chronic/repeaters/repeater_month.rb +80 -0
  201. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/lib/chronic/repeaters/repeater_month_name.rb +95 -0
  202. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/lib/chronic/repeaters/repeater_season.rb +111 -0
  203. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/lib/chronic/repeaters/repeater_season_name.rb +43 -0
  204. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/lib/chronic/repeaters/repeater_second.rb +43 -0
  205. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/lib/chronic/repeaters/repeater_time.rb +138 -0
  206. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/lib/chronic/repeaters/repeater_week.rb +75 -0
  207. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/lib/chronic/repeaters/repeater_weekday.rb +86 -0
  208. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/lib/chronic/repeaters/repeater_weekend.rb +67 -0
  209. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/lib/chronic/repeaters/repeater_year.rb +78 -0
  210. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/lib/chronic/scalar.rb +81 -0
  211. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/lib/chronic/season.rb +26 -0
  212. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/lib/chronic/separator.rb +207 -0
  213. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/lib/chronic/sign.rb +49 -0
  214. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/lib/chronic/span.rb +31 -0
  215. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/lib/chronic/tag.rb +37 -0
  216. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/lib/chronic/time.rb +40 -0
  217. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/lib/chronic/time_zone.rb +32 -0
  218. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/lib/chronic/token.rb +51 -0
  219. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/test/helper.rb +12 -0
  220. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/test/test_chronic.rb +183 -0
  221. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/test/test_daylight_savings.rb +118 -0
  222. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/test/test_handler.rb +128 -0
  223. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/test/test_mini_date.rb +32 -0
  224. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/test/test_numerizer.rb +86 -0
  225. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/test/test_parsing.rb +1235 -0
  226. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/test/test_repeater_day_name.rb +51 -0
  227. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/test/test_repeater_day_portion.rb +254 -0
  228. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/test/test_repeater_fortnight.rb +62 -0
  229. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/test/test_repeater_hour.rb +68 -0
  230. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/test/test_repeater_minute.rb +34 -0
  231. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/test/test_repeater_month.rb +50 -0
  232. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/test/test_repeater_month_name.rb +56 -0
  233. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/test/test_repeater_season.rb +40 -0
  234. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/test/test_repeater_time.rb +88 -0
  235. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/test/test_repeater_week.rb +62 -0
  236. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/test/test_repeater_weekday.rb +55 -0
  237. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/test/test_repeater_weekend.rb +74 -0
  238. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/test/test_repeater_year.rb +69 -0
  239. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/test/test_span.rb +23 -0
  240. data/vendor/bundle/ruby/1.9.1/gems/chronic-0.10.2/test/test_token.rb +25 -0
  241. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/README_INDEX.rdoc +123 -0
  242. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/Rakefile +37 -0
  243. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/bin/coderay +215 -0
  244. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay.rb +284 -0
  245. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/duo.rb +81 -0
  246. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/encoder.rb +201 -0
  247. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/encoders/_map.rb +17 -0
  248. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/encoders/comment_filter.rb +25 -0
  249. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/encoders/count.rb +39 -0
  250. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/encoders/debug.rb +49 -0
  251. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/encoders/debug_lint.rb +63 -0
  252. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/encoders/div.rb +23 -0
  253. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/encoders/filter.rb +58 -0
  254. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/encoders/html.rb +332 -0
  255. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/encoders/html/css.rb +65 -0
  256. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/encoders/html/numbering.rb +108 -0
  257. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/encoders/html/output.rb +166 -0
  258. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/encoders/json.rb +83 -0
  259. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/encoders/lines_of_code.rb +45 -0
  260. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/encoders/lint.rb +59 -0
  261. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/encoders/null.rb +18 -0
  262. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/encoders/page.rb +24 -0
  263. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/encoders/span.rb +23 -0
  264. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/encoders/statistic.rb +95 -0
  265. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/encoders/terminal.rb +195 -0
  266. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/encoders/text.rb +46 -0
  267. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/encoders/token_kind_filter.rb +111 -0
  268. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/encoders/xml.rb +72 -0
  269. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/encoders/yaml.rb +50 -0
  270. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/for_redcloth.rb +95 -0
  271. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/helpers/file_type.rb +151 -0
  272. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/helpers/plugin.rb +274 -0
  273. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/helpers/word_list.rb +72 -0
  274. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/scanner.rb +355 -0
  275. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/scanners/_map.rb +24 -0
  276. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/scanners/c.rb +189 -0
  277. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/scanners/clojure.rb +217 -0
  278. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/scanners/cpp.rb +215 -0
  279. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/scanners/css.rb +196 -0
  280. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/scanners/debug.rb +75 -0
  281. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/scanners/delphi.rb +144 -0
  282. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/scanners/diff.rb +221 -0
  283. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/scanners/erb.rb +81 -0
  284. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/scanners/go.rb +208 -0
  285. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/scanners/groovy.rb +268 -0
  286. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/scanners/haml.rb +168 -0
  287. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/scanners/html.rb +275 -0
  288. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/scanners/java.rb +174 -0
  289. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/scanners/java/builtin_types.rb +421 -0
  290. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/scanners/java_script.rb +237 -0
  291. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/scanners/json.rb +98 -0
  292. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/scanners/lua.rb +280 -0
  293. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/scanners/php.rb +527 -0
  294. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/scanners/python.rb +287 -0
  295. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/scanners/raydebug.rb +75 -0
  296. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/scanners/ruby.rb +470 -0
  297. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/scanners/ruby/patterns.rb +178 -0
  298. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/scanners/ruby/string_state.rb +71 -0
  299. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/scanners/sass.rb +232 -0
  300. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/scanners/sql.rb +177 -0
  301. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/scanners/taskpaper.rb +36 -0
  302. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/scanners/text.rb +26 -0
  303. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/scanners/xml.rb +17 -0
  304. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/scanners/yaml.rb +140 -0
  305. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/style.rb +23 -0
  306. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/styles/_map.rb +7 -0
  307. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/styles/alpha.rb +152 -0
  308. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/token_kinds.rb +85 -0
  309. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/tokens.rb +161 -0
  310. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/tokens_proxy.rb +55 -0
  311. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/lib/coderay/version.rb +3 -0
  312. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/test/functional/basic.rb +318 -0
  313. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/test/functional/examples.rb +129 -0
  314. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/test/functional/for_redcloth.rb +78 -0
  315. data/vendor/bundle/ruby/1.9.1/gems/coderay-1.1.0/test/functional/suite.rb +15 -0
  316. data/vendor/bundle/ruby/1.9.1/gems/coerce-0.0.6/README +28 -0
  317. data/vendor/bundle/ruby/1.9.1/gems/coerce-0.0.6/Rakefile +392 -0
  318. data/vendor/bundle/ruby/1.9.1/gems/coerce-0.0.6/coerce.gemspec +31 -0
  319. data/vendor/bundle/ruby/1.9.1/gems/coerce-0.0.6/lib/coerce.rb +210 -0
  320. data/vendor/bundle/ruby/1.9.1/gems/daemons-1.1.9/LICENSE +22 -0
  321. data/vendor/bundle/ruby/1.9.1/gems/daemons-1.1.9/README +214 -0
  322. data/vendor/bundle/ruby/1.9.1/gems/daemons-1.1.9/Rakefile +90 -0
  323. data/vendor/bundle/ruby/1.9.1/gems/daemons-1.1.9/Releases +195 -0
  324. data/vendor/bundle/ruby/1.9.1/gems/daemons-1.1.9/TODO +2 -0
  325. data/vendor/bundle/ruby/1.9.1/gems/daemons-1.1.9/examples/call/call.rb +57 -0
  326. data/vendor/bundle/ruby/1.9.1/gems/daemons-1.1.9/examples/call/call_monitor.rb +55 -0
  327. data/vendor/bundle/ruby/1.9.1/gems/daemons-1.1.9/examples/daemonize/daemonize.rb +27 -0
  328. data/vendor/bundle/ruby/1.9.1/gems/daemons-1.1.9/examples/run/ctrl_crash.rb +17 -0
  329. data/vendor/bundle/ruby/1.9.1/gems/daemons-1.1.9/examples/run/ctrl_exec.rb +16 -0
  330. data/vendor/bundle/ruby/1.9.1/gems/daemons-1.1.9/examples/run/ctrl_exit.rb +15 -0
  331. data/vendor/bundle/ruby/1.9.1/gems/daemons-1.1.9/examples/run/ctrl_hanging.rb +19 -0
  332. data/vendor/bundle/ruby/1.9.1/gems/daemons-1.1.9/examples/run/ctrl_keep_pid_files.rb +17 -0
  333. data/vendor/bundle/ruby/1.9.1/gems/daemons-1.1.9/examples/run/ctrl_monitor.rb +16 -0
  334. data/vendor/bundle/ruby/1.9.1/gems/daemons-1.1.9/examples/run/ctrl_multiple.rb +16 -0
  335. data/vendor/bundle/ruby/1.9.1/gems/daemons-1.1.9/examples/run/ctrl_normal.rb +11 -0
  336. data/vendor/bundle/ruby/1.9.1/gems/daemons-1.1.9/examples/run/ctrl_ontop.rb +16 -0
  337. data/vendor/bundle/ruby/1.9.1/gems/daemons-1.1.9/examples/run/ctrl_optionparser.rb +43 -0
  338. data/vendor/bundle/ruby/1.9.1/gems/daemons-1.1.9/examples/run/ctrl_proc.rb +25 -0
  339. data/vendor/bundle/ruby/1.9.1/gems/daemons-1.1.9/examples/run/ctrl_proc_multiple.rb +22 -0
  340. data/vendor/bundle/ruby/1.9.1/gems/daemons-1.1.9/examples/run/ctrl_proc_rand.rb +23 -0
  341. data/vendor/bundle/ruby/1.9.1/gems/daemons-1.1.9/examples/run/ctrl_proc_simple.rb +17 -0
  342. data/vendor/bundle/ruby/1.9.1/gems/daemons-1.1.9/examples/run/ctrl_slowstop.rb +16 -0
  343. data/vendor/bundle/ruby/1.9.1/gems/daemons-1.1.9/examples/run/myserver.rb +12 -0
  344. data/vendor/bundle/ruby/1.9.1/gems/daemons-1.1.9/examples/run/myserver_crashing.rb +14 -0
  345. data/vendor/bundle/ruby/1.9.1/gems/daemons-1.1.9/examples/run/myserver_exiting.rb +8 -0
  346. data/vendor/bundle/ruby/1.9.1/gems/daemons-1.1.9/examples/run/myserver_hanging.rb +21 -0
  347. data/vendor/bundle/ruby/1.9.1/gems/daemons-1.1.9/examples/run/myserver_slowstop.rb +21 -0
  348. data/vendor/bundle/ruby/1.9.1/gems/daemons-1.1.9/lib/daemons.rb +315 -0
  349. data/vendor/bundle/ruby/1.9.1/gems/daemons-1.1.9/lib/daemons/application.rb +477 -0
  350. data/vendor/bundle/ruby/1.9.1/gems/daemons-1.1.9/lib/daemons/application_group.rb +194 -0
  351. data/vendor/bundle/ruby/1.9.1/gems/daemons-1.1.9/lib/daemons/change_privilege.rb +19 -0
  352. data/vendor/bundle/ruby/1.9.1/gems/daemons-1.1.9/lib/daemons/cmdline.rb +121 -0
  353. data/vendor/bundle/ruby/1.9.1/gems/daemons-1.1.9/lib/daemons/controller.rb +140 -0
  354. data/vendor/bundle/ruby/1.9.1/gems/daemons-1.1.9/lib/daemons/daemonize.rb +169 -0
  355. data/vendor/bundle/ruby/1.9.1/gems/daemons-1.1.9/lib/daemons/etc_extension.rb +12 -0
  356. data/vendor/bundle/ruby/1.9.1/gems/daemons-1.1.9/lib/daemons/exceptions.rb +28 -0
  357. data/vendor/bundle/ruby/1.9.1/gems/daemons-1.1.9/lib/daemons/monitor.rb +138 -0
  358. data/vendor/bundle/ruby/1.9.1/gems/daemons-1.1.9/lib/daemons/pid.rb +108 -0
  359. data/vendor/bundle/ruby/1.9.1/gems/daemons-1.1.9/lib/daemons/pidfile.rb +116 -0
  360. data/vendor/bundle/ruby/1.9.1/gems/daemons-1.1.9/lib/daemons/pidmem.rb +19 -0
  361. data/vendor/bundle/ruby/1.9.1/gems/daemons-1.1.9/setup.rb +1360 -0
  362. data/vendor/bundle/ruby/1.9.1/gems/fastercsv-1.5.5/AUTHORS +1 -0
  363. data/vendor/bundle/ruby/1.9.1/gems/fastercsv-1.5.5/CHANGELOG +182 -0
  364. data/vendor/bundle/ruby/1.9.1/gems/fastercsv-1.5.5/COPYING +340 -0
  365. data/vendor/bundle/ruby/1.9.1/gems/fastercsv-1.5.5/INSTALL +33 -0
  366. data/vendor/bundle/ruby/1.9.1/gems/fastercsv-1.5.5/LICENSE +9 -0
  367. data/vendor/bundle/ruby/1.9.1/gems/fastercsv-1.5.5/README +71 -0
  368. data/vendor/bundle/ruby/1.9.1/gems/fastercsv-1.5.5/Rakefile +94 -0
  369. data/vendor/bundle/ruby/1.9.1/gems/fastercsv-1.5.5/TODO +6 -0
  370. data/vendor/bundle/ruby/1.9.1/gems/fastercsv-1.5.5/examples/csv_converters.rb +28 -0
  371. data/vendor/bundle/ruby/1.9.1/gems/fastercsv-1.5.5/examples/csv_filter.rb +23 -0
  372. data/vendor/bundle/ruby/1.9.1/gems/fastercsv-1.5.5/examples/csv_reading.rb +57 -0
  373. data/vendor/bundle/ruby/1.9.1/gems/fastercsv-1.5.5/examples/csv_table.rb +56 -0
  374. data/vendor/bundle/ruby/1.9.1/gems/fastercsv-1.5.5/examples/csv_writing.rb +67 -0
  375. data/vendor/bundle/ruby/1.9.1/gems/fastercsv-1.5.5/examples/purchase.csv +3 -0
  376. data/vendor/bundle/ruby/1.9.1/gems/fastercsv-1.5.5/examples/shortcut_interface.rb +36 -0
  377. data/vendor/bundle/ruby/1.9.1/gems/fastercsv-1.5.5/lib/faster_csv.rb +2025 -0
  378. data/vendor/bundle/ruby/1.9.1/gems/fastercsv-1.5.5/lib/fastercsv.rb +10 -0
  379. data/vendor/bundle/ruby/1.9.1/gems/fastercsv-1.5.5/test/line_endings.gz +0 -0
  380. data/vendor/bundle/ruby/1.9.1/gems/fastercsv-1.5.5/test/tc_csv_parsing.rb +191 -0
  381. data/vendor/bundle/ruby/1.9.1/gems/fastercsv-1.5.5/test/tc_csv_writing.rb +96 -0
  382. data/vendor/bundle/ruby/1.9.1/gems/fastercsv-1.5.5/test/tc_data_converters.rb +260 -0
  383. data/vendor/bundle/ruby/1.9.1/gems/fastercsv-1.5.5/test/tc_encodings.rb +23 -0
  384. data/vendor/bundle/ruby/1.9.1/gems/fastercsv-1.5.5/test/tc_features.rb +212 -0
  385. data/vendor/bundle/ruby/1.9.1/gems/fastercsv-1.5.5/test/tc_headers.rb +277 -0
  386. data/vendor/bundle/ruby/1.9.1/gems/fastercsv-1.5.5/test/tc_interface.rb +376 -0
  387. data/vendor/bundle/ruby/1.9.1/gems/fastercsv-1.5.5/test/tc_row.rb +305 -0
  388. data/vendor/bundle/ruby/1.9.1/gems/fastercsv-1.5.5/test/tc_serialization.rb +154 -0
  389. data/vendor/bundle/ruby/1.9.1/gems/fastercsv-1.5.5/test/tc_speed.rb +65 -0
  390. data/vendor/bundle/ruby/1.9.1/gems/fastercsv-1.5.5/test/tc_table.rb +408 -0
  391. data/vendor/bundle/ruby/1.9.1/gems/fastercsv-1.5.5/test/test_data.csv +1000 -0
  392. data/vendor/bundle/ruby/1.9.1/gems/fastercsv-1.5.5/test/ts_all.rb +20 -0
  393. data/vendor/bundle/ruby/1.9.1/gems/fattr-2.2.2/LICENSE +1 -0
  394. data/vendor/bundle/ruby/1.9.1/gems/fattr-2.2.2/README +347 -0
  395. data/vendor/bundle/ruby/1.9.1/gems/fattr-2.2.2/README.erb +82 -0
  396. data/vendor/bundle/ruby/1.9.1/gems/fattr-2.2.2/Rakefile +376 -0
  397. data/vendor/bundle/ruby/1.9.1/gems/fattr-2.2.2/lib/fattr.rb +206 -0
  398. data/vendor/bundle/ruby/1.9.1/gems/fattr-2.2.2/samples/a.rb +21 -0
  399. data/vendor/bundle/ruby/1.9.1/gems/fattr-2.2.2/samples/b.rb +22 -0
  400. data/vendor/bundle/ruby/1.9.1/gems/fattr-2.2.2/samples/c.rb +12 -0
  401. data/vendor/bundle/ruby/1.9.1/gems/fattr-2.2.2/samples/d.rb +34 -0
  402. data/vendor/bundle/ruby/1.9.1/gems/fattr-2.2.2/samples/e.rb +17 -0
  403. data/vendor/bundle/ruby/1.9.1/gems/fattr-2.2.2/samples/f.rb +21 -0
  404. data/vendor/bundle/ruby/1.9.1/gems/fattr-2.2.2/samples/g.rb +15 -0
  405. data/vendor/bundle/ruby/1.9.1/gems/fattr-2.2.2/samples/h.rb +29 -0
  406. data/vendor/bundle/ruby/1.9.1/gems/fattr-2.2.2/test/fattr_test.rb +173 -0
  407. data/vendor/bundle/ruby/1.9.1/gems/flowdock-0.5.0/Gemfile +16 -0
  408. data/vendor/bundle/ruby/1.9.1/gems/flowdock-0.5.0/LICENSE +20 -0
  409. data/vendor/bundle/ruby/1.9.1/gems/flowdock-0.5.0/README.md +145 -0
  410. data/vendor/bundle/ruby/1.9.1/gems/flowdock-0.5.0/Rakefile +43 -0
  411. data/vendor/bundle/ruby/1.9.1/gems/flowdock-0.5.0/VERSION +1 -0
  412. data/vendor/bundle/ruby/1.9.1/gems/flowdock-0.5.0/flowdock.gemspec +73 -0
  413. data/vendor/bundle/ruby/1.9.1/gems/flowdock-0.5.0/lib/flowdock.rb +181 -0
  414. data/vendor/bundle/ruby/1.9.1/gems/flowdock-0.5.0/lib/flowdock/capistrano.rb +1 -0
  415. data/vendor/bundle/ruby/1.9.1/gems/flowdock-0.5.0/spec/flowdock_spec.rb +435 -0
  416. data/vendor/bundle/ruby/1.9.1/gems/flowdock-0.5.0/spec/spec_helper.rb +14 -0
  417. data/vendor/bundle/ruby/1.9.1/gems/highline-1.6.21/AUTHORS +3 -0
  418. data/vendor/bundle/ruby/1.9.1/gems/highline-1.6.21/CHANGELOG +357 -0
  419. data/vendor/bundle/ruby/1.9.1/gems/highline-1.6.21/COPYING +340 -0
  420. data/vendor/bundle/ruby/1.9.1/gems/highline-1.6.21/INSTALL +55 -0
  421. data/vendor/bundle/ruby/1.9.1/gems/highline-1.6.21/LICENSE +7 -0
  422. data/vendor/bundle/ruby/1.9.1/gems/highline-1.6.21/README.rdoc +67 -0
  423. data/vendor/bundle/ruby/1.9.1/gems/highline-1.6.21/Rakefile +50 -0
  424. data/vendor/bundle/ruby/1.9.1/gems/highline-1.6.21/TODO +6 -0
  425. data/vendor/bundle/ruby/1.9.1/gems/highline-1.6.21/examples/ansi_colors.rb +38 -0
  426. data/vendor/bundle/ruby/1.9.1/gems/highline-1.6.21/examples/asking_for_arrays.rb +18 -0
  427. data/vendor/bundle/ruby/1.9.1/gems/highline-1.6.21/examples/basic_usage.rb +75 -0
  428. data/vendor/bundle/ruby/1.9.1/gems/highline-1.6.21/examples/color_scheme.rb +32 -0
  429. data/vendor/bundle/ruby/1.9.1/gems/highline-1.6.21/examples/get_character.rb +12 -0
  430. data/vendor/bundle/ruby/1.9.1/gems/highline-1.6.21/examples/limit.rb +12 -0
  431. data/vendor/bundle/ruby/1.9.1/gems/highline-1.6.21/examples/menus.rb +65 -0
  432. data/vendor/bundle/ruby/1.9.1/gems/highline-1.6.21/examples/overwrite.rb +19 -0
  433. data/vendor/bundle/ruby/1.9.1/gems/highline-1.6.21/examples/page_and_wrap.rb +322 -0
  434. data/vendor/bundle/ruby/1.9.1/gems/highline-1.6.21/examples/password.rb +7 -0
  435. data/vendor/bundle/ruby/1.9.1/gems/highline-1.6.21/examples/repeat_entry.rb +21 -0
  436. data/vendor/bundle/ruby/1.9.1/gems/highline-1.6.21/examples/trapping_eof.rb +22 -0
  437. data/vendor/bundle/ruby/1.9.1/gems/highline-1.6.21/examples/using_readline.rb +17 -0
  438. data/vendor/bundle/ruby/1.9.1/gems/highline-1.6.21/highline.gemspec +37 -0
  439. data/vendor/bundle/ruby/1.9.1/gems/highline-1.6.21/lib/highline.rb +1034 -0
  440. data/vendor/bundle/ruby/1.9.1/gems/highline-1.6.21/lib/highline/color_scheme.rb +134 -0
  441. data/vendor/bundle/ruby/1.9.1/gems/highline-1.6.21/lib/highline/compatibility.rb +16 -0
  442. data/vendor/bundle/ruby/1.9.1/gems/highline-1.6.21/lib/highline/import.rb +41 -0
  443. data/vendor/bundle/ruby/1.9.1/gems/highline-1.6.21/lib/highline/menu.rb +381 -0
  444. data/vendor/bundle/ruby/1.9.1/gems/highline-1.6.21/lib/highline/question.rb +481 -0
  445. data/vendor/bundle/ruby/1.9.1/gems/highline-1.6.21/lib/highline/simulate.rb +48 -0
  446. data/vendor/bundle/ruby/1.9.1/gems/highline-1.6.21/lib/highline/string_extensions.rb +111 -0
  447. data/vendor/bundle/ruby/1.9.1/gems/highline-1.6.21/lib/highline/style.rb +181 -0
  448. data/vendor/bundle/ruby/1.9.1/gems/highline-1.6.21/lib/highline/system_extensions.rb +242 -0
  449. data/vendor/bundle/ruby/1.9.1/gems/highline-1.6.21/setup.rb +1360 -0
  450. data/vendor/bundle/ruby/1.9.1/gems/highline-1.6.21/site/highline.css +65 -0
  451. data/vendor/bundle/ruby/1.9.1/gems/highline-1.6.21/site/images/logo.png +0 -0
  452. data/vendor/bundle/ruby/1.9.1/gems/highline-1.6.21/site/index.html +58 -0
  453. data/vendor/bundle/ruby/1.9.1/gems/highline-1.6.21/test/string_methods.rb +32 -0
  454. data/vendor/bundle/ruby/1.9.1/gems/highline-1.6.21/test/tc_color_scheme.rb +96 -0
  455. data/vendor/bundle/ruby/1.9.1/gems/highline-1.6.21/test/tc_highline.rb +1134 -0
  456. data/vendor/bundle/ruby/1.9.1/gems/highline-1.6.21/test/tc_import.rb +52 -0
  457. data/vendor/bundle/ruby/1.9.1/gems/highline-1.6.21/test/tc_menu.rb +439 -0
  458. data/vendor/bundle/ruby/1.9.1/gems/highline-1.6.21/test/tc_string_extension.rb +20 -0
  459. data/vendor/bundle/ruby/1.9.1/gems/highline-1.6.21/test/tc_string_highline.rb +38 -0
  460. data/vendor/bundle/ruby/1.9.1/gems/highline-1.6.21/test/tc_style.rb +567 -0
  461. data/vendor/bundle/ruby/1.9.1/gems/highline-1.6.21/test/ts_all.rb +16 -0
  462. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/Gemfile +14 -0
  463. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/Guardfile +16 -0
  464. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/History +303 -0
  465. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/MIT-LICENSE +20 -0
  466. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/README.md +74 -0
  467. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/Rakefile +12 -0
  468. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/bin/httparty +117 -0
  469. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/cucumber.yml +1 -0
  470. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/examples/aaws.rb +32 -0
  471. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/examples/basic.rb +28 -0
  472. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/examples/crack.rb +19 -0
  473. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/examples/custom_parsers.rb +67 -0
  474. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/examples/delicious.rb +37 -0
  475. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/examples/google.rb +16 -0
  476. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/examples/headers_and_user_agents.rb +6 -0
  477. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/examples/nokogiri_html_parser.rb +22 -0
  478. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/examples/rubyurl.rb +14 -0
  479. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/examples/stackexchange.rb +24 -0
  480. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/examples/tripit_sign_in.rb +33 -0
  481. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/examples/twitter.rb +31 -0
  482. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/examples/whoismyrep.rb +10 -0
  483. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/features/basic_authentication.feature +20 -0
  484. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/features/command_line.feature +7 -0
  485. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/features/deals_with_http_error_codes.feature +26 -0
  486. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/features/digest_authentication.feature +20 -0
  487. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/features/handles_compressed_responses.feature +27 -0
  488. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/features/handles_multiple_formats.feature +57 -0
  489. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/features/steps/env.rb +22 -0
  490. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/features/steps/httparty_response_steps.rb +52 -0
  491. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/features/steps/httparty_steps.rb +43 -0
  492. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/features/steps/mongrel_helper.rb +94 -0
  493. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/features/steps/remote_service_steps.rb +74 -0
  494. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/features/supports_read_timeout_option.feature +13 -0
  495. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/features/supports_redirection.feature +22 -0
  496. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/features/supports_timeout_option.feature +13 -0
  497. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/httparty.gemspec +26 -0
  498. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/lib/httparty.rb +600 -0
  499. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/lib/httparty/connection_adapter.rb +187 -0
  500. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/lib/httparty/cookie_hash.rb +22 -0
  501. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/lib/httparty/core_extensions.rb +32 -0
  502. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/lib/httparty/exceptions.rb +29 -0
  503. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/lib/httparty/hash_conversions.rb +51 -0
  504. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/lib/httparty/logger/apache_logger.rb +22 -0
  505. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/lib/httparty/logger/curl_logger.rb +48 -0
  506. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/lib/httparty/logger/logger.rb +18 -0
  507. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/lib/httparty/module_inheritable_attributes.rb +56 -0
  508. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/lib/httparty/net_digest_auth.rb +84 -0
  509. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/lib/httparty/parser.rb +141 -0
  510. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/lib/httparty/request.rb +331 -0
  511. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/lib/httparty/response.rb +72 -0
  512. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/lib/httparty/response/headers.rb +31 -0
  513. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/lib/httparty/version.rb +3 -0
  514. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/script/release +42 -0
  515. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/spec/fixtures/delicious.xml +23 -0
  516. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/spec/fixtures/empty.xml +0 -0
  517. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/spec/fixtures/google.html +3 -0
  518. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/spec/fixtures/ssl/generate.sh +29 -0
  519. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/spec/fixtures/ssl/generated/1fe462c2.0 +16 -0
  520. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/spec/fixtures/ssl/generated/bogushost.crt +13 -0
  521. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/spec/fixtures/ssl/generated/ca.crt +16 -0
  522. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/spec/fixtures/ssl/generated/ca.key +15 -0
  523. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/spec/fixtures/ssl/generated/selfsigned.crt +14 -0
  524. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/spec/fixtures/ssl/generated/server.crt +13 -0
  525. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/spec/fixtures/ssl/generated/server.key +15 -0
  526. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/spec/fixtures/ssl/openssl-exts.cnf +9 -0
  527. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/spec/fixtures/twitter.csv +2 -0
  528. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/spec/fixtures/twitter.json +1 -0
  529. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/spec/fixtures/twitter.xml +403 -0
  530. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/spec/fixtures/undefined_method_add_node_for_nil.xml +2 -0
  531. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/spec/httparty/connection_adapter_spec.rb +354 -0
  532. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/spec/httparty/cookie_hash_spec.rb +83 -0
  533. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/spec/httparty/exception_spec.rb +23 -0
  534. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/spec/httparty/logger/apache_logger_spec.rb +26 -0
  535. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/spec/httparty/logger/curl_logger_spec.rb +18 -0
  536. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/spec/httparty/logger/logger_spec.rb +22 -0
  537. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/spec/httparty/net_digest_auth_spec.rb +152 -0
  538. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/spec/httparty/parser_spec.rb +165 -0
  539. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/spec/httparty/request_spec.rb +638 -0
  540. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/spec/httparty/response_spec.rb +221 -0
  541. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/spec/httparty/ssl_spec.rb +74 -0
  542. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/spec/httparty_spec.rb +764 -0
  543. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/spec/spec.opts +2 -0
  544. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/spec/spec_helper.rb +37 -0
  545. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/spec/support/ssl_test_helper.rb +47 -0
  546. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/spec/support/ssl_test_server.rb +80 -0
  547. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/spec/support/stub_response.rb +43 -0
  548. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/website/css/common.css +47 -0
  549. data/vendor/bundle/ruby/1.9.1/gems/httparty-0.13.1/website/index.html +73 -0
  550. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/CHANGES +284 -0
  551. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/COPYING +58 -0
  552. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/COPYING-json-jruby +57 -0
  553. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/GPL +340 -0
  554. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/Gemfile +11 -0
  555. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/README-json-jruby.markdown +33 -0
  556. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/README.rdoc +358 -0
  557. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/Rakefile +412 -0
  558. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/TODO +1 -0
  559. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/VERSION +1 -0
  560. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/data/example.json +1 -0
  561. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/data/index.html +38 -0
  562. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/data/prototype.js +4184 -0
  563. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/ext/json/ext/fbuffer/fbuffer.h +181 -0
  564. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/ext/json/ext/generator/Makefile +221 -0
  565. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/ext/json/ext/generator/depend +1 -0
  566. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/ext/json/ext/generator/extconf.rb +14 -0
  567. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/ext/json/ext/generator/generator.bundle +0 -0
  568. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/ext/json/ext/generator/generator.c +1435 -0
  569. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/ext/json/ext/generator/generator.h +148 -0
  570. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/ext/json/ext/generator/generator.o +0 -0
  571. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/ext/json/ext/parser/Makefile +221 -0
  572. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/ext/json/ext/parser/depend +1 -0
  573. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/ext/json/ext/parser/extconf.rb +13 -0
  574. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/ext/json/ext/parser/parser.bundle +0 -0
  575. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/ext/json/ext/parser/parser.c +2204 -0
  576. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/ext/json/ext/parser/parser.h +77 -0
  577. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/ext/json/ext/parser/parser.o +0 -0
  578. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/ext/json/ext/parser/parser.rl +927 -0
  579. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/install.rb +23 -0
  580. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/java/src/json/ext/ByteListTranscoder.java +167 -0
  581. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/java/src/json/ext/Generator.java +444 -0
  582. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/java/src/json/ext/GeneratorMethods.java +232 -0
  583. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/java/src/json/ext/GeneratorService.java +43 -0
  584. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/java/src/json/ext/GeneratorState.java +543 -0
  585. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/java/src/json/ext/OptionsReader.java +114 -0
  586. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/java/src/json/ext/Parser.java +2644 -0
  587. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/java/src/json/ext/Parser.rl +968 -0
  588. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/java/src/json/ext/ParserService.java +35 -0
  589. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/java/src/json/ext/RuntimeInfo.java +121 -0
  590. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/java/src/json/ext/StringDecoder.java +167 -0
  591. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/java/src/json/ext/StringEncoder.java +106 -0
  592. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/java/src/json/ext/Utils.java +89 -0
  593. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/json-java.gemspec +23 -0
  594. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/json.gemspec +38 -0
  595. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/json_pure.gemspec +40 -0
  596. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/lib/json.rb +62 -0
  597. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/lib/json/add/bigdecimal.rb +28 -0
  598. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/lib/json/add/complex.rb +22 -0
  599. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/lib/json/add/core.rb +11 -0
  600. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/lib/json/add/date.rb +34 -0
  601. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/lib/json/add/date_time.rb +50 -0
  602. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/lib/json/add/exception.rb +31 -0
  603. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/lib/json/add/ostruct.rb +31 -0
  604. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/lib/json/add/range.rb +29 -0
  605. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/lib/json/add/rational.rb +22 -0
  606. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/lib/json/add/regexp.rb +30 -0
  607. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/lib/json/add/struct.rb +30 -0
  608. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/lib/json/add/symbol.rb +25 -0
  609. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/lib/json/add/time.rb +38 -0
  610. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/lib/json/common.rb +484 -0
  611. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/lib/json/ext.rb +21 -0
  612. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/lib/json/ext/generator.bundle +0 -0
  613. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/lib/json/ext/parser.bundle +0 -0
  614. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/lib/json/generic_object.rb +70 -0
  615. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/lib/json/pure.rb +21 -0
  616. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/lib/json/pure/generator.rb +522 -0
  617. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/lib/json/pure/parser.rb +359 -0
  618. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/lib/json/version.rb +8 -0
  619. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/tests/fixtures/fail1.json +1 -0
  620. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/tests/fixtures/fail10.json +1 -0
  621. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/tests/fixtures/fail11.json +1 -0
  622. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/tests/fixtures/fail12.json +1 -0
  623. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/tests/fixtures/fail13.json +1 -0
  624. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/tests/fixtures/fail14.json +1 -0
  625. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/tests/fixtures/fail18.json +1 -0
  626. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/tests/fixtures/fail19.json +1 -0
  627. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/tests/fixtures/fail2.json +1 -0
  628. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/tests/fixtures/fail20.json +1 -0
  629. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/tests/fixtures/fail21.json +1 -0
  630. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/tests/fixtures/fail22.json +1 -0
  631. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/tests/fixtures/fail23.json +1 -0
  632. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/tests/fixtures/fail24.json +1 -0
  633. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/tests/fixtures/fail25.json +1 -0
  634. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/tests/fixtures/fail27.json +2 -0
  635. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/tests/fixtures/fail28.json +2 -0
  636. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/tests/fixtures/fail3.json +1 -0
  637. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/tests/fixtures/fail4.json +1 -0
  638. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/tests/fixtures/fail5.json +1 -0
  639. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/tests/fixtures/fail6.json +1 -0
  640. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/tests/fixtures/fail7.json +1 -0
  641. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/tests/fixtures/fail8.json +1 -0
  642. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/tests/fixtures/fail9.json +1 -0
  643. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/tests/fixtures/pass1.json +56 -0
  644. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/tests/fixtures/pass15.json +1 -0
  645. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/tests/fixtures/pass16.json +1 -0
  646. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/tests/fixtures/pass17.json +1 -0
  647. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/tests/fixtures/pass2.json +1 -0
  648. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/tests/fixtures/pass26.json +1 -0
  649. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/tests/fixtures/pass3.json +6 -0
  650. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/tests/setup_variant.rb +11 -0
  651. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/tests/test_json.rb +545 -0
  652. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/tests/test_json_addition.rb +196 -0
  653. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/tests/test_json_encoding.rb +65 -0
  654. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/tests/test_json_fixtures.rb +35 -0
  655. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/tests/test_json_generate.rb +322 -0
  656. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/tests/test_json_generic_object.rb +75 -0
  657. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/tests/test_json_string_matching.rb +39 -0
  658. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/tests/test_json_unicode.rb +72 -0
  659. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/tools/fuzz.rb +139 -0
  660. data/vendor/bundle/ruby/1.9.1/gems/json-1.8.1/tools/server.rb +62 -0
  661. data/vendor/bundle/ruby/1.9.1/gems/main-6.0.0/LICENSE +1 -0
  662. data/vendor/bundle/ruby/1.9.1/gems/main-6.0.0/README +1177 -0
  663. data/vendor/bundle/ruby/1.9.1/gems/main-6.0.0/README.erb +881 -0
  664. data/vendor/bundle/ruby/1.9.1/gems/main-6.0.0/Rakefile +394 -0
  665. data/vendor/bundle/ruby/1.9.1/gems/main-6.0.0/TODO +23 -0
  666. data/vendor/bundle/ruby/1.9.1/gems/main-6.0.0/a.rb +3 -0
  667. data/vendor/bundle/ruby/1.9.1/gems/main-6.0.0/lib/main.rb +93 -0
  668. data/vendor/bundle/ruby/1.9.1/gems/main-6.0.0/lib/main/cast.rb +163 -0
  669. data/vendor/bundle/ruby/1.9.1/gems/main-6.0.0/lib/main/dsl.rb +77 -0
  670. data/vendor/bundle/ruby/1.9.1/gems/main-6.0.0/lib/main/factories.rb +28 -0
  671. data/vendor/bundle/ruby/1.9.1/gems/main-6.0.0/lib/main/getoptlong.rb +470 -0
  672. data/vendor/bundle/ruby/1.9.1/gems/main-6.0.0/lib/main/logger.rb +51 -0
  673. data/vendor/bundle/ruby/1.9.1/gems/main-6.0.0/lib/main/mode.rb +46 -0
  674. data/vendor/bundle/ruby/1.9.1/gems/main-6.0.0/lib/main/parameter.rb +735 -0
  675. data/vendor/bundle/ruby/1.9.1/gems/main-6.0.0/lib/main/program.rb +6 -0
  676. data/vendor/bundle/ruby/1.9.1/gems/main-6.0.0/lib/main/program/class_methods.rb +381 -0
  677. data/vendor/bundle/ruby/1.9.1/gems/main-6.0.0/lib/main/program/instance_methods.rb +303 -0
  678. data/vendor/bundle/ruby/1.9.1/gems/main-6.0.0/lib/main/softspoken.rb +12 -0
  679. data/vendor/bundle/ruby/1.9.1/gems/main-6.0.0/lib/main/stdext.rb +36 -0
  680. data/vendor/bundle/ruby/1.9.1/gems/main-6.0.0/lib/main/test.rb +89 -0
  681. data/vendor/bundle/ruby/1.9.1/gems/main-6.0.0/lib/main/usage.rb +212 -0
  682. data/vendor/bundle/ruby/1.9.1/gems/main-6.0.0/lib/main/util.rb +109 -0
  683. data/vendor/bundle/ruby/1.9.1/gems/main-6.0.0/main.gemspec +74 -0
  684. data/vendor/bundle/ruby/1.9.1/gems/main-6.0.0/samples/a.rb +17 -0
  685. data/vendor/bundle/ruby/1.9.1/gems/main-6.0.0/samples/b.rb +17 -0
  686. data/vendor/bundle/ruby/1.9.1/gems/main-6.0.0/samples/c.rb +21 -0
  687. data/vendor/bundle/ruby/1.9.1/gems/main-6.0.0/samples/d.rb +26 -0
  688. data/vendor/bundle/ruby/1.9.1/gems/main-6.0.0/samples/e.rb +27 -0
  689. data/vendor/bundle/ruby/1.9.1/gems/main-6.0.0/samples/f.rb +29 -0
  690. data/vendor/bundle/ruby/1.9.1/gems/main-6.0.0/samples/g.rb +10 -0
  691. data/vendor/bundle/ruby/1.9.1/gems/main-6.0.0/samples/h.rb +36 -0
  692. data/vendor/bundle/ruby/1.9.1/gems/main-6.0.0/samples/j.rb +31 -0
  693. data/vendor/bundle/ruby/1.9.1/gems/main-6.0.0/test/main_test.rb +954 -0
  694. data/vendor/bundle/ruby/1.9.1/gems/main-6.1.0/LICENSE +1 -0
  695. data/vendor/bundle/ruby/1.9.1/gems/main-6.1.0/README +1177 -0
  696. data/vendor/bundle/ruby/1.9.1/gems/main-6.1.0/README.erb +881 -0
  697. data/vendor/bundle/ruby/1.9.1/gems/main-6.1.0/Rakefile +394 -0
  698. data/vendor/bundle/ruby/1.9.1/gems/main-6.1.0/TODO +23 -0
  699. data/vendor/bundle/ruby/1.9.1/gems/main-6.1.0/a.rb +28 -0
  700. data/vendor/bundle/ruby/1.9.1/gems/main-6.1.0/lib/main.rb +94 -0
  701. data/vendor/bundle/ruby/1.9.1/gems/main-6.1.0/lib/main/cast.rb +163 -0
  702. data/vendor/bundle/ruby/1.9.1/gems/main-6.1.0/lib/main/daemon.rb +525 -0
  703. data/vendor/bundle/ruby/1.9.1/gems/main-6.1.0/lib/main/dsl.rb +77 -0
  704. data/vendor/bundle/ruby/1.9.1/gems/main-6.1.0/lib/main/factories.rb +28 -0
  705. data/vendor/bundle/ruby/1.9.1/gems/main-6.1.0/lib/main/getoptlong.rb +470 -0
  706. data/vendor/bundle/ruby/1.9.1/gems/main-6.1.0/lib/main/logger.rb +51 -0
  707. data/vendor/bundle/ruby/1.9.1/gems/main-6.1.0/lib/main/mode.rb +46 -0
  708. data/vendor/bundle/ruby/1.9.1/gems/main-6.1.0/lib/main/parameter.rb +735 -0
  709. data/vendor/bundle/ruby/1.9.1/gems/main-6.1.0/lib/main/program.rb +6 -0
  710. data/vendor/bundle/ruby/1.9.1/gems/main-6.1.0/lib/main/program/class_methods.rb +392 -0
  711. data/vendor/bundle/ruby/1.9.1/gems/main-6.1.0/lib/main/program/instance_methods.rb +308 -0
  712. data/vendor/bundle/ruby/1.9.1/gems/main-6.1.0/lib/main/softspoken.rb +12 -0
  713. data/vendor/bundle/ruby/1.9.1/gems/main-6.1.0/lib/main/stdext.rb +36 -0
  714. data/vendor/bundle/ruby/1.9.1/gems/main-6.1.0/lib/main/test.rb +89 -0
  715. data/vendor/bundle/ruby/1.9.1/gems/main-6.1.0/lib/main/usage.rb +212 -0
  716. data/vendor/bundle/ruby/1.9.1/gems/main-6.1.0/lib/main/util.rb +109 -0
  717. data/vendor/bundle/ruby/1.9.1/gems/main-6.1.0/main.gemspec +75 -0
  718. data/vendor/bundle/ruby/1.9.1/gems/main-6.1.0/samples/a.rb +17 -0
  719. data/vendor/bundle/ruby/1.9.1/gems/main-6.1.0/samples/b.rb +17 -0
  720. data/vendor/bundle/ruby/1.9.1/gems/main-6.1.0/samples/c.rb +21 -0
  721. data/vendor/bundle/ruby/1.9.1/gems/main-6.1.0/samples/d.rb +26 -0
  722. data/vendor/bundle/ruby/1.9.1/gems/main-6.1.0/samples/e.rb +27 -0
  723. data/vendor/bundle/ruby/1.9.1/gems/main-6.1.0/samples/f.rb +29 -0
  724. data/vendor/bundle/ruby/1.9.1/gems/main-6.1.0/samples/g.rb +10 -0
  725. data/vendor/bundle/ruby/1.9.1/gems/main-6.1.0/samples/h.rb +36 -0
  726. data/vendor/bundle/ruby/1.9.1/gems/main-6.1.0/samples/j.rb +31 -0
  727. data/vendor/bundle/ruby/1.9.1/gems/main-6.1.0/test/main_test.rb +954 -0
  728. data/vendor/bundle/ruby/1.9.1/gems/map-6.5.5/LICENSE +1 -0
  729. data/vendor/bundle/ruby/1.9.1/gems/map-6.5.5/README +145 -0
  730. data/vendor/bundle/ruby/1.9.1/gems/map-6.5.5/Rakefile +394 -0
  731. data/vendor/bundle/ruby/1.9.1/gems/map-6.5.5/a.rb +22 -0
  732. data/vendor/bundle/ruby/1.9.1/gems/map-6.5.5/lib/map.rb +1190 -0
  733. data/vendor/bundle/ruby/1.9.1/gems/map-6.5.5/lib/map/integrations/active_record.rb +140 -0
  734. data/vendor/bundle/ruby/1.9.1/gems/map-6.5.5/lib/map/options.rb +188 -0
  735. data/vendor/bundle/ruby/1.9.1/gems/map-6.5.5/lib/map/params.rb +79 -0
  736. data/vendor/bundle/ruby/1.9.1/gems/map-6.5.5/lib/map/struct.rb +52 -0
  737. data/vendor/bundle/ruby/1.9.1/gems/map-6.5.5/map.gemspec +46 -0
  738. data/vendor/bundle/ruby/1.9.1/gems/map-6.5.5/test/leak.rb +61 -0
  739. data/vendor/bundle/ruby/1.9.1/gems/map-6.5.5/test/lib/testing.rb +74 -0
  740. data/vendor/bundle/ruby/1.9.1/gems/map-6.5.5/test/map_test.rb +802 -0
  741. data/vendor/bundle/ruby/1.9.1/gems/method_source-0.8.2/Gemfile +2 -0
  742. data/vendor/bundle/ruby/1.9.1/gems/method_source-0.8.2/LICENSE +25 -0
  743. data/vendor/bundle/ruby/1.9.1/gems/method_source-0.8.2/README.markdown +91 -0
  744. data/vendor/bundle/ruby/1.9.1/gems/method_source-0.8.2/Rakefile +79 -0
  745. data/vendor/bundle/ruby/1.9.1/gems/method_source-0.8.2/lib/method_source.rb +141 -0
  746. data/vendor/bundle/ruby/1.9.1/gems/method_source-0.8.2/lib/method_source/code_helpers.rb +154 -0
  747. data/vendor/bundle/ruby/1.9.1/gems/method_source-0.8.2/lib/method_source/source_location.rb +138 -0
  748. data/vendor/bundle/ruby/1.9.1/gems/method_source-0.8.2/lib/method_source/version.rb +3 -0
  749. data/vendor/bundle/ruby/1.9.1/gems/method_source-0.8.2/method_source.gemspec +33 -0
  750. data/vendor/bundle/ruby/1.9.1/gems/method_source-0.8.2/test/test.rb +138 -0
  751. data/vendor/bundle/ruby/1.9.1/gems/method_source-0.8.2/test/test_code_helpers.rb +41 -0
  752. data/vendor/bundle/ruby/1.9.1/gems/method_source-0.8.2/test/test_helper.rb +98 -0
  753. data/vendor/bundle/ruby/1.9.1/gems/multi_json-1.10.1/CHANGELOG.md +220 -0
  754. data/vendor/bundle/ruby/1.9.1/gems/multi_json-1.10.1/CONTRIBUTING.md +46 -0
  755. data/vendor/bundle/ruby/1.9.1/gems/multi_json-1.10.1/Gemfile +29 -0
  756. data/vendor/bundle/ruby/1.9.1/gems/multi_json-1.10.1/LICENSE.md +20 -0
  757. data/vendor/bundle/ruby/1.9.1/gems/multi_json-1.10.1/README.md +119 -0
  758. data/vendor/bundle/ruby/1.9.1/gems/multi_json-1.10.1/Rakefile +25 -0
  759. data/vendor/bundle/ruby/1.9.1/gems/multi_json-1.10.1/lib/multi_json.rb +158 -0
  760. data/vendor/bundle/ruby/1.9.1/gems/multi_json-1.10.1/lib/multi_json/adapter.rb +37 -0
  761. data/vendor/bundle/ruby/1.9.1/gems/multi_json-1.10.1/lib/multi_json/adapter_error.rb +15 -0
  762. data/vendor/bundle/ruby/1.9.1/gems/multi_json-1.10.1/lib/multi_json/adapters/gson.rb +21 -0
  763. data/vendor/bundle/ruby/1.9.1/gems/multi_json-1.10.1/lib/multi_json/adapters/jr_jackson.rb +19 -0
  764. data/vendor/bundle/ruby/1.9.1/gems/multi_json-1.10.1/lib/multi_json/adapters/json_common.rb +25 -0
  765. data/vendor/bundle/ruby/1.9.1/gems/multi_json-1.10.1/lib/multi_json/adapters/json_gem.rb +11 -0
  766. data/vendor/bundle/ruby/1.9.1/gems/multi_json-1.10.1/lib/multi_json/adapters/json_pure.rb +11 -0
  767. data/vendor/bundle/ruby/1.9.1/gems/multi_json-1.10.1/lib/multi_json/adapters/nsjsonserialization.rb +34 -0
  768. data/vendor/bundle/ruby/1.9.1/gems/multi_json-1.10.1/lib/multi_json/adapters/oj.rb +25 -0
  769. data/vendor/bundle/ruby/1.9.1/gems/multi_json-1.10.1/lib/multi_json/adapters/ok_json.rb +24 -0
  770. data/vendor/bundle/ruby/1.9.1/gems/multi_json-1.10.1/lib/multi_json/adapters/yajl.rb +19 -0
  771. data/vendor/bundle/ruby/1.9.1/gems/multi_json-1.10.1/lib/multi_json/convertible_hash_keys.rb +43 -0
  772. data/vendor/bundle/ruby/1.9.1/gems/multi_json-1.10.1/lib/multi_json/options.rb +38 -0
  773. data/vendor/bundle/ruby/1.9.1/gems/multi_json-1.10.1/lib/multi_json/parse_error.rb +17 -0
  774. data/vendor/bundle/ruby/1.9.1/gems/multi_json-1.10.1/lib/multi_json/vendor/okjson.rb +606 -0
  775. data/vendor/bundle/ruby/1.9.1/gems/multi_json-1.10.1/lib/multi_json/version.rb +20 -0
  776. data/vendor/bundle/ruby/1.9.1/gems/multi_json-1.10.1/multi_json.gemspec +22 -0
  777. data/vendor/bundle/ruby/1.9.1/gems/multi_json-1.10.1/spec/gson_adapter_spec.rb +10 -0
  778. data/vendor/bundle/ruby/1.9.1/gems/multi_json-1.10.1/spec/jr_jackson_adapter_spec.rb +10 -0
  779. data/vendor/bundle/ruby/1.9.1/gems/multi_json-1.10.1/spec/json_gem_adapter_spec.rb +9 -0
  780. data/vendor/bundle/ruby/1.9.1/gems/multi_json-1.10.1/spec/json_pure_adapter_spec.rb +9 -0
  781. data/vendor/bundle/ruby/1.9.1/gems/multi_json-1.10.1/spec/multi_json_spec.rb +200 -0
  782. data/vendor/bundle/ruby/1.9.1/gems/multi_json-1.10.1/spec/nsjsonserialization_adapter_spec.rb +10 -0
  783. data/vendor/bundle/ruby/1.9.1/gems/multi_json-1.10.1/spec/oj_adapter_spec.rb +20 -0
  784. data/vendor/bundle/ruby/1.9.1/gems/multi_json-1.10.1/spec/ok_json_adapter_spec.rb +7 -0
  785. data/vendor/bundle/ruby/1.9.1/gems/multi_json-1.10.1/spec/shared/adapter.rb +236 -0
  786. data/vendor/bundle/ruby/1.9.1/gems/multi_json-1.10.1/spec/shared/json_common_adapter.rb +30 -0
  787. data/vendor/bundle/ruby/1.9.1/gems/multi_json-1.10.1/spec/shared/options.rb +119 -0
  788. data/vendor/bundle/ruby/1.9.1/gems/multi_json-1.10.1/spec/spec_helper.rb +77 -0
  789. data/vendor/bundle/ruby/1.9.1/gems/multi_json-1.10.1/spec/yajl_adapter_spec.rb +10 -0
  790. data/vendor/bundle/ruby/1.9.1/gems/multi_xml-0.5.5/CHANGELOG.md +93 -0
  791. data/vendor/bundle/ruby/1.9.1/gems/multi_xml-0.5.5/CONTRIBUTING.md +49 -0
  792. data/vendor/bundle/ruby/1.9.1/gems/multi_xml-0.5.5/LICENSE.md +20 -0
  793. data/vendor/bundle/ruby/1.9.1/gems/multi_xml-0.5.5/README.md +97 -0
  794. data/vendor/bundle/ruby/1.9.1/gems/multi_xml-0.5.5/Rakefile +21 -0
  795. data/vendor/bundle/ruby/1.9.1/gems/multi_xml-0.5.5/lib/multi_xml.rb +296 -0
  796. data/vendor/bundle/ruby/1.9.1/gems/multi_xml-0.5.5/lib/multi_xml/parsers/libxml.rb +30 -0
  797. data/vendor/bundle/ruby/1.9.1/gems/multi_xml-0.5.5/lib/multi_xml/parsers/libxml2_parser.rb +74 -0
  798. data/vendor/bundle/ruby/1.9.1/gems/multi_xml-0.5.5/lib/multi_xml/parsers/nokogiri.rb +32 -0
  799. data/vendor/bundle/ruby/1.9.1/gems/multi_xml-0.5.5/lib/multi_xml/parsers/ox.rb +97 -0
  800. data/vendor/bundle/ruby/1.9.1/gems/multi_xml-0.5.5/lib/multi_xml/parsers/rexml.rb +113 -0
  801. data/vendor/bundle/ruby/1.9.1/gems/multi_xml-0.5.5/lib/multi_xml/version.rb +3 -0
  802. data/vendor/bundle/ruby/1.9.1/gems/multi_xml-0.5.5/multi_xml.gemspec +24 -0
  803. data/vendor/bundle/ruby/1.9.1/gems/multi_xml-0.5.5/spec/helper.rb +17 -0
  804. data/vendor/bundle/ruby/1.9.1/gems/multi_xml-0.5.5/spec/multi_xml_spec.rb +43 -0
  805. data/vendor/bundle/ruby/1.9.1/gems/multi_xml-0.5.5/spec/parser_shared_example.rb +694 -0
  806. data/vendor/bundle/ruby/1.9.1/gems/multi_xml-0.5.5/spec/speed.rb +63 -0
  807. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/CHANGELOG +534 -0
  808. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/CONTRIBUTORS +55 -0
  809. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/Gemfile +12 -0
  810. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/LICENSE +25 -0
  811. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/README.markdown +400 -0
  812. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/Rakefile +140 -0
  813. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/TODO +117 -0
  814. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/bin/pry +16 -0
  815. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry.rb +274 -0
  816. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/cli.rb +202 -0
  817. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/code.rb +385 -0
  818. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/code/code_range.rb +70 -0
  819. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/code/loc.rb +92 -0
  820. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/code_object.rb +153 -0
  821. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/command.rb +689 -0
  822. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/command_set.rb +400 -0
  823. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/commands.rb +6 -0
  824. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/commands/amend_line.rb +99 -0
  825. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/commands/bang.rb +20 -0
  826. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/commands/bang_pry.rb +17 -0
  827. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/commands/cat.rb +53 -0
  828. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/commands/cat/abstract_formatter.rb +27 -0
  829. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/commands/cat/exception_formatter.rb +78 -0
  830. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/commands/cat/file_formatter.rb +84 -0
  831. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/commands/cat/input_expression_formatter.rb +43 -0
  832. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/commands/cd.rb +30 -0
  833. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/commands/code_collector.rb +165 -0
  834. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/commands/disable_pry.rb +27 -0
  835. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/commands/disabled_commands.rb +2 -0
  836. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/commands/easter_eggs.rb +112 -0
  837. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/commands/edit.rb +207 -0
  838. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/commands/edit/exception_patcher.rb +25 -0
  839. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/commands/edit/file_and_line_locator.rb +38 -0
  840. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/commands/edit/method_patcher.rb +122 -0
  841. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/commands/exit.rb +42 -0
  842. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/commands/exit_all.rb +29 -0
  843. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/commands/exit_program.rb +24 -0
  844. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/commands/find_method.rb +199 -0
  845. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/commands/fix_indent.rb +19 -0
  846. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/commands/gem_cd.rb +26 -0
  847. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/commands/gem_install.rb +29 -0
  848. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/commands/gem_list.rb +33 -0
  849. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/commands/gem_open.rb +29 -0
  850. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/commands/gist.rb +102 -0
  851. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/commands/help.rb +164 -0
  852. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/commands/hist.rb +161 -0
  853. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/commands/import_set.rb +22 -0
  854. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/commands/install_command.rb +51 -0
  855. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/commands/jump_to.rb +29 -0
  856. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/commands/ls.rb +338 -0
  857. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/commands/nesting.rb +25 -0
  858. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/commands/play.rb +69 -0
  859. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/commands/pry_backtrace.rb +26 -0
  860. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/commands/pry_version.rb +17 -0
  861. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/commands/raise_up.rb +32 -0
  862. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/commands/reload_code.rb +65 -0
  863. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/commands/reset.rb +18 -0
  864. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/commands/ri.rb +56 -0
  865. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/commands/save_file.rb +61 -0
  866. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/commands/shell_command.rb +43 -0
  867. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/commands/shell_mode.rb +27 -0
  868. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/commands/show_doc.rb +78 -0
  869. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/commands/show_info.rb +200 -0
  870. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/commands/show_input.rb +17 -0
  871. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/commands/show_source.rb +38 -0
  872. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/commands/simple_prompt.rb +22 -0
  873. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/commands/stat.rb +40 -0
  874. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/commands/switch_to.rb +23 -0
  875. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/commands/toggle_color.rb +20 -0
  876. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/commands/whereami.rb +182 -0
  877. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/commands/wtf.rb +57 -0
  878. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/completion.rb +321 -0
  879. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/config.rb +258 -0
  880. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/core_extensions.rb +121 -0
  881. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/custom_completions.rb +6 -0
  882. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/editor.rb +129 -0
  883. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/helpers.rb +5 -0
  884. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/helpers/base_helpers.rb +200 -0
  885. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/helpers/command_helpers.rb +154 -0
  886. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/helpers/documentation_helpers.rb +76 -0
  887. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/helpers/options_helpers.rb +27 -0
  888. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/helpers/table.rb +109 -0
  889. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/helpers/text.rb +108 -0
  890. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/history.rb +124 -0
  891. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/history_array.rb +116 -0
  892. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/hooks.rb +250 -0
  893. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/indent.rb +406 -0
  894. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/method.rb +551 -0
  895. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/method/disowned.rb +53 -0
  896. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/method/weird_method_locator.rb +186 -0
  897. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/module_candidate.rb +146 -0
  898. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/pager.rb +90 -0
  899. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/plugins.rb +103 -0
  900. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/pry_class.rb +456 -0
  901. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/pry_instance.rb +765 -0
  902. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/rbx_method.rb +13 -0
  903. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/rbx_path.rb +22 -0
  904. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/repl_file_loader.rb +80 -0
  905. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/rubygem.rb +74 -0
  906. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/terminal.rb +78 -0
  907. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/test/helper.rb +185 -0
  908. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/version.rb +3 -0
  909. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/lib/pry/wrapped_module.rb +387 -0
  910. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/man/pry.1 +195 -0
  911. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/man/pry.1.html +204 -0
  912. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/man/pry.1.ronn +141 -0
  913. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/pry.gemspec +29 -0
  914. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/spec/Procfile +3 -0
  915. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/spec/cli_spec.rb +78 -0
  916. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/spec/code_object_spec.rb +277 -0
  917. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/spec/code_spec.rb +219 -0
  918. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/spec/command_helpers_spec.rb +29 -0
  919. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/spec/command_integration_spec.rb +644 -0
  920. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/spec/command_set_spec.rb +627 -0
  921. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/spec/command_spec.rb +821 -0
  922. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/spec/commands/amend_line_spec.rb +247 -0
  923. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/spec/commands/bang_spec.rb +19 -0
  924. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/spec/commands/cat_spec.rb +164 -0
  925. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/spec/commands/cd_spec.rb +250 -0
  926. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/spec/commands/disable_pry_spec.rb +25 -0
  927. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/spec/commands/edit_spec.rb +727 -0
  928. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/spec/commands/exit_all_spec.rb +34 -0
  929. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/spec/commands/exit_program_spec.rb +19 -0
  930. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/spec/commands/exit_spec.rb +34 -0
  931. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/spec/commands/find_method_spec.rb +70 -0
  932. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/spec/commands/gem_list_spec.rb +26 -0
  933. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/spec/commands/gist_spec.rb +79 -0
  934. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/spec/commands/help_spec.rb +56 -0
  935. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/spec/commands/hist_spec.rb +181 -0
  936. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/spec/commands/jump_to_spec.rb +15 -0
  937. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/spec/commands/ls_spec.rb +181 -0
  938. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/spec/commands/play_spec.rb +140 -0
  939. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/spec/commands/raise_up_spec.rb +56 -0
  940. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/spec/commands/save_file_spec.rb +177 -0
  941. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/spec/commands/show_doc_spec.rb +510 -0
  942. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/spec/commands/show_input_spec.rb +17 -0
  943. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/spec/commands/show_source_spec.rb +782 -0
  944. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/spec/commands/whereami_spec.rb +203 -0
  945. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/spec/completion_spec.rb +241 -0
  946. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/spec/control_d_handler_spec.rb +58 -0
  947. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/spec/documentation_helper_spec.rb +73 -0
  948. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/spec/editor_spec.rb +79 -0
  949. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/spec/exception_whitelist_spec.rb +21 -0
  950. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/spec/fixtures/candidate_helper1.rb +11 -0
  951. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/spec/fixtures/candidate_helper2.rb +8 -0
  952. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/spec/fixtures/example.erb +5 -0
  953. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/spec/fixtures/example_nesting.rb +33 -0
  954. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/spec/fixtures/show_source_doc_examples.rb +15 -0
  955. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/spec/fixtures/testrc +2 -0
  956. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/spec/fixtures/testrcbad +2 -0
  957. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/spec/fixtures/whereami_helper.rb +6 -0
  958. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/spec/helper.rb +34 -0
  959. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/spec/helpers/bacon.rb +86 -0
  960. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/spec/helpers/mock_pry.rb +43 -0
  961. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/spec/helpers/table_spec.rb +105 -0
  962. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/spec/history_array_spec.rb +67 -0
  963. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/spec/hooks_spec.rb +522 -0
  964. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/spec/indent_spec.rb +301 -0
  965. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/spec/input_stack_spec.rb +90 -0
  966. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/spec/method_spec.rb +482 -0
  967. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/spec/prompt_spec.rb +60 -0
  968. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/spec/pry_defaults_spec.rb +419 -0
  969. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/spec/pry_history_spec.rb +99 -0
  970. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/spec/pry_output_spec.rb +95 -0
  971. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/spec/pry_spec.rb +515 -0
  972. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/spec/run_command_spec.rb +25 -0
  973. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/spec/sticky_locals_spec.rb +157 -0
  974. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/spec/syntax_checking_spec.rb +81 -0
  975. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/spec/wrapped_module_spec.rb +261 -0
  976. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/wiki/Customizing-pry.md +397 -0
  977. data/vendor/bundle/ruby/1.9.1/gems/pry-0.9.12.6/wiki/Home.md +4 -0
  978. data/vendor/bundle/ruby/1.9.1/gems/sekrets-1.7.0/README +144 -0
  979. data/vendor/bundle/ruby/1.9.1/gems/sekrets-1.7.0/Rakefile +390 -0
  980. data/vendor/bundle/ruby/1.9.1/gems/sekrets-1.7.0/bin/sekrets +372 -0
  981. data/vendor/bundle/ruby/1.9.1/gems/sekrets-1.7.0/lib/sekrets.rb +511 -0
  982. data/vendor/bundle/ruby/1.9.1/gems/sekrets-1.7.0/lib/sekrets/capistrano.rb +37 -0
  983. data/vendor/bundle/ruby/1.9.1/gems/sekrets-1.7.0/sekrets.gemspec +50 -0
  984. data/vendor/bundle/ruby/1.9.1/gems/sekrets-1.7.0/test/lib/testing.rb +75 -0
  985. data/vendor/bundle/ruby/1.9.1/gems/sekrets-1.7.0/test/sekrets_test.rb +167 -0
  986. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/CHANGELOG +5790 -0
  987. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/MIT-LICENSE +19 -0
  988. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/README.rdoc +815 -0
  989. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/Rakefile +186 -0
  990. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/bin/sequel +244 -0
  991. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/active_record.rdoc +912 -0
  992. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/advanced_associations.rdoc +818 -0
  993. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/association_basics.rdoc +1763 -0
  994. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/bin_sequel.rdoc +144 -0
  995. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/cheat_sheet.rdoc +220 -0
  996. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/code_order.rdoc +96 -0
  997. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/core_extensions.rdoc +364 -0
  998. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/dataset_basics.rdoc +105 -0
  999. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/dataset_filtering.rdoc +191 -0
  1000. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/extensions.rdoc +84 -0
  1001. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/mass_assignment.rdoc +55 -0
  1002. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/migration.rdoc +611 -0
  1003. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/model_hooks.rdoc +262 -0
  1004. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/model_plugins.rdoc +270 -0
  1005. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/mssql_stored_procedures.rdoc +43 -0
  1006. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/object_model.rdoc +573 -0
  1007. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/opening_databases.rdoc +489 -0
  1008. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/postgresql.rdoc +326 -0
  1009. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/prepared_statements.rdoc +139 -0
  1010. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/querying.rdoc +1017 -0
  1011. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/reflection.rdoc +121 -0
  1012. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/1.0.txt +38 -0
  1013. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/1.1.txt +143 -0
  1014. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/1.3.txt +101 -0
  1015. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/1.4.0.txt +53 -0
  1016. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/1.5.0.txt +155 -0
  1017. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/2.0.0.txt +298 -0
  1018. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/2.1.0.txt +271 -0
  1019. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/2.10.0.txt +328 -0
  1020. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/2.11.0.txt +215 -0
  1021. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/2.12.0.txt +534 -0
  1022. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/2.2.0.txt +253 -0
  1023. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/2.3.0.txt +88 -0
  1024. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/2.4.0.txt +106 -0
  1025. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/2.5.0.txt +137 -0
  1026. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/2.6.0.txt +157 -0
  1027. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/2.7.0.txt +166 -0
  1028. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/2.8.0.txt +171 -0
  1029. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/2.9.0.txt +97 -0
  1030. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/3.0.0.txt +221 -0
  1031. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/3.1.0.txt +406 -0
  1032. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/3.10.0.txt +286 -0
  1033. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/3.11.0.txt +254 -0
  1034. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/3.12.0.txt +304 -0
  1035. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/3.13.0.txt +210 -0
  1036. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/3.14.0.txt +118 -0
  1037. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/3.15.0.txt +78 -0
  1038. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/3.16.0.txt +45 -0
  1039. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/3.17.0.txt +58 -0
  1040. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/3.18.0.txt +120 -0
  1041. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/3.19.0.txt +67 -0
  1042. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/3.2.0.txt +268 -0
  1043. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/3.20.0.txt +41 -0
  1044. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/3.21.0.txt +87 -0
  1045. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/3.22.0.txt +39 -0
  1046. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/3.23.0.txt +172 -0
  1047. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/3.24.0.txt +420 -0
  1048. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/3.25.0.txt +88 -0
  1049. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/3.26.0.txt +88 -0
  1050. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/3.27.0.txt +82 -0
  1051. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/3.28.0.txt +304 -0
  1052. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/3.29.0.txt +459 -0
  1053. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/3.3.0.txt +192 -0
  1054. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/3.30.0.txt +135 -0
  1055. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/3.31.0.txt +146 -0
  1056. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/3.32.0.txt +202 -0
  1057. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/3.33.0.txt +157 -0
  1058. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/3.34.0.txt +671 -0
  1059. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/3.35.0.txt +144 -0
  1060. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/3.36.0.txt +245 -0
  1061. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/3.37.0.txt +338 -0
  1062. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/3.38.0.txt +234 -0
  1063. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/3.39.0.txt +237 -0
  1064. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/3.4.0.txt +325 -0
  1065. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/3.40.0.txt +73 -0
  1066. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/3.41.0.txt +155 -0
  1067. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/3.42.0.txt +74 -0
  1068. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/3.43.0.txt +105 -0
  1069. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/3.44.0.txt +152 -0
  1070. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/3.45.0.txt +179 -0
  1071. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/3.46.0.txt +122 -0
  1072. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/3.47.0.txt +270 -0
  1073. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/3.48.0.txt +477 -0
  1074. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/3.5.0.txt +510 -0
  1075. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/3.6.0.txt +366 -0
  1076. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/3.7.0.txt +179 -0
  1077. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/3.8.0.txt +151 -0
  1078. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/3.9.0.txt +233 -0
  1079. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/4.0.0.txt +262 -0
  1080. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/4.1.0.txt +85 -0
  1081. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/4.10.0.txt +226 -0
  1082. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/4.11.0.txt +147 -0
  1083. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/4.12.0.txt +105 -0
  1084. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/4.13.0.txt +169 -0
  1085. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/4.14.0.txt +68 -0
  1086. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/4.15.0.txt +56 -0
  1087. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/4.2.0.txt +129 -0
  1088. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/4.3.0.txt +40 -0
  1089. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/4.4.0.txt +92 -0
  1090. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/4.5.0.txt +34 -0
  1091. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/4.6.0.txt +30 -0
  1092. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/4.7.0.txt +103 -0
  1093. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/4.8.0.txt +175 -0
  1094. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/release_notes/4.9.0.txt +190 -0
  1095. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/schema_modification.rdoc +654 -0
  1096. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/security.rdoc +370 -0
  1097. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/sharding.rdoc +245 -0
  1098. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/sql.rdoc +589 -0
  1099. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/testing.rdoc +176 -0
  1100. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/thread_safety.rdoc +17 -0
  1101. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/transactions.rdoc +168 -0
  1102. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/validations.rdoc +540 -0
  1103. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/doc/virtual_rows.rdoc +272 -0
  1104. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel.rb +1 -0
  1105. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/ado.rb +151 -0
  1106. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/ado/access.rb +335 -0
  1107. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/ado/mssql.rb +69 -0
  1108. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/amalgalite.rb +179 -0
  1109. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/cubrid.rb +143 -0
  1110. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/db2.rb +229 -0
  1111. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/dbi.rb +101 -0
  1112. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/do.rb +156 -0
  1113. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/do/mysql.rb +64 -0
  1114. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/do/postgres.rb +42 -0
  1115. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/do/sqlite3.rb +40 -0
  1116. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/fdbsql.rb +285 -0
  1117. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/firebird.rb +104 -0
  1118. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/ibmdb.rb +476 -0
  1119. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/informix.rb +67 -0
  1120. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/jdbc.rb +794 -0
  1121. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/jdbc/as400.rb +82 -0
  1122. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/jdbc/cubrid.rb +62 -0
  1123. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/jdbc/db2.rb +91 -0
  1124. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/jdbc/derby.rb +312 -0
  1125. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/jdbc/fdbsql.rb +65 -0
  1126. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/jdbc/firebirdsql.rb +34 -0
  1127. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/jdbc/h2.rb +227 -0
  1128. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/jdbc/hsqldb.rb +231 -0
  1129. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/jdbc/informix-sqli.rb +31 -0
  1130. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/jdbc/jdbcprogress.rb +31 -0
  1131. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/jdbc/jtds.rb +45 -0
  1132. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/jdbc/mssql.rb +47 -0
  1133. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/jdbc/mysql.rb +90 -0
  1134. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/jdbc/oracle.rb +140 -0
  1135. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/jdbc/postgresql.rb +215 -0
  1136. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/jdbc/sqlanywhere.rb +82 -0
  1137. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/jdbc/sqlite.rb +82 -0
  1138. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/jdbc/sqlserver.rb +61 -0
  1139. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/jdbc/transactions.rb +109 -0
  1140. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/mock.rb +391 -0
  1141. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/mysql.rb +372 -0
  1142. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/mysql2.rb +200 -0
  1143. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/odbc.rb +149 -0
  1144. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/odbc/db2.rb +9 -0
  1145. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/odbc/mssql.rb +61 -0
  1146. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/odbc/progress.rb +8 -0
  1147. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/openbase.rb +53 -0
  1148. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/oracle.rb +459 -0
  1149. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/postgres.rb +877 -0
  1150. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/shared/access.rb +299 -0
  1151. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/shared/cubrid.rb +243 -0
  1152. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/shared/db2.rb +403 -0
  1153. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/shared/fdbsql.rb +550 -0
  1154. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/shared/firebird.rb +245 -0
  1155. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/shared/informix.rb +52 -0
  1156. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/shared/mssql.rb +1037 -0
  1157. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/shared/mysql.rb +984 -0
  1158. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/shared/mysql_prepared_statements.rb +182 -0
  1159. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/shared/oracle.rb +522 -0
  1160. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/shared/postgres.rb +1617 -0
  1161. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/shared/progress.rb +38 -0
  1162. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/shared/sqlanywhere.rb +470 -0
  1163. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/shared/sqlite.rb +729 -0
  1164. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/sqlanywhere.rb +177 -0
  1165. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/sqlite.rb +413 -0
  1166. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/swift.rb +150 -0
  1167. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/swift/mysql.rb +47 -0
  1168. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/swift/postgres.rb +45 -0
  1169. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/swift/sqlite.rb +35 -0
  1170. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/tinytds.rb +282 -0
  1171. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/utils/emulate_offset_with_reverse_and_count.rb +75 -0
  1172. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/utils/emulate_offset_with_row_number.rb +62 -0
  1173. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/utils/pg_types.rb +68 -0
  1174. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/utils/replace.rb +36 -0
  1175. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/utils/split_alter_table.rb +44 -0
  1176. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/adapters/utils/stored_procedures.rb +74 -0
  1177. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/ast_transformer.rb +200 -0
  1178. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/connection_pool.rb +110 -0
  1179. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/connection_pool/sharded_single.rb +98 -0
  1180. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/connection_pool/sharded_threaded.rb +265 -0
  1181. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/connection_pool/single.rb +38 -0
  1182. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/connection_pool/threaded.rb +198 -0
  1183. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/core.rb +394 -0
  1184. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/database.rb +20 -0
  1185. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/database/connecting.rb +318 -0
  1186. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/database/dataset.rb +69 -0
  1187. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/database/dataset_defaults.rb +175 -0
  1188. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/database/features.rb +134 -0
  1189. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/database/logging.rb +73 -0
  1190. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/database/misc.rb +534 -0
  1191. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/database/query.rb +329 -0
  1192. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/database/schema_generator.rb +525 -0
  1193. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/database/schema_methods.rb +964 -0
  1194. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/database/transactions.rb +353 -0
  1195. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/dataset.rb +40 -0
  1196. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/dataset/actions.rb +1045 -0
  1197. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/dataset/features.rb +203 -0
  1198. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/dataset/graph.rb +272 -0
  1199. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/dataset/misc.rb +279 -0
  1200. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/dataset/mutation.rb +109 -0
  1201. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/dataset/placeholder_literalizer.rb +179 -0
  1202. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/dataset/prepared_statements.rb +283 -0
  1203. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/dataset/query.rb +1136 -0
  1204. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/dataset/sql.rb +1555 -0
  1205. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/deprecated.rb +58 -0
  1206. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/exceptions.rb +77 -0
  1207. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/extensions/_pretty_table.rb +84 -0
  1208. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/extensions/arbitrary_servers.rb +110 -0
  1209. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/extensions/blank.rb +47 -0
  1210. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/extensions/columns_introspection.rb +83 -0
  1211. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/extensions/connection_validator.rb +110 -0
  1212. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/extensions/constraint_validations.rb +455 -0
  1213. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/extensions/core_extensions.rb +230 -0
  1214. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/extensions/core_refinements.rb +221 -0
  1215. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/extensions/current_datetime_timestamp.rb +58 -0
  1216. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/extensions/dataset_source_alias.rb +91 -0
  1217. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/extensions/date_arithmetic.rb +192 -0
  1218. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/extensions/empty_array_ignore_nulls.rb +34 -0
  1219. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/extensions/error_sql.rb +72 -0
  1220. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/extensions/eval_inspect.rb +182 -0
  1221. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/extensions/filter_having.rb +59 -0
  1222. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/extensions/from_block.rb +32 -0
  1223. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/extensions/graph_each.rb +75 -0
  1224. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/extensions/hash_aliases.rb +45 -0
  1225. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/extensions/inflector.rb +246 -0
  1226. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/extensions/looser_typecasting.rb +44 -0
  1227. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/extensions/meta_def.rb +31 -0
  1228. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/extensions/migration.rb +736 -0
  1229. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/extensions/mssql_emulate_lateral_with_apply.rb +80 -0
  1230. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/extensions/named_timezones.rb +99 -0
  1231. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/extensions/null_dataset.rb +105 -0
  1232. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/extensions/pagination.rb +121 -0
  1233. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/extensions/pg_array.rb +606 -0
  1234. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/extensions/pg_array_ops.rb +324 -0
  1235. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/extensions/pg_enum.rb +136 -0
  1236. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/extensions/pg_hstore.rb +357 -0
  1237. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/extensions/pg_hstore_ops.rb +349 -0
  1238. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/extensions/pg_inet.rb +118 -0
  1239. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/extensions/pg_interval.rb +198 -0
  1240. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/extensions/pg_json.rb +365 -0
  1241. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/extensions/pg_json_ops.rb +434 -0
  1242. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/extensions/pg_loose_count.rb +33 -0
  1243. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/extensions/pg_range.rb +546 -0
  1244. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/extensions/pg_range_ops.rb +162 -0
  1245. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/extensions/pg_row.rb +615 -0
  1246. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/extensions/pg_row_ops.rb +194 -0
  1247. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/extensions/pg_static_cache_updater.rb +140 -0
  1248. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/extensions/pretty_table.rb +36 -0
  1249. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/extensions/query.rb +78 -0
  1250. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/extensions/query_literals.rb +80 -0
  1251. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/extensions/round_timestamps.rb +52 -0
  1252. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/extensions/ruby18_symbol_extensions.rb +22 -0
  1253. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/extensions/schema_caching.rb +75 -0
  1254. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/extensions/schema_dumper.rb +476 -0
  1255. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/extensions/select_remove.rb +48 -0
  1256. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/extensions/sequel_3_dataset_methods.rb +118 -0
  1257. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/extensions/server_block.rb +149 -0
  1258. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/extensions/set_overrides.rb +72 -0
  1259. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/extensions/split_array_nil.rb +66 -0
  1260. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/extensions/sql_expr.rb +20 -0
  1261. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/extensions/string_date_time.rb +50 -0
  1262. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/extensions/thread_local_timezones.rb +55 -0
  1263. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/extensions/to_dot.rb +154 -0
  1264. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/model.rb +175 -0
  1265. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/model/associations.rb +3171 -0
  1266. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/model/base.rb +2306 -0
  1267. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/model/dataset_module.rb +30 -0
  1268. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/model/default_inflections.rb +45 -0
  1269. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/model/errors.rb +58 -0
  1270. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/model/exceptions.rb +46 -0
  1271. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/model/inflections.rb +162 -0
  1272. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/model/plugins.rb +49 -0
  1273. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/no_core_ext.rb +1 -0
  1274. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/active_model.rb +99 -0
  1275. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/after_initialize.rb +37 -0
  1276. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/association_autoreloading.rb +7 -0
  1277. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/association_dependencies.rb +97 -0
  1278. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/association_pks.rb +167 -0
  1279. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/association_proxies.rb +105 -0
  1280. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/auto_validations.rb +161 -0
  1281. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/blacklist_security.rb +93 -0
  1282. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/boolean_readers.rb +56 -0
  1283. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/caching.rb +153 -0
  1284. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/class_table_inheritance.rb +292 -0
  1285. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/column_select.rb +57 -0
  1286. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/composition.rb +187 -0
  1287. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/constraint_validations.rb +229 -0
  1288. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/dataset_associations.rb +107 -0
  1289. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/defaults_setter.rb +69 -0
  1290. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/dirty.rb +231 -0
  1291. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/eager_each.rb +64 -0
  1292. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/error_splitter.rb +54 -0
  1293. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/force_encoding.rb +81 -0
  1294. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/hook_class_methods.rb +125 -0
  1295. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/input_transformer.rb +79 -0
  1296. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/insert_returning_select.rb +70 -0
  1297. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/instance_filters.rb +131 -0
  1298. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/instance_hooks.rb +96 -0
  1299. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/json_serializer.rb +352 -0
  1300. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/lazy_attributes.rb +117 -0
  1301. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/list.rb +189 -0
  1302. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/many_through_many.rb +317 -0
  1303. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/many_to_one_pk_lookup.rb +7 -0
  1304. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/modification_detection.rb +90 -0
  1305. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/mssql_optimistic_locking.rb +92 -0
  1306. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/nested_attributes.rb +323 -0
  1307. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/optimistic_locking.rb +83 -0
  1308. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/pg_array_associations.rb +528 -0
  1309. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/pg_row.rb +123 -0
  1310. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/pg_typecast_on_load.rb +78 -0
  1311. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/prepared_statements.rb +205 -0
  1312. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/prepared_statements_associations.rb +116 -0
  1313. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/prepared_statements_safe.rb +73 -0
  1314. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/prepared_statements_with_pk.rb +59 -0
  1315. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/rcte_tree.rb +343 -0
  1316. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/schema.rb +80 -0
  1317. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/scissors.rb +33 -0
  1318. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/serialization.rb +235 -0
  1319. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/serialization_modification_detection.rb +84 -0
  1320. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/sharding.rb +117 -0
  1321. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/single_table_inheritance.rb +230 -0
  1322. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/skip_create_refresh.rb +35 -0
  1323. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/split_values.rb +64 -0
  1324. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/static_cache.rb +215 -0
  1325. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/string_stripper.rb +57 -0
  1326. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/subclasses.rb +61 -0
  1327. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/table_select.rb +41 -0
  1328. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/tactical_eager_loading.rb +85 -0
  1329. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/timestamps.rb +95 -0
  1330. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/touch.rb +140 -0
  1331. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/tree.rb +156 -0
  1332. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/typecast_on_load.rb +80 -0
  1333. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/unlimited_update.rb +31 -0
  1334. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/update_or_create.rb +60 -0
  1335. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/update_primary_key.rb +70 -0
  1336. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/validation_class_methods.rb +439 -0
  1337. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/validation_helpers.rb +291 -0
  1338. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/plugins/xml_serializer.rb +410 -0
  1339. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/sql.rb +1865 -0
  1340. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/timezones.rb +221 -0
  1341. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/lib/sequel/version.rb +18 -0
  1342. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/adapters/db2_spec.rb +148 -0
  1343. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/adapters/fdbsql_spec.rb +429 -0
  1344. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/adapters/firebird_spec.rb +417 -0
  1345. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/adapters/informix_spec.rb +100 -0
  1346. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/adapters/mssql_spec.rb +722 -0
  1347. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/adapters/mysql_spec.rb +1304 -0
  1348. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/adapters/oracle_spec.rb +315 -0
  1349. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/adapters/postgres_spec.rb +3537 -0
  1350. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/adapters/spec_helper.rb +76 -0
  1351. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/adapters/sqlanywhere_spec.rb +170 -0
  1352. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/adapters/sqlite_spec.rb +650 -0
  1353. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/bin_spec.rb +256 -0
  1354. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/core/connection_pool_spec.rb +982 -0
  1355. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/core/database_spec.rb +2487 -0
  1356. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/core/dataset_spec.rb +4970 -0
  1357. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/core/deprecated_spec.rb +70 -0
  1358. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/core/expression_filters_spec.rb +1197 -0
  1359. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/core/mock_adapter_spec.rb +462 -0
  1360. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/core/object_graph_spec.rb +303 -0
  1361. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/core/placeholder_literalizer_spec.rb +163 -0
  1362. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/core/schema_generator_spec.rb +179 -0
  1363. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/core/schema_spec.rb +1610 -0
  1364. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/core/spec_helper.rb +49 -0
  1365. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/core/version_spec.rb +7 -0
  1366. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/core_extensions_spec.rb +695 -0
  1367. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/active_model_spec.rb +123 -0
  1368. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/after_initialize_spec.rb +24 -0
  1369. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/arbitrary_servers_spec.rb +109 -0
  1370. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/association_dependencies_spec.rb +117 -0
  1371. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/association_pks_spec.rb +281 -0
  1372. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/association_proxies_spec.rb +86 -0
  1373. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/auto_validations_spec.rb +158 -0
  1374. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/blacklist_security_spec.rb +87 -0
  1375. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/blank_spec.rb +69 -0
  1376. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/boolean_readers_spec.rb +93 -0
  1377. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/caching_spec.rb +270 -0
  1378. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/class_table_inheritance_spec.rb +274 -0
  1379. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/column_select_spec.rb +108 -0
  1380. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/columns_introspection_spec.rb +91 -0
  1381. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/composition_spec.rb +242 -0
  1382. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/connection_validator_spec.rb +118 -0
  1383. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/constraint_validations_plugin_spec.rb +274 -0
  1384. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/constraint_validations_spec.rb +325 -0
  1385. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/core_refinements_spec.rb +519 -0
  1386. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/current_datetime_timestamp_spec.rb +27 -0
  1387. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/dataset_associations_spec.rb +311 -0
  1388. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/dataset_source_alias_spec.rb +51 -0
  1389. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/date_arithmetic_spec.rb +157 -0
  1390. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/defaults_setter_spec.rb +101 -0
  1391. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/dirty_spec.rb +180 -0
  1392. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/eager_each_spec.rb +42 -0
  1393. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/empty_array_ignore_nulls_spec.rb +24 -0
  1394. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/error_splitter_spec.rb +18 -0
  1395. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/error_sql_spec.rb +20 -0
  1396. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/eval_inspect_spec.rb +73 -0
  1397. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/filter_having_spec.rb +40 -0
  1398. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/force_encoding_spec.rb +114 -0
  1399. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/from_block_spec.rb +21 -0
  1400. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/graph_each_spec.rb +109 -0
  1401. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/hash_aliases_spec.rb +24 -0
  1402. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/hook_class_methods_spec.rb +416 -0
  1403. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/inflector_spec.rb +183 -0
  1404. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/input_transformer_spec.rb +54 -0
  1405. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/insert_returning_select_spec.rb +46 -0
  1406. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/instance_filters_spec.rb +79 -0
  1407. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/instance_hooks_spec.rb +276 -0
  1408. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/json_serializer_spec.rb +267 -0
  1409. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/lazy_attributes_spec.rb +170 -0
  1410. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/list_spec.rb +265 -0
  1411. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/looser_typecasting_spec.rb +43 -0
  1412. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/many_through_many_spec.rb +2159 -0
  1413. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/meta_def_spec.rb +21 -0
  1414. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/migration_spec.rb +709 -0
  1415. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/modification_detection_spec.rb +80 -0
  1416. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/mssql_optimistic_locking_spec.rb +91 -0
  1417. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/named_timezones_spec.rb +108 -0
  1418. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/nested_attributes_spec.rb +697 -0
  1419. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/null_dataset_spec.rb +85 -0
  1420. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/optimistic_locking_spec.rb +128 -0
  1421. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/pagination_spec.rb +118 -0
  1422. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/pg_array_associations_spec.rb +736 -0
  1423. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/pg_array_ops_spec.rb +143 -0
  1424. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/pg_array_spec.rb +390 -0
  1425. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/pg_enum_spec.rb +64 -0
  1426. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/pg_hstore_ops_spec.rb +236 -0
  1427. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/pg_hstore_spec.rb +206 -0
  1428. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/pg_inet_spec.rb +52 -0
  1429. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/pg_interval_spec.rb +76 -0
  1430. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/pg_json_ops_spec.rb +226 -0
  1431. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/pg_json_spec.rb +218 -0
  1432. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/pg_loose_count_spec.rb +17 -0
  1433. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/pg_range_ops_spec.rb +58 -0
  1434. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/pg_range_spec.rb +404 -0
  1435. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/pg_row_ops_spec.rb +60 -0
  1436. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/pg_row_plugin_spec.rb +62 -0
  1437. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/pg_row_spec.rb +360 -0
  1438. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/pg_static_cache_updater_spec.rb +92 -0
  1439. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/pg_typecast_on_load_spec.rb +63 -0
  1440. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/prepared_statements_associations_spec.rb +151 -0
  1441. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/prepared_statements_safe_spec.rb +61 -0
  1442. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/prepared_statements_spec.rb +103 -0
  1443. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/prepared_statements_with_pk_spec.rb +31 -0
  1444. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/pretty_table_spec.rb +92 -0
  1445. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/query_literals_spec.rb +167 -0
  1446. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/query_spec.rb +102 -0
  1447. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/rcte_tree_spec.rb +387 -0
  1448. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/round_timestamps_spec.rb +43 -0
  1449. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/schema_caching_spec.rb +41 -0
  1450. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/schema_dumper_spec.rb +788 -0
  1451. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/schema_spec.rb +113 -0
  1452. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/scissors_spec.rb +26 -0
  1453. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/select_remove_spec.rb +38 -0
  1454. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/sequel_3_dataset_methods_spec.rb +101 -0
  1455. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/serialization_modification_detection_spec.rb +98 -0
  1456. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/serialization_spec.rb +340 -0
  1457. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/server_block_spec.rb +90 -0
  1458. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/set_overrides_spec.rb +61 -0
  1459. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/sharding_spec.rb +198 -0
  1460. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/shared_caching_spec.rb +175 -0
  1461. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/single_table_inheritance_spec.rb +276 -0
  1462. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/skip_create_refresh_spec.rb +17 -0
  1463. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/spec_helper.rb +96 -0
  1464. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/split_array_nil_spec.rb +24 -0
  1465. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/split_values_spec.rb +22 -0
  1466. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/sql_expr_spec.rb +60 -0
  1467. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/static_cache_spec.rb +355 -0
  1468. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/string_date_time_spec.rb +95 -0
  1469. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/string_stripper_spec.rb +68 -0
  1470. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/subclasses_spec.rb +66 -0
  1471. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/table_select_spec.rb +71 -0
  1472. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/tactical_eager_loading_spec.rb +82 -0
  1473. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/thread_local_timezones_spec.rb +67 -0
  1474. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/timestamps_spec.rb +175 -0
  1475. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/to_dot_spec.rb +154 -0
  1476. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/touch_spec.rb +203 -0
  1477. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/tree_spec.rb +270 -0
  1478. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/typecast_on_load_spec.rb +80 -0
  1479. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/unlimited_update_spec.rb +20 -0
  1480. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/update_or_create_spec.rb +81 -0
  1481. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/update_primary_key_spec.rb +100 -0
  1482. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/validation_class_methods_spec.rb +1030 -0
  1483. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/validation_helpers_spec.rb +520 -0
  1484. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/xml_serializer_spec.rb +207 -0
  1485. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/files/bad_down_migration/001_create_alt_basic.rb +4 -0
  1486. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/files/bad_down_migration/002_create_alt_advanced.rb +4 -0
  1487. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/files/bad_timestamped_migrations/1273253849_create_sessions.rb +9 -0
  1488. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/files/bad_timestamped_migrations/1273253851_create_nodes.rb +9 -0
  1489. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/files/bad_timestamped_migrations/1273253853_3_create_users.rb +3 -0
  1490. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/files/bad_up_migration/001_create_alt_basic.rb +4 -0
  1491. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/files/bad_up_migration/002_create_alt_advanced.rb +3 -0
  1492. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/files/convert_to_timestamp_migrations/001_create_sessions.rb +9 -0
  1493. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/files/convert_to_timestamp_migrations/002_create_nodes.rb +9 -0
  1494. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/files/convert_to_timestamp_migrations/003_3_create_users.rb +4 -0
  1495. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/files/convert_to_timestamp_migrations/1273253850_create_artists.rb +9 -0
  1496. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/files/convert_to_timestamp_migrations/1273253852_create_albums.rb +9 -0
  1497. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/files/duplicate_integer_migrations/001_create_alt_advanced.rb +4 -0
  1498. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/files/duplicate_integer_migrations/001_create_alt_basic.rb +4 -0
  1499. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/files/duplicate_timestamped_migrations/1273253849_create_sessions.rb +9 -0
  1500. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/files/duplicate_timestamped_migrations/1273253853_create_nodes.rb +9 -0
  1501. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/files/duplicate_timestamped_migrations/1273253853_create_users.rb +4 -0
  1502. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/files/integer_migrations/001_create_sessions.rb +9 -0
  1503. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/files/integer_migrations/002_create_nodes.rb +9 -0
  1504. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/files/integer_migrations/003_3_create_users.rb +4 -0
  1505. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/files/interleaved_timestamped_migrations/1273253849_create_sessions.rb +9 -0
  1506. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/files/interleaved_timestamped_migrations/1273253850_create_artists.rb +9 -0
  1507. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/files/interleaved_timestamped_migrations/1273253851_create_nodes.rb +9 -0
  1508. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/files/interleaved_timestamped_migrations/1273253852_create_albums.rb +9 -0
  1509. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/files/interleaved_timestamped_migrations/1273253853_3_create_users.rb +4 -0
  1510. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/files/missing_integer_migrations/001_create_alt_basic.rb +4 -0
  1511. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/files/missing_integer_migrations/003_create_alt_advanced.rb +4 -0
  1512. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/files/missing_timestamped_migrations/1273253849_create_sessions.rb +9 -0
  1513. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/files/missing_timestamped_migrations/1273253853_3_create_users.rb +4 -0
  1514. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/files/reversible_migrations/001_reversible.rb +5 -0
  1515. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/files/reversible_migrations/002_reversible.rb +5 -0
  1516. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/files/reversible_migrations/003_reversible.rb +5 -0
  1517. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/files/reversible_migrations/004_reversible.rb +5 -0
  1518. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/files/reversible_migrations/005_reversible.rb +10 -0
  1519. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/files/timestamped_migrations/1273253849_create_sessions.rb +9 -0
  1520. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/files/timestamped_migrations/1273253851_create_nodes.rb +9 -0
  1521. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/files/timestamped_migrations/1273253853_3_create_users.rb +4 -0
  1522. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/files/transaction_specified_migrations/001_create_alt_basic.rb +4 -0
  1523. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/files/transaction_specified_migrations/002_create_basic.rb +4 -0
  1524. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/files/transaction_unspecified_migrations/001_create_alt_basic.rb +3 -0
  1525. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/files/transaction_unspecified_migrations/002_create_basic.rb +3 -0
  1526. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/files/uppercase_timestamped_migrations/1273253849_CREATE_SESSIONS.RB +9 -0
  1527. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/files/uppercase_timestamped_migrations/1273253851_CREATE_NODES.RB +9 -0
  1528. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/files/uppercase_timestamped_migrations/1273253853_3_CREATE_USERS.RB +4 -0
  1529. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/integration/associations_test.rb +2453 -0
  1530. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/integration/database_test.rb +113 -0
  1531. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/integration/dataset_test.rb +1798 -0
  1532. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/integration/eager_loader_test.rb +687 -0
  1533. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/integration/migrator_test.rb +240 -0
  1534. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/integration/model_test.rb +226 -0
  1535. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/integration/plugin_test.rb +2162 -0
  1536. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/integration/prepared_statement_test.rb +426 -0
  1537. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/integration/schema_test.rb +801 -0
  1538. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/integration/spec_helper.rb +111 -0
  1539. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/integration/timezone_test.rb +86 -0
  1540. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/integration/transaction_test.rb +374 -0
  1541. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/integration/type_test.rb +133 -0
  1542. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/model/association_reflection_spec.rb +500 -0
  1543. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/model/associations_spec.rb +4316 -0
  1544. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/model/base_spec.rb +746 -0
  1545. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/model/class_dataset_methods_spec.rb +145 -0
  1546. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/model/dataset_methods_spec.rb +149 -0
  1547. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/model/eager_loading_spec.rb +2080 -0
  1548. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/model/hooks_spec.rb +536 -0
  1549. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/model/inflector_spec.rb +26 -0
  1550. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/model/model_spec.rb +992 -0
  1551. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/model/plugins_spec.rb +299 -0
  1552. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/model/record_spec.rb +2053 -0
  1553. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/model/spec_helper.rb +64 -0
  1554. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/model/validations_spec.rb +191 -0
  1555. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/rspec_helper.rb +22 -0
  1556. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/sequel_coverage.rb +15 -0
  1557. data/vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/spec_config.rb +2 -0
  1558. data/vendor/bundle/ruby/1.9.1/gems/slop-3.5.0/CHANGES.md +303 -0
  1559. data/vendor/bundle/ruby/1.9.1/gems/slop-3.5.0/Gemfile +3 -0
  1560. data/vendor/bundle/ruby/1.9.1/gems/slop-3.5.0/LICENSE +20 -0
  1561. data/vendor/bundle/ruby/1.9.1/gems/slop-3.5.0/README.md +182 -0
  1562. data/vendor/bundle/ruby/1.9.1/gems/slop-3.5.0/Rakefile +29 -0
  1563. data/vendor/bundle/ruby/1.9.1/gems/slop-3.5.0/lib/slop.rb +687 -0
  1564. data/vendor/bundle/ruby/1.9.1/gems/slop-3.5.0/lib/slop/commands.rb +196 -0
  1565. data/vendor/bundle/ruby/1.9.1/gems/slop-3.5.0/lib/slop/option.rb +209 -0
  1566. data/vendor/bundle/ruby/1.9.1/gems/slop-3.5.0/slop.gemspec +17 -0
  1567. data/vendor/bundle/ruby/1.9.1/gems/slop-3.5.0/test/commands_test.rb +26 -0
  1568. data/vendor/bundle/ruby/1.9.1/gems/slop-3.5.0/test/helper.rb +12 -0
  1569. data/vendor/bundle/ruby/1.9.1/gems/slop-3.5.0/test/option_test.rb +138 -0
  1570. data/vendor/bundle/ruby/1.9.1/gems/slop-3.5.0/test/slop_test.rb +518 -0
  1571. data/vendor/bundle/ruby/1.9.1/gems/threadify-1.3.0/README +151 -0
  1572. data/vendor/bundle/ruby/1.9.1/gems/threadify-1.3.0/README.erb +43 -0
  1573. data/vendor/bundle/ruby/1.9.1/gems/threadify-1.3.0/lib/threadify.rb +176 -0
  1574. data/vendor/bundle/ruby/1.9.1/gems/threadify-1.3.0/rakefile +222 -0
  1575. data/vendor/bundle/ruby/1.9.1/gems/threadify-1.3.0/sample/a.rb +37 -0
  1576. data/vendor/bundle/ruby/1.9.1/gems/threadify-1.3.0/sample/b.rb +41 -0
  1577. data/vendor/bundle/ruby/1.9.1/gems/threadify-1.3.0/threadify.gemspec +26 -0
  1578. data/vendor/bundle/ruby/1.9.1/specifications/amalgalite-1.3.0.gemspec +52 -0
  1579. data/vendor/bundle/ruby/1.9.1/specifications/arrayfields-4.7.4.gemspec +16 -0
  1580. data/vendor/bundle/ruby/1.9.1/specifications/chronic-0.10.2.gemspec +42 -0
  1581. data/vendor/bundle/ruby/1.9.1/specifications/coderay-1.1.0.gemspec +23 -0
  1582. data/vendor/bundle/ruby/1.9.1/specifications/coerce-0.0.6.gemspec +30 -0
  1583. data/vendor/bundle/ruby/1.9.1/specifications/daemons-1.1.9.gemspec +19 -0
  1584. data/vendor/bundle/ruby/1.9.1/specifications/fastercsv-1.5.5.gemspec +20 -0
  1585. data/vendor/bundle/ruby/1.9.1/specifications/fattr-2.2.2.gemspec +18 -0
  1586. data/vendor/bundle/ruby/1.9.1/specifications/flowdock-0.5.0.gemspec +51 -0
  1587. data/vendor/bundle/ruby/1.9.1/specifications/highline-1.6.21.gemspec +21 -0
  1588. data/vendor/bundle/ruby/1.9.1/specifications/httparty-0.13.1.gemspec +35 -0
  1589. data/vendor/bundle/ruby/1.9.1/specifications/json-1.8.1.gemspec +36 -0
  1590. data/vendor/bundle/ruby/1.9.1/specifications/main-6.0.0.gemspec +39 -0
  1591. data/vendor/bundle/ruby/1.9.1/specifications/main-6.1.0.gemspec +39 -0
  1592. data/vendor/bundle/ruby/1.9.1/specifications/map-6.5.5.gemspec +18 -0
  1593. data/vendor/bundle/ruby/1.9.1/specifications/method_source-0.8.2.gemspec +31 -0
  1594. data/vendor/bundle/ruby/1.9.1/specifications/multi_json-1.10.1.gemspec +30 -0
  1595. data/vendor/bundle/ruby/1.9.1/specifications/multi_xml-0.5.5.gemspec +30 -0
  1596. data/vendor/bundle/ruby/1.9.1/specifications/pry-0.9.12.6.gemspec +51 -0
  1597. data/vendor/bundle/ruby/1.9.1/specifications/sekrets-1.7.0.gemspec +43 -0
  1598. data/vendor/bundle/ruby/1.9.1/specifications/sequel-4.15.0.gemspec +22 -0
  1599. data/vendor/bundle/ruby/1.9.1/specifications/slop-3.5.0.gemspec +33 -0
  1600. data/vendor/bundle/ruby/1.9.1/specifications/threadify-1.3.0.gemspec +16 -0
  1601. metadata +1804 -0
@@ -0,0 +1,2487 @@
1
+ require File.join(File.dirname(File.expand_path(__FILE__)), 'spec_helper')
2
+
3
+ describe "A new Database" do
4
+ before do
5
+ @db = Sequel::Database.new(1 => 2, :logger => 3)
6
+ end
7
+ after do
8
+ Sequel.quote_identifiers = false
9
+ Sequel.identifier_input_method = nil
10
+ Sequel.identifier_output_method = nil
11
+ end
12
+
13
+ specify "should receive options" do
14
+ @db.opts[1].should == 2
15
+ @db.opts[:logger].should == 3
16
+ end
17
+
18
+ specify "should set the logger from opts[:logger] and opts[:loggers]" do
19
+ @db.loggers.should == [3]
20
+ Sequel::Database.new(1 => 2, :loggers => 3).loggers.should == [3]
21
+ Sequel::Database.new(1 => 2, :loggers => [3]).loggers.should == [3]
22
+ Sequel::Database.new(1 => 2, :logger => 4, :loggers => 3).loggers.should == [4,3]
23
+ Sequel::Database.new(1 => 2, :logger => [4], :loggers => [3]).loggers.should == [4,3]
24
+ end
25
+
26
+ specify "should handle the default string column size" do
27
+ @db.default_string_column_size.should == 255
28
+ db = Sequel::Database.new(:default_string_column_size=>50)
29
+ db.default_string_column_size.should == 50
30
+ db.default_string_column_size = 2
31
+ db.default_string_column_size.should == 2
32
+ end
33
+
34
+ specify "should set the sql_log_level from opts[:sql_log_level]" do
35
+ Sequel::Database.new(1 => 2, :sql_log_level=>:debug).sql_log_level.should == :debug
36
+ Sequel::Database.new(1 => 2, :sql_log_level=>'debug').sql_log_level.should == :debug
37
+ end
38
+
39
+ specify "should create a connection pool" do
40
+ @db.pool.should be_a_kind_of(Sequel::ConnectionPool)
41
+ @db.pool.max_size.should == 4
42
+
43
+ Sequel::Database.new(:max_connections => 10).pool.max_size.should == 10
44
+ end
45
+
46
+ specify "should have the connection pool use the connect method to get connections" do
47
+ cc = nil
48
+ d = Sequel::Database.new
49
+ meta_def(d, :connect){|c| 1234}
50
+ d.synchronize {|c| cc = c}
51
+ cc.should == 1234
52
+ end
53
+
54
+ specify "should respect the :single_threaded option" do
55
+ db = Sequel::Database.new(:single_threaded=>true){123}
56
+ db.pool.should be_a_kind_of(Sequel::SingleConnectionPool)
57
+ db = Sequel::Database.new(:single_threaded=>'t'){123}
58
+ db.pool.should be_a_kind_of(Sequel::SingleConnectionPool)
59
+ db = Sequel::Database.new(:single_threaded=>'1'){123}
60
+ db.pool.should be_a_kind_of(Sequel::SingleConnectionPool)
61
+ db = Sequel::Database.new(:single_threaded=>false){123}
62
+ db.pool.should be_a_kind_of(Sequel::ConnectionPool)
63
+ db = Sequel::Database.new(:single_threaded=>'f'){123}
64
+ db.pool.should be_a_kind_of(Sequel::ConnectionPool)
65
+ db = Sequel::Database.new(:single_threaded=>'0'){123}
66
+ db.pool.should be_a_kind_of(Sequel::ConnectionPool)
67
+ end
68
+
69
+ specify "should respect the :quote_identifiers option" do
70
+ db = Sequel::Database.new(:quote_identifiers=>false)
71
+ db.quote_identifiers?.should == false
72
+ db = Sequel::Database.new(:quote_identifiers=>true)
73
+ db.quote_identifiers?.should == true
74
+ end
75
+
76
+ specify "should upcase on input and downcase on output by default" do
77
+ db = Sequel::Database.new
78
+ db.send(:identifier_input_method_default).should == :upcase
79
+ db.send(:identifier_output_method_default).should == :downcase
80
+ end
81
+
82
+ specify "should respect the :identifier_input_method option" do
83
+ Sequel.identifier_input_method = nil
84
+ Sequel::Database.identifier_input_method.should == false
85
+ db = Sequel::Database.new(:identifier_input_method=>nil)
86
+ db.identifier_input_method.should be_nil
87
+ db.identifier_input_method = :downcase
88
+ db.identifier_input_method.should == :downcase
89
+ db = Sequel::Database.new(:identifier_input_method=>:upcase)
90
+ db.identifier_input_method.should == :upcase
91
+ db.identifier_input_method = nil
92
+ db.identifier_input_method.should be_nil
93
+ Sequel.identifier_input_method = :downcase
94
+ Sequel::Database.identifier_input_method.should == :downcase
95
+ db = Sequel::Database.new(:identifier_input_method=>nil)
96
+ db.identifier_input_method.should be_nil
97
+ db.identifier_input_method = :upcase
98
+ db.identifier_input_method.should == :upcase
99
+ db = Sequel::Database.new(:identifier_input_method=>:upcase)
100
+ db.identifier_input_method.should == :upcase
101
+ db.identifier_input_method = nil
102
+ db.identifier_input_method.should be_nil
103
+ end
104
+
105
+ specify "should respect the :identifier_output_method option" do
106
+ Sequel.identifier_output_method = nil
107
+ Sequel::Database.identifier_output_method.should == false
108
+ db = Sequel::Database.new(:identifier_output_method=>nil)
109
+ db.identifier_output_method.should be_nil
110
+ db.identifier_output_method = :downcase
111
+ db.identifier_output_method.should == :downcase
112
+ db = Sequel::Database.new(:identifier_output_method=>:upcase)
113
+ db.identifier_output_method.should == :upcase
114
+ db.identifier_output_method = nil
115
+ db.identifier_output_method.should be_nil
116
+ Sequel.identifier_output_method = :downcase
117
+ Sequel::Database.identifier_output_method.should == :downcase
118
+ db = Sequel::Database.new(:identifier_output_method=>nil)
119
+ db.identifier_output_method.should be_nil
120
+ db.identifier_output_method = :upcase
121
+ db.identifier_output_method.should == :upcase
122
+ db = Sequel::Database.new(:identifier_output_method=>:upcase)
123
+ db.identifier_output_method.should == :upcase
124
+ db.identifier_output_method = nil
125
+ db.identifier_output_method.should be_nil
126
+ end
127
+
128
+ specify "should use the default Sequel.quote_identifiers value" do
129
+ Sequel.quote_identifiers = true
130
+ Sequel::Database.new({}).quote_identifiers?.should == true
131
+ Sequel.quote_identifiers = false
132
+ Sequel::Database.new({}).quote_identifiers?.should == false
133
+ Sequel::Database.quote_identifiers = true
134
+ Sequel::Database.new({}).quote_identifiers?.should == true
135
+ Sequel::Database.quote_identifiers = false
136
+ Sequel::Database.new({}).quote_identifiers?.should == false
137
+ end
138
+
139
+ specify "should use the default Sequel.identifier_input_method value" do
140
+ Sequel.identifier_input_method = :downcase
141
+ Sequel::Database.new({}).identifier_input_method.should == :downcase
142
+ Sequel.identifier_input_method = :upcase
143
+ Sequel::Database.new({}).identifier_input_method.should == :upcase
144
+ Sequel::Database.identifier_input_method = :downcase
145
+ Sequel::Database.new({}).identifier_input_method.should == :downcase
146
+ Sequel::Database.identifier_input_method = :upcase
147
+ Sequel::Database.new({}).identifier_input_method.should == :upcase
148
+ end
149
+
150
+ specify "should use the default Sequel.identifier_output_method value" do
151
+ Sequel.identifier_output_method = :downcase
152
+ Sequel::Database.new({}).identifier_output_method.should == :downcase
153
+ Sequel.identifier_output_method = :upcase
154
+ Sequel::Database.new({}).identifier_output_method.should == :upcase
155
+ Sequel::Database.identifier_output_method = :downcase
156
+ Sequel::Database.new({}).identifier_output_method.should == :downcase
157
+ Sequel::Database.identifier_output_method = :upcase
158
+ Sequel::Database.new({}).identifier_output_method.should == :upcase
159
+ end
160
+
161
+ specify "should respect the quote_indentifiers_default method if Sequel.quote_identifiers = nil" do
162
+ Sequel.quote_identifiers = nil
163
+ Sequel::Database.new({}).quote_identifiers?.should == true
164
+ x = Class.new(Sequel::Database){def quote_identifiers_default; false end}
165
+ x.new({}).quote_identifiers?.should == false
166
+ y = Class.new(Sequel::Database){def quote_identifiers_default; true end}
167
+ y.new({}).quote_identifiers?.should == true
168
+ end
169
+
170
+ specify "should respect the identifier_input_method_default method" do
171
+ class Sequel::Database
172
+ @identifier_input_method = nil
173
+ end
174
+ x = Class.new(Sequel::Database){def identifier_input_method_default; :downcase end}
175
+ x.new({}).identifier_input_method.should == :downcase
176
+ y = Class.new(Sequel::Database){def identifier_input_method_default; :camelize end}
177
+ y.new({}).identifier_input_method.should == :camelize
178
+ end
179
+
180
+ specify "should respect the identifier_output_method_default method if Sequel.identifier_output_method is not called" do
181
+ class Sequel::Database
182
+ @identifier_output_method = nil
183
+ end
184
+ x = Class.new(Sequel::Database){def identifier_output_method_default; :upcase end}
185
+ x.new({}).identifier_output_method.should == :upcase
186
+ y = Class.new(Sequel::Database){def identifier_output_method_default; :underscore end}
187
+ y.new({}).identifier_output_method.should == :underscore
188
+ end
189
+
190
+ specify "should just use a :uri option for jdbc with the full connection string" do
191
+ Sequel::Database.should_receive(:adapter_class).once.with(:jdbc).and_return(Sequel::Database)
192
+ db = Sequel.connect('jdbc:test://host/db_name')
193
+ db.should be_a_kind_of(Sequel::Database)
194
+ db.opts[:uri].should == 'jdbc:test://host/db_name'
195
+ end
196
+
197
+ specify "should just use a :uri option for do with the full connection string" do
198
+ Sequel::Database.should_receive(:adapter_class).once.with(:do).and_return(Sequel::Database)
199
+ db = Sequel.connect('do:test://host/db_name')
200
+ db.should be_a_kind_of(Sequel::Database)
201
+ db.opts[:uri].should == 'do:test://host/db_name'
202
+ end
203
+
204
+ specify "should populate :adapter option when using connection string" do
205
+ Sequel.connect('mock:/').opts[:adapter].should == "mock"
206
+ end
207
+
208
+ specify "should respect the :keep_reference option for not keeping a reference in Sequel::DATABASES" do
209
+ db = Sequel.connect('mock:///?keep_reference=f')
210
+ Sequel::DATABASES.should_not include(db)
211
+ end
212
+ end
213
+
214
+ describe "Database#disconnect" do
215
+ specify "should call pool.disconnect" do
216
+ d = Sequel::Database.new
217
+ p = d.pool
218
+ p.should_receive(:disconnect).once.with({}).and_return(2)
219
+ d.disconnect.should == 2
220
+ end
221
+ end
222
+
223
+ describe "Sequel.extension" do
224
+ specify "should attempt to load the given extension" do
225
+ proc{Sequel.extension :blah}.should raise_error(LoadError)
226
+ end
227
+ end
228
+
229
+ describe "Database#log_info" do
230
+ before do
231
+ @o = Object.new
232
+ def @o.logs; @logs || []; end
233
+ def @o.to_ary; [self]; end
234
+ def @o.method_missing(*args); (@logs ||= []) << args; end
235
+ @db = Sequel::Database.new(:logger=>@o)
236
+ end
237
+
238
+ specify "should log message at info level to all loggers" do
239
+ @db.log_info('blah')
240
+ @o.logs.should == [[:info, 'blah']]
241
+ end
242
+
243
+ specify "should log message with args at info level to all loggers" do
244
+ @db.log_info('blah', [1, 2])
245
+ @o.logs.should == [[:info, 'blah; [1, 2]']]
246
+ end
247
+ end
248
+
249
+ describe "Database#log_yield" do
250
+ before do
251
+ @o = Object.new
252
+ def @o.logs; @logs || []; end
253
+ def @o.warn(*args); (@logs ||= []) << [:warn] + args; end
254
+ def @o.method_missing(*args); (@logs ||= []) << args; end
255
+ def @o.to_ary; [self]; end
256
+ @db = Sequel::Database.new(:logger=>@o)
257
+ end
258
+
259
+ specify "should yield to the passed block" do
260
+ a = nil
261
+ @db.log_yield('blah'){a = 1}
262
+ a.should == 1
263
+ end
264
+
265
+ specify "should raise an exception if a block is not passed" do
266
+ proc{@db.log_yield('blah')}.should raise_error
267
+ end
268
+
269
+ specify "should log message with duration at info level to all loggers" do
270
+ @db.log_yield('blah'){}
271
+ @o.logs.length.should == 1
272
+ @o.logs.first.length.should == 2
273
+ @o.logs.first.first.should == :info
274
+ @o.logs.first.last.should =~ /\A\(\d\.\d{6}s\) blah\z/
275
+ end
276
+
277
+ specify "should respect sql_log_level setting" do
278
+ @db.sql_log_level = :debug
279
+ @db.log_yield('blah'){}
280
+ @o.logs.length.should == 1
281
+ @o.logs.first.length.should == 2
282
+ @o.logs.first.first.should == :debug
283
+ @o.logs.first.last.should =~ /\A\(\d\.\d{6}s\) blah\z/
284
+ end
285
+
286
+ specify "should log message with duration at warn level if duration greater than log_warn_duration" do
287
+ @db.log_warn_duration = 0
288
+ @db.log_yield('blah'){}
289
+ @o.logs.length.should == 1
290
+ @o.logs.first.length.should == 2
291
+ @o.logs.first.first.should == :warn
292
+ @o.logs.first.last.should =~ /\A\(\d\.\d{6}s\) blah\z/
293
+ end
294
+
295
+ specify "should log message with duration at info level if duration less than log_warn_duration" do
296
+ @db.log_warn_duration = 1000
297
+ @db.log_yield('blah'){}
298
+ @o.logs.length.should == 1
299
+ @o.logs.first.length.should == 2
300
+ @o.logs.first.first.should == :info
301
+ @o.logs.first.last.should =~ /\A\(\d\.\d{6}s\) blah\z/
302
+ end
303
+
304
+ specify "should log message at error level if block raises an error" do
305
+ @db.log_warn_duration = 0
306
+ proc{@db.log_yield('blah'){raise Sequel::Error, 'adsf'}}.should raise_error
307
+ @o.logs.length.should == 1
308
+ @o.logs.first.length.should == 2
309
+ @o.logs.first.first.should == :error
310
+ @o.logs.first.last.should =~ /\ASequel::Error: adsf: blah\z/
311
+ end
312
+
313
+ specify "should include args with message if args passed" do
314
+ @db.log_yield('blah', [1, 2]){}
315
+ @o.logs.length.should == 1
316
+ @o.logs.first.length.should == 2
317
+ @o.logs.first.first.should == :info
318
+ @o.logs.first.last.should =~ /\A\(\d\.\d{6}s\) blah; \[1, 2\]\z/
319
+ end
320
+ end
321
+
322
+ describe "Database#uri" do
323
+ before do
324
+ @c = Class.new(Sequel::Database) do
325
+ set_adapter_scheme :mau
326
+ end
327
+
328
+ @db = Sequel.connect('mau://user:pass@localhost:9876/maumau')
329
+ end
330
+
331
+ specify "should return the connection URI for the database" do
332
+ @db.uri.should == 'mau://user:pass@localhost:9876/maumau'
333
+ end
334
+
335
+ specify "should return nil if a connection uri was not used" do
336
+ Sequel.mock.uri.should be_nil
337
+ end
338
+
339
+ specify "should be aliased as #url" do
340
+ @db.url.should == 'mau://user:pass@localhost:9876/maumau'
341
+ end
342
+ end
343
+
344
+ describe "Database.adapter_scheme and #adapter_scheme" do
345
+ specify "should return the database scheme" do
346
+ Sequel::Database.adapter_scheme.should be_nil
347
+
348
+ @c = Class.new(Sequel::Database) do
349
+ set_adapter_scheme :mau
350
+ end
351
+
352
+ @c.adapter_scheme.should == :mau
353
+ @c.new({}).adapter_scheme.should == :mau
354
+ end
355
+ end
356
+
357
+ describe "Database#dataset" do
358
+ before do
359
+ @db = Sequel::Database.new
360
+ @ds = @db.dataset
361
+ end
362
+
363
+ specify "should provide a blank dataset through #dataset" do
364
+ @ds.should be_a_kind_of(Sequel::Dataset)
365
+ @ds.opts.should == {}
366
+ @ds.db.should be(@db)
367
+ end
368
+
369
+ specify "should provide a #from dataset" do
370
+ d = @db.from(:mau)
371
+ d.should be_a_kind_of(Sequel::Dataset)
372
+ d.sql.should == 'SELECT * FROM mau'
373
+
374
+ e = @db[:miu]
375
+ e.should be_a_kind_of(Sequel::Dataset)
376
+ e.sql.should == 'SELECT * FROM miu'
377
+ end
378
+
379
+ specify "should provide a filtered #from dataset if a block is given" do
380
+ d = @db.from(:mau){x.sql_number > 100}
381
+ d.should be_a_kind_of(Sequel::Dataset)
382
+ d.sql.should == 'SELECT * FROM mau WHERE (x > 100)'
383
+ end
384
+
385
+ specify "should provide a #select dataset" do
386
+ d = @db.select(:a, :b, :c).from(:mau)
387
+ d.should be_a_kind_of(Sequel::Dataset)
388
+ d.sql.should == 'SELECT a, b, c FROM mau'
389
+ end
390
+
391
+ specify "should allow #select to take a block" do
392
+ d = @db.select(:a, :b){c}.from(:mau)
393
+ d.should be_a_kind_of(Sequel::Dataset)
394
+ d.sql.should == 'SELECT a, b, c FROM mau'
395
+ end
396
+ end
397
+
398
+ describe "Database#dataset_class" do
399
+ before do
400
+ @db = Sequel::Database.new
401
+ @dsc = Class.new(Sequel::Dataset)
402
+ end
403
+
404
+ specify "should have setter set the class to use to create datasets" do
405
+ @db.dataset_class = @dsc
406
+ ds = @db.dataset
407
+ ds.should be_a_kind_of(@dsc)
408
+ ds.opts.should == {}
409
+ ds.db.should be(@db)
410
+ end
411
+
412
+ specify "should have getter return the class to use to create datasets" do
413
+ [@db.dataset_class, @db.dataset_class.superclass].should include(Sequel::Dataset)
414
+ @db.dataset_class = @dsc
415
+ [@db.dataset_class, @db.dataset_class.superclass].should include(@dsc)
416
+ end
417
+ end
418
+
419
+ describe "Database#extend_datasets" do
420
+ before do
421
+ @db = Sequel::Database.new
422
+ @m = Module.new{def foo() [3] end}
423
+ @m2 = Module.new{def foo() [4] + super end}
424
+ @db.extend_datasets(@m)
425
+ end
426
+
427
+ specify "should clear a cached dataset" do
428
+ @db = Sequel::Database.new
429
+ @db.literal(1).should == '1'
430
+ @db.extend_datasets{def literal(v) '2' end}
431
+ @db.literal(1).should == '2'
432
+ end
433
+
434
+ specify "should change the dataset class to a subclass the first time it is called" do
435
+ @db.dataset_class.superclass.should == Sequel::Dataset
436
+ end
437
+
438
+ specify "should not create a subclass of the dataset class if called more than once" do
439
+ @db.extend_datasets(@m2)
440
+ @db.dataset_class.superclass.should == Sequel::Dataset
441
+ end
442
+
443
+ specify "should make the dataset class include the module" do
444
+ @db.dataset_class.ancestors.should include(@m)
445
+ @db.dataset_class.ancestors.should_not include(@m2)
446
+ @db.extend_datasets(@m2)
447
+ @db.dataset_class.ancestors.should include(@m)
448
+ @db.dataset_class.ancestors.should include(@m2)
449
+ end
450
+
451
+ specify "should have datasets respond to the module's methods" do
452
+ @db.dataset.foo.should == [3]
453
+ @db.extend_datasets(@m2)
454
+ @db.dataset.foo.should == [4, 3]
455
+ end
456
+
457
+ specify "should take a block and create a module from it to use" do
458
+ @db.dataset.foo.should == [3]
459
+ @db.extend_datasets{def foo() [5] + super end}
460
+ @db.dataset.foo.should == [5, 3]
461
+ end
462
+
463
+ specify "should raise an error if both a module and a block are provided" do
464
+ proc{@db.extend_datasets(@m2){def foo() [5] + super end}}.should raise_error(Sequel::Error)
465
+ end
466
+
467
+ specify "should be able to override methods defined in the original Dataset class" do
468
+ @db.extend_datasets(Module.new{def select(*a, &block) super.order(*a, &block) end})
469
+ @db[:t].select(:a, :b).sql.should == 'SELECT a, b FROM t ORDER BY a, b'
470
+ end
471
+
472
+ specify "should reapply settings if dataset_class is changed" do
473
+ c = Class.new(Sequel::Dataset)
474
+ @db.dataset_class = c
475
+ @db.dataset_class.superclass.should == c
476
+ @db.dataset_class.ancestors.should include(@m)
477
+ @db.dataset.foo.should == [3]
478
+ end
479
+ end
480
+
481
+ describe "Database#disconnect_connection" do
482
+ specify "should call close on the connection" do
483
+ o = Object.new
484
+ def o.close() @closed=true end
485
+ Sequel::Database.new.disconnect_connection(o)
486
+ o.instance_variable_get(:@closed).should == true
487
+ end
488
+ end
489
+
490
+ describe "Database#valid_connection?" do
491
+ specify "should issue a query to validate the connection" do
492
+ db = Sequel.mock
493
+ db.synchronize{|c| db.valid_connection?(c)}.should == true
494
+ db.synchronize do |c|
495
+ def c.execute(*) raise Sequel::DatabaseError, "error" end
496
+ db.valid_connection?(c)
497
+ end.should == false
498
+ end
499
+ end
500
+
501
+ describe "Database#run" do
502
+ before do
503
+ @db = Sequel.mock(:servers=>{:s1=>{}})
504
+ end
505
+
506
+ specify "should execute the code on the database" do
507
+ @db.run("DELETE FROM items")
508
+ @db.sqls.should == ["DELETE FROM items"]
509
+ end
510
+
511
+ specify "should handle placeholder literal strings" do
512
+ @db.run(Sequel.lit("DELETE FROM ?", :items))
513
+ @db.sqls.should == ["DELETE FROM items"]
514
+ end
515
+
516
+ specify "should return nil" do
517
+ @db.run("DELETE FROM items").should be_nil
518
+ end
519
+
520
+ specify "should accept options passed to execute_ddl" do
521
+ @db.run("DELETE FROM items", :server=>:s1)
522
+ @db.sqls.should == ["DELETE FROM items -- s1"]
523
+ end
524
+ end
525
+
526
+ describe "Database#<<" do
527
+ before do
528
+ @db = Sequel.mock
529
+ end
530
+
531
+ specify "should execute the code on the database" do
532
+ @db << "DELETE FROM items"
533
+ @db.sqls.should == ["DELETE FROM items"]
534
+ end
535
+
536
+ specify "should handle placeholder literal strings" do
537
+ @db << Sequel.lit("DELETE FROM ?", :items)
538
+ @db.sqls.should == ["DELETE FROM items"]
539
+ end
540
+
541
+ specify "should be chainable" do
542
+ @db << "DELETE FROM items" << "DELETE FROM items2"
543
+ @db.sqls.should == ["DELETE FROM items", "DELETE FROM items2"]
544
+ end
545
+ end
546
+
547
+ describe "Database#synchronize" do
548
+ before do
549
+ @db = Sequel::Database.new(:max_connections => 1)
550
+ meta_def(@db, :connect){|c| 12345}
551
+ end
552
+
553
+ specify "should wrap the supplied block in pool.hold" do
554
+ q, q1, q2 = Queue.new, Queue.new, Queue.new
555
+ c1, c2 = nil
556
+ t1 = Thread.new{@db.synchronize{|c| c1 = c; q.push nil; q1.pop}; q.push nil}
557
+ q.pop
558
+ c1.should == 12345
559
+ t2 = Thread.new{@db.synchronize{|c| c2 = c; q2.push nil}}
560
+ @db.pool.available_connections.should be_empty
561
+ c2.should be_nil
562
+ q1.push nil
563
+ q.pop
564
+ q2.pop
565
+ c2.should == 12345
566
+ t1.join
567
+ t2.join
568
+ end
569
+ end
570
+
571
+ describe "Database#test_connection" do
572
+ before do
573
+ @db = Sequel::Database.new
574
+ pr = proc{@test = rand(100)}
575
+ meta_def(@db, :connect){|c| pr.call}
576
+ end
577
+
578
+ specify "should attempt to get a connection" do
579
+ @db.test_connection
580
+ @test.should_not be_nil
581
+ end
582
+
583
+ specify "should return true if successful" do
584
+ @db.test_connection.should == true
585
+ end
586
+
587
+ specify "should raise an error if the attempting to connect raises an error" do
588
+ def @db.connect(*) raise Sequel::Error end
589
+ proc{@db.test_connection}.should raise_error(Sequel::Error)
590
+ end
591
+ end
592
+
593
+ describe "Database#table_exists?" do
594
+ specify "should test existence by selecting a row from the table's dataset" do
595
+ db = Sequel.mock(:fetch=>[Sequel::Error, [], [{:a=>1}]])
596
+ db.table_exists?(:a).should == false
597
+ db.sqls.should == ["SELECT NULL AS nil FROM a LIMIT 1"]
598
+ db.table_exists?(:b).should == true
599
+ db.table_exists?(:c).should == true
600
+ end
601
+ end
602
+
603
+ shared_examples_for "Database#transaction" do
604
+ specify "should wrap the supplied block with BEGIN + COMMIT statements" do
605
+ @db.transaction{@db.execute 'DROP TABLE test;'}
606
+ @db.sqls.should == ['BEGIN', 'DROP TABLE test;', 'COMMIT']
607
+ end
608
+
609
+ specify "should support transaction isolation levels" do
610
+ meta_def(@db, :supports_transaction_isolation_levels?){true}
611
+ [:uncommitted, :committed, :repeatable, :serializable].each do |l|
612
+ @db.transaction(:isolation=>l){@db.run "DROP TABLE #{l}"}
613
+ end
614
+ @db.sqls.should == ['BEGIN', 'SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED', 'DROP TABLE uncommitted', 'COMMIT',
615
+ 'BEGIN', 'SET TRANSACTION ISOLATION LEVEL READ COMMITTED', 'DROP TABLE committed', 'COMMIT',
616
+ 'BEGIN', 'SET TRANSACTION ISOLATION LEVEL REPEATABLE READ', 'DROP TABLE repeatable', 'COMMIT',
617
+ 'BEGIN', 'SET TRANSACTION ISOLATION LEVEL SERIALIZABLE', 'DROP TABLE serializable', 'COMMIT']
618
+ end
619
+
620
+ specify "should allow specifying a default transaction isolation level" do
621
+ meta_def(@db, :supports_transaction_isolation_levels?){true}
622
+ [:uncommitted, :committed, :repeatable, :serializable].each do |l|
623
+ @db.transaction_isolation_level = l
624
+ @db.transaction{@db.run "DROP TABLE #{l}"}
625
+ end
626
+ @db.sqls.should == ['BEGIN', 'SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED', 'DROP TABLE uncommitted', 'COMMIT',
627
+ 'BEGIN', 'SET TRANSACTION ISOLATION LEVEL READ COMMITTED', 'DROP TABLE committed', 'COMMIT',
628
+ 'BEGIN', 'SET TRANSACTION ISOLATION LEVEL REPEATABLE READ', 'DROP TABLE repeatable', 'COMMIT',
629
+ 'BEGIN', 'SET TRANSACTION ISOLATION LEVEL SERIALIZABLE', 'DROP TABLE serializable', 'COMMIT']
630
+ end
631
+
632
+ specify "should support :retry_on option for automatically retrying transactions" do
633
+ a = []
634
+ @db.transaction(:retry_on=>Sequel::DatabaseDisconnectError){a << 1; raise Sequel::DatabaseDisconnectError if a.length < 2}
635
+ @db.sqls.should == ['BEGIN', 'ROLLBACK', 'BEGIN', 'COMMIT']
636
+ a.should == [1, 1]
637
+
638
+ a = []
639
+ @db.transaction(:retry_on=>[Sequel::ConstraintViolation, Sequel::SerializationFailure]) do
640
+ a << 1
641
+ raise Sequel::SerializationFailure if a.length == 1
642
+ raise Sequel::ConstraintViolation if a.length == 2
643
+ end
644
+ @db.sqls.should == ['BEGIN', 'ROLLBACK', 'BEGIN', 'ROLLBACK', 'BEGIN', 'COMMIT']
645
+ a.should == [1, 1, 1]
646
+ end
647
+
648
+ specify "should support :num_retries option for limiting the number of retry times" do
649
+ a = []
650
+ lambda do
651
+ @db.transaction(:num_retries=>1, :retry_on=>[Sequel::ConstraintViolation, Sequel::SerializationFailure]) do
652
+ a << 1
653
+ raise Sequel::SerializationFailure if a.length == 1
654
+ raise Sequel::ConstraintViolation if a.length == 2
655
+ end
656
+ end.should raise_error(Sequel::ConstraintViolation)
657
+ @db.sqls.should == ['BEGIN', 'ROLLBACK', 'BEGIN', 'ROLLBACK']
658
+ a.should == [1, 1]
659
+ end
660
+
661
+ specify "should support :num_retries=>nil option to retry indefinitely" do
662
+ a = []
663
+ lambda do
664
+ @db.transaction(:num_retries=>nil, :retry_on=>[Sequel::ConstraintViolation]) do
665
+ a << 1
666
+ raise Sequel::SerializationFailure if a.length >= 100
667
+ raise Sequel::ConstraintViolation
668
+ end
669
+ end.should raise_error(Sequel::SerializationFailure)
670
+ @db.sqls.should == ['BEGIN', 'ROLLBACK'] * 100
671
+ a.should == [1] * 100
672
+ end
673
+
674
+ specify "should raise an error if attempting to use :retry_on inside another transaction" do
675
+ proc{@db.transaction{@db.transaction(:retry_on=>Sequel::ConstraintViolation){}}}.should raise_error(Sequel::Error)
676
+ @db.sqls.should == ['BEGIN', 'ROLLBACK']
677
+ end
678
+
679
+ specify "should handle returning inside of the block by committing" do
680
+ def @db.ret_commit
681
+ transaction do
682
+ execute 'DROP TABLE test;'
683
+ return
684
+ end
685
+ end
686
+ @db.ret_commit
687
+ @db.sqls.should == ['BEGIN', 'DROP TABLE test;', 'COMMIT']
688
+ end
689
+
690
+ specify "should issue ROLLBACK if an exception is raised, and re-raise" do
691
+ @db.transaction {@db.execute 'DROP TABLE test'; raise RuntimeError} rescue nil
692
+ @db.sqls.should == ['BEGIN', 'DROP TABLE test', 'ROLLBACK']
693
+
694
+ proc {@db.transaction {raise RuntimeError}}.should raise_error(RuntimeError)
695
+ end
696
+
697
+ specify "should handle errors when sending BEGIN" do
698
+ ec = Class.new(StandardError)
699
+ meta_def(@db, :database_error_classes){[ec]}
700
+ meta_def(@db, :log_connection_execute){|c, sql| sql =~ /BEGIN/ ? raise(ec, 'bad') : super(c, sql)}
701
+ begin
702
+ @db.transaction{@db.execute 'DROP TABLE test;'}
703
+ rescue Sequel::DatabaseError => e
704
+ end
705
+ e.should_not be_nil
706
+ e.wrapped_exception.should be_a_kind_of(ec)
707
+ @db.sqls.should == ['ROLLBACK']
708
+ end
709
+
710
+ specify "should handle errors when sending COMMIT" do
711
+ ec = Class.new(StandardError)
712
+ meta_def(@db, :database_error_classes){[ec]}
713
+ meta_def(@db, :log_connection_execute){|c, sql| sql =~ /COMMIT/ ? raise(ec, 'bad') : super(c, sql)}
714
+ begin
715
+ @db.transaction{@db.execute 'DROP TABLE test;'}
716
+ rescue Sequel::DatabaseError => e
717
+ end
718
+ e.should_not be_nil
719
+ e.wrapped_exception.should be_a_kind_of(ec)
720
+ @db.sqls.should == ['BEGIN', 'DROP TABLE test;', 'ROLLBACK']
721
+ end
722
+
723
+ specify "should raise original exception if there is an exception raised when rolling back" do
724
+ ec = Class.new(StandardError)
725
+ meta_def(@db, :database_error_classes){[ec]}
726
+ meta_def(@db, :log_connection_execute){|c, sql| sql =~ /ROLLBACK/ ? raise(ec, 'bad') : super(c, sql)}
727
+ begin
728
+ @db.transaction{raise ArgumentError, 'asdf'}
729
+ rescue => e
730
+ end
731
+ e.should be_a_kind_of(ArgumentError)
732
+ @db.sqls.should == ['BEGIN']
733
+ end
734
+
735
+ specify "should issue ROLLBACK if Sequel::Rollback is called in the transaction" do
736
+ @db.transaction do
737
+ @db.drop_table(:a)
738
+ raise Sequel::Rollback
739
+ @db.drop_table(:b)
740
+ end
741
+
742
+ @db.sqls.should == ['BEGIN', 'DROP TABLE a', 'ROLLBACK']
743
+ end
744
+
745
+ specify "should have in_transaction? return true if inside a transaction" do
746
+ c = nil
747
+ @db.transaction{c = @db.in_transaction?}
748
+ c.should == true
749
+ end
750
+
751
+ specify "should have in_transaction? handle sharding correctly" do
752
+ c = []
753
+ @db.transaction(:server=>:test){c << @db.in_transaction?}
754
+ @db.transaction(:server=>:test){c << @db.in_transaction?(:server=>:test)}
755
+ c.should == [false, true]
756
+ end
757
+
758
+ specify "should have in_transaction? return false if not in a transaction" do
759
+ @db.in_transaction?.should == false
760
+ end
761
+
762
+ specify "should return nil if Sequel::Rollback is called in the transaction" do
763
+ @db.transaction{raise Sequel::Rollback}.should be_nil
764
+ end
765
+
766
+ specify "should reraise Sequel::Rollback errors when using :rollback=>:reraise option is given" do
767
+ proc {@db.transaction(:rollback=>:reraise){raise Sequel::Rollback}}.should raise_error(Sequel::Rollback)
768
+ @db.sqls.should == ['BEGIN', 'ROLLBACK']
769
+ proc {@db.transaction(:rollback=>:reraise){raise ArgumentError}}.should raise_error(ArgumentError)
770
+ @db.sqls.should == ['BEGIN', 'ROLLBACK']
771
+ @db.transaction(:rollback=>:reraise){1}.should == 1
772
+ @db.sqls.should == ['BEGIN', 'COMMIT']
773
+ end
774
+
775
+ specify "should always rollback if :rollback=>:always option is given" do
776
+ proc {@db.transaction(:rollback=>:always){raise ArgumentError}}.should raise_error(ArgumentError)
777
+ @db.sqls.should == ['BEGIN', 'ROLLBACK']
778
+ @db.transaction(:rollback=>:always){raise Sequel::Rollback}.should be_nil
779
+ @db.sqls.should == ['BEGIN', 'ROLLBACK']
780
+ @db.transaction(:rollback=>:always){1}.should be_nil
781
+ @db.sqls.should == ['BEGIN', 'ROLLBACK']
782
+ catch(:foo) do
783
+ @db.transaction(:rollback=>:always){throw :foo}
784
+ end
785
+ @db.sqls.should == ['BEGIN', 'ROLLBACK']
786
+ end
787
+
788
+ specify "should raise database errors when commiting a transaction as Sequel::DatabaseError" do
789
+ meta_def(@db, :commit_transaction){raise ArgumentError}
790
+ lambda{@db.transaction{}}.should raise_error(ArgumentError)
791
+
792
+ meta_def(@db, :database_error_classes){[ArgumentError]}
793
+ lambda{@db.transaction{}}.should raise_error(Sequel::DatabaseError)
794
+ end
795
+
796
+ specify "should be re-entrant" do
797
+ q, q1 = Queue.new, Queue.new
798
+ cc = nil
799
+ t = Thread.new do
800
+ @db.transaction {@db.transaction {@db.transaction {|c|
801
+ cc = c
802
+ q.pop
803
+ q1.push nil
804
+ q.pop
805
+ }}}
806
+ end
807
+ q.push nil
808
+ q1.pop
809
+ cc.should be_a_kind_of(Sequel::Mock::Connection)
810
+ tr = @db.instance_variable_get(:@transactions)
811
+ tr.keys.should == [cc]
812
+ q.push nil
813
+ t.join
814
+ tr.should be_empty
815
+ end
816
+
817
+ specify "should correctly handle nested transacation use with separate shards" do
818
+ @db.transaction do |c1|
819
+ @db.transaction(:server=>:test) do |c2|
820
+ c1.should_not == c2
821
+ @db.execute 'DROP TABLE test;'
822
+ end
823
+ end
824
+ @db.sqls.should == ['BEGIN', 'BEGIN -- test', 'DROP TABLE test;', 'COMMIT -- test', 'COMMIT']
825
+ end
826
+
827
+ if (!defined?(RUBY_ENGINE) or RUBY_ENGINE == 'ruby' or RUBY_ENGINE == 'rbx') and !RUBY_VERSION.start_with?('1.9')
828
+ specify "should handle Thread#kill for transactions inside threads" do
829
+ q = Queue.new
830
+ q1 = Queue.new
831
+ t = Thread.new do
832
+ @db.transaction do
833
+ @db.execute 'DROP TABLE test'
834
+ q1.push nil
835
+ q.pop
836
+ @db.execute 'DROP TABLE test2'
837
+ end
838
+ end
839
+ q1.pop
840
+ t.kill
841
+ t.join
842
+ @db.sqls.should == ['BEGIN', 'DROP TABLE test', 'ROLLBACK']
843
+ end
844
+ end
845
+
846
+ specify "should raise an Error if after_commit or after_rollback is called without a block" do
847
+ proc{@db.after_commit}.should raise_error(Sequel::Error)
848
+ proc{@db.after_rollback}.should raise_error(Sequel::Error)
849
+ end
850
+
851
+ specify "should have after_commit and after_rollback respect :server option" do
852
+ @db.transaction(:server=>:test){@db.after_commit(:server=>:test){@db.execute('foo', :server=>:test)}}
853
+ @db.sqls.should == ['BEGIN -- test', 'COMMIT -- test', 'foo -- test']
854
+ @db.transaction(:server=>:test){@db.after_rollback(:server=>:test){@db.execute('foo', :server=>:test)}; raise Sequel::Rollback}
855
+ @db.sqls.should == ['BEGIN -- test', 'ROLLBACK -- test', 'foo -- test']
856
+ end
857
+
858
+ specify "should execute after_commit outside transactions" do
859
+ @db.after_commit{@db.execute('foo')}
860
+ @db.sqls.should == ['foo']
861
+ end
862
+
863
+ specify "should ignore after_rollback outside transactions" do
864
+ @db.after_rollback{@db.execute('foo')}
865
+ @db.sqls.should == []
866
+ end
867
+
868
+ specify "should support after_commit inside transactions" do
869
+ @db.transaction{@db.after_commit{@db.execute('foo')}}
870
+ @db.sqls.should == ['BEGIN', 'COMMIT', 'foo']
871
+ end
872
+
873
+ specify "should support after_rollback inside transactions" do
874
+ @db.transaction{@db.after_rollback{@db.execute('foo')}}
875
+ @db.sqls.should == ['BEGIN', 'COMMIT']
876
+ end
877
+
878
+ specify "should not call after_commit if the transaction rolls back" do
879
+ @db.transaction{@db.after_commit{@db.execute('foo')}; raise Sequel::Rollback}
880
+ @db.sqls.should == ['BEGIN', 'ROLLBACK']
881
+ end
882
+
883
+ specify "should call after_rollback if the transaction rolls back" do
884
+ @db.transaction{@db.after_rollback{@db.execute('foo')}; raise Sequel::Rollback}
885
+ @db.sqls.should == ['BEGIN', 'ROLLBACK', 'foo']
886
+ end
887
+
888
+ specify "should call multiple after_commit blocks in order if called inside transactions" do
889
+ @db.transaction{@db.after_commit{@db.execute('foo')}; @db.after_commit{@db.execute('bar')}}
890
+ @db.sqls.should == ['BEGIN', 'COMMIT', 'foo', 'bar']
891
+ end
892
+
893
+ specify "should call multiple after_rollback blocks in order if called inside transactions" do
894
+ @db.transaction{@db.after_rollback{@db.execute('foo')}; @db.after_rollback{@db.execute('bar')}; raise Sequel::Rollback}
895
+ @db.sqls.should == ['BEGIN', 'ROLLBACK', 'foo', 'bar']
896
+ end
897
+
898
+ specify "should support after_commit inside nested transactions" do
899
+ @db.transaction{@db.transaction{@db.after_commit{@db.execute('foo')}}}
900
+ @db.sqls.should == ['BEGIN', 'COMMIT', 'foo']
901
+ end
902
+
903
+ specify "should support after_rollback inside nested transactions" do
904
+ @db.transaction{@db.transaction{@db.after_rollback{@db.execute('foo')}}; raise Sequel::Rollback}
905
+ @db.sqls.should == ['BEGIN', 'ROLLBACK', 'foo']
906
+ end
907
+
908
+ specify "should raise an error if you attempt to use after_commit inside a prepared transaction" do
909
+ meta_def(@db, :supports_prepared_transactions?){true}
910
+ proc{@db.transaction(:prepare=>'XYZ'){@db.after_commit{@db.execute('foo')}}}.should raise_error(Sequel::Error)
911
+ @db.sqls.should == ['BEGIN', 'ROLLBACK']
912
+ end
913
+
914
+ specify "should raise an error if you attempt to use after_rollback inside a prepared transaction" do
915
+ meta_def(@db, :supports_prepared_transactions?){true}
916
+ proc{@db.transaction(:prepare=>'XYZ'){@db.after_rollback{@db.execute('foo')}}}.should raise_error(Sequel::Error)
917
+ @db.sqls.should == ['BEGIN', 'ROLLBACK']
918
+ end
919
+ end
920
+
921
+ describe "Database#transaction with savepoint support" do
922
+ before do
923
+ @db = Sequel.mock(:servers=>{:test=>{}})
924
+ end
925
+
926
+ it_should_behave_like "Database#transaction"
927
+
928
+ specify "should support after_commit inside savepoints" do
929
+ @db.transaction do
930
+ @db.after_commit{@db.execute('foo')}
931
+ @db.transaction(:savepoint=>true){@db.after_commit{@db.execute('bar')}}
932
+ @db.after_commit{@db.execute('baz')}
933
+ end
934
+ @db.sqls.should == ['BEGIN', 'SAVEPOINT autopoint_1', 'RELEASE SAVEPOINT autopoint_1', 'COMMIT', 'foo', 'bar', 'baz']
935
+ end
936
+
937
+ specify "should support after_rollback inside savepoints" do
938
+ @db.transaction do
939
+ @db.after_rollback{@db.execute('foo')}
940
+ @db.transaction(:savepoint=>true){@db.after_rollback{@db.execute('bar')}}
941
+ @db.after_rollback{@db.execute('baz')}
942
+ raise Sequel::Rollback
943
+ end
944
+ @db.sqls.should == ['BEGIN', 'SAVEPOINT autopoint_1', 'RELEASE SAVEPOINT autopoint_1', 'ROLLBACK', 'foo', 'bar', 'baz']
945
+ end
946
+
947
+ specify "should raise an error if you attempt to use after_commit inside a savepoint in a prepared transaction" do
948
+ meta_def(@db, :supports_prepared_transactions?){true}
949
+ proc{@db.transaction(:prepare=>'XYZ'){@db.transaction(:savepoint=>true){@db.after_commit{@db.execute('foo')}}}}.should raise_error(Sequel::Error)
950
+ @db.sqls.should == ['BEGIN', 'SAVEPOINT autopoint_1','ROLLBACK TO SAVEPOINT autopoint_1', 'ROLLBACK']
951
+ end
952
+
953
+ specify "should raise an error if you attempt to use after_rollback inside a savepoint in a prepared transaction" do
954
+ meta_def(@db, :supports_prepared_transactions?){true}
955
+ proc{@db.transaction(:prepare=>'XYZ'){@db.transaction(:savepoint=>true){@db.after_rollback{@db.execute('foo')}}}}.should raise_error(Sequel::Error)
956
+ @db.sqls.should == ['BEGIN', 'SAVEPOINT autopoint_1','ROLLBACK TO SAVEPOINT autopoint_1', 'ROLLBACK']
957
+ end
958
+ end
959
+
960
+ describe "Database#transaction without savepoint support" do
961
+ before do
962
+ @db = Sequel.mock(:servers=>{:test=>{}})
963
+ meta_def(@db, :supports_savepoints?){false}
964
+ end
965
+
966
+ it_should_behave_like "Database#transaction"
967
+ end
968
+
969
+ describe "Sequel.transaction" do
970
+ before do
971
+ @sqls = []
972
+ @db1 = Sequel.mock(:append=>'1', :sqls=>@sqls)
973
+ @db2 = Sequel.mock(:append=>'2', :sqls=>@sqls)
974
+ @db3 = Sequel.mock(:append=>'3', :sqls=>@sqls)
975
+ end
976
+
977
+ specify "should run the block inside transacitons on all three databases" do
978
+ Sequel.transaction([@db1, @db2, @db3]){1}.should == 1
979
+ @sqls.should == ['BEGIN -- 1', 'BEGIN -- 2', 'BEGIN -- 3', 'COMMIT -- 3', 'COMMIT -- 2', 'COMMIT -- 1']
980
+ end
981
+
982
+ specify "should pass options to all the blocks" do
983
+ Sequel.transaction([@db1, @db2, @db3], :rollback=>:always){1}.should be_nil
984
+ @sqls.should == ['BEGIN -- 1', 'BEGIN -- 2', 'BEGIN -- 3', 'ROLLBACK -- 3', 'ROLLBACK -- 2', 'ROLLBACK -- 1']
985
+ end
986
+
987
+ specify "should handle Sequel::Rollback exceptions raised by the block to rollback on all databases" do
988
+ Sequel.transaction([@db1, @db2, @db3]){raise Sequel::Rollback}.should be_nil
989
+ @sqls.should == ['BEGIN -- 1', 'BEGIN -- 2', 'BEGIN -- 3', 'ROLLBACK -- 3', 'ROLLBACK -- 2', 'ROLLBACK -- 1']
990
+ end
991
+
992
+ specify "should handle nested transactions" do
993
+ Sequel.transaction([@db1, @db2, @db3]){Sequel.transaction([@db1, @db2, @db3]){1}}.should == 1
994
+ @sqls.should == ['BEGIN -- 1', 'BEGIN -- 2', 'BEGIN -- 3', 'COMMIT -- 3', 'COMMIT -- 2', 'COMMIT -- 1']
995
+ end
996
+
997
+ specify "should handle savepoints" do
998
+ Sequel.transaction([@db1, @db2, @db3]){Sequel.transaction([@db1, @db2, @db3], :savepoint=>true){1}}.should == 1
999
+ @sqls.should == ['BEGIN -- 1', 'BEGIN -- 2', 'BEGIN -- 3',
1000
+ 'SAVEPOINT autopoint_1 -- 1', 'SAVEPOINT autopoint_1 -- 2', 'SAVEPOINT autopoint_1 -- 3',
1001
+ 'RELEASE SAVEPOINT autopoint_1 -- 3', 'RELEASE SAVEPOINT autopoint_1 -- 2', 'RELEASE SAVEPOINT autopoint_1 -- 1',
1002
+ 'COMMIT -- 3', 'COMMIT -- 2', 'COMMIT -- 1']
1003
+ end
1004
+ end
1005
+
1006
+ describe "Database#transaction with savepoints" do
1007
+ before do
1008
+ @db = Sequel.mock
1009
+ end
1010
+
1011
+ specify "should wrap the supplied block with BEGIN + COMMIT statements" do
1012
+ @db.transaction {@db.execute 'DROP TABLE test;'}
1013
+ @db.sqls.should == ['BEGIN', 'DROP TABLE test;', 'COMMIT']
1014
+ end
1015
+
1016
+ specify "should use savepoints if given the :savepoint option" do
1017
+ @db.transaction{@db.transaction(:savepoint=>true){@db.execute 'DROP TABLE test;'}}
1018
+ @db.sqls.should == ['BEGIN', 'SAVEPOINT autopoint_1', 'DROP TABLE test;', 'RELEASE SAVEPOINT autopoint_1', 'COMMIT']
1019
+ end
1020
+
1021
+ specify "should use savepoints if surrounding transaction uses :auto_savepoint option" do
1022
+ @db.transaction(:auto_savepoint=>true){@db.transaction{@db.execute 'DROP TABLE test;'}}
1023
+ @db.sqls.should == ['BEGIN', 'SAVEPOINT autopoint_1', 'DROP TABLE test;', 'RELEASE SAVEPOINT autopoint_1', 'COMMIT']
1024
+
1025
+ @db.transaction(:auto_savepoint=>true){@db.transaction{@db.transaction{@db.execute 'DROP TABLE test;'}}}
1026
+ @db.sqls.should == ['BEGIN', 'SAVEPOINT autopoint_1', 'DROP TABLE test;', 'RELEASE SAVEPOINT autopoint_1', 'COMMIT']
1027
+
1028
+ @db.transaction(:auto_savepoint=>true){@db.transaction(:auto_savepoint=>true){@db.transaction{@db.execute 'DROP TABLE test;'}}}
1029
+ @db.sqls.should == ['BEGIN', 'SAVEPOINT autopoint_1', 'SAVEPOINT autopoint_2', 'DROP TABLE test;', 'RELEASE SAVEPOINT autopoint_2', 'RELEASE SAVEPOINT autopoint_1', 'COMMIT']
1030
+
1031
+ @db.transaction{@db.transaction(:auto_savepoint=>true, :savepoint=>true){@db.transaction{@db.execute 'DROP TABLE test;'}}}
1032
+ @db.sqls.should == ['BEGIN', 'SAVEPOINT autopoint_1', 'SAVEPOINT autopoint_2', 'DROP TABLE test;', 'RELEASE SAVEPOINT autopoint_2', 'RELEASE SAVEPOINT autopoint_1', 'COMMIT']
1033
+ end
1034
+
1035
+ specify "should not use savepoints if surrounding transaction uses :auto_savepoint and current transaction uses :savepoint=>false option" do
1036
+ @db.transaction(:auto_savepoint=>true){@db.transaction(:savepoint=>false){@db.execute 'DROP TABLE test;'}}
1037
+ @db.sqls.should == ['BEGIN', 'DROP TABLE test;', 'COMMIT']
1038
+ end
1039
+
1040
+ specify "should not use a savepoint if no transaction is in progress" do
1041
+ @db.transaction(:savepoint=>true){@db.execute 'DROP TABLE test;'}
1042
+ @db.sqls.should == ['BEGIN', 'DROP TABLE test;', 'COMMIT']
1043
+ end
1044
+
1045
+ specify "should reuse the current transaction if no :savepoint option is given" do
1046
+ @db.transaction{@db.transaction{@db.execute 'DROP TABLE test;'}}
1047
+ @db.sqls.should == ['BEGIN', 'DROP TABLE test;', 'COMMIT']
1048
+ end
1049
+
1050
+ specify "should handle returning inside of the block by committing" do
1051
+ def @db.ret_commit
1052
+ transaction do
1053
+ execute 'DROP TABLE test;'
1054
+ return
1055
+ end
1056
+ end
1057
+ @db.ret_commit
1058
+ @db.sqls.should == ['BEGIN', 'DROP TABLE test;', 'COMMIT']
1059
+ end
1060
+
1061
+ specify "should handle returning inside of a savepoint by committing" do
1062
+ def @db.ret_commit
1063
+ transaction do
1064
+ transaction(:savepoint=>true) do
1065
+ execute 'DROP TABLE test;'
1066
+ return
1067
+ end
1068
+ end
1069
+ end
1070
+ @db.ret_commit
1071
+ @db.sqls.should == ['BEGIN', 'SAVEPOINT autopoint_1', 'DROP TABLE test;', 'RELEASE SAVEPOINT autopoint_1', 'COMMIT']
1072
+ end
1073
+
1074
+ specify "should issue ROLLBACK if an exception is raised, and re-raise" do
1075
+ @db.transaction {@db.execute 'DROP TABLE test'; raise RuntimeError} rescue nil
1076
+ @db.sqls.should == ['BEGIN', 'DROP TABLE test', 'ROLLBACK']
1077
+
1078
+ proc {@db.transaction {raise RuntimeError}}.should raise_error(RuntimeError)
1079
+ end
1080
+
1081
+ specify "should issue ROLLBACK SAVEPOINT if an exception is raised inside a savepoint, and re-raise" do
1082
+ @db.transaction{@db.transaction(:savepoint=>true){@db.execute 'DROP TABLE test'; raise RuntimeError}} rescue nil
1083
+ @db.sqls.should == ['BEGIN', 'SAVEPOINT autopoint_1', 'DROP TABLE test', 'ROLLBACK TO SAVEPOINT autopoint_1', 'ROLLBACK']
1084
+
1085
+ proc {@db.transaction {raise RuntimeError}}.should raise_error(RuntimeError)
1086
+ end
1087
+
1088
+ specify "should issue ROLLBACK if Sequel::Rollback is raised in the transaction" do
1089
+ @db.transaction do
1090
+ @db.drop_table(:a)
1091
+ raise Sequel::Rollback
1092
+ @db.drop_table(:b)
1093
+ end
1094
+
1095
+ @db.sqls.should == ['BEGIN', 'DROP TABLE a', 'ROLLBACK']
1096
+ end
1097
+
1098
+ specify "should issue ROLLBACK SAVEPOINT if Sequel::Rollback is raised in a savepoint" do
1099
+ @db.transaction do
1100
+ @db.transaction(:savepoint=>true) do
1101
+ @db.drop_table(:a)
1102
+ raise Sequel::Rollback
1103
+ end
1104
+ @db.drop_table(:b)
1105
+ end
1106
+
1107
+ @db.sqls.should == ['BEGIN', 'SAVEPOINT autopoint_1', 'DROP TABLE a', 'ROLLBACK TO SAVEPOINT autopoint_1', 'DROP TABLE b', 'COMMIT']
1108
+ end
1109
+
1110
+ specify "should raise database errors when commiting a transaction as Sequel::DatabaseError" do
1111
+ meta_def(@db, :commit_transaction){raise ArgumentError}
1112
+ lambda{@db.transaction{}}.should raise_error(ArgumentError)
1113
+ lambda{@db.transaction{@db.transaction(:savepoint=>true){}}}.should raise_error(ArgumentError)
1114
+
1115
+ meta_def(@db, :database_error_classes){[ArgumentError]}
1116
+ lambda{@db.transaction{}}.should raise_error(Sequel::DatabaseError)
1117
+ lambda{@db.transaction{@db.transaction(:savepoint=>true){}}}.should raise_error(Sequel::DatabaseError)
1118
+ end
1119
+ end
1120
+
1121
+ describe "A Database adapter with a scheme" do
1122
+ before do
1123
+ @ccc = Class.new(Sequel::Mock::Database)
1124
+ @ccc.send(:set_adapter_scheme, :ccc)
1125
+ end
1126
+
1127
+ specify "should be registered in the ADAPTER_MAP" do
1128
+ Sequel::ADAPTER_MAP[:ccc].should == @ccc
1129
+ end
1130
+
1131
+ specify "should give the database_type as the adapter scheme by default" do
1132
+ @ccc.new.database_type.should == :ccc
1133
+ end
1134
+
1135
+ specify "should be instantiated when its scheme is specified" do
1136
+ c = Sequel::Database.connect('ccc://localhost/db')
1137
+ c.should be_a_kind_of(@ccc)
1138
+ c.opts[:host].should == 'localhost'
1139
+ c.opts[:database].should == 'db'
1140
+ end
1141
+
1142
+ specify "should be accessible through Sequel.connect" do
1143
+ c = Sequel.connect 'ccc://localhost/db'
1144
+ c.should be_a_kind_of(@ccc)
1145
+ c.opts[:host].should == 'localhost'
1146
+ c.opts[:database].should == 'db'
1147
+ end
1148
+
1149
+ specify "should be accessible through Sequel.connect via a block" do
1150
+ x = nil
1151
+ y = nil
1152
+ z = nil
1153
+ returnValue = 'anything'
1154
+
1155
+ p = proc do |c|
1156
+ c.should be_a_kind_of(@ccc)
1157
+ c.opts[:host].should == 'localhost'
1158
+ c.opts[:database].should == 'db'
1159
+ z = y
1160
+ y = x
1161
+ x = c
1162
+ returnValue
1163
+ end
1164
+
1165
+ @ccc.class_eval do
1166
+ self::DISCONNECTS = []
1167
+ def disconnect
1168
+ self.class::DISCONNECTS << self
1169
+ end
1170
+ end
1171
+ Sequel::Database.connect('ccc://localhost/db', &p).should == returnValue
1172
+ @ccc::DISCONNECTS.should == [x]
1173
+
1174
+ Sequel.connect('ccc://localhost/db', &p).should == returnValue
1175
+ @ccc::DISCONNECTS.should == [y, x]
1176
+
1177
+ Sequel.send(:def_adapter_method, :ccc)
1178
+ Sequel.ccc('db', :host=>'localhost', &p).should == returnValue
1179
+ @ccc::DISCONNECTS.should == [z, y, x]
1180
+ class << Sequel; remove_method(:ccc) end
1181
+ end
1182
+
1183
+ specify "should be accessible through Sequel.<adapter>" do
1184
+ Sequel.send(:def_adapter_method, :ccc)
1185
+
1186
+ # invalid parameters
1187
+ proc {Sequel.ccc('abc', 'def')}.should raise_error(Sequel::Error)
1188
+ proc {Sequel.ccc(1)}.should raise_error(Sequel::Error)
1189
+
1190
+ c = Sequel.ccc('mydb')
1191
+ c.should be_a_kind_of(@ccc)
1192
+ c.opts.values_at(:adapter, :database, :adapter_class).should == [:ccc, 'mydb', @ccc]
1193
+
1194
+ c = Sequel.ccc('mydb', :host => 'localhost')
1195
+ c.should be_a_kind_of(@ccc)
1196
+ c.opts.values_at(:adapter, :database, :host, :adapter_class).should == [:ccc, 'mydb', 'localhost', @ccc]
1197
+
1198
+ c = Sequel.ccc
1199
+ c.should be_a_kind_of(@ccc)
1200
+ c.opts.values_at(:adapter, :adapter_class).should == [:ccc, @ccc]
1201
+
1202
+ c = Sequel.ccc(:database => 'mydb', :host => 'localhost')
1203
+ c.should be_a_kind_of(@ccc)
1204
+ c.opts.values_at(:adapter, :database, :host, :adapter_class).should == [:ccc, 'mydb', 'localhost', @ccc]
1205
+ class << Sequel; remove_method(:ccc) end
1206
+ end
1207
+
1208
+ specify "should be accessible through Sequel.connect with options" do
1209
+ c = Sequel.connect(:adapter => :ccc, :database => 'mydb')
1210
+ c.should be_a_kind_of(@ccc)
1211
+ c.opts[:adapter].should == :ccc
1212
+ end
1213
+
1214
+ specify "should be accessible through Sequel.connect with URL parameters" do
1215
+ c = Sequel.connect 'ccc:///db?host=/tmp&user=test'
1216
+ c.should be_a_kind_of(@ccc)
1217
+ c.opts[:host].should == '/tmp'
1218
+ c.opts[:database].should == 'db'
1219
+ c.opts[:user].should == 'test'
1220
+ end
1221
+
1222
+ specify "should have URL parameters take precedence over fixed URL parts" do
1223
+ c = Sequel.connect 'ccc://localhost/db?host=a&database=b'
1224
+ c.should be_a_kind_of(@ccc)
1225
+ c.opts[:host].should == 'a'
1226
+ c.opts[:database].should == 'b'
1227
+ end
1228
+
1229
+ specify "should have hash options take predence over URL parameters or parts" do
1230
+ c = Sequel.connect 'ccc://localhost/db?host=/tmp', :host=>'a', :database=>'b', :user=>'c'
1231
+ c.should be_a_kind_of(@ccc)
1232
+ c.opts[:host].should == 'a'
1233
+ c.opts[:database].should == 'b'
1234
+ c.opts[:user].should == 'c'
1235
+ end
1236
+
1237
+ specify "should unescape values of URL parameters and parts" do
1238
+ c = Sequel.connect 'ccc:///d%5bb%5d?host=domain%5cinstance'
1239
+ c.should be_a_kind_of(@ccc)
1240
+ c.opts[:database].should == 'd[b]'
1241
+ c.opts[:host].should == 'domain\\instance'
1242
+ end
1243
+
1244
+ specify "should test the connection if test parameter is truthy" do
1245
+ @ccc.send(:define_method, :connect){}
1246
+ proc{Sequel.connect 'ccc:///d%5bb%5d?test=t'}.should raise_error(Sequel::DatabaseConnectionError)
1247
+ proc{Sequel.connect 'ccc:///d%5bb%5d?test=1'}.should raise_error(Sequel::DatabaseConnectionError)
1248
+ proc{Sequel.connect 'ccc:///d%5bb%5d', :test=>true}.should raise_error(Sequel::DatabaseConnectionError)
1249
+ proc{Sequel.connect 'ccc:///d%5bb%5d', :test=>'t'}.should raise_error(Sequel::DatabaseConnectionError)
1250
+ end
1251
+
1252
+ specify "should not test the connection if test parameter is not truthy" do
1253
+ proc{Sequel.connect 'ccc:///d%5bb%5d?test=f'}.should_not raise_error
1254
+ proc{Sequel.connect 'ccc:///d%5bb%5d?test=0'}.should_not raise_error
1255
+ proc{Sequel.connect 'ccc:///d%5bb%5d', :test=>false}.should_not raise_error
1256
+ proc{Sequel.connect 'ccc:///d%5bb%5d', :test=>'f'}.should_not raise_error
1257
+ end
1258
+ end
1259
+
1260
+ describe "Sequel::Database.connect" do
1261
+ specify "should raise an Error if not given a String or Hash" do
1262
+ proc{Sequel::Database.connect(nil)}.should raise_error(Sequel::Error)
1263
+ proc{Sequel::Database.connect(Object.new)}.should raise_error(Sequel::Error)
1264
+ end
1265
+ end
1266
+
1267
+ describe "An unknown database scheme" do
1268
+ specify "should raise an error in Sequel::Database.connect" do
1269
+ proc {Sequel::Database.connect('ddd://localhost/db')}.should raise_error(Sequel::AdapterNotFound)
1270
+ end
1271
+
1272
+ specify "should raise an error in Sequel.connect" do
1273
+ proc {Sequel.connect('ddd://localhost/db')}.should raise_error(Sequel::AdapterNotFound)
1274
+ end
1275
+ end
1276
+
1277
+ describe "A broken adapter (lib is there but the class is not)" do
1278
+ before do
1279
+ @fn = File.join(File.dirname(__FILE__), '../../lib/sequel/adapters/blah.rb')
1280
+ File.open(@fn,'a'){}
1281
+ end
1282
+
1283
+ after do
1284
+ File.delete(@fn)
1285
+ end
1286
+
1287
+ specify "should raise an error" do
1288
+ proc {Sequel.connect('blah://blow')}.should raise_error(Sequel::AdapterNotFound)
1289
+ end
1290
+ end
1291
+
1292
+ describe "Sequel::Database.load_adapter" do
1293
+ specify "should not raise an error if subadapter does not exist" do
1294
+ Sequel::Database.load_adapter(:foo, :subdir=>'bar').should == nil
1295
+ end
1296
+ end
1297
+
1298
+ describe "A single threaded database" do
1299
+ after do
1300
+ Sequel::Database.single_threaded = false
1301
+ end
1302
+
1303
+ specify "should use a SingleConnectionPool instead of a ConnectionPool" do
1304
+ db = Sequel::Database.new(:single_threaded => true){123}
1305
+ db.pool.should be_a_kind_of(Sequel::SingleConnectionPool)
1306
+ end
1307
+
1308
+ specify "should be constructable using :single_threaded => true option" do
1309
+ db = Sequel::Database.new(:single_threaded => true){123}
1310
+ db.pool.should be_a_kind_of(Sequel::SingleConnectionPool)
1311
+ end
1312
+
1313
+ specify "should be constructable using Database.single_threaded = true" do
1314
+ Sequel::Database.single_threaded = true
1315
+ db = Sequel::Database.new{123}
1316
+ db.pool.should be_a_kind_of(Sequel::SingleConnectionPool)
1317
+ end
1318
+
1319
+ specify "should be constructable using Sequel.single_threaded = true" do
1320
+ Sequel.single_threaded = true
1321
+ db = Sequel::Database.new{123}
1322
+ db.pool.should be_a_kind_of(Sequel::SingleConnectionPool)
1323
+ end
1324
+ end
1325
+
1326
+ describe "A single threaded database" do
1327
+ before do
1328
+ conn = 1234567
1329
+ @db = Sequel::Database.new(:single_threaded => true)
1330
+ meta_def(@db, :connect) do |c|
1331
+ conn += 1
1332
+ end
1333
+ end
1334
+
1335
+ specify "should invoke connection_proc only once" do
1336
+ @db.pool.hold {|c| c.should == 1234568}
1337
+ @db.pool.hold {|c| c.should == 1234568}
1338
+ end
1339
+
1340
+ specify "should disconnect correctly" do
1341
+ def @db.disconnect_connection(c); @dc = c end
1342
+ def @db.dc; @dc end
1343
+ x = nil
1344
+ @db.pool.hold{|c| x = c}
1345
+ @db.pool.hold{|c| c.should == x}
1346
+ proc{@db.disconnect}.should_not raise_error
1347
+ @db.dc.should == x
1348
+ end
1349
+
1350
+ specify "should convert an Exception on connection into a DatabaseConnectionError" do
1351
+ db = Sequel::Database.new(:single_threaded => true, :servers=>{})
1352
+ def db.connect(*) raise Exception end
1353
+ proc {db.pool.hold {|c|}}.should raise_error(Sequel::DatabaseConnectionError)
1354
+ end
1355
+
1356
+ specify "should raise a DatabaseConnectionError if the connection proc returns nil" do
1357
+ db = Sequel.mock(:single_threaded => true, :servers=>{})
1358
+ def db.connect(*) end
1359
+ proc {db.pool.hold {|c|}}.should raise_error(Sequel::DatabaseConnectionError)
1360
+ end
1361
+ end
1362
+
1363
+ describe "A database" do
1364
+ after do
1365
+ Sequel::Database.single_threaded = false
1366
+ end
1367
+
1368
+ specify "should have single_threaded? respond to true if in single threaded mode" do
1369
+ db = Sequel::Database.new(:single_threaded => true){1234}
1370
+ db.should be_single_threaded
1371
+
1372
+ db = Sequel::Database.new(:max_options => 1)
1373
+ db.should_not be_single_threaded
1374
+
1375
+ db = Sequel::Database.new
1376
+ db.should_not be_single_threaded
1377
+
1378
+ Sequel::Database.single_threaded = true
1379
+
1380
+ db = Sequel::Database.new{123}
1381
+ db.should be_single_threaded
1382
+
1383
+ db = Sequel::Database.new(:max_options => 4){123}
1384
+ db.should be_single_threaded
1385
+ end
1386
+
1387
+ specify "should be able to set loggers via the logger= and loggers= methods" do
1388
+ db = Sequel::Database.new
1389
+ s = "I'm a logger"
1390
+ db.logger = s
1391
+ db.loggers.should == [s]
1392
+ db.logger = nil
1393
+ db.loggers.should == []
1394
+
1395
+ db.loggers = [s]
1396
+ db.loggers.should == [s]
1397
+ db.loggers = []
1398
+ db.loggers.should == []
1399
+
1400
+ t = "I'm also a logger"
1401
+ db.loggers = [s, t]
1402
+ db.loggers.should == [s,t]
1403
+ end
1404
+ end
1405
+
1406
+ describe "Database#fetch" do
1407
+ before do
1408
+ @db = Sequel.mock(:fetch=>proc{|sql| {:sql => sql}})
1409
+ end
1410
+
1411
+ specify "should create a dataset and invoke its fetch_rows method with the given sql" do
1412
+ sql = nil
1413
+ @db.fetch('select * from xyz') {|r| sql = r[:sql]}
1414
+ sql.should == 'select * from xyz'
1415
+ end
1416
+
1417
+ specify "should format the given sql with any additional arguments" do
1418
+ sql = nil
1419
+ @db.fetch('select * from xyz where x = ? and y = ?', 15, 'abc') {|r| sql = r[:sql]}
1420
+ sql.should == "select * from xyz where x = 15 and y = 'abc'"
1421
+
1422
+ @db.fetch('select name from table where name = ? or id in ?', 'aman', [3,4,7]) {|r| sql = r[:sql]}
1423
+ sql.should == "select name from table where name = 'aman' or id in (3, 4, 7)"
1424
+ end
1425
+
1426
+ specify "should format the given sql with named arguments" do
1427
+ sql = nil
1428
+ @db.fetch('select * from xyz where x = :x and y = :y', :x=>15, :y=>'abc') {|r| sql = r[:sql]}
1429
+ sql.should == "select * from xyz where x = 15 and y = 'abc'"
1430
+ end
1431
+
1432
+ specify "should return the dataset if no block is given" do
1433
+ @db.fetch('select * from xyz').should be_a_kind_of(Sequel::Dataset)
1434
+
1435
+ @db.fetch('select a from b').map {|r| r[:sql]}.should == ['select a from b']
1436
+
1437
+ @db.fetch('select c from d').inject([]) {|m, r| m << r; m}.should == \
1438
+ [{:sql => 'select c from d'}]
1439
+ end
1440
+
1441
+ specify "should return a dataset that always uses the given sql for SELECTs" do
1442
+ ds = @db.fetch('select * from xyz')
1443
+ ds.select_sql.should == 'select * from xyz'
1444
+ ds.sql.should == 'select * from xyz'
1445
+
1446
+ ds.filter!{price.sql_number < 100}
1447
+ ds.select_sql.should == 'select * from xyz'
1448
+ ds.sql.should == 'select * from xyz'
1449
+ end
1450
+ end
1451
+
1452
+
1453
+ describe "Database#[]" do
1454
+ before do
1455
+ @db = Sequel.mock
1456
+ end
1457
+
1458
+ specify "should return a dataset when symbols are given" do
1459
+ ds = @db[:items]
1460
+ ds.should be_a_kind_of(Sequel::Dataset)
1461
+ ds.opts[:from].should == [:items]
1462
+ end
1463
+
1464
+ specify "should return a dataset when a string is given" do
1465
+ @db.fetch = proc{|sql| {:sql=>sql}}
1466
+ sql = nil
1467
+ @db['select * from xyz where x = ? and y = ?', 15, 'abc'].each {|r| sql = r[:sql]}
1468
+ sql.should == "select * from xyz where x = 15 and y = 'abc'"
1469
+ end
1470
+ end
1471
+
1472
+ describe "Database#inspect" do
1473
+ specify "should include the class name and the connection url" do
1474
+ Sequel.connect('mock://foo/bar').inspect.should == '#<Sequel::Mock::Database: "mock://foo/bar">'
1475
+ end
1476
+
1477
+ specify "should include the class name and the connection options if an options hash was given" do
1478
+ Sequel.connect(:adapter=>:mock).inspect.should =~ /#<Sequel::Mock::Database: \{:adapter=>:mock\}>/
1479
+ end
1480
+
1481
+ specify "should include the class name, uri, and connection options if uri and options hash was given" do
1482
+ Sequel.connect('mock://foo', :database=>'bar').inspect.should =~ /#<Sequel::Mock::Database: "mock:\/\/foo" \{:database=>"bar"\}>/
1483
+ end
1484
+ end
1485
+
1486
+ describe "Database#get" do
1487
+ before do
1488
+ @db = Sequel.mock(:fetch=>{:a=>1})
1489
+ end
1490
+
1491
+ specify "should use Dataset#get to get a single value" do
1492
+ @db.get(:a).should == 1
1493
+ @db.sqls.should == ['SELECT a LIMIT 1']
1494
+
1495
+ @db.get(Sequel.function(:version).as(:version))
1496
+ @db.sqls.should == ['SELECT version() AS version LIMIT 1']
1497
+ end
1498
+
1499
+ specify "should accept a block" do
1500
+ @db.get{a}
1501
+ @db.sqls.should == ['SELECT a LIMIT 1']
1502
+
1503
+ @db.get{version(a).as(version)}
1504
+ @db.sqls.should == ['SELECT version(a) AS version LIMIT 1']
1505
+ end
1506
+
1507
+ specify "should work when an alias cannot be determined" do
1508
+ @db.get(1).should == 1
1509
+ @db.sqls.should == ['SELECT 1 AS v LIMIT 1']
1510
+ end
1511
+ end
1512
+
1513
+ describe "Database#call" do
1514
+ specify "should call the prepared statement with the given name" do
1515
+ db = Sequel.mock(:fetch=>{:id => 1, :x => 1})
1516
+ db[:items].prepare(:select, :select_all)
1517
+ db.call(:select_all).should == [{:id => 1, :x => 1}]
1518
+ db[:items].filter(:n=>:$n).prepare(:select, :select_n)
1519
+ db.call(:select_n, :n=>1).should == [{:id => 1, :x => 1}]
1520
+ db.sqls.should == ['SELECT * FROM items', 'SELECT * FROM items WHERE (n = 1)']
1521
+ end
1522
+ end
1523
+
1524
+ describe "Database#server_opts" do
1525
+ specify "should return the general opts if no :servers option is used" do
1526
+ opts = {:host=>1, :database=>2}
1527
+ Sequel::Database.new(opts).send(:server_opts, :server1)[:host].should == 1
1528
+ end
1529
+
1530
+ specify "should return the general opts if entry for the server is present in the :servers option" do
1531
+ opts = {:host=>1, :database=>2, :servers=>{}}
1532
+ Sequel::Database.new(opts).send(:server_opts, :server1)[:host].should == 1
1533
+ end
1534
+
1535
+ specify "should return the general opts merged with the specific opts if given as a hash" do
1536
+ opts = {:host=>1, :database=>2, :servers=>{:server1=>{:host=>3}}}
1537
+ Sequel::Database.new(opts).send(:server_opts, :server1)[:host].should == 3
1538
+ end
1539
+
1540
+ specify "should return the sgeneral opts merged with the specific opts if given as a proc" do
1541
+ opts = {:host=>1, :database=>2, :servers=>{:server1=>proc{|db| {:host=>4}}}}
1542
+ Sequel::Database.new(opts).send(:server_opts, :server1)[:host].should == 4
1543
+ end
1544
+
1545
+ specify "should raise an error if the specific opts is not a proc or hash" do
1546
+ opts = {:host=>1, :database=>2, :servers=>{:server1=>2}}
1547
+ proc{Sequel::Database.new(opts).send(:server_opts, :server1)}.should raise_error(Sequel::Error)
1548
+ end
1549
+
1550
+ specify "should return the general opts merged with given opts if given opts is a Hash" do
1551
+ opts = {:host=>1, :database=>2}
1552
+ Sequel::Database.new(opts).send(:server_opts, :host=>2)[:host].should == 2
1553
+ end
1554
+ end
1555
+
1556
+ describe "Database#add_servers" do
1557
+ before do
1558
+ @db = Sequel.mock(:host=>1, :database=>2, :servers=>{:server1=>{:host=>3}})
1559
+ end
1560
+
1561
+ specify "should add new servers to the connection pool" do
1562
+ @db.synchronize{|c| c.opts[:host].should == 1}
1563
+ @db.synchronize(:server1){|c| c.opts[:host].should == 3}
1564
+ @db.synchronize(:server2){|c| c.opts[:host].should == 1}
1565
+
1566
+ @db.add_servers(:server2=>{:host=>6})
1567
+ @db.synchronize{|c| c.opts[:host].should == 1}
1568
+ @db.synchronize(:server1){|c| c.opts[:host].should == 3}
1569
+ @db.synchronize(:server2){|c| c.opts[:host].should == 6}
1570
+
1571
+ @db.disconnect
1572
+ @db.synchronize{|c| c.opts[:host].should == 1}
1573
+ @db.synchronize(:server1){|c| c.opts[:host].should == 3}
1574
+ @db.synchronize(:server2){|c| c.opts[:host].should == 6}
1575
+ end
1576
+
1577
+ specify "should replace options for future connections to existing servers" do
1578
+ @db.synchronize{|c| c.opts[:host].should == 1}
1579
+ @db.synchronize(:server1){|c| c.opts[:host].should == 3}
1580
+ @db.synchronize(:server2){|c| c.opts[:host].should == 1}
1581
+
1582
+ @db.add_servers(:default=>proc{{:host=>4}}, :server1=>{:host=>8})
1583
+ @db.synchronize{|c| c.opts[:host].should == 1}
1584
+ @db.synchronize(:server1){|c| c.opts[:host].should == 3}
1585
+ @db.synchronize(:server2){|c| c.opts[:host].should == 1}
1586
+
1587
+ @db.disconnect
1588
+ @db.synchronize{|c| c.opts[:host].should == 4}
1589
+ @db.synchronize(:server1){|c| c.opts[:host].should == 8}
1590
+ @db.synchronize(:server2){|c| c.opts[:host].should == 4}
1591
+ end
1592
+ end
1593
+
1594
+ describe "Database#remove_servers" do
1595
+ before do
1596
+ @db = Sequel.mock(:host=>1, :database=>2, :servers=>{:server1=>{:host=>3}, :server2=>{:host=>4}})
1597
+ end
1598
+
1599
+ specify "should remove servers from the connection pool" do
1600
+ @db.synchronize{|c| c.opts[:host].should == 1}
1601
+ @db.synchronize(:server1){|c| c.opts[:host].should == 3}
1602
+ @db.synchronize(:server2){|c| c.opts[:host].should == 4}
1603
+
1604
+ @db.remove_servers(:server1, :server2)
1605
+ @db.synchronize{|c| c.opts[:host].should == 1}
1606
+ @db.synchronize(:server1){|c| c.opts[:host].should == 1}
1607
+ @db.synchronize(:server2){|c| c.opts[:host].should == 1}
1608
+ end
1609
+
1610
+ specify "should accept arrays of symbols" do
1611
+ @db.remove_servers([:server1, :server2])
1612
+ @db.synchronize{|c| c.opts[:host].should == 1}
1613
+ @db.synchronize(:server1){|c| c.opts[:host].should == 1}
1614
+ @db.synchronize(:server2){|c| c.opts[:host].should == 1}
1615
+ end
1616
+
1617
+ specify "should allow removal while connections are still open" do
1618
+ @db.synchronize do |c1|
1619
+ c1.opts[:host].should == 1
1620
+ @db.synchronize(:server1) do |c2|
1621
+ c2.opts[:host].should == 3
1622
+ @db.synchronize(:server2) do |c3|
1623
+ c3.opts[:host].should == 4
1624
+ @db.remove_servers(:server1, :server2)
1625
+ @db.synchronize(:server1) do |c4|
1626
+ c4.should_not == c2
1627
+ c4.should == c1
1628
+ c4.opts[:host].should == 1
1629
+ @db.synchronize(:server2) do |c5|
1630
+ c5.should_not == c3
1631
+ c5.should == c1
1632
+ c5.opts[:host].should == 1
1633
+ end
1634
+ end
1635
+ c3.opts[:host].should == 4
1636
+ end
1637
+ c2.opts[:host].should == 3
1638
+ end
1639
+ c1.opts[:host].should == 1
1640
+ end
1641
+ end
1642
+ end
1643
+
1644
+ describe "Database#each_server with do/jdbc adapter connection string without :adapter option" do
1645
+ specify "should yield a separate database object for each server" do
1646
+ klass = Class.new(Sequel::Database)
1647
+ klass.should_receive(:adapter_class).once.with(:jdbc).and_return(Sequel::Mock::Database)
1648
+ @db = klass.connect('jdbc:blah:', :host=>1, :database=>2, :servers=>{:server1=>{:host=>3}})
1649
+
1650
+ hosts = []
1651
+ @db.each_server do |db|
1652
+ db.should be_a_kind_of(Sequel::Database)
1653
+ db.should_not == @db
1654
+ db.opts[:adapter_class].should == Sequel::Mock::Database
1655
+ db.opts[:database].should == 2
1656
+ hosts << db.opts[:host]
1657
+ end
1658
+ hosts.sort.should == [1, 3]
1659
+ end
1660
+
1661
+ specify "should raise if not given a block" do
1662
+ proc{Sequel.mock.each_server}.should raise_error(Sequel::Error)
1663
+ end
1664
+ end
1665
+
1666
+ describe "Database#each_server" do
1667
+ before do
1668
+ @db = Sequel.mock(:host=>1, :database=>2, :servers=>{:server1=>{:host=>3}, :server2=>{:host=>4}})
1669
+ end
1670
+
1671
+ specify "should yield a separate database object for each server" do
1672
+ hosts = []
1673
+ @db.each_server do |db|
1674
+ db.should be_a_kind_of(Sequel::Database)
1675
+ db.should_not == @db
1676
+ db.opts[:adapter].should == :mock
1677
+ db.opts[:database].should == 2
1678
+ hosts << db.opts[:host]
1679
+ end
1680
+ hosts.sort.should == [1, 3, 4]
1681
+ end
1682
+
1683
+ specify "should disconnect and remove entry from Sequel::DATABASES after use" do
1684
+ dbs = []
1685
+ dcs = []
1686
+ @db.each_server do |db|
1687
+ dbs << db
1688
+ Sequel::DATABASES.should include(db)
1689
+ meta_def(db, :disconnect){dcs << db}
1690
+ end
1691
+ dbs.each do |db|
1692
+ Sequel::DATABASES.should_not include(db)
1693
+ end
1694
+ dbs.should == dcs
1695
+ end
1696
+ end
1697
+
1698
+ describe "Database#raise_error" do
1699
+ before do
1700
+ @db = Sequel.mock
1701
+ end
1702
+
1703
+ specify "should reraise if the exception class is not in opts[:classes]" do
1704
+ e = Class.new(StandardError)
1705
+ proc{@db.send(:raise_error, e.new(''), :classes=>[])}.should raise_error(e)
1706
+ end
1707
+
1708
+ specify "should convert the exception to a DatabaseError if the exception class is in opts[:classes]" do
1709
+ proc{@db.send(:raise_error, Interrupt.new(''), :classes=>[Interrupt])}.should raise_error(Sequel::DatabaseError)
1710
+ end
1711
+
1712
+ specify "should convert the exception to a DatabaseError if opts[:classes] if not present" do
1713
+ proc{@db.send(:raise_error, Interrupt.new(''))}.should raise_error(Sequel::DatabaseError)
1714
+ end
1715
+
1716
+ specify "should convert the exception to a DatabaseDisconnectError if opts[:disconnect] is true" do
1717
+ proc{@db.send(:raise_error, Interrupt.new(''), :disconnect=>true)}.should raise_error(Sequel::DatabaseDisconnectError)
1718
+ end
1719
+
1720
+ specify "should convert the exception to an appropriate error if exception message matches regexp" do
1721
+ def @db.database_error_regexps
1722
+ {/foo/ => Sequel::DatabaseDisconnectError, /bar/ => Sequel::ConstraintViolation}
1723
+ end
1724
+ proc{@db.send(:raise_error, Interrupt.new('foo'))}.should raise_error(Sequel::DatabaseDisconnectError)
1725
+ proc{@db.send(:raise_error, Interrupt.new('bar'))}.should raise_error(Sequel::ConstraintViolation)
1726
+ end
1727
+ end
1728
+
1729
+ describe "Database#typecast_value" do
1730
+ before do
1731
+ @db = Sequel::Database.new
1732
+ end
1733
+
1734
+ specify "should raise an InvalidValue when given an invalid value" do
1735
+ proc{@db.typecast_value(:integer, "13a")}.should raise_error(Sequel::InvalidValue)
1736
+ proc{@db.typecast_value(:float, "4.e2")}.should raise_error(Sequel::InvalidValue)
1737
+ proc{@db.typecast_value(:decimal, :invalid_value)}.should raise_error(Sequel::InvalidValue)
1738
+ proc{@db.typecast_value(:date, Object.new)}.should raise_error(Sequel::InvalidValue)
1739
+ proc{@db.typecast_value(:date, 'a')}.should raise_error(Sequel::InvalidValue)
1740
+ proc{@db.typecast_value(:time, Date.new)}.should raise_error(Sequel::InvalidValue)
1741
+ proc{@db.typecast_value(:datetime, 4)}.should raise_error(Sequel::InvalidValue)
1742
+ end
1743
+
1744
+ specify "should handle integers with leading 0 as base 10" do
1745
+ @db.typecast_value(:integer, "013").should == 13
1746
+ @db.typecast_value(:integer, "08").should == 8
1747
+ @db.typecast_value(:integer, "000013").should == 13
1748
+ @db.typecast_value(:integer, "000008").should == 8
1749
+ end
1750
+
1751
+ specify "should handle integers with leading 0x as base 16" do
1752
+ @db.typecast_value(:integer, "0x013").should == 19
1753
+ @db.typecast_value(:integer, "0x80").should == 128
1754
+ end
1755
+
1756
+ specify "should typecast blobs as as Sequel::SQL::Blob" do
1757
+ v = @db.typecast_value(:blob, "0x013")
1758
+ v.should be_a_kind_of(Sequel::SQL::Blob)
1759
+ v.should == Sequel::SQL::Blob.new("0x013")
1760
+ @db.typecast_value(:blob, v).object_id.should == v.object_id
1761
+ end
1762
+
1763
+ specify "should typecast boolean values to true, false, or nil" do
1764
+ @db.typecast_value(:boolean, false).should == false
1765
+ @db.typecast_value(:boolean, 0).should == false
1766
+ @db.typecast_value(:boolean, "0").should == false
1767
+ @db.typecast_value(:boolean, 'f').should == false
1768
+ @db.typecast_value(:boolean, 'false').should == false
1769
+ @db.typecast_value(:boolean, true).should == true
1770
+ @db.typecast_value(:boolean, 1).should == true
1771
+ @db.typecast_value(:boolean, '1').should == true
1772
+ @db.typecast_value(:boolean, 't').should == true
1773
+ @db.typecast_value(:boolean, 'true').should == true
1774
+ @db.typecast_value(:boolean, '').should be_nil
1775
+ end
1776
+
1777
+ specify "should typecast date values to Date" do
1778
+ @db.typecast_value(:date, Date.today).should == Date.today
1779
+ @db.typecast_value(:date, DateTime.now).should == Date.today
1780
+ @db.typecast_value(:date, Time.now).should == Date.today
1781
+ @db.typecast_value(:date, Date.today.to_s).should == Date.today
1782
+ @db.typecast_value(:date, :year=>Date.today.year, :month=>Date.today.month, :day=>Date.today.day).should == Date.today
1783
+ end
1784
+
1785
+ specify "should have Sequel.application_to_database_timestamp convert to Sequel.database_timezone" do
1786
+ begin
1787
+ t = Time.utc(2011, 1, 2, 3, 4, 5) # UTC Time
1788
+ t2 = Time.mktime(2011, 1, 2, 3, 4, 5) # Local Time
1789
+ t3 = Time.utc(2011, 1, 2, 3, 4, 5) - (t - t2) # Local Time in UTC Time
1790
+ t4 = Time.mktime(2011, 1, 2, 3, 4, 5) + (t - t2) # UTC Time in Local Time
1791
+ Sequel.application_timezone = :utc
1792
+ Sequel.database_timezone = :local
1793
+ Sequel.application_to_database_timestamp(t).should == t4
1794
+ Sequel.application_timezone = :local
1795
+ Sequel.database_timezone = :utc
1796
+ Sequel.application_to_database_timestamp(t2).should == t3
1797
+ ensure
1798
+ Sequel.default_timezone = nil
1799
+ end
1800
+ end
1801
+
1802
+ specify "should have Database#to_application_timestamp convert values using the database's timezone" do
1803
+ begin
1804
+ t = Time.utc(2011, 1, 2, 3, 4, 5) # UTC Time
1805
+ t2 = Time.mktime(2011, 1, 2, 3, 4, 5) # Local Time
1806
+ t3 = Time.utc(2011, 1, 2, 3, 4, 5) - (t - t2) # Local Time in UTC Time
1807
+ t4 = Time.mktime(2011, 1, 2, 3, 4, 5) + (t - t2) # UTC Time in Local Time
1808
+ Sequel.default_timezone = :utc
1809
+ @db.to_application_timestamp('2011-01-02 03:04:05').should == t
1810
+ Sequel.database_timezone = :local
1811
+ @db.to_application_timestamp('2011-01-02 03:04:05').should == t3
1812
+ Sequel.default_timezone = :local
1813
+ @db.to_application_timestamp('2011-01-02 03:04:05').should == t2
1814
+ Sequel.database_timezone = :utc
1815
+ @db.to_application_timestamp('2011-01-02 03:04:05').should == t4
1816
+
1817
+ Sequel.default_timezone = :utc
1818
+ @db.timezone = :local
1819
+ @db.to_application_timestamp('2011-01-02 03:04:05').should == t3
1820
+ Sequel.default_timezone = :local
1821
+ @db.timezone = :utc
1822
+ @db.to_application_timestamp('2011-01-02 03:04:05').should == t4
1823
+ ensure
1824
+ Sequel.default_timezone = nil
1825
+ end
1826
+ end
1827
+
1828
+ specify "should typecast datetime values to Sequel.datetime_class with correct timezone handling" do
1829
+ t = Time.utc(2011, 1, 2, 3, 4, 5, 500000) # UTC Time
1830
+ t2 = Time.mktime(2011, 1, 2, 3, 4, 5, 500000) # Local Time
1831
+ t3 = Time.utc(2011, 1, 2, 3, 4, 5, 500000) - (t - t2) # Local Time in UTC Time
1832
+ t4 = Time.mktime(2011, 1, 2, 3, 4, 5, 500000) + (t - t2) # UTC Time in Local Time
1833
+ secs = defined?(Rational) ? Rational(11, 2) : 5.5
1834
+ r1 = defined?(Rational) ? Rational(t2.utc_offset, 86400) : t2.utc_offset/86400.0
1835
+ r2 = defined?(Rational) ? Rational((t - t2).to_i, 86400) : (t - t2).to_i/86400.0
1836
+ dt = DateTime.civil(2011, 1, 2, 3, 4, secs)
1837
+ dt2 = DateTime.civil(2011, 1, 2, 3, 4, secs, r1)
1838
+ dt3 = DateTime.civil(2011, 1, 2, 3, 4, secs) - r2
1839
+ dt4 = DateTime.civil(2011, 1, 2, 3, 4, secs, r1) + r2
1840
+
1841
+ t.should == t4
1842
+ t2.should == t3
1843
+ dt.should == dt4
1844
+ dt2.should == dt3
1845
+
1846
+ check = proc do |i, o|
1847
+ v = @db.typecast_value(:datetime, i)
1848
+ v.should == o
1849
+ if o.is_a?(Time)
1850
+ v.utc_offset.should == o.utc_offset
1851
+ else
1852
+ v.offset.should == o.offset
1853
+ end
1854
+ end
1855
+ @db.extend_datasets(Module.new{def supports_timestamp_timezones?; true; end})
1856
+ begin
1857
+ @db.typecast_value(:datetime, dt).should == t
1858
+ @db.typecast_value(:datetime, dt2).should == t2
1859
+ @db.typecast_value(:datetime, t).should == t
1860
+ @db.typecast_value(:datetime, t2).should == t2
1861
+ @db.typecast_value(:datetime, @db.literal(dt)[1...-1]).should == t
1862
+ @db.typecast_value(:datetime, dt.strftime('%F %T.%N')).should == t2
1863
+ @db.typecast_value(:datetime, Date.civil(2011, 1, 2)).should == Time.mktime(2011, 1, 2, 0, 0, 0)
1864
+ @db.typecast_value(:datetime, :year=>dt.year, :month=>dt.month, :day=>dt.day, :hour=>dt.hour, :minute=>dt.min, :second=>dt.sec, :nanos=>500000000).should == t2
1865
+
1866
+ Sequel.datetime_class = DateTime
1867
+ @db.typecast_value(:datetime, dt).should == dt
1868
+ @db.typecast_value(:datetime, dt2).should == dt2
1869
+ @db.typecast_value(:datetime, t).should == dt
1870
+ @db.typecast_value(:datetime, t2).should == dt2
1871
+ @db.typecast_value(:datetime, @db.literal(dt)[1...-1]).should == dt
1872
+ @db.typecast_value(:datetime, dt.strftime('%F %T.%N')).should == dt
1873
+ @db.typecast_value(:datetime, Date.civil(2011, 1, 2)).should == DateTime.civil(2011, 1, 2, 0, 0, 0)
1874
+ @db.typecast_value(:datetime, :year=>dt.year, :month=>dt.month, :day=>dt.day, :hour=>dt.hour, :minute=>dt.min, :second=>dt.sec, :nanos=>500000000).should == dt
1875
+
1876
+ Sequel.application_timezone = :utc
1877
+ Sequel.typecast_timezone = :local
1878
+ Sequel.datetime_class = Time
1879
+ check[dt, t]
1880
+ check[dt2, t3]
1881
+ check[t, t]
1882
+ check[t2, t3]
1883
+ check[@db.literal(dt)[1...-1], t]
1884
+ check[dt.strftime('%F %T.%N'), t3]
1885
+ check[Date.civil(2011, 1, 2), Time.utc(2011, 1, 2, 0, 0, 0)]
1886
+ check[{:year=>dt.year, :month=>dt.month, :day=>dt.day, :hour=>dt.hour, :minute=>dt.min, :second=>dt.sec, :nanos=>500000000}, t3]
1887
+
1888
+ Sequel.datetime_class = DateTime
1889
+ check[dt, dt]
1890
+ check[dt2, dt3]
1891
+ check[t, dt]
1892
+ check[t2, dt3]
1893
+ check[@db.literal(dt)[1...-1], dt]
1894
+ check[dt.strftime('%F %T.%N'), dt3]
1895
+ check[Date.civil(2011, 1, 2), DateTime.civil(2011, 1, 2, 0, 0, 0)]
1896
+ check[{:year=>dt.year, :month=>dt.month, :day=>dt.day, :hour=>dt.hour, :minute=>dt.min, :second=>dt.sec, :nanos=>500000000}, dt3]
1897
+
1898
+ Sequel.typecast_timezone = :utc
1899
+ Sequel.datetime_class = Time
1900
+ check[dt, t]
1901
+ check[dt2, t3]
1902
+ check[t, t]
1903
+ check[t2, t3]
1904
+ check[@db.literal(dt)[1...-1], t]
1905
+ check[dt.strftime('%F %T.%N'), t]
1906
+ check[Date.civil(2011, 1, 2), Time.utc(2011, 1, 2, 0, 0, 0)]
1907
+ check[{:year=>dt.year, :month=>dt.month, :day=>dt.day, :hour=>dt.hour, :minute=>dt.min, :second=>dt.sec, :nanos=>500000000}, t]
1908
+
1909
+ Sequel.datetime_class = DateTime
1910
+ check[dt, dt]
1911
+ check[dt2, dt3]
1912
+ check[t, dt]
1913
+ check[t2, dt3]
1914
+ check[@db.literal(dt)[1...-1], dt]
1915
+ check[dt.strftime('%F %T.%N'), dt]
1916
+ check[Date.civil(2011, 1, 2), DateTime.civil(2011, 1, 2, 0, 0, 0)]
1917
+ check[{:year=>dt.year, :month=>dt.month, :day=>dt.day, :hour=>dt.hour, :minute=>dt.min, :second=>dt.sec, :nanos=>500000000}, dt]
1918
+
1919
+ Sequel.application_timezone = :local
1920
+ Sequel.datetime_class = Time
1921
+ check[dt, t4]
1922
+ check[dt2, t2]
1923
+ check[t, t4]
1924
+ check[t2, t2]
1925
+ check[@db.literal(dt)[1...-1], t4]
1926
+ check[dt.strftime('%F %T.%N'), t4]
1927
+ check[Date.civil(2011, 1, 2), Time.local(2011, 1, 2, 0, 0, 0)]
1928
+ check[{:year=>dt.year, :month=>dt.month, :day=>dt.day, :hour=>dt.hour, :minute=>dt.min, :second=>dt.sec, :nanos=>500000000}, t4]
1929
+
1930
+ Sequel.datetime_class = DateTime
1931
+ check[dt, dt4]
1932
+ check[dt2, dt2]
1933
+ check[t, dt4]
1934
+ check[t2, dt2]
1935
+ check[@db.literal(dt)[1...-1], dt4]
1936
+ check[dt.strftime('%F %T.%N'), dt4]
1937
+ check[Date.civil(2011, 1, 2), DateTime.civil(2011, 1, 2, 0, 0, 0, r1)]
1938
+ check[{:year=>dt.year, :month=>dt.month, :day=>dt.day, :hour=>dt.hour, :minute=>dt.min, :second=>dt.sec, :nanos=>500000000}, dt4]
1939
+
1940
+ Sequel.typecast_timezone = :local
1941
+ Sequel.datetime_class = Time
1942
+ check[dt, t4]
1943
+ check[dt2, t2]
1944
+ check[t, t4]
1945
+ check[t2, t2]
1946
+ check[@db.literal(dt)[1...-1], t4]
1947
+ check[dt.strftime('%F %T.%N'), t2]
1948
+ check[Date.civil(2011, 1, 2), Time.local(2011, 1, 2, 0, 0, 0)]
1949
+ check[{:year=>dt.year, :month=>dt.month, :day=>dt.day, :hour=>dt.hour, :minute=>dt.min, :second=>dt.sec, :nanos=>500000000}, t2]
1950
+
1951
+ Sequel.datetime_class = DateTime
1952
+ check[dt, dt4]
1953
+ check[dt2, dt2]
1954
+ check[t, dt4]
1955
+ check[t2, dt2]
1956
+ check[@db.literal(dt)[1...-1], dt4]
1957
+ check[dt.strftime('%F %T.%N'), dt2]
1958
+ check[Date.civil(2011, 1, 2), DateTime.civil(2011, 1, 2, 0, 0, 0, r1)]
1959
+ check[{:year=>dt.year, :month=>dt.month, :day=>dt.day, :hour=>dt.hour, :minute=>dt.min, :second=>dt.sec, :nanos=>500000000}, dt2]
1960
+
1961
+ ensure
1962
+ Sequel.default_timezone = nil
1963
+ Sequel.datetime_class = Time
1964
+ end
1965
+ end
1966
+
1967
+ specify "should handle arrays when typecasting timestamps" do
1968
+ begin
1969
+ @db.typecast_value(:datetime, [2011, 10, 11, 12, 13, 14]).should == Time.local(2011, 10, 11, 12, 13, 14)
1970
+ @db.typecast_value(:datetime, [2011, 10, 11, 12, 13, 14, 500000000]).should == Time.local(2011, 10, 11, 12, 13, 14, 500000)
1971
+
1972
+ Sequel.datetime_class = DateTime
1973
+ @db.typecast_value(:datetime, [2011, 10, 11, 12, 13, 14]).should == DateTime.civil(2011, 10, 11, 12, 13, 14)
1974
+ @db.typecast_value(:datetime, [2011, 10, 11, 12, 13, 14, 500000000]).should == DateTime.civil(2011, 10, 11, 12, 13, (defined?(Rational) ? Rational(29, 2) : 14.5))
1975
+ @db.typecast_value(:datetime, [2011, 10, 11, 12, 13, 14, 500000000, (defined?(Rational) ? Rational(1, 2) : 0.5)]).should == DateTime.civil(2011, 10, 11, 12, 13, (defined?(Rational) ? Rational(29, 2) : 14.5), (defined?(Rational) ? Rational(1, 2) : 0.5))
1976
+ ensure
1977
+ Sequel.datetime_class = Time
1978
+ end
1979
+ end
1980
+
1981
+ specify "should handle hashes when typecasting timestamps" do
1982
+ begin
1983
+ @db.typecast_value(:datetime, :year=>2011, :month=>10, :day=>11, :hour=>12, :minute=>13, :second=>14).should == Time.local(2011, 10, 11, 12, 13, 14)
1984
+ @db.typecast_value(:datetime, :year=>2011, :month=>10, :day=>11, :hour=>12, :minute=>13, :second=>14, :nanos=>500000000).should == Time.local(2011, 10, 11, 12, 13, 14, 500000)
1985
+ @db.typecast_value(:datetime, 'year'=>2011, 'month'=>10, 'day'=>11, 'hour'=>12, 'minute'=>13, 'second'=>14).should == Time.local(2011, 10, 11, 12, 13, 14)
1986
+ @db.typecast_value(:datetime, 'year'=>2011, 'month'=>10, 'day'=>11, 'hour'=>12, 'minute'=>13, 'second'=>14, 'nanos'=>500000000).should == Time.local(2011, 10, 11, 12, 13, 14, 500000)
1987
+
1988
+ Sequel.datetime_class = DateTime
1989
+ @db.typecast_value(:datetime, :year=>2011, :month=>10, :day=>11, :hour=>12, :minute=>13, :second=>14).should == DateTime.civil(2011, 10, 11, 12, 13, 14)
1990
+ @db.typecast_value(:datetime, :year=>2011, :month=>10, :day=>11, :hour=>12, :minute=>13, :second=>14, :nanos=>500000000).should == DateTime.civil(2011, 10, 11, 12, 13, (defined?(Rational) ? Rational(29, 2) : 14.5))
1991
+ @db.typecast_value(:datetime, 'year'=>2011, 'month'=>10, 'day'=>11, 'hour'=>12, 'minute'=>13, 'second'=>14).should == DateTime.civil(2011, 10, 11, 12, 13, 14)
1992
+ @db.typecast_value(:datetime, 'year'=>2011, 'month'=>10, 'day'=>11, 'hour'=>12, 'minute'=>13, 'second'=>14, 'nanos'=>500000000).should == DateTime.civil(2011, 10, 11, 12, 13, (defined?(Rational) ? Rational(29, 2) : 14.5))
1993
+ @db.typecast_value(:datetime, :year=>2011, :month=>10, :day=>11, :hour=>12, :minute=>13, :second=>14, :offset=>(defined?(Rational) ? Rational(1, 2) : 0.5)).should == DateTime.civil(2011, 10, 11, 12, 13, 14, (defined?(Rational) ? Rational(1, 2) : 0.5))
1994
+ @db.typecast_value(:datetime, :year=>2011, :month=>10, :day=>11, :hour=>12, :minute=>13, :second=>14, :nanos=>500000000, :offset=>(defined?(Rational) ? Rational(1, 2) : 0.5)).should == DateTime.civil(2011, 10, 11, 12, 13, (defined?(Rational) ? Rational(29, 2) : 14.5), (defined?(Rational) ? Rational(1, 2) : 0.5))
1995
+ @db.typecast_value(:datetime, 'year'=>2011, 'month'=>10, 'day'=>11, 'hour'=>12, 'minute'=>13, 'second'=>14, 'offset'=>(defined?(Rational) ? Rational(1, 2) : 0.5)).should == DateTime.civil(2011, 10, 11, 12, 13, 14, (defined?(Rational) ? Rational(1, 2) : 0.5))
1996
+ @db.typecast_value(:datetime, 'year'=>2011, 'month'=>10, 'day'=>11, 'hour'=>12, 'minute'=>13, 'second'=>14, 'nanos'=>500000000, 'offset'=>(defined?(Rational) ? Rational(1, 2) : 0.5)).should == DateTime.civil(2011, 10, 11, 12, 13, (defined?(Rational) ? Rational(29, 2) : 14.5), (defined?(Rational) ? Rational(1, 2) : 0.5))
1997
+ ensure
1998
+ Sequel.datetime_class = Time
1999
+ end
2000
+ end
2001
+
2002
+ specify "should typecast decimal values to BigDecimal" do
2003
+ [1.0, 1, '1.0', BigDecimal('1.0')].each do |i|
2004
+ v = @db.typecast_value(:decimal, i)
2005
+ v.should be_a_kind_of(BigDecimal)
2006
+ v.should == BigDecimal.new('1.0')
2007
+ end
2008
+ end
2009
+
2010
+ specify "should typecast float values to Float" do
2011
+ [1.0, 1, '1.0', BigDecimal('1.0')].each do |i|
2012
+ v = @db.typecast_value(:float, i)
2013
+ v.should be_a_kind_of(Float)
2014
+ v.should == 1.0
2015
+ end
2016
+ end
2017
+
2018
+ specify "should typecast string values to String" do
2019
+ [1.0, '1.0', Sequel.blob('1.0')].each do |i|
2020
+ v = @db.typecast_value(:string, i)
2021
+ v.should be_an_instance_of(String)
2022
+ v.should == "1.0"
2023
+ end
2024
+ end
2025
+
2026
+ specify "should raise errors when typecasting hash and array values to String" do
2027
+ [[], {}].each do |i|
2028
+ proc{@db.typecast_value(:string, i)}.should raise_error(Sequel::InvalidValue)
2029
+ end
2030
+ end
2031
+
2032
+ specify "should typecast time values to SQLTime" do
2033
+ t = Time.now
2034
+ st = Sequel::SQLTime.local(t.year, t.month, t.day, 1, 2, 3)
2035
+ [st, Time.utc(t.year, t.month, t.day, 1, 2, 3), Time.local(t.year, t.month, t.day, 1, 2, 3), '01:02:03', {:hour=>1, :minute=>2, :second=>3}].each do |i|
2036
+ v = @db.typecast_value(:time, i)
2037
+ v.should be_an_instance_of(Sequel::SQLTime)
2038
+ v.should == st
2039
+ end
2040
+ end
2041
+
2042
+ specify "should correctly handle time value conversion to SQLTime with fractional seconds" do
2043
+ t = Time.now
2044
+ st = Sequel::SQLTime.local(t.year, t.month, t.day, 1, 2, 3, 500000)
2045
+ t = Time.local(t.year, t.month, t.day, 1, 2, 3, 500000)
2046
+ @db.typecast_value(:time, t).should == st
2047
+ end
2048
+
2049
+ specify "should have an underlying exception class available at wrapped_exception" do
2050
+ begin
2051
+ @db.typecast_value(:date, 'a')
2052
+ true.should == false
2053
+ rescue Sequel::InvalidValue => e
2054
+ e.wrapped_exception.should be_a_kind_of(ArgumentError)
2055
+ end
2056
+ end
2057
+
2058
+ specify "should include underlying exception class in #inspect" do
2059
+ begin
2060
+ @db.typecast_value(:date, 'a')
2061
+ true.should == false
2062
+ rescue Sequel::InvalidValue => e
2063
+ e.inspect.should =~ /\A#<Sequel::InvalidValue: ArgumentError: .*>\z/
2064
+ end
2065
+ end
2066
+ end
2067
+
2068
+ describe "Database#blank_object?" do
2069
+ specify "should return whether the object is considered blank" do
2070
+ db = Sequel::Database.new
2071
+ c = lambda{|meth, value| Class.new{define_method(meth){value}}.new}
2072
+
2073
+ db.send(:blank_object?, "").should == true
2074
+ db.send(:blank_object?, " ").should == true
2075
+ db.send(:blank_object?, nil).should == true
2076
+ db.send(:blank_object?, false).should == true
2077
+ db.send(:blank_object?, []).should == true
2078
+ db.send(:blank_object?, {}).should == true
2079
+ db.send(:blank_object?, c[:empty?, true]).should == true
2080
+ db.send(:blank_object?, c[:blank?, true]).should == true
2081
+
2082
+ db.send(:blank_object?, " a ").should == false
2083
+ db.send(:blank_object?, 1).should == false
2084
+ db.send(:blank_object?, 1.0).should == false
2085
+ db.send(:blank_object?, true).should == false
2086
+ db.send(:blank_object?, [1]).should == false
2087
+ db.send(:blank_object?, {1.0=>2.0}).should == false
2088
+ db.send(:blank_object?, c[:empty?, false]).should == false
2089
+ db.send(:blank_object?, c[:blank?, false]).should == false
2090
+ end
2091
+ end
2092
+
2093
+ describe "Database#schema_autoincrementing_primary_key?" do
2094
+ specify "should indicate whether the parsed schema row indicates a primary key" do
2095
+ m = Sequel::Database.new.method(:schema_autoincrementing_primary_key?)
2096
+ m.call(:primary_key=>true, :db_type=>'integer').should == true
2097
+ m.call(:primary_key=>true, :db_type=>'varchar(255)').should == false
2098
+ m.call(:primary_key=>false, :db_type=>'integer').should == false
2099
+ end
2100
+ end
2101
+
2102
+ describe "Database#supports_schema_parsing?" do
2103
+ specify "should be false by default" do
2104
+ Sequel::Database.new.supports_schema_parsing?.should == false
2105
+ end
2106
+
2107
+ specify "should be true if the database implements schema_parse_table" do
2108
+ db = Sequel::Database.new
2109
+ def db.schema_parse_table(*) end
2110
+ db.supports_schema_parsing?.should == true
2111
+ end
2112
+ end
2113
+
2114
+ describe "Database#supports_foreign_key_parsing?" do
2115
+ specify "should be false by default" do
2116
+ Sequel::Database.new.supports_foreign_key_parsing?.should == false
2117
+ end
2118
+
2119
+ specify "should be true if the database implements foreign_key_list" do
2120
+ db = Sequel::Database.new
2121
+ def db.foreign_key_list(*) end
2122
+ db.supports_foreign_key_parsing?.should == true
2123
+ end
2124
+ end
2125
+
2126
+ describe "Database#supports_index_parsing?" do
2127
+ specify "should be false by default" do
2128
+ Sequel::Database.new.supports_index_parsing?.should == false
2129
+ end
2130
+
2131
+ specify "should be true if the database implements indexes" do
2132
+ db = Sequel::Database.new
2133
+ def db.indexes(*) end
2134
+ db.supports_index_parsing?.should == true
2135
+ end
2136
+ end
2137
+
2138
+ describe "Database#supports_table_listing?" do
2139
+ specify "should be false by default" do
2140
+ Sequel::Database.new.supports_table_listing?.should == false
2141
+ end
2142
+
2143
+ specify "should be true if the database implements tables" do
2144
+ db = Sequel::Database.new
2145
+ def db.tables(*) end
2146
+ db.supports_table_listing?.should == true
2147
+ end
2148
+ end
2149
+
2150
+ describe "Database#supports_view_listing?" do
2151
+ specify "should be false by default" do
2152
+ Sequel::Database.new.supports_view_listing?.should == false
2153
+ end
2154
+
2155
+ specify "should be true if the database implements views" do
2156
+ db = Sequel::Database.new
2157
+ def db.views(*) end
2158
+ db.supports_view_listing?.should == true
2159
+ end
2160
+ end
2161
+
2162
+ describe "Database#supports_deferrable_constraints?" do
2163
+ specify "should be false by default" do
2164
+ Sequel::Database.new.supports_deferrable_constraints?.should == false
2165
+ end
2166
+ end
2167
+
2168
+ describe "Database#supports_deferrable_foreign_key_constraints?" do
2169
+ specify "should be false by default" do
2170
+ Sequel::Database.new.supports_deferrable_foreign_key_constraints?.should == false
2171
+ end
2172
+ end
2173
+
2174
+ describe "Database#supports_transactional_ddl?" do
2175
+ specify "should be false by default" do
2176
+ Sequel::Database.new.supports_transactional_ddl?.should == false
2177
+ end
2178
+ end
2179
+
2180
+ describe "Database#global_index_namespace?" do
2181
+ specify "should be true by default" do
2182
+ Sequel::Database.new.global_index_namespace?.should == true
2183
+ end
2184
+ end
2185
+
2186
+ describe "Database#supports_savepoints?" do
2187
+ specify "should be false by default" do
2188
+ Sequel::Database.new.supports_savepoints?.should == false
2189
+ end
2190
+ end
2191
+
2192
+ describe "Database#supports_views_with_check_option?" do
2193
+ specify "should be false by default" do
2194
+ Sequel::Database.new.supports_views_with_check_option?.should == false
2195
+ end
2196
+ end
2197
+
2198
+ describe "Database#supports_views_with_local_check_option?" do
2199
+ specify "should be false by default" do
2200
+ Sequel::Database.new.supports_views_with_local_check_option?.should == false
2201
+ end
2202
+ end
2203
+
2204
+ describe "Database#supports_savepoints_in_prepared_transactions?" do
2205
+ specify "should be false by default" do
2206
+ Sequel::Database.new.supports_savepoints_in_prepared_transactions?.should == false
2207
+ end
2208
+
2209
+ specify "should be true if both savepoints and prepared transactions are supported" do
2210
+ db = Sequel::Database.new
2211
+ meta_def(db, :supports_savepoints?){true}
2212
+ meta_def(db, :supports_prepared_transactions?){true}
2213
+ db.supports_savepoints_in_prepared_transactions?.should == true
2214
+ end
2215
+ end
2216
+
2217
+ describe "Database#supports_prepared_transactions?" do
2218
+ specify "should be false by default" do
2219
+ Sequel::Database.new.supports_prepared_transactions?.should == false
2220
+ end
2221
+ end
2222
+
2223
+ describe "Database#supports_transaction_isolation_levels?" do
2224
+ specify "should be false by default" do
2225
+ Sequel::Database.new.supports_transaction_isolation_levels?.should == false
2226
+ end
2227
+ end
2228
+
2229
+ describe "Database#input_identifier_meth" do
2230
+ specify "should be the input_identifer method of a default dataset for this database" do
2231
+ db = Sequel::Database.new
2232
+ db.send(:input_identifier_meth).call(:a).should == 'a'
2233
+ db.identifier_input_method = :upcase
2234
+ db.send(:input_identifier_meth).call(:a).should == 'A'
2235
+ end
2236
+ end
2237
+
2238
+ describe "Database#output_identifier_meth" do
2239
+ specify "should be the output_identifer method of a default dataset for this database" do
2240
+ db = Sequel::Database.new
2241
+ db.send(:output_identifier_meth).call('A').should == :A
2242
+ db.identifier_output_method = :downcase
2243
+ db.send(:output_identifier_meth).call('A').should == :a
2244
+ end
2245
+ end
2246
+
2247
+ describe "Database#metadata_dataset" do
2248
+ specify "should be a dataset with the default settings for identifier_input_method and identifier_output_method" do
2249
+ ds = Sequel::Database.new.send(:metadata_dataset)
2250
+ ds.literal(:a).should == 'A'
2251
+ ds.send(:output_identifier, 'A').should == :a
2252
+ end
2253
+ end
2254
+
2255
+ describe "Database#column_schema_to_ruby_default" do
2256
+ specify "should handle converting many default formats" do
2257
+ db = Sequel::Database.new
2258
+ p = lambda{|d,t| db.send(:column_schema_to_ruby_default, d, t)}
2259
+ p[nil, :integer].should be_nil
2260
+ p[1, :integer].should == 1
2261
+ p['1', :integer].should == 1
2262
+ p['-1', :integer].should == -1
2263
+ p[1.0, :float].should == 1.0
2264
+ p['1.0', :float].should == 1.0
2265
+ p['-1.0', :float].should == -1.0
2266
+ p['1.0', :decimal].should == BigDecimal.new('1.0')
2267
+ p['-1.0', :decimal].should == BigDecimal.new('-1.0')
2268
+ p[true, :boolean].should == true
2269
+ p[false, :boolean].should == false
2270
+ p['1', :boolean].should == true
2271
+ p['0', :boolean].should == false
2272
+ p['true', :boolean].should == true
2273
+ p['false', :boolean].should == false
2274
+ p["'t'", :boolean].should == true
2275
+ p["'f'", :boolean].should == false
2276
+ p["'a'", :string].should == 'a'
2277
+ p["'a'", :blob].should == Sequel.blob('a')
2278
+ p["'a'", :blob].should be_a_kind_of(Sequel::SQL::Blob)
2279
+ p["''", :string].should == ''
2280
+ p["'\\a''b'", :string].should == "\\a'b"
2281
+ p["'NULL'", :string].should == "NULL"
2282
+ p[Date.today, :date].should == Date.today
2283
+ p["'2009-10-29'", :date].should == Date.new(2009,10,29)
2284
+ p["CURRENT_TIMESTAMP", :date].should == Sequel::CURRENT_DATE
2285
+ p["CURRENT_DATE", :date].should == Sequel::CURRENT_DATE
2286
+ p["now()", :date].should == Sequel::CURRENT_DATE
2287
+ p["getdate()", :date].should == Sequel::CURRENT_DATE
2288
+ p["CURRENT_TIMESTAMP", :datetime].should == Sequel::CURRENT_TIMESTAMP
2289
+ p["CURRENT_DATE", :datetime].should == Sequel::CURRENT_TIMESTAMP
2290
+ p["now()", :datetime].should == Sequel::CURRENT_TIMESTAMP
2291
+ p["getdate()", :datetime].should == Sequel::CURRENT_TIMESTAMP
2292
+ p["'2009-10-29T10:20:30-07:00'", :datetime].should == DateTime.parse('2009-10-29T10:20:30-07:00')
2293
+ p["'2009-10-29 10:20:30'", :datetime].should == DateTime.parse('2009-10-29 10:20:30')
2294
+ p["'10:20:30'", :time].should == Time.parse('10:20:30')
2295
+ p["NaN", :float].should be_nil
2296
+
2297
+ db = Sequel.mock(:host=>'postgres')
2298
+ p["''::text", :string].should == ""
2299
+ p["'\\a''b'::character varying", :string].should == "\\a'b"
2300
+ p["'a'::bpchar", :string].should == "a"
2301
+ p["(-1)", :integer].should == -1
2302
+ p["(-1.0)", :float].should == -1.0
2303
+ p['(-1.0)', :decimal].should == BigDecimal.new('-1.0')
2304
+ p["'a'::bytea", :blob].should == Sequel.blob('a')
2305
+ p["'a'::bytea", :blob].should be_a_kind_of(Sequel::SQL::Blob)
2306
+ p["'2009-10-29'::date", :date].should == Date.new(2009,10,29)
2307
+ p["'2009-10-29 10:20:30.241343'::timestamp without time zone", :datetime].should == DateTime.parse('2009-10-29 10:20:30.241343')
2308
+ p["'10:20:30'::time without time zone", :time].should == Time.parse('10:20:30')
2309
+
2310
+ db = Sequel.mock(:host=>'mysql')
2311
+ p["\\a'b", :string].should == "\\a'b"
2312
+ p["a", :string].should == "a"
2313
+ p["NULL", :string].should == "NULL"
2314
+ p["-1", :float].should == -1.0
2315
+ p['-1', :decimal].should == BigDecimal.new('-1.0')
2316
+ p["2009-10-29", :date].should == Date.new(2009,10,29)
2317
+ p["2009-10-29 10:20:30", :datetime].should == DateTime.parse('2009-10-29 10:20:30')
2318
+ p["10:20:30", :time].should == Time.parse('10:20:30')
2319
+ p["a", :enum].should == "a"
2320
+ p["a,b", :set].should == "a,b"
2321
+
2322
+ db = Sequel.mock(:host=>'mssql')
2323
+ p["(N'a')", :string].should == "a"
2324
+ p["((-12))", :integer].should == -12
2325
+ p["((12.1))", :float].should == 12.1
2326
+ p["((-12.1))", :decimal].should == BigDecimal.new('-12.1')
2327
+ end
2328
+ end
2329
+
2330
+ describe "Database extensions" do
2331
+ before(:all) do
2332
+ class << Sequel
2333
+ alias _extension extension
2334
+ remove_method :extension
2335
+ def extension(*)
2336
+ end
2337
+ end
2338
+ end
2339
+ after(:all) do
2340
+ class << Sequel
2341
+ remove_method :extension
2342
+ alias extension _extension
2343
+ remove_method :_extension
2344
+ end
2345
+ end
2346
+ before do
2347
+ @db = Sequel.mock
2348
+ end
2349
+ after do
2350
+ Sequel::Database.instance_variable_set(:@initialize_hook, Proc.new {|db| })
2351
+ end
2352
+
2353
+ specify "should be able to register an extension with a module have Database#extension extend the module" do
2354
+ Sequel::Database.register_extension(:foo, Module.new{def a; 1; end})
2355
+ @db.extension(:foo).a.should == 1
2356
+ end
2357
+
2358
+ specify "should be able to register an extension with a block and have Database#extension call the block" do
2359
+ @db.quote_identifiers = false
2360
+ Sequel::Database.register_extension(:foo){|db| db.quote_identifiers = true}
2361
+ @db.extension(:foo).quote_identifiers?.should == true
2362
+ end
2363
+
2364
+ specify "should be able to register an extension with a callable and Database#extension call the callable" do
2365
+ @db.quote_identifiers = false
2366
+ Sequel::Database.register_extension(:foo, proc{|db| db.quote_identifiers = true})
2367
+ @db.extension(:foo).quote_identifiers?.should == true
2368
+ end
2369
+
2370
+ specify "should be able to load multiple extensions in the same call" do
2371
+ @db.quote_identifiers = false
2372
+ @db.identifier_input_method = :downcase
2373
+ Sequel::Database.register_extension(:foo, proc{|db| db.quote_identifiers = true})
2374
+ Sequel::Database.register_extension(:bar, proc{|db| db.identifier_input_method = nil})
2375
+ @db.extension(:foo, :bar)
2376
+ @db.quote_identifiers?.should == true
2377
+ @db.identifier_input_method.should be_nil
2378
+ end
2379
+
2380
+ specify "should return the receiver" do
2381
+ Sequel::Database.register_extension(:foo, Module.new{def a; 1; end})
2382
+ @db.extension(:foo).should equal(@db)
2383
+ end
2384
+
2385
+ specify "should raise an Error if registering with both a module and a block" do
2386
+ proc{Sequel::Database.register_extension(:foo, Module.new){}}.should raise_error(Sequel::Error)
2387
+ end
2388
+
2389
+ specify "should raise an Error if attempting to load an incompatible extension" do
2390
+ proc{@db.extension(:foo2)}.should raise_error(Sequel::Error)
2391
+ end
2392
+
2393
+ specify "should be able to load an extension into all future Databases with Database.extension" do
2394
+ Sequel::Database.register_extension(:foo, Module.new{def a; 1; end})
2395
+ Sequel::Database.register_extension(:bar, Module.new{def b; 2; end})
2396
+ Sequel::Database.extension(:foo, :bar)
2397
+ @db.should_not respond_to(:a)
2398
+ @db.should_not respond_to(:b)
2399
+ Sequel.mock.a.should == 1
2400
+ Sequel.mock.b.should == 2
2401
+ end
2402
+ end
2403
+
2404
+ describe "Database specific exception classes" do
2405
+ before do
2406
+ @db = Sequel.mock
2407
+ class << @db
2408
+ attr_accessor :sql_state
2409
+
2410
+ def database_exception_sqlstate(exception, opts={})
2411
+ @sql_state
2412
+ end
2413
+ end
2414
+ end
2415
+
2416
+ specify "should use appropriate exception classes for given SQL states" do
2417
+ @db.fetch = ArgumentError
2418
+ @db.sql_state = '23502'
2419
+ proc{@db.get(:a)}.should raise_error(Sequel::NotNullConstraintViolation)
2420
+ @db.sql_state = '23503'
2421
+ proc{@db.get(:a)}.should raise_error(Sequel::ForeignKeyConstraintViolation)
2422
+ @db.sql_state = '23505'
2423
+ proc{@db.get(:a)}.should raise_error(Sequel::UniqueConstraintViolation)
2424
+ @db.sql_state = '23513'
2425
+ proc{@db.get(:a)}.should raise_error(Sequel::CheckConstraintViolation)
2426
+ @db.sql_state = '40001'
2427
+ proc{@db.get(:a)}.should raise_error(Sequel::SerializationFailure)
2428
+ end
2429
+ end
2430
+
2431
+ describe "Database.after_initialize" do
2432
+ after do
2433
+ Sequel::Database.instance_variable_set(:@initialize_hook, Proc.new {|db| })
2434
+ end
2435
+
2436
+ specify "should allow a block to be run after each new instance is created" do
2437
+ Sequel::Database.after_initialize{|db| db.sql_log_level = :debug }
2438
+ db = Sequel.mock
2439
+ db.sql_log_level.should == :debug
2440
+ end
2441
+
2442
+ specify "should allow multiple hooks to be registered" do
2443
+ Sequel::Database.after_initialize{|db| db.sql_log_level = :debug }
2444
+ Sequel::Database.after_initialize{|db| db.loggers << 11 }
2445
+
2446
+ db = Sequel.mock
2447
+
2448
+ db.sql_log_level.should == :debug
2449
+ db.loggers.should include(11)
2450
+ end
2451
+
2452
+ specify "should raise an error if registration is called without a block" do
2453
+ proc {
2454
+ Sequel::Database.after_initialize
2455
+ }.should raise_error(Sequel::Error, /must provide block/i)
2456
+ end
2457
+ end
2458
+
2459
+ describe "Database#schema_type_class" do
2460
+ specify "should return the class or array of classes for the given type symbol" do
2461
+ db = Sequel.mock
2462
+ {:string=>String, :integer=>Integer, :date=>Date, :datetime=>[Time, DateTime],
2463
+ :time=>Sequel::SQLTime, :boolean=>[TrueClass, FalseClass], :float=>Float, :decimal=>BigDecimal,
2464
+ :blob=>Sequel::SQL::Blob}.each do |sym, klass|
2465
+ db.schema_type_class(sym).should == klass
2466
+ end
2467
+ end
2468
+ end
2469
+
2470
+ describe "Database#execute_{dui,ddl,insert}" do
2471
+ before do
2472
+ @db = Sequel::Database.new
2473
+ def @db.execute(sql, opts={})
2474
+ (@sqls ||= []) << sql
2475
+ end
2476
+ def @db.sqls
2477
+ @sqls
2478
+ end
2479
+ end
2480
+
2481
+ specify "should execute the SQL" do
2482
+ @db.execute_dui "DELETE FROM table"
2483
+ @db.execute_ddl "SET foo"
2484
+ @db.execute_insert "INSERT INTO table DEFAULT VALUES"
2485
+ @db.sqls.should == ["DELETE FROM table", "SET foo", "INSERT INTO table DEFAULT VALUES"]
2486
+ end
2487
+ end