Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Vendor ruby dependencies to ease build process for those uncomfortabl…

…e with installing gems.

Update and simplify build steps.
  • Loading branch information...
commit 22df75f1c6b95ec4c4b2e68b16d308a443cf6bf6 1 parent 572dad4
tomhuda authored
Showing with 20,736 additions and 29 deletions.
  1. +1 −0  .gitignore
  2. +1 −7 Gemfile
  3. +12 −5 README.md
  4. +26 −17 Rakefile
  5. +6 −0 vendor/bundler/setup.rb
  6. +19 −0 vendor/ruby/1.9.1/bin/rake
  7. +1 −0  vendor/ruby/1.9.1/bundler/gems/abbot-from-scratch-754164ff560e
  8. +1 −0  vendor/ruby/1.9.1/cache/bundler/git/abbot-from-scratch-a58a1a082ef9c607ccb0938f161fe212895a4a59/HEAD
  9. +7 −0 vendor/ruby/1.9.1/cache/bundler/git/abbot-from-scratch-a58a1a082ef9c607ccb0938f161fe212895a4a59/config
  10. +1 −0  vendor/ruby/1.9.1/cache/bundler/git/abbot-from-scratch-a58a1a082ef9c607ccb0938f161fe212895a4a59/description
  11. +15 −0 ...1/cache/bundler/git/abbot-from-scratch-a58a1a082ef9c607ccb0938f161fe212895a4a59/hooks/applypatch-msg.sample
  12. +24 −0 ...1.9.1/cache/bundler/git/abbot-from-scratch-a58a1a082ef9c607ccb0938f161fe212895a4a59/hooks/commit-msg.sample
  13. +8 −0 ....9.1/cache/bundler/git/abbot-from-scratch-a58a1a082ef9c607ccb0938f161fe212895a4a59/hooks/post-commit.sample
  14. +15 −0 ...9.1/cache/bundler/git/abbot-from-scratch-a58a1a082ef9c607ccb0938f161fe212895a4a59/hooks/post-receive.sample
  15. +8 −0 ....9.1/cache/bundler/git/abbot-from-scratch-a58a1a082ef9c607ccb0938f161fe212895a4a59/hooks/post-update.sample
  16. +14 −0 ...1/cache/bundler/git/abbot-from-scratch-a58a1a082ef9c607ccb0938f161fe212895a4a59/hooks/pre-applypatch.sample
  17. +46 −0 ...1.9.1/cache/bundler/git/abbot-from-scratch-a58a1a082ef9c607ccb0938f161fe212895a4a59/hooks/pre-commit.sample
  18. +169 −0 ...1.9.1/cache/bundler/git/abbot-from-scratch-a58a1a082ef9c607ccb0938f161fe212895a4a59/hooks/pre-rebase.sample
  19. +36 −0 ...che/bundler/git/abbot-from-scratch-a58a1a082ef9c607ccb0938f161fe212895a4a59/hooks/prepare-commit-msg.sample
  20. +128 −0 ...uby/1.9.1/cache/bundler/git/abbot-from-scratch-a58a1a082ef9c607ccb0938f161fe212895a4a59/hooks/update.sample
  21. +6 −0 vendor/ruby/1.9.1/cache/bundler/git/abbot-from-scratch-a58a1a082ef9c607ccb0938f161fe212895a4a59/info/exclude
  22. BIN  ...tch-a58a1a082ef9c607ccb0938f161fe212895a4a59/objects/pack/pack-82f2e7b2597f4176734e27f33569b95ac546cf10.idx
  23. BIN  ...ch-a58a1a082ef9c607ccb0938f161fe212895a4a59/objects/pack/pack-82f2e7b2597f4176734e27f33569b95ac546cf10.pack
  24. +2 −0  vendor/ruby/1.9.1/cache/bundler/git/abbot-from-scratch-a58a1a082ef9c607ccb0938f161fe212895a4a59/packed-refs
  25. BIN  vendor/ruby/1.9.1/cache/execjs-1.2.0.gem
  26. BIN  vendor/ruby/1.9.1/cache/multi_json-1.0.3.gem
  27. BIN  vendor/ruby/1.9.1/cache/rake-0.9.2.gem
  28. BIN  vendor/ruby/1.9.1/cache/uglifier-1.0.0.gem
  29. +21 −0 vendor/ruby/1.9.1/gems/execjs-1.2.0/LICENSE
  30. +47 −0 vendor/ruby/1.9.1/gems/execjs-1.2.0/README.md
  31. +6 −0 vendor/ruby/1.9.1/gems/execjs-1.2.0/lib/execjs.rb
  32. +160 −0 vendor/ruby/1.9.1/gems/execjs-1.2.0/lib/execjs/external_runtime.rb
  33. +112 −0 vendor/ruby/1.9.1/gems/execjs-1.2.0/lib/execjs/johnson_runtime.rb
  34. +38 −0 vendor/ruby/1.9.1/gems/execjs-1.2.0/lib/execjs/module.rb
  35. +78 −0 vendor/ruby/1.9.1/gems/execjs-1.2.0/lib/execjs/mustang_runtime.rb
  36. +117 −0 vendor/ruby/1.9.1/gems/execjs-1.2.0/lib/execjs/ruby_racer_runtime.rb
  37. +94 −0 vendor/ruby/1.9.1/gems/execjs-1.2.0/lib/execjs/ruby_rhino_runtime.rb
  38. +89 −0 vendor/ruby/1.9.1/gems/execjs-1.2.0/lib/execjs/runtimes.rb
  39. +19 −0 vendor/ruby/1.9.1/gems/execjs-1.2.0/lib/execjs/support/basic_runner.js
  40. +21 −0 vendor/ruby/1.9.1/gems/execjs-1.2.0/lib/execjs/support/jscript_runner.js
  41. +481 −0 vendor/ruby/1.9.1/gems/execjs-1.2.0/lib/execjs/support/json2.js
  42. +20 −0 vendor/ruby/1.9.1/gems/execjs-1.2.0/lib/execjs/support/node_runner.js
  43. +2 −0  vendor/ruby/1.9.1/gems/execjs-1.2.0/lib/execjs/support/which.bat
  44. +3 −0  vendor/ruby/1.9.1/gems/execjs-1.2.0/lib/execjs/version.rb
  45. +5 −0 vendor/ruby/1.9.1/gems/multi_json-1.0.3/.document
  46. 0  vendor/ruby/1.9.1/gems/multi_json-1.0.3/.gemtest
  47. +34 −0 vendor/ruby/1.9.1/gems/multi_json-1.0.3/.gitignore
  48. +3 −0  vendor/ruby/1.9.1/gems/multi_json-1.0.3/.rspec
  49. +9 −0 vendor/ruby/1.9.1/gems/multi_json-1.0.3/.travis.yml
  50. +7 −0 vendor/ruby/1.9.1/gems/multi_json-1.0.3/Gemfile
  51. +20 −0 vendor/ruby/1.9.1/gems/multi_json-1.0.3/LICENSE.md
  52. +70 −0 vendor/ruby/1.9.1/gems/multi_json-1.0.3/README.md
  53. +23 −0 vendor/ruby/1.9.1/gems/multi_json-1.0.3/Rakefile
  54. +74 −0 vendor/ruby/1.9.1/gems/multi_json-1.0.3/lib/multi_json.rb
  55. +21 −0 vendor/ruby/1.9.1/gems/multi_json-1.0.3/lib/multi_json/engines/json_gem.rb
  56. +21 −0 vendor/ruby/1.9.1/gems/multi_json-1.0.3/lib/multi_json/engines/json_pure.rb
  57. +48 −0 vendor/ruby/1.9.1/gems/multi_json-1.0.3/lib/multi_json/engines/ok_json.rb
  58. +18 −0 vendor/ruby/1.9.1/gems/multi_json-1.0.3/lib/multi_json/engines/yajl.rb
  59. +581 −0 vendor/ruby/1.9.1/gems/multi_json-1.0.3/lib/multi_json/vendor/ok_json.rb
  60. +3 −0  vendor/ruby/1.9.1/gems/multi_json-1.0.3/lib/multi_json/version.rb
  61. +23 −0 vendor/ruby/1.9.1/gems/multi_json-1.0.3/multi_json.gemspec
  62. +11 −0 vendor/ruby/1.9.1/gems/multi_json-1.0.3/spec/helper.rb
  63. +134 −0 vendor/ruby/1.9.1/gems/multi_json-1.0.3/spec/multi_json_spec.rb
  64. 0  vendor/ruby/1.9.1/gems/rake-0.9.2/.gemtest
  65. +509 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/CHANGES
  66. +21 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/MIT-LICENSE
  67. +200 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/README.rdoc
  68. +9 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/RRR
  69. +405 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/Rakefile
  70. +20 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/TODO
  71. +32 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/bin/rake
  72. +114 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/doc/command_line_usage.rdoc
  73. +38 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/doc/example/Rakefile1
  74. +35 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/doc/example/Rakefile2
  75. +6 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/doc/example/a.c
  76. +6 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/doc/example/b.c
  77. +11 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/doc/example/main.c
  78. +51 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/doc/glossary.rdoc
  79. +591 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/doc/jamis.rb
  80. +127 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/doc/proto_rake.rdoc
  81. BIN  vendor/ruby/1.9.1/gems/rake-0.9.2/doc/rake.1.gz
  82. +557 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/doc/rakefile.rdoc
  83. +151 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/doc/rational.rdoc
  84. +23 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/doc/release_notes/rake-0.4.14.rdoc
  85. +35 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/doc/release_notes/rake-0.4.15.rdoc
  86. +53 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/doc/release_notes/rake-0.5.0.rdoc
  87. +78 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/doc/release_notes/rake-0.5.3.rdoc
  88. +46 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/doc/release_notes/rake-0.5.4.rdoc
  89. +141 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/doc/release_notes/rake-0.6.0.rdoc
  90. +119 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/doc/release_notes/rake-0.7.0.rdoc
  91. +59 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/doc/release_notes/rake-0.7.1.rdoc
  92. +121 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/doc/release_notes/rake-0.7.2.rdoc
  93. +47 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/doc/release_notes/rake-0.7.3.rdoc
  94. +114 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/doc/release_notes/rake-0.8.0.rdoc
  95. +165 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/doc/release_notes/rake-0.8.2.rdoc
  96. +112 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/doc/release_notes/rake-0.8.3.rdoc
  97. +147 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/doc/release_notes/rake-0.8.4.rdoc
  98. +53 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/doc/release_notes/rake-0.8.5.rdoc
  99. +55 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/doc/release_notes/rake-0.8.6.rdoc
  100. +55 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/doc/release_notes/rake-0.8.7.rdoc
  101. +112 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/doc/release_notes/rake-0.9.0.rdoc
  102. +52 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/doc/release_notes/rake-0.9.1.rdoc
  103. +49 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/doc/release_notes/rake-0.9.2.rdoc
  104. +90 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/install.rb
  105. +65 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/lib/rake.rb
  106. +109 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/lib/rake/alt_system.rb
  107. +589 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/lib/rake/application.rb
  108. +9 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/lib/rake/classic_namespace.rb
  109. +31 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/lib/rake/clean.rb
  110. +25 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/lib/rake/cloneable.rb
  111. +21 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/lib/rake/contrib/compositepublisher.rb
  112. +150 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/lib/rake/contrib/ftptools.rb
  113. +69 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/lib/rake/contrib/publisher.rb
  114. +16 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/lib/rake/contrib/rubyforgepublisher.rb
  115. +45 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/lib/rake/contrib/sshpublisher.rb
  116. +191 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/lib/rake/contrib/sys.rb
  117. +10 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/lib/rake/default_loader.rb
  118. +167 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/lib/rake/dsl_definition.rb
  119. +18 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/lib/rake/early_time.rb
  120. +27 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/lib/rake/ext/core.rb
  121. +39 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/lib/rake/ext/module.rb
  122. +167 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/lib/rake/ext/string.rb
  123. +14 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/lib/rake/ext/time.rb
  124. +24 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/lib/rake/file_creation_task.rb
  125. +403 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/lib/rake/file_list.rb
  126. +47 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/lib/rake/file_task.rb
  127. +112 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/lib/rake/file_utils.rb
  128. +142 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/lib/rake/file_utils_ext.rb
  129. +13 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/lib/rake/gempackagetask.rb
  130. +51 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/lib/rake/invocation_chain.rb
  131. +16 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/lib/rake/invocation_exception_mixin.rb
  132. +40 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/lib/rake/loaders/makefile.rb
  133. +16 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/lib/rake/multi_task.rb
  134. +25 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/lib/rake/name_space.rb
  135. +185 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/lib/rake/packagetask.rb
  136. +1 −0  vendor/ruby/1.9.1/gems/rake-0.9.2/lib/rake/pathmap.rb
  137. +24 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/lib/rake/pseudo_status.rb
  138. +29 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/lib/rake/rake_module.rb
  139. +13 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/lib/rake/rake_test_loader.rb
  140. +230 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/lib/rake/rdoctask.rb
  141. +25 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/lib/rake/ruby182_test_unit_fix.rb
  142. +20 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/lib/rake/rule_recursion_overflow_error.rb
  143. +21 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/lib/rake/runtest.rb
  144. +327 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/lib/rake/task.rb
  145. +7 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/lib/rake/task_argument_error.rb
  146. +74 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/lib/rake/task_arguments.rb
  147. +307 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/lib/rake/task_manager.rb
  148. +22 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/lib/rake/tasklib.rb
  149. +191 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/lib/rake/testtask.rb
  150. +10 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/lib/rake/version.rb
  151. +55 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/lib/rake/win32.rb
  152. +5 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/test/check_expansion.rb
  153. +5 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/test/check_no_expansion.rb
  154. +35 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/test/data/access/Rakefile
  155. +15 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/test/data/chains/Rakefile
  156. +18 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/test/data/comments/Rakefile
  157. +17 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/test/data/default/Rakefile
  158. +1 −0  vendor/ruby/1.9.1/gems/rake-0.9.2/test/data/deprecated_import/Rakefile
  159. +22 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/test/data/dryrun/Rakefile
  160. +1 −0  vendor/ruby/1.9.1/gems/rake-0.9.2/test/data/extra/Rakefile
  161. +31 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/test/data/file_creation_task/Rakefile
  162. +19 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/test/data/imports/Rakefile
  163. +1 −0  vendor/ruby/1.9.1/gems/rake-0.9.2/test/data/imports/deps.mf
  164. +15 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/test/data/multidesc/Rakefile
  165. +64 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/test/data/namespace/Rakefile
  166. +4 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/test/data/rakelib/test1.rb
  167. +3 −0  vendor/ruby/1.9.1/gems/rake-0.9.2/test/data/rbext/rakefile.rb
  168. +14 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/test/data/sample.mf
  169. +6 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/test/data/statusreturn/Rakefile
  170. +1 −0  vendor/ruby/1.9.1/gems/rake-0.9.2/test/data/unittest/Rakefile
  171. +34 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/test/data/verbose/Rakefile
  172. +34 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/test/file_creation.rb
  173. +44 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/test/helper.rb
  174. +35 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/test/in_environment.rb
  175. +3 −0  vendor/ruby/1.9.1/gems/rake-0.9.2/test/reqfile.rb
  176. +3 −0  vendor/ruby/1.9.1/gems/rake-0.9.2/test/reqfile2.rb
  177. +3 −0  vendor/ruby/1.9.1/gems/rake-0.9.2/test/shellcommand.rb
  178. +38 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/test/test_rake.rb
  179. +364 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/test/test_rake_application.rb
  180. +382 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/test/test_rake_application_options.rb
  181. +12 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/test/test_rake_clean.rb
  182. +80 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/test/test_rake_definitions.rb
  183. +55 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/test/test_rake_directory_task.rb
  184. +73 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/test/test_rake_dsl.rb
  185. +31 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/test/test_rake_early_time.rb
  186. +59 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/test/test_rake_extension.rb
  187. +62 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/test/test_rake_file_creation_task.rb
  188. +633 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/test/test_rake_file_list.rb
  189. +8 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/test/test_rake_file_list_path_map.rb
  190. +104 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/test/test_rake_file_task.rb
  191. +252 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/test/test_rake_file_utils.rb
  192. +59 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/test/test_rake_ftp_file.rb
  193. +468 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/test/test_rake_functional.rb
  194. +52 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/test/test_rake_invocation_chain.rb
  195. +23 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/test/test_rake_makefile_loader.rb
  196. +51 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/test/test_rake_multi_task.rb
  197. +43 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/test/test_rake_name_space.rb
  198. +78 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/test/test_rake_package_task.rb
  199. +157 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/test/test_rake_path_map.rb
  200. +31 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/test/test_rake_path_map_explode.rb
  201. +18 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/test/test_rake_path_map_partial.rb
  202. +20 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/test/test_rake_pseudo_status.rb
  203. +81 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/test/test_rake_rdoc_task.rb
  204. +35 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/test/test_rake_require.rb
  205. +346 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/test/test_rake_rules.rb
  206. +271 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/test/test_rake_task.rb
  207. +116 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/test/test_rake_task_argument_parsing.rb
  208. +86 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/test/test_rake_task_arguments.rb
  209. +9 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/test/test_rake_task_lib.rb
  210. +145 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/test/test_rake_task_manager.rb
  211. +36 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/test/test_rake_task_manager_argument_resolution.rb
  212. +162 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/test/test_rake_task_with_arguments.rb
  213. +122 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/test/test_rake_test_task.rb
  214. +76 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/test/test_rake_top_level_functions.rb
  215. +83 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/test/test_rake_win32.rb
  216. +20 −0 vendor/ruby/1.9.1/gems/rake-0.9.2/test/test_sys.rb
  217. +5 −0 vendor/ruby/1.9.1/gems/uglifier-1.0.0/.document
  218. +3 −0  vendor/ruby/1.9.1/gems/uglifier-1.0.0/.gitmodules
  219. +1 −0  vendor/ruby/1.9.1/gems/uglifier-1.0.0/.rspec
  220. +5 −0 vendor/ruby/1.9.1/gems/uglifier-1.0.0/.travis.yml
  221. +25 −0 vendor/ruby/1.9.1/gems/uglifier-1.0.0/Gemfile
  222. +20 −0 vendor/ruby/1.9.1/gems/uglifier-1.0.0/LICENSE.txt
  223. +65 −0 vendor/ruby/1.9.1/gems/uglifier-1.0.0/README.rdoc
  224. +44 −0 vendor/ruby/1.9.1/gems/uglifier-1.0.0/Rakefile
  225. +1 −0  vendor/ruby/1.9.1/gems/uglifier-1.0.0/VERSION
  226. +23 −0 vendor/ruby/1.9.1/gems/uglifier-1.0.0/build.js
  227. +78 −0 vendor/ruby/1.9.1/gems/uglifier-1.0.0/lib/es5.js
  228. +121 −0 vendor/ruby/1.9.1/gems/uglifier-1.0.0/lib/uglifier.rb
  229. +3,064 −0 vendor/ruby/1.9.1/gems/uglifier-1.0.0/lib/uglify.js
  230. +11 −0 vendor/ruby/1.9.1/gems/uglifier-1.0.0/spec/spec_helper.rb
  231. +99 −0 vendor/ruby/1.9.1/gems/uglifier-1.0.0/spec/uglifier_spec.rb
  232. +68 −0 vendor/ruby/1.9.1/gems/uglifier-1.0.0/uglifier.gemspec
  233. +44 −0 vendor/ruby/1.9.1/specifications/execjs-1.2.0.gemspec
  234. +40 −0 vendor/ruby/1.9.1/specifications/multi_json-1.0.3.gemspec
  235. +41 −0 vendor/ruby/1.9.1/specifications/rake-0.9.2.gemspec
  236. +44 −0 vendor/ruby/1.9.1/specifications/uglifier-1.0.0.gemspec
View
1  .gitignore
@@ -9,4 +9,5 @@ lib/*/tests/all.js
lib/*/tests/qunit*
test_*.html
tmp
+dist
.DS_Store
View
8 Gemfile
@@ -2,13 +2,7 @@
source "http://rubygems.org"
gem "rake"
-gem "bpm"
-gem "spade"
gem "uglifier"
-if abbot_path = ENV["ABBOT_PATH"]
- gem "sproutcore", :path => abbot_path
-else
- gem "sproutcore", :git => "git://github.com/wycats/abbot-from-scratch.git"
-end
+gem "sproutcore", :git => "git://github.com/wycats/abbot-from-scratch.git"
View
17 README.md
@@ -85,6 +85,18 @@ We also recommend that you check out the [annotated Todos example](http://annota
To learn more about what we're up to, follow [@sproutcore on Twitter](http://twitter.com/sproutcore), [subscribe to the blog](http://blog.sproutcore.com), or [read the original SproutCore 2.0 announcement](http://blog.sproutcore.com/announcing-sproutcore-2-0/).
+# Building SproutCore 2.0
+
+1. Run `rake` to build SproutCore. Two builds will be placed in the `dist/` directory.
+ * `sproutcore.js` and `sproutcore.min.js` - unminified and minified
+ builds of SproutCore 2.0
+ * `sproutcore-datastore.js` and `sproutcore-datastore.min.js` -
+ unminified and minified of the data store framework
+
+If you are building under Linux, you will need a JavaScript runtime for
+minification. You can either install nodejs or `gem install
+therubyracer`.
+
# How to Run Unit Tests
1. Install Ruby and Rubygems. There are many resources on the web can help you to do so, one of the best ways may be [rvm](http://rvm.beginrescueend.com/). (WARNING: There is a bug in RubyGems 1.7.2, please upgrade to 1.8.5+ or downgrade.)
@@ -109,8 +121,3 @@ Be sure you include the new package as a dependency in the global `package.json`
Note that unless you are adding new __tests__ or adding a new package you should not need to run `spaderun update`.
-# Building SproutCore 2.0
-
-1. Follow the installation instructions for running the unit tests.
-
-2. Run `bundle exec rake` to build SproutCore. The build will be placed in the tmp directory.
View
43 Rakefile
@@ -1,7 +1,7 @@
-require "bundler/setup"
-require "sproutcore"
+require File.expand_path("../vendor/bundler/setup", __FILE__)
require "erb"
require "uglifier"
+require "sproutcore"
LICENSE = File.read("generators/license.js")
@@ -40,6 +40,8 @@ task :handlebars => compile_package_task("handlebars")
task :build => ["sproutcore:metal", "sproutcore:indexset", "sproutcore:runtime", "sproutcore:handlebars", "sproutcore:views", "sproutcore:datastore", :handlebars]
+directory "dist"
+
file "tmp/static/sproutcore.js" => :build do
File.open("tmp/static/sproutcore.js", "w") do |file|
file.puts File.read("tmp/static/handlebars.js")
@@ -58,12 +60,6 @@ file "tmp/static/sproutcore.stripped.js" => "tmp/static/sproutcore.js" do
end
end
-file "tmp/sproutcore.js" => "tmp/static/sproutcore.stripped.js" do
- File.open("tmp/sproutcore.js", "w") do |file|
- file.puts File.read("tmp/static/sproutcore.stripped.js")
- end
-end
-
file "tmp/static/sproutcore-datastore.stripped.js" => "tmp/static/sproutcore-datastore.js" do
File.open("tmp/static/sproutcore-datastore.stripped.js", "w") do |file|
indexset = File.read("tmp/static/sproutcore-indexset.js")
@@ -77,22 +73,35 @@ file "tmp/static/sproutcore-datastore.stripped.js" => "tmp/static/sproutcore-dat
end
end
-file "tmp/sproutcore-datastore.js" => "tmp/static/sproutcore-datastore.stripped.js" do
- File.open("tmp/sproutcore-datastore.js", "w") do |file|
+file "dist/sproutcore.js" => ["dist", "tmp/static/sproutcore.stripped.js"] do
+ puts "Generating sproutcore.js"
+
+ File.open("dist/sproutcore.js", "w") do |file|
+ file.puts File.read("tmp/static/sproutcore.stripped.js")
+ end
+end
+
+file "dist/sproutcore-datastore.js" => ["dist", "tmp/static/sproutcore-datastore.stripped.js"] do
+ puts "Generating sproutcore-datastore.js"
+
+ File.open("dist/sproutcore-datastore.js", "w") do |file|
file.puts File.read("tmp/static/sproutcore-datastore.stripped.js")
end
end
-file "tmp/sproutcore.min.js" => "tmp/sproutcore.js" do
- File.open("tmp/sproutcore.min.js", "w") do |file|
- uglified = Uglifier.compile(File.read("tmp/sproutcore.js"))
+file "dist/sproutcore.min.js" => "dist/sproutcore.js" do
+ puts "Generating sproutcore.min.js"
+ File.open("dist/sproutcore.min.js", "w") do |file|
+ uglified = Uglifier.compile(File.read("dist/sproutcore.js"))
file.puts "#{LICENSE}\n#{uglified}"
end
end
-file "tmp/sproutcore-datastore.min.js" => "tmp/sproutcore-datastore.js" do
- File.open("tmp/sproutcore-datastore.min.js", "w") do |file|
- uglified = Uglifier.compile(File.read("tmp/sproutcore-datastore.js"))
+file "dist/sproutcore-datastore.min.js" => "dist/sproutcore-datastore.js" do
+ puts "Generating sproutcore-datastore.min.js"
+
+ File.open("dist/sproutcore-datastore.min.js", "w") do |file|
+ uglified = Uglifier.compile(File.read("dist/sproutcore-datastore.js"))
file.puts "#{LICENSE}\n#{uglified}"
end
end
@@ -288,5 +297,5 @@ namespace :starter_kit do
task :deploy => "tmp/starter-kit.#{VERSION}.zip"
end
-task :default => ["tmp/sproutcore.min.js", "tmp/sproutcore-datastore.min.js"]
+task :default => ["dist/sproutcore.min.js", "dist/sproutcore-datastore.min.js"]
View
6 vendor/bundler/setup.rb
@@ -0,0 +1,6 @@
+path = File.expand_path('..', __FILE__)
+$:.unshift File.expand_path("#{path}/../../vendor/ruby/1.9.1/gems/rake-0.9.2/lib")
+$:.unshift File.expand_path("#{path}/../../vendor/ruby/1.9.1/gems/multi_json-1.0.3/lib")
+$:.unshift File.expand_path("#{path}/../../vendor/ruby/1.9.1/gems/execjs-1.2.0/lib")
+$:.unshift File.expand_path("#{path}/../../vendor/ruby/1.9.1/bundler/gems/abbot-from-scratch-754164ff560e/lib")
+$:.unshift File.expand_path("#{path}/../../vendor/ruby/1.9.1/gems/uglifier-1.0.0/lib")
View
19 vendor/ruby/1.9.1/bin/rake
@@ -0,0 +1,19 @@
+#!/usr/bin/env ruby
+#
+# This file was generated by RubyGems.
+#
+# The application 'rake' is installed as part of a gem, and
+# this file is here to facilitate running it.
+#
+
+require 'rubygems'
+
+version = ">= 0"
+
+if ARGV.first =~ /^_(.*)_$/ and Gem::Version.correct? $1 then
+ version = $1
+ ARGV.shift
+end
+
+gem 'rake', version
+load Gem.bin_path('rake', 'rake', version)
1  vendor/ruby/1.9.1/bundler/gems/abbot-from-scratch-754164ff560e
@@ -0,0 +1 @@
+Subproject commit 754164ff560e2597b62fb326358fb8b9f7fc3ed4
View
1  .../1.9.1/cache/bundler/git/abbot-from-scratch-a58a1a082ef9c607ccb0938f161fe212895a4a59/HEAD
@@ -0,0 +1 @@
+ref: refs/heads/master
View
7 ....9.1/cache/bundler/git/abbot-from-scratch-a58a1a082ef9c607ccb0938f161fe212895a4a59/config
@@ -0,0 +1,7 @@
+[core]
+ repositoryformatversion = 0
+ filemode = true
+ bare = true
+ ignorecase = true
+[remote "origin"]
+ url = git://github.com/wycats/abbot-from-scratch.git
View
1  ...cache/bundler/git/abbot-from-scratch-a58a1a082ef9c607ccb0938f161fe212895a4a59/description
@@ -0,0 +1 @@
+Unnamed repository; edit this file 'description' to name the repository.
View
15 ...t/abbot-from-scratch-a58a1a082ef9c607ccb0938f161fe212895a4a59/hooks/applypatch-msg.sample
@@ -0,0 +1,15 @@
+#!/bin/sh
+#
+# An example hook script to check the commit log message taken by
+# applypatch from an e-mail message.
+#
+# The hook should exit with non-zero status after issuing an
+# appropriate message if it wants to stop the commit. The hook is
+# allowed to edit the commit message file.
+#
+# To enable this hook, rename this file to "applypatch-msg".
+
+. git-sh-setup
+test -x "$GIT_DIR/hooks/commit-msg" &&
+ exec "$GIT_DIR/hooks/commit-msg" ${1+"$@"}
+:
View
24 ...r/git/abbot-from-scratch-a58a1a082ef9c607ccb0938f161fe212895a4a59/hooks/commit-msg.sample
@@ -0,0 +1,24 @@
+#!/bin/sh
+#
+# An example hook script to check the commit log message.
+# Called by "git commit" with one argument, the name of the file
+# that has the commit message. The hook should exit with non-zero
+# status after issuing an appropriate message if it wants to stop the
+# commit. The hook is allowed to edit the commit message file.
+#
+# To enable this hook, rename this file to "commit-msg".
+
+# Uncomment the below to add a Signed-off-by line to the message.
+# Doing this in a hook is a bad idea in general, but the prepare-commit-msg
+# hook is more suited to it.
+#
+# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
+# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1"
+
+# This example catches duplicate Signed-off-by lines.
+
+test "" = "$(grep '^Signed-off-by: ' "$1" |
+ sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || {
+ echo >&2 Duplicate Signed-off-by lines.
+ exit 1
+}
View
8 .../git/abbot-from-scratch-a58a1a082ef9c607ccb0938f161fe212895a4a59/hooks/post-commit.sample
@@ -0,0 +1,8 @@
+#!/bin/sh
+#
+# An example hook script that is called after a successful
+# commit is made.
+#
+# To enable this hook, rename this file to "post-commit".
+
+: Nothing
View
15 ...git/abbot-from-scratch-a58a1a082ef9c607ccb0938f161fe212895a4a59/hooks/post-receive.sample
@@ -0,0 +1,15 @@
+#!/bin/sh
+#
+# An example hook script for the "post-receive" event.
+#
+# The "post-receive" script is run after receive-pack has accepted a pack
+# and the repository has been updated. It is passed arguments in through
+# stdin in the form
+# <oldrev> <newrev> <refname>
+# For example:
+# aa453216d1b3e49e7f6f98441fa56946ddcd6a20 68f7abf4e6f922807889f52bc043ecd31b79f814 refs/heads/master
+#
+# see contrib/hooks/ for a sample, or uncomment the next line and
+# rename the file to "post-receive".
+
+#. /usr/share/doc/git-core/contrib/hooks/post-receive-email
View
8 .../git/abbot-from-scratch-a58a1a082ef9c607ccb0938f161fe212895a4a59/hooks/post-update.sample
@@ -0,0 +1,8 @@
+#!/bin/sh
+#
+# An example hook script to prepare a packed repository for use over
+# dumb transports.
+#
+# To enable this hook, rename this file to "post-update".
+
+exec git update-server-info
View
14 ...t/abbot-from-scratch-a58a1a082ef9c607ccb0938f161fe212895a4a59/hooks/pre-applypatch.sample
@@ -0,0 +1,14 @@
+#!/bin/sh
+#
+# An example hook script to verify what is about to be committed
+# by applypatch from an e-mail message.
+#
+# The hook should exit with non-zero status after issuing an
+# appropriate message if it wants to stop the commit.
+#
+# To enable this hook, rename this file to "pre-applypatch".
+
+. git-sh-setup
+test -x "$GIT_DIR/hooks/pre-commit" &&
+ exec "$GIT_DIR/hooks/pre-commit" ${1+"$@"}
+:
View
46 ...r/git/abbot-from-scratch-a58a1a082ef9c607ccb0938f161fe212895a4a59/hooks/pre-commit.sample
@@ -0,0 +1,46 @@
+#!/bin/sh
+#
+# An example hook script to verify what is about to be committed.
+# Called by "git commit" with no arguments. The hook should
+# exit with non-zero status after issuing an appropriate message if
+# it wants to stop the commit.
+#
+# To enable this hook, rename this file to "pre-commit".
+
+if git rev-parse --verify HEAD >/dev/null 2>&1
+then
+ against=HEAD
+else
+ # Initial commit: diff against an empty tree object
+ against=4b825dc642cb6eb9a060e54bf8d69288fbee4904
+fi
+
+# If you want to allow non-ascii filenames set this variable to true.
+allownonascii=$(git config hooks.allownonascii)
+
+# Cross platform projects tend to avoid non-ascii filenames; prevent
+# them from being added to the repository. We exploit the fact that the
+# printable range starts at the space character and ends with tilde.
+if [ "$allownonascii" != "true" ] &&
+ # Note that the use of brackets around a tr range is ok here, (it's
+ # even required, for portability to Solaris 10's /usr/bin/tr), since
+ # the square bracket bytes happen to fall in the designated range.
+ test "$(git diff --cached --name-only --diff-filter=A -z $against |
+ LC_ALL=C tr -d '[ -~]\0')"
+then
+ echo "Error: Attempt to add a non-ascii file name."
+ echo
+ echo "This can cause problems if you want to work"
+ echo "with people on other platforms."
+ echo
+ echo "To be portable it is advisable to rename the file ..."
+ echo
+ echo "If you know what you are doing you can disable this"
+ echo "check using:"
+ echo
+ echo " git config hooks.allownonascii true"
+ echo
+ exit 1
+fi
+
+exec git diff-index --check --cached $against --
View
169 ...r/git/abbot-from-scratch-a58a1a082ef9c607ccb0938f161fe212895a4a59/hooks/pre-rebase.sample
@@ -0,0 +1,169 @@
+#!/bin/sh
+#
+# Copyright (c) 2006, 2008 Junio C Hamano
+#
+# The "pre-rebase" hook is run just before "git rebase" starts doing
+# its job, and can prevent the command from running by exiting with
+# non-zero status.
+#
+# The hook is called with the following parameters:
+#
+# $1 -- the upstream the series was forked from.
+# $2 -- the branch being rebased (or empty when rebasing the current branch).
+#
+# This sample shows how to prevent topic branches that are already
+# merged to 'next' branch from getting rebased, because allowing it
+# would result in rebasing already published history.
+
+publish=next
+basebranch="$1"
+if test "$#" = 2
+then
+ topic="refs/heads/$2"
+else
+ topic=`git symbolic-ref HEAD` ||
+ exit 0 ;# we do not interrupt rebasing detached HEAD
+fi
+
+case "$topic" in
+refs/heads/??/*)
+ ;;
+*)
+ exit 0 ;# we do not interrupt others.
+ ;;
+esac
+
+# Now we are dealing with a topic branch being rebased
+# on top of master. Is it OK to rebase it?
+
+# Does the topic really exist?
+git show-ref -q "$topic" || {
+ echo >&2 "No such branch $topic"
+ exit 1
+}
+
+# Is topic fully merged to master?
+not_in_master=`git rev-list --pretty=oneline ^master "$topic"`
+if test -z "$not_in_master"
+then
+ echo >&2 "$topic is fully merged to master; better remove it."
+ exit 1 ;# we could allow it, but there is no point.
+fi
+
+# Is topic ever merged to next? If so you should not be rebasing it.
+only_next_1=`git rev-list ^master "^$topic" ${publish} | sort`
+only_next_2=`git rev-list ^master ${publish} | sort`
+if test "$only_next_1" = "$only_next_2"
+then
+ not_in_topic=`git rev-list "^$topic" master`
+ if test -z "$not_in_topic"
+ then
+ echo >&2 "$topic is already up-to-date with master"
+ exit 1 ;# we could allow it, but there is no point.
+ else
+ exit 0
+ fi
+else
+ not_in_next=`git rev-list --pretty=oneline ^${publish} "$topic"`
+ /usr/bin/perl -e '
+ my $topic = $ARGV[0];
+ my $msg = "* $topic has commits already merged to public branch:\n";
+ my (%not_in_next) = map {
+ /^([0-9a-f]+) /;
+ ($1 => 1);
+ } split(/\n/, $ARGV[1]);
+ for my $elem (map {
+ /^([0-9a-f]+) (.*)$/;
+ [$1 => $2];
+ } split(/\n/, $ARGV[2])) {
+ if (!exists $not_in_next{$elem->[0]}) {
+ if ($msg) {
+ print STDERR $msg;
+ undef $msg;
+ }
+ print STDERR " $elem->[1]\n";
+ }
+ }
+ ' "$topic" "$not_in_next" "$not_in_master"
+ exit 1
+fi
+
+exit 0
+
+################################################################
+
+This sample hook safeguards topic branches that have been
+published from being rewound.
+
+The workflow assumed here is:
+
+ * Once a topic branch forks from "master", "master" is never
+ merged into it again (either directly or indirectly).
+
+ * Once a topic branch is fully cooked and merged into "master",
+ it is deleted. If you need to build on top of it to correct
+ earlier mistakes, a new topic branch is created by forking at
+ the tip of the "master". This is not strictly necessary, but
+ it makes it easier to keep your history simple.
+
+ * Whenever you need to test or publish your changes to topic
+ branches, merge them into "next" branch.
+
+The script, being an example, hardcodes the publish branch name
+to be "next", but it is trivial to make it configurable via
+$GIT_DIR/config mechanism.
+
+With this workflow, you would want to know:
+
+(1) ... if a topic branch has ever been merged to "next". Young
+ topic branches can have stupid mistakes you would rather
+ clean up before publishing, and things that have not been
+ merged into other branches can be easily rebased without
+ affecting other people. But once it is published, you would
+ not want to rewind it.
+
+(2) ... if a topic branch has been fully merged to "master".
+ Then you can delete it. More importantly, you should not
+ build on top of it -- other people may already want to
+ change things related to the topic as patches against your
+ "master", so if you need further changes, it is better to
+ fork the topic (perhaps with the same name) afresh from the
+ tip of "master".
+
+Let's look at this example:
+
+ o---o---o---o---o---o---o---o---o---o "next"
+ / / / /
+ / a---a---b A / /
+ / / / /
+ / / c---c---c---c B /
+ / / / \ /
+ / / / b---b C \ /
+ / / / / \ /
+ ---o---o---o---o---o---o---o---o---o---o---o "master"
+
+
+A, B and C are topic branches.
+
+ * A has one fix since it was merged up to "next".
+
+ * B has finished. It has been fully merged up to "master" and "next",
+ and is ready to be deleted.
+
+ * C has not merged to "next" at all.
+
+We would want to allow C to be rebased, refuse A, and encourage
+B to be deleted.
+
+To compute (1):
+
+ git rev-list ^master ^topic next
+ git rev-list ^master next
+
+ if these match, topic has not merged in next at all.
+
+To compute (2):
+
+ git rev-list master..topic
+
+ if this is empty, it is fully merged to "master".
View
36 ...bot-from-scratch-a58a1a082ef9c607ccb0938f161fe212895a4a59/hooks/prepare-commit-msg.sample
@@ -0,0 +1,36 @@
+#!/bin/sh
+#
+# An example hook script to prepare the commit log message.
+# Called by "git commit" with the name of the file that has the
+# commit message, followed by the description of the commit
+# message's source. The hook's purpose is to edit the commit
+# message file. If the hook fails with a non-zero status,
+# the commit is aborted.
+#
+# To enable this hook, rename this file to "prepare-commit-msg".
+
+# This hook includes three examples. The first comments out the
+# "Conflicts:" part of a merge commit.
+#
+# The second includes the output of "git diff --name-status -r"
+# into the message, just before the "git status" output. It is
+# commented because it doesn't cope with --amend or with squashed
+# commits.
+#
+# The third example adds a Signed-off-by line to the message, that can
+# still be edited. This is rarely a good idea.
+
+case "$2,$3" in
+ merge,)
+ /usr/bin/perl -i.bak -ne 's/^/# /, s/^# #/#/ if /^Conflicts/ .. /#/; print' "$1" ;;
+
+# ,|template,)
+# /usr/bin/perl -i.bak -pe '
+# print "\n" . `git diff --cached --name-status -r`
+# if /^#/ && $first++ == 0' "$1" ;;
+
+ *) ;;
+esac
+
+# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
+# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1"
View
128 ...ndler/git/abbot-from-scratch-a58a1a082ef9c607ccb0938f161fe212895a4a59/hooks/update.sample
@@ -0,0 +1,128 @@
+#!/bin/sh
+#
+# An example hook script to blocks unannotated tags from entering.
+# Called by "git receive-pack" with arguments: refname sha1-old sha1-new
+#
+# To enable this hook, rename this file to "update".
+#
+# Config
+# ------
+# hooks.allowunannotated
+# This boolean sets whether unannotated tags will be allowed into the
+# repository. By default they won't be.
+# hooks.allowdeletetag
+# This boolean sets whether deleting tags will be allowed in the
+# repository. By default they won't be.
+# hooks.allowmodifytag
+# This boolean sets whether a tag may be modified after creation. By default
+# it won't be.
+# hooks.allowdeletebranch
+# This boolean sets whether deleting branches will be allowed in the
+# repository. By default they won't be.
+# hooks.denycreatebranch
+# This boolean sets whether remotely creating branches will be denied
+# in the repository. By default this is allowed.
+#
+
+# --- Command line
+refname="$1"
+oldrev="$2"
+newrev="$3"
+
+# --- Safety check
+if [ -z "$GIT_DIR" ]; then
+ echo "Don't run this script from the command line." >&2
+ echo " (if you want, you could supply GIT_DIR then run" >&2
+ echo " $0 <ref> <oldrev> <newrev>)" >&2
+ exit 1
+fi
+
+if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then
+ echo "Usage: $0 <ref> <oldrev> <newrev>" >&2
+ exit 1
+fi
+
+# --- Config
+allowunannotated=$(git config --bool hooks.allowunannotated)
+allowdeletebranch=$(git config --bool hooks.allowdeletebranch)
+denycreatebranch=$(git config --bool hooks.denycreatebranch)
+allowdeletetag=$(git config --bool hooks.allowdeletetag)
+allowmodifytag=$(git config --bool hooks.allowmodifytag)
+
+# check for no description
+projectdesc=$(sed -e '1q' "$GIT_DIR/description")
+case "$projectdesc" in
+"Unnamed repository"* | "")
+ echo "*** Project description file hasn't been set" >&2
+ exit 1
+ ;;
+esac
+
+# --- Check types
+# if $newrev is 0000...0000, it's a commit to delete a ref.
+zero="0000000000000000000000000000000000000000"
+if [ "$newrev" = "$zero" ]; then
+ newrev_type=delete
+else
+ newrev_type=$(git cat-file -t $newrev)
+fi
+
+case "$refname","$newrev_type" in
+ refs/tags/*,commit)
+ # un-annotated tag
+ short_refname=${refname##refs/tags/}
+ if [ "$allowunannotated" != "true" ]; then
+ echo "*** The un-annotated tag, $short_refname, is not allowed in this repository" >&2
+ echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2
+ exit 1
+ fi
+ ;;
+ refs/tags/*,delete)
+ # delete tag
+ if [ "$allowdeletetag" != "true" ]; then
+ echo "*** Deleting a tag is not allowed in this repository" >&2
+ exit 1
+ fi
+ ;;
+ refs/tags/*,tag)
+ # annotated tag
+ if [ "$allowmodifytag" != "true" ] && git rev-parse $refname > /dev/null 2>&1
+ then
+ echo "*** Tag '$refname' already exists." >&2
+ echo "*** Modifying a tag is not allowed in this repository." >&2
+ exit 1
+ fi
+ ;;
+ refs/heads/*,commit)
+ # branch
+ if [ "$oldrev" = "$zero" -a "$denycreatebranch" = "true" ]; then
+ echo "*** Creating a branch is not allowed in this repository" >&2
+ exit 1
+ fi
+ ;;
+ refs/heads/*,delete)
+ # delete branch
+ if [ "$allowdeletebranch" != "true" ]; then
+ echo "*** Deleting a branch is not allowed in this repository" >&2
+ exit 1
+ fi
+ ;;
+ refs/remotes/*,commit)
+ # tracking branch
+ ;;
+ refs/remotes/*,delete)
+ # delete tracking branch
+ if [ "$allowdeletebranch" != "true" ]; then
+ echo "*** Deleting a tracking branch is not allowed in this repository" >&2
+ exit 1
+ fi
+ ;;
+ *)
+ # Anything else (is there anything else?)
+ echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2
+ exit 1
+ ;;
+esac
+
+# --- Finished
+exit 0
View
6 ...ache/bundler/git/abbot-from-scratch-a58a1a082ef9c607ccb0938f161fe212895a4a59/info/exclude
@@ -0,0 +1,6 @@
+# git ls-files --others --exclude-from=.git/info/exclude
+# Lines that start with '#' are comments.
+# For a project mostly in C, the following would be a good set of
+# exclude patterns (uncomment them if you want to use them):
+# *.[oa]
+# *~
View
BIN  ...07ccb0938f161fe212895a4a59/objects/pack/pack-82f2e7b2597f4176734e27f33569b95ac546cf10.idx
Binary file not shown
View
BIN  ...7ccb0938f161fe212895a4a59/objects/pack/pack-82f2e7b2597f4176734e27f33569b95ac546cf10.pack
Binary file not shown
View
2  ...cache/bundler/git/abbot-from-scratch-a58a1a082ef9c607ccb0938f161fe212895a4a59/packed-refs
@@ -0,0 +1,2 @@
+# pack-refs with: peeled
+754164ff560e2597b62fb326358fb8b9f7fc3ed4 refs/heads/master
View
BIN  vendor/ruby/1.9.1/cache/execjs-1.2.0.gem
Binary file not shown
View
BIN  vendor/ruby/1.9.1/cache/multi_json-1.0.3.gem
Binary file not shown
View
BIN  vendor/ruby/1.9.1/cache/rake-0.9.2.gem
Binary file not shown
View
BIN  vendor/ruby/1.9.1/cache/uglifier-1.0.0.gem
Binary file not shown
View
21 vendor/ruby/1.9.1/gems/execjs-1.2.0/LICENSE
@@ -0,0 +1,21 @@
+Copyright (c) 2011 Sam Stephenson
+Copyright (c) 2011 Josh Peek
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
View
47 vendor/ruby/1.9.1/gems/execjs-1.2.0/README.md
@@ -0,0 +1,47 @@
+ExecJS
+======
+
+ExecJS lets you run JavaScript code from Ruby. It automatically picks
+the best runtime available to evaluate your JavaScript program, then
+returns the result to you as a Ruby object.
+
+ExecJS supports these runtimes:
+
+* [therubyracer](https://github.com/cowboyd/therubyracer) - Google V8
+ embedded within Ruby
+* [therubyrhino](https://github.com/cowboyd/therubyrhino) - Mozilla
+ Rhino embedded within JRuby
+* [Johnson](https://github.com/jbarnette/johnson) - Mozilla
+ SpiderMonkey embedded within Ruby
+* [Mustang](https://github.com/nu7hatch/mustang) - Mustang V8
+ embedded within Ruby
+* [Node.js](http://nodejs.org/)
+* Apple JavaScriptCore - Included with Mac OS X
+* [Mozilla SpiderMonkey](http://www.mozilla.org/js/spidermonkey/)
+* [Microsoft Windows Script Host](http://msdn.microsoft.com/en-us/library/9bbdkx3k.aspx) (JScript)
+
+A short example:
+
+ require "execjs"
+ ExecJS.eval "'red yellow blue'.split(' ')"
+ # => ["red", "yellow", "blue"]
+
+A longer example, demonstrating how to invoke the CoffeeScript compiler:
+
+ require "execjs"
+ require "open-uri"
+ source = open("http://jashkenas.github.com/coffee-script/extras/coffee-script.js").read
+
+ context = ExecJS.compile(source)
+ context.call("CoffeeScript.compile", "square = (x) -> x * x", :bare => true)
+ # => "var square;\nsquare = function(x) {\n return x * x;\n};"
+
+# Installation
+
+ $ gem install execjs
+
+# License
+
+Copyright (c) 2011 Sam Stephenson and Josh Peek.
+
+Released under the MIT license. See `LICENSE` for details.
View
6 vendor/ruby/1.9.1/gems/execjs-1.2.0/lib/execjs.rb
@@ -0,0 +1,6 @@
+require "execjs/module"
+require "execjs/runtimes"
+
+module ExecJS
+ self.runtime ||= Runtimes.autodetect
+end
View
160 vendor/ruby/1.9.1/gems/execjs-1.2.0/lib/execjs/external_runtime.rb
@@ -0,0 +1,160 @@
+require "tempfile"
+
+module ExecJS
+ class ExternalRuntime
+ class Context
+ def initialize(runtime, source = "")
+ source = source.encode('UTF-8') if source.respond_to?(:encode)
+
+ @runtime = runtime
+ @source = source
+ end
+
+ def eval(source, options = {})
+ source = source.encode('UTF-8') if source.respond_to?(:encode)
+
+ if /\S/ =~ source
+ exec("return eval(#{MultiJson.encode("(#{source})")})")
+ end
+ end
+
+ def exec(source, options = {})
+ source = source.encode('UTF-8') if source.respond_to?(:encode)
+
+ compile_to_tempfile([@source, source].join("\n")) do |file|
+ extract_result(@runtime.send(:exec_runtime, file.path))
+ end
+ end
+
+ def call(identifier, *args)
+ eval "#{identifier}.apply(this, #{MultiJson.encode(args)})"
+ end
+
+ protected
+ def compile_to_tempfile(source)
+ tempfile = Tempfile.open(['execjs', '.js'])
+ tempfile.write compile(source)
+ tempfile.close
+ yield tempfile
+ ensure
+ tempfile.close!
+ end
+
+ def compile(source)
+ @runtime.send(:runner_source).dup.tap do |output|
+ output.sub!('#{source}') do
+ source
+ end
+ output.sub!('#{json2_source}') do
+ IO.read(ExecJS.root + "/support/json2.js")
+ end
+ end
+ end
+
+ def extract_result(output)
+ status, value = output.empty? ? [] : MultiJson.decode(output)
+ if status == "ok"
+ value
+ else
+ raise ProgramError, value
+ end
+ end
+ end
+
+ attr_reader :name
+
+ def initialize(options)
+ @name = options[:name]
+ @command = options[:command]
+ @runner_path = options[:runner_path]
+ @test_args = options[:test_args]
+ @test_match = options[:test_match]
+ @conversion = options[:conversion]
+ @binary = locate_binary
+ end
+
+ def exec(source)
+ context = Context.new(self)
+ context.exec(source)
+ end
+
+ def eval(source)
+ context = Context.new(self)
+ context.eval(source)
+ end
+
+ def compile(source)
+ Context.new(self, source)
+ end
+
+ def available?
+ require "multi_json"
+ @binary ? true : false
+ end
+
+ protected
+ def runner_source
+ @runner_source ||= IO.read(@runner_path)
+ end
+
+ def exec_runtime(filename)
+ output = sh("#{@binary} #{filename} 2>&1")
+ if $?.success?
+ output
+ else
+ raise RuntimeError, output
+ end
+ end
+
+ def locate_binary
+ if binary = which(@command)
+ if @test_args
+ output = `#{binary} #{@test_args} 2>&1`
+ binary if output.match(@test_match)
+ else
+ binary
+ end
+ end
+ end
+
+ def which(command)
+ Array(command).each do |name|
+ name, args = name.split(/\s+/, 2)
+ result = if ExecJS.windows?
+ `#{ExecJS.root}/support/which.bat #{name}`
+ else
+ `which #{name} 2>/dev/null`
+ end
+
+ if path = result.strip.split("\n").first
+ return args ? "#{path} #{args}" : path
+ end
+ end
+ nil
+ end
+
+ if "".respond_to?(:force_encoding)
+ def sh(command)
+ output, options = nil, {}
+ options[:external_encoding] = 'UTF-8'
+ options[:internal_encoding] = @conversion[:from] if @conversion
+ IO.popen(command, options) { |f| output = f.read }
+ output.force_encoding(@conversion[:to]) if @conversion
+ output
+ end
+ else
+ require "iconv"
+
+ def sh(command)
+ output = nil
+ IO.popen(command) { |f| output = f.read }
+
+ if @conversion
+ Iconv.iconv(@conversion[:from], @conversion[:to], output).first
+ else
+ output
+ end
+ end
+ end
+ end
+end
View
112 vendor/ruby/1.9.1/gems/execjs-1.2.0/lib/execjs/johnson_runtime.rb
@@ -0,0 +1,112 @@
+module ExecJS
+ class JohnsonRuntime
+ class Context
+ def initialize(source = "")
+ @runtime = Johnson::Runtime.new
+ @runtime.evaluate(source)
+ end
+
+ def exec(source, options = {})
+ souce = source.encode('UTF-8') if source.respond_to?(:encode)
+
+ if /\S/ =~ source
+ eval "(function(){#{source}})()", options
+ end
+ end
+
+ def eval(source, options = {})
+ souce = source.encode('UTF-8') if source.respond_to?(:encode)
+
+ if /\S/ =~ source
+ unbox @runtime.evaluate("(#{source})")
+ end
+ rescue Johnson::Error => e
+ if syntax_error?(e)
+ raise RuntimeError, e.message
+ else
+ raise ProgramError, e.message
+ end
+ end
+
+ def call(properties, *args)
+ unbox @runtime.evaluate(properties).call(*args)
+ rescue Johnson::Error => e
+ if syntax_error?(e)
+ raise RuntimeError, e.message
+ else
+ raise ProgramError, e.message
+ end
+ end
+
+ def unbox(value)
+ case
+ when function?(value)
+ nil
+ when string?(value)
+ value.respond_to?(:force_encoding) ?
+ value.force_encoding('UTF-8') :
+ value
+ when array?(value)
+ value.map { |v| unbox(v) }
+ when object?(value)
+ value.inject({}) do |vs, (k, v)|
+ vs[k] = unbox(v) unless function?(v)
+ vs
+ end
+ else
+ value
+ end
+ end
+
+ private
+ def syntax_error?(error)
+ error.message =~ /^syntax error at /
+ end
+
+ def function?(value)
+ value.respond_to?(:function?) && value.function?
+ end
+
+ def string?(value)
+ value.is_a?(String)
+ end
+
+ def array?(value)
+ array_test.call(value)
+ end
+
+ def object?(value)
+ value.respond_to?(:inject)
+ end
+
+ def array_test
+ @array_test ||= @runtime.evaluate("(function(a) {return a instanceof [].constructor})")
+ end
+ end
+
+ def name
+ "Johnson (SpiderMonkey)"
+ end
+
+ def exec(source)
+ context = Context.new
+ context.exec(source)
+ end
+
+ def eval(source)
+ context = Context.new
+ context.eval(source)
+ end
+
+ def compile(source)
+ Context.new(source)
+ end
+
+ def available?
+ require "johnson"
+ true
+ rescue LoadError
+ false
+ end
+ end
+end
View
38 vendor/ruby/1.9.1/gems/execjs-1.2.0/lib/execjs/module.rb
@@ -0,0 +1,38 @@
+require "execjs/version"
+require "rbconfig"
+
+module ExecJS
+ class Error < ::StandardError; end
+ class RuntimeError < Error; end
+ class ProgramError < Error; end
+ class RuntimeUnavailable < RuntimeError; end
+
+ class << self
+ attr_reader :runtime
+
+ def runtime=(runtime)
+ raise RuntimeUnavailable, "#{runtime.name} is unavailable on this system" unless runtime.available?
+ @runtime = runtime
+ end
+
+ def exec(source)
+ runtime.exec(source)
+ end
+
+ def eval(source)
+ runtime.eval(source)
+ end
+
+ def compile(source)
+ runtime.compile(source)
+ end
+
+ def root
+ @root ||= File.expand_path("..", __FILE__)
+ end
+
+ def windows?
+ @windows ||= RbConfig::CONFIG["host_os"] =~ /mswin|mingw/
+ end
+ end
+end
View
78 vendor/ruby/1.9.1/gems/execjs-1.2.0/lib/execjs/mustang_runtime.rb
@@ -0,0 +1,78 @@
+module ExecJS
+ class MustangRuntime
+ class Context
+ def initialize(source = "")
+ source = source.encode('UTF-8') if source.respond_to?(:encode)
+
+ @v8_context = ::Mustang::Context.new
+ @v8_context.eval(source)
+ end
+
+ def exec(source, options = {})
+ source = source.encode('UTF-8') if source.respond_to?(:encode)
+
+ if /\S/ =~ source
+ eval "(function(){#{source}})()", options
+ end
+ end
+
+ def eval(source, options = {})
+ source = source.encode('UTF-8') if source.respond_to?(:encode)
+
+ if /\S/ =~ source
+ unbox @v8_context.eval("(#{source})")
+ end
+ end
+
+ def call(properties, *args)
+ unbox @v8_context.eval(properties).call(*args)
+ rescue NoMethodError => e
+ raise ProgramError, e.message
+ end
+
+ def unbox(value)
+ case value
+ when Mustang::V8::Array
+ value.map { |v| unbox(v) }
+ when Mustang::V8::Boolean
+ value.to_bool
+ when Mustang::V8::NullClass, Mustang::V8::UndefinedClass
+ nil
+ when Mustang::V8::Function
+ nil
+ when Mustang::V8::SyntaxError
+ raise RuntimeError, value.message
+ when Mustang::V8::Error
+ raise ProgramError, value.message
+ else
+ value.respond_to?(:delegate) ? value.delegate : value
+ end
+ end
+ end
+
+ def name
+ "Mustang (V8)"
+ end
+
+ def exec(source)
+ context = Context.new
+ context.exec(source)
+ end
+
+ def eval(source)
+ context = Context.new
+ context.eval(source)
+ end
+
+ def compile(source)
+ Context.new(source)
+ end
+
+ def available?
+ require "mustang"
+ true
+ rescue LoadError
+ false
+ end
+ end
+end
View
117 vendor/ruby/1.9.1/gems/execjs-1.2.0/lib/execjs/ruby_racer_runtime.rb
@@ -0,0 +1,117 @@
+module ExecJS
+ class RubyRacerRuntime
+ class Context
+ def initialize(source = "")
+ source = source.encode('UTF-8') if source.respond_to?(:encode)
+
+ lock do
+ @v8_context = ::V8::Context.new
+ @v8_context.eval(source)
+ end
+ end
+
+ def exec(source, options = {})
+ source = source.encode('UTF-8') if source.respond_to?(:encode)
+
+ if /\S/ =~ source
+ eval "(function(){#{source}})()", options
+ end
+ end
+
+ def eval(source, options = {})
+ source = source.encode('UTF-8') if source.respond_to?(:encode)
+
+ if /\S/ =~ source
+ lock do
+ begin
+ unbox @v8_context.eval("(#{source})")
+ rescue ::V8::JSError => e
+ if e.value["name"] == "SyntaxError"
+ raise RuntimeError, e.message
+ else
+ raise ProgramError, e.message
+ end
+ end
+ end
+ end
+ end
+
+ def call(properties, *args)
+ lock do
+ begin
+ unbox @v8_context.eval(properties).call(*args)
+ rescue ::V8::JSError => e
+ if e.value["name"] == "SyntaxError"
+ raise RuntimeError, e.message
+ else
+ raise ProgramError, e.message
+ end
+ end
+ end
+ end
+
+ def unbox(value)
+ case value
+ when ::V8::Function
+ nil
+ when ::V8::Array
+ value.map { |v| unbox(v) }
+ when ::V8::Object
+ value.inject({}) do |vs, (k, v)|
+ vs[k] = unbox(v) unless v.is_a?(::V8::Function)
+ vs
+ end
+ when String
+ value.respond_to?(:force_encoding) ?
+ value.force_encoding('UTF-8') :
+ value
+ else
+ value
+ end
+ end
+
+ private
+ def lock
+ result, exception = nil, nil
+ V8::C::Locker() do
+ begin
+ result = yield
+ rescue Exception => e
+ exception = e
+ end
+ end
+
+ if exception
+ raise exception
+ else
+ result
+ end
+ end
+ end
+
+ def name
+ "therubyracer (V8)"
+ end
+
+ def exec(source)
+ context = Context.new
+ context.exec(source)
+ end
+
+ def eval(source)
+ context = Context.new
+ context.eval(source)
+ end
+
+ def compile(source)
+ Context.new(source)
+ end
+
+ def available?
+ require "v8"
+ true
+ rescue LoadError
+ false
+ end
+ end
+end
View
94 vendor/ruby/1.9.1/gems/execjs-1.2.0/lib/execjs/ruby_rhino_runtime.rb
@@ -0,0 +1,94 @@
+module ExecJS
+ class RubyRhinoRuntime
+ class Context
+ def initialize(source = "")
+ source = source.encode('UTF-8') if source.respond_to?(:encode)
+
+ @rhino_context = ::Rhino::Context.new
+ fix_memory_limit! @rhino_context
+ @rhino_context.eval(source)
+ end
+
+ def exec(source, options = {})
+ source = source.encode('UTF-8') if source.respond_to?(:encode)
+
+ if /\S/ =~ source
+ eval "(function(){#{source}})()", options
+ end
+ end
+
+ def eval(source, options = {})
+ source = source.encode('UTF-8') if source.respond_to?(:encode)
+
+ if /\S/ =~ source
+ unbox @rhino_context.eval("(#{source})")
+ end
+ rescue ::Rhino::JavascriptError => e
+ if e.message == "syntax error"
+ raise RuntimeError, e.message
+ else
+ raise ProgramError, e.message
+ end
+ end
+
+ def call(properties, *args)
+ unbox @rhino_context.eval(properties).call(*args)
+ rescue ::Rhino::JavascriptError => e
+ if e.message == "syntax error"
+ raise RuntimeError, e.message
+ else
+ raise ProgramError, e.message
+ end
+ end
+
+ def unbox(value)
+ case value
+ when ::Rhino::NativeFunction
+ nil
+ when ::Rhino::NativeObject
+ value.inject({}) do |vs, (k, v)|
+ vs[k] = unbox(v) unless v.is_a?(::Rhino::NativeFunction)
+ vs
+ end
+ else
+ value
+ end
+ end
+
+ private
+ # Disables bytecode compiling which limits you to 64K scripts
+ def fix_memory_limit!(context)
+ if context.respond_to?(:optimization_level=)
+ context.optimization_level = -1
+ else
+ context.instance_eval { @native.setOptimizationLevel(-1) }
+ end
+ end
+ end
+
+ def name
+ "therubyrhino (Rhino)"
+ end
+
+ def exec(source)
+ context = Context.new
+ context.exec(source)
+ end
+
+ def eval(source)
+ context = Context.new
+ context.eval(source)
+ end
+
+ def compile(source)
+ Context.new(source)
+ end
+
+ def available?
+ require "rhino"
+ true
+ rescue LoadError
+ false
+ end
+ end
+end
View
89 vendor/ruby/1.9.1/gems/execjs-1.2.0/lib/execjs/runtimes.rb
@@ -0,0 +1,89 @@
+require "execjs/module"
+require "execjs/external_runtime"
+require "execjs/johnson_runtime"
+require "execjs/mustang_runtime"
+require "execjs/ruby_racer_runtime"
+require "execjs/ruby_rhino_runtime"
+
+module ExecJS
+ module Runtimes
+ RubyRacer = RubyRacerRuntime.new
+
+ RubyRhino = RubyRhinoRuntime.new
+
+ Johnson = JohnsonRuntime.new
+
+ Mustang = MustangRuntime.new
+
+ Node = ExternalRuntime.new(
+ :name => "Node.js (V8)",
+ :command => ["nodejs", "node"],
+ :runner_path => ExecJS.root + "/support/node_runner.js"
+ )
+
+ JavaScriptCore = ExternalRuntime.new(
+ :name => "JavaScriptCore",
+ :command => "/System/Library/Frameworks/JavaScriptCore.framework/Versions/A/Resources/jsc",
+ :runner_path => ExecJS.root + "/support/basic_runner.js",
+ :conversion => { :from => "ISO8859-1", :to => "UTF-8" }
+ )
+
+ SpiderMonkey = Spidermonkey = ExternalRuntime.new(
+ :name => "SpiderMonkey",
+ :command => "js",
+ :runner_path => ExecJS.root + "/support/basic_runner.js"
+ )
+
+ JScript = ExternalRuntime.new(
+ :name => "JScript",
+ :command => "cscript //E:jscript //Nologo",
+ :runner_path => ExecJS.root + "/support/jscript_runner.js"
+ )
+
+
+ def self.autodetect
+ from_environment || best_available ||
+ raise(RuntimeUnavailable, "Could not find a JavaScript runtime. " +
+ "See https://github.com/sstephenson/execjs for a list of available runtimes.")
+ end
+
+ def self.best_available
+ runtimes.find(&:available?)
+ end
+
+ def self.from_environment
+ if name = ENV["EXECJS_RUNTIME"]
+ if runtime = const_get(name)
+ if runtime.available?
+ runtime if runtime.available?
+ else
+ raise RuntimeUnavailable, "#{runtime.name} runtime is not available on this system"
+ end
+ elsif !name.empty?
+ raise RuntimeUnavailable, "#{name} runtime is not defined"
+ end
+ end
+ end
+
+ def self.names
+ @names ||= constants.inject({}) { |h, name| h.merge(const_get(name) => name) }.values
+ end
+
+ def self.runtimes
+ @runtimes ||= [
+ RubyRacer,
+ RubyRhino,
+ Johnson,
+ Mustang,
+ Node,
+ JavaScriptCore,
+ SpiderMonkey,
+ JScript
+ ]
+ end
+ end
+
+ def self.runtimes
+ Runtimes.runtimes
+ end
+end
View
19 vendor/ruby/1.9.1/gems/execjs-1.2.0/lib/execjs/support/basic_runner.js
@@ -0,0 +1,19 @@
+(function(program, execJS) { execJS(program) })(function() { #{source}
+}, function(program) {
+ #{json2_source}
+ var output;
+ try {
+ result = program();
+ if (typeof result == 'undefined' && result !== null) {
+ print('["ok"]');
+ } else {
+ try {
+ print(JSON.stringify(['ok', result]));
+ } catch (err) {
+ print('["err"]');
+ }
+ }
+ } catch (err) {
+ print(JSON.stringify(['err', '' + err]));
+ }
+});
View
21 vendor/ruby/1.9.1/gems/execjs-1.2.0/lib/execjs/support/jscript_runner.js
@@ -0,0 +1,21 @@
+(function(program, execJS) { execJS(program) })(function() { #{source}
+}, function(program) {
+ #{json2_source}
+ var output, print = function(string) {
+ WScript.Echo(string);
+ };
+ try {
+ result = program();
+ if (typeof result == 'undefined' && result !== null) {
+ print('["ok"]');
+ } else {
+ try {
+ print(JSON.stringify(['ok', result]));
+ } catch (err) {
+ print('["err"]');
+ }
+ }
+ } catch (err) {
+ print(JSON.stringify(['err', err.name + ': ' + err.message]));
+ }
+});
View
481 vendor/ruby/1.9.1/gems/execjs-1.2.0/lib/execjs/support/json2.js
@@ -0,0 +1,481 @@
+/*
+ http://www.JSON.org/json2.js
+ 2011-01-18
+
+ Public Domain.
+
+ NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.
+
+ See http://www.JSON.org/js.html
+
+
+ This code should be minified before deployment.
+ See http://javascript.crockford.com/jsmin.html
+
+ USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO
+ NOT CONTROL.
+
+
+ This file creates a global JSON object containing two methods: stringify
+ and parse.
+
+ JSON.stringify(value, replacer, space)
+ value any JavaScript value, usually an object or array.
+
+ replacer an optional parameter that determines how object
+ values are stringified for objects. It can be a
+ function or an array of strings.
+
+ space an optional parameter that specifies the indentation
+ of nested structures. If it is omitted, the text will
+ be packed without extra whitespace. If it is a number,
+ it will specify the number of spaces to indent at each
+ level. If it is a string (such as '\t' or '&nbsp;'),
+ it contains the characters used to indent at each level.
+
+ This method produces a JSON text from a JavaScript value.
+
+ When an object value is found, if the object contains a toJSON
+ method, its toJSON method will be called and the result will be
+ stringified. A toJSON method does not serialize: it returns the
+ value represented by the name/value pair that should be serialized,
+ or undefined if nothing should be serialized. The toJSON method
+ will be passed the key associated with the value, and this will be
+ bound to the value
+
+ For example, this would serialize Dates as ISO strings.
+
+ Date.prototype.toJSON = function (key) {
+ function f(n) {
+ // Format integers to have at least two digits.
+ return n < 10 ? '0' + n : n;
+ }
+
+ return this.getUTCFullYear() + '-' +
+ f(this.getUTCMonth() + 1) + '-' +
+ f(this.getUTCDate()) + 'T' +
+ f(this.getUTCHours()) + ':' +
+ f(this.getUTCMinutes()) + ':' +
+ f(this.getUTCSeconds()) + 'Z';
+ };
+
+ You can provide an optional replacer method. It will be passed the
+ key and value of each member, with this bound to the containing
+ object. The value that is returned from your method will be
+ serialized. If your method returns undefined, then the member will
+ be excluded from the serialization.
+
+ If the replacer parameter is an array of strings, then it will be
+ used to select the members to be serialized. It filters the results
+ such that only members with keys listed in the replacer array are
+ stringified.
+
+ Values that do not have JSON representations, such as undefined or
+ functions, will not be serialized. Such values in objects will be
+ dropped; in arrays they will be replaced with null. You can use
+ a replacer function to replace those with JSON values.
+ JSON.stringify(undefined) returns undefined.
+
+ The optional space parameter produces a stringification of the
+ value that is filled with line breaks and indentation to make it
+ easier to read.
+
+ If the space parameter is a non-empty string, then that string will
+ be used for indentation. If the space parameter is a number, then
+ the indentation will be that many spaces.
+
+ Example:
+
+ text = JSON.stringify(['e', {pluribus: 'unum'}]);
+ // text is '["e",{"pluribus":"unum"}]'
+
+
+ text = JSON.stringify(['e', {pluribus: 'unum'}], null, '\t');
+ // text is '[\n\t"e",\n\t{\n\t\t"pluribus": "unum"\n\t}\n]'
+
+ text = JSON.stringify([new Date()], function (key, value) {
+ return this[key] instanceof Date ?
+ 'Date(' + this[key] + ')' : value;
+ });
+ // text is '["Date(---current time---)"]'
+
+
+ JSON.parse(text, reviver)
+ This method parses a JSON text to produce an object or array.
+ It can throw a SyntaxError exception.
+
+ The optional reviver parameter is a function that can filter and
+ transform the results. It receives each of the keys and values,
+ and its return value is used instead of the original value.
+ If it returns what it received, then the structure is not modified.
+ If it returns undefined then the member is deleted.
+
+ Example:
+
+ // Parse the text. Values that look like ISO date strings will
+ // be converted to Date objects.
+
+ myData = JSON.parse(text, function (key, value) {
+ var a;
+ if (typeof value === 'string') {
+ a =
+/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/.exec(value);
+ if (a) {
+ return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4],
+ +a[5], +a[6]));
+ }
+ }
+ return value;
+ });
+
+ myData = JSON.parse('["Date(09/09/2001)"]', function (key, value) {
+ var d;
+ if (typeof value === 'string' &&
+ value.slice(0, 5) === 'Date(' &&
+ value.slice(-1) === ')') {
+ d = new Date(value.slice(5, -1));
+ if (d) {
+ return d;
+ }
+ }
+ return value;
+ });
+
+
+ This is a reference implementation. You are free to copy, modify, or
+ redistribute.
+*/
+
+/*jslint evil: true, strict: false, regexp: false */
+
+/*members "", "\b", "\t", "\n", "\f", "\r", "\"", JSON, "\\", apply,
+ call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours,
+ getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join,
+ lastIndex, length, parse, prototype, push, replace, slice, stringify,
+ test, toJSON, toString, valueOf
+*/
+
+
+// Create a JSON object only if one does not already exist. We create the
+// methods in a closure to avoid creating global variables.
+
+(function (global) {
+ if (!global.JSON) {
+ global.JSON = {};
+ }
+
+ var JSON = global.JSON;
+
+ "use strict";
+
+ function f(n) {
+ // Format integers to have at least two digits.
+ return n < 10 ? '0' + n : n;
+ }
+
+ if (typeof Date.prototype.toJSON !== 'function') {
+
+ Date.prototype.toJSON = function (key) {
+
+ return isFinite(this.valueOf()) ?
+ this.getUTCFullYear() + '-' +
+ f(this.getUTCMonth() + 1) + '-' +
+ f(this.getUTCDate()) + 'T' +
+ f(this.getUTCHours()) + ':' +
+ f(this.getUTCMinutes()) + ':' +
+ f(this.getUTCSeconds()) + 'Z' : null;
+ };
+
+ String.prototype.toJSON =
+ Number.prototype.toJSON =
+ Boolean.prototype.toJSON = function (key) {
+ return this.valueOf();
+ };
+ }
+
+ var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
+ escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
+ gap,
+ indent,
+ meta = { // table of character substitutions
+ '\b': '\\b',
+ '\t': '\\t',
+ '\n': '\\n',
+ '\f': '\\f',
+ '\r': '\\r',
+ '"' : '\\"',
+ '\\': '\\\\'
+ },
+ rep;
+
+
+ function quote(string) {
+
+// If the string contains no control characters, no quote characters, and no
+// backslash characters, then we can safely slap some quotes around it.
+// Otherwise we must also replace the offending characters with safe escape
+// sequences.
+
+ escapable.lastIndex = 0;
+ return escapable.test(string) ? '"' + string.replace(escapable, function (a) {
+ var c = meta[a];
+ return typeof c === 'string' ? c :
+ '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
+ }) + '"' : '"' + string + '"';
+ }
+
+
+ function str(key, holder) {
+
+// Produce a string from holder[key].
+
+ var i, // The loop counter.
+ k, // The member key.
+ v, // The member value.
+ length,
+ mind = gap,
+ partial,
+ value = holder[key];
+
+// If the value has a toJSON method, call it to obtain a replacement value.
+
+ if (value && typeof value === 'object' &&
+ typeof value.toJSON === 'function') {
+ value = value.toJSON(key);
+ }
+
+// If we were called with a replacer function, then call the replacer to
+// obtain a replacement value.
+
+ if (typeof rep === 'function') {
+ value = rep.call(holder, key, value);
+ }
+
+// What happens next depends on the value's type.
+
+ switch (typeof value) {
+ case 'string':
+ return quote(value);
+
+ case 'number':
+
+// JSON numbers must be finite. Encode non-finite numbers as null.
+
+ return isFinite(value) ? String(value) : 'null';
+
+ case 'boolean':
+ case 'null':
+
+// If the value is a boolean or null, convert it to a string. Note:
+// typeof null does not produce 'null'. The case is included here in
+// the remote chance that this gets fixed someday.
+
+ return String(value);
+
+// If the type is 'object', we might be dealing with an object or an array or
+// null.
+
+ case 'object':
+
+// Due to a specification blunder in ECMAScript, typeof null is 'object',
+// so watch out for that case.
+
+ if (!value) {
+ return 'null';
+ }
+
+// Make an array to hold the partial results of stringifying this object value.
+
+ gap += indent;
+ partial = [];
+
+// Is the value an array?
+
+ if (Object.prototype.toString.apply(value) === '[object Array]') {
+
+// The value is an array. Stringify every element. Use null as a placeholder
+// for non-JSON values.
+
+ length = value.length;
+ for (i = 0; i < length; i += 1) {
+ partial[i] = str(i, value) || 'null';
+ }
+
+// Join all of the elements together, separated with commas, and wrap them in
+// brackets.
+
+ v = partial.length === 0 ? '[]' : gap ?
+ '[\n' + gap + partial.join(',\n' + gap) + '\n' + mind + ']' :
+ '[' + partial.join(',') + ']';
+ gap = mind;
+ return v;
+ }
+
+// If the replacer is an array, use it to select the members to be stringified.
+
+ if (rep && typeof rep === 'object') {
+ length = rep.length;
+ for (i = 0; i < length; i += 1) {
+ k = rep[i];
+ if (typeof k === 'string') {
+ v = str(k, value);
+ if (v) {
+ partial.push(quote(k) + (gap ? ': ' : ':') + v);
+ }
+ }
+ }
+ } else {
+
+// Otherwise, iterate through all of the keys in the object.
+
+ for (k in value) {
+ if (Object.hasOwnProperty.call(value, k)) {
+ v = str(k, value);
+ if (v) {
+ partial.push(quote(k) + (gap ? ': ' : ':') + v);
+ }
+ }
+ }
+ }
+
+// Join all of the member texts together, separated with commas,
+// and wrap them in braces.
+
+ v = partial.