opal 0.2.2 → 0.3.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 (325) hide show
  1. data/.gitignore +5 -10
  2. data/LICENSE +75 -0
  3. data/README.md +55 -3
  4. data/Rakefile +62 -139
  5. data/bin/opal +7 -10
  6. data/gems/core/README.md +5 -0
  7. data/gems/core/Rakefile +7 -0
  8. data/gems/core/core.gemspec +13 -0
  9. data/gems/core/lib/core.rb +33 -0
  10. data/gems/core/lib/core/array.rb +1470 -0
  11. data/gems/core/lib/core/basic_object.rb +15 -0
  12. data/gems/core/lib/core/class.rb +31 -0
  13. data/gems/core/lib/core/dir.rb +26 -0
  14. data/gems/core/lib/core/error.rb +43 -0
  15. data/gems/core/lib/core/false_class.rb +21 -0
  16. data/gems/core/lib/core/file.rb +54 -0
  17. data/gems/core/lib/core/hash.rb +725 -0
  18. data/gems/core/lib/core/kernel.rb +240 -0
  19. data/gems/core/lib/core/module.rb +98 -0
  20. data/gems/core/lib/core/nil_class.rb +41 -0
  21. data/gems/core/lib/core/numeric.rb +370 -0
  22. data/gems/core/lib/core/proc.rb +11 -0
  23. data/gems/core/lib/core/range.rb +17 -0
  24. data/gems/core/lib/core/regexp.rb +18 -0
  25. data/gems/core/lib/core/string.rb +328 -0
  26. data/gems/core/lib/core/symbol.rb +15 -0
  27. data/gems/core/lib/core/top_self.rb +8 -0
  28. data/gems/core/lib/core/true_class.rb +20 -0
  29. data/gems/core/lib/core/vm.rb +16 -0
  30. data/{opals/opal/opal → gems/core}/spec/core/array/append_spec.rb +0 -0
  31. data/{opals/opal/opal → gems/core}/spec/core/array/assoc_spec.rb +0 -0
  32. data/{opals/opal/opal → gems/core}/spec/core/array/at_spec.rb +0 -0
  33. data/{opals/opal/opal → gems/core}/spec/core/array/clear_spec.rb +1 -1
  34. data/{opals/opal/opal → gems/core}/spec/core/array/collect_bang_spec.rb +0 -0
  35. data/{opals/opal/opal → gems/core}/spec/core/array/collect_spec.rb +0 -0
  36. data/gems/core/spec/core/array/compact_spec.rb +41 -0
  37. data/{opals/opal/opal → gems/core}/spec/core/array/concat_spec.rb +0 -0
  38. data/{opals/opal/opal → gems/core}/spec/core/array/constructor_spec.rb +0 -0
  39. data/{opals/opal/opal → gems/core}/spec/core/array/each_spec.rb +0 -0
  40. data/{opals/opal/opal → gems/core}/spec/core/array/element_reference_spec.rb +0 -0
  41. data/{opals/opal/opal → gems/core}/spec/core/array/first_spec.rb +1 -1
  42. data/{opals/opal/opal → gems/core}/spec/core/array/include_spec.rb +0 -0
  43. data/gems/core/spec/core/array/join_spec.rb +6 -0
  44. data/gems/core/spec/core/array/last_spec.rb +51 -0
  45. data/gems/core/spec/core/array/length_spec.rb +6 -0
  46. data/{opals/opal/opal → gems/core}/spec/core/array/map_spec.rb +2 -0
  47. data/gems/core/spec/core/array/reverse_spec.rb +6 -0
  48. data/{opals/opal/opal → gems/core}/spec/core/builtin_constants/builtin_constants_spec.rb +0 -0
  49. data/{opals/opal/opal → gems/core}/spec/core/false/and_spec.rb +0 -0
  50. data/{opals/opal/opal → gems/core}/spec/core/false/inspect_spec.rb +0 -0
  51. data/{opals/opal/opal → gems/core}/spec/core/false/or_spec.rb +0 -0
  52. data/{opals/opal/opal → gems/core}/spec/core/false/to_s_spec.rb +0 -0
  53. data/{opals/opal/opal → gems/core}/spec/core/false/xor_spec.rb +0 -0
  54. data/{opals/opal/opal → gems/core}/spec/core/file/join_spec.rb +1 -1
  55. data/gems/core/spec/core/hash/assoc_spec.rb +32 -0
  56. data/{opals/opal/opal → gems/core}/spec/core/kernel/instance_eval_spec.rb +0 -0
  57. data/{opals/opal/opal → gems/core}/spec/core/kernel/loop_spec.rb +0 -0
  58. data/{opals/opal/opal → gems/core}/spec/core/kernel/raise_spec.rb +0 -0
  59. data/{opals/opal/opal → gems/core}/spec/core/module/attr_accessor_spec.rb +0 -0
  60. data/{opals/opal/opal → gems/core}/spec/core/number/lt_spec.rb +0 -0
  61. data/gems/core/spec/core/string/sub_spec.rb +24 -0
  62. data/{opals/opal/opal → gems/core}/spec/core/true/and_spec.rb +0 -0
  63. data/{opals/opal/opal → gems/core}/spec/core/true/inspect_spec.rb +0 -0
  64. data/{opals/opal/opal → gems/core}/spec/core/true/or_spec.rb +0 -0
  65. data/{opals/opal/opal → gems/core}/spec/core/true/to_s_spec.rb +0 -0
  66. data/{opals/opal/opal → gems/core}/spec/core/true/xor_spec.rb +0 -0
  67. data/{opals/opal/opal → gems/core}/spec/language/and_spec.rb +2 -3
  68. data/{opals/opal/opal → gems/core}/spec/language/array_spec.rb +21 -5
  69. data/gems/core/spec/language/block_spec.rb +38 -0
  70. data/{opals/opal/opal → gems/core}/spec/language/break_spec.rb +0 -0
  71. data/gems/core/spec/language/case_spec.rb +103 -0
  72. data/{opals/opal/opal → gems/core}/spec/language/def_spec.rb +11 -1
  73. data/{opals/opal/opal → gems/core}/spec/language/eigenclass_spec.rb +0 -0
  74. data/gems/core/spec/language/file_spec.rb +13 -0
  75. data/gems/core/spec/language/fixtures/block.rb +21 -0
  76. data/gems/core/spec/language/fixtures/super.rb +293 -0
  77. data/{opals/opal/opal → gems/core}/spec/language/hash_spec.rb +0 -0
  78. data/{opals/opal/opal → gems/core}/spec/language/if_spec.rb +0 -0
  79. data/{opals/opal/opal → gems/core}/spec/language/loop_spec.rb +0 -0
  80. data/gems/core/spec/language/metaclass_spec.rb +21 -0
  81. data/{opals/opal/opal → gems/core}/spec/language/method_spec.rb +60 -0
  82. data/{opals/opal/opal → gems/core}/spec/language/next_spec.rb +0 -0
  83. data/{opals/opal/opal → gems/core}/spec/language/or_spec.rb +0 -0
  84. data/{opals/opal/opal → gems/core}/spec/language/redo_spec.rb +0 -0
  85. data/gems/core/spec/language/regexp_spec.rb +26 -0
  86. data/{opals/opal/opal → gems/core}/spec/language/rescue_spec.rb +0 -0
  87. data/{opals/opal/opal → gems/core}/spec/language/return_spec.rb +0 -0
  88. data/{opals/opal/opal → gems/core}/spec/language/string_spec.rb +0 -0
  89. data/gems/core/spec/language/super_spec.rb +32 -0
  90. data/{opals/opal/opal → gems/core}/spec/language/until_spec.rb +47 -47
  91. data/gems/core/spec/language/variables_spec.rb +155 -0
  92. data/{opals/opal/opal → gems/core}/spec/language/while_spec.rb +47 -47
  93. data/{opals/opal/opal → gems/core}/spec/spec_helper.rb +1 -1
  94. data/gems/core_fs/README.md +19 -0
  95. data/gems/dev/Rakefile +5 -0
  96. data/gems/dev/lib/dev.js +99 -0
  97. data/gems/dev/lib/dev/generator.js +1264 -0
  98. data/gems/dev/lib/dev/parser.js +979 -0
  99. data/gems/dev/lib/dev/ruby_parser.js +1088 -0
  100. data/gems/dev/lib/dev/ruby_parser.y +1267 -0
  101. data/gems/dev/lib/dev/string_scanner.js +38 -0
  102. data/gems/dev/tools/racc2js/README.md +39 -0
  103. data/gems/dev/tools/racc2js/math_parser.js +222 -0
  104. data/gems/dev/tools/racc2js/math_parser.rb +133 -0
  105. data/gems/dev/tools/racc2js/math_parser.y +28 -0
  106. data/gems/dev/tools/racc2js/parser.js +218 -0
  107. data/gems/dev/tools/racc2js/racc2js.rb +153 -0
  108. data/gems/json/README.md +4 -0
  109. data/gems/json/json.gemspec +14 -0
  110. data/gems/json/lib/json.rb +64 -0
  111. data/gems/json/lib/json/ext.rb +51 -0
  112. data/{opals/opal/browser/lib/browser/json_parse.js → gems/json/lib/json/json2.js} +197 -37
  113. data/gems/ospec/README.md +0 -0
  114. data/gems/ospec/lib/ospec.rb +6 -0
  115. data/gems/ospec/lib/ospec/autorun.rb +3 -0
  116. data/gems/ospec/lib/ospec/dsl.rb +15 -0
  117. data/gems/ospec/lib/ospec/example.rb +11 -0
  118. data/gems/ospec/lib/ospec/example/before_and_after_hooks.rb +56 -0
  119. data/gems/ospec/lib/ospec/example/errors.rb +17 -0
  120. data/gems/ospec/lib/ospec/example/example_group.rb +12 -0
  121. data/gems/ospec/lib/ospec/example/example_group_factory.rb +21 -0
  122. data/gems/ospec/lib/ospec/example/example_group_hierarchy.rb +20 -0
  123. data/{opals/opal/spec/lib/spec → gems/ospec/lib/ospec}/example/example_group_methods.rb +26 -68
  124. data/gems/ospec/lib/ospec/example/example_group_proxy.rb +14 -0
  125. data/gems/ospec/lib/ospec/example/example_methods.rb +46 -0
  126. data/gems/ospec/lib/ospec/example/example_proxy.rb +18 -0
  127. data/gems/ospec/lib/ospec/expectations.rb +19 -0
  128. data/gems/ospec/lib/ospec/expectations/errors.rb +8 -0
  129. data/gems/ospec/lib/ospec/expectations/fail_with.rb +8 -0
  130. data/gems/ospec/lib/ospec/expectations/handler.rb +27 -0
  131. data/gems/ospec/lib/ospec/matchers.rb +24 -0
  132. data/{opals/opal/Rakefile → gems/ospec/lib/ospec/matchers/be.rb} +0 -0
  133. data/gems/ospec/lib/ospec/matchers/generated_descriptions.rb +20 -0
  134. data/gems/ospec/lib/ospec/matchers/operator_matcher.rb +52 -0
  135. data/gems/ospec/lib/ospec/runner.rb +40 -0
  136. data/gems/ospec/lib/ospec/runner/example_group_runner.rb +44 -0
  137. data/{opals/opal/spec/lib/spec → gems/ospec/lib/ospec}/runner/formatter/html_formatter.rb +31 -40
  138. data/gems/ospec/lib/ospec/runner/formatter/terminal_formatter.rb +48 -0
  139. data/gems/ospec/lib/ospec/runner/options.rb +36 -0
  140. data/{opals/opal/spec/lib/spec → gems/ospec/lib/ospec}/runner/reporter.rb +23 -55
  141. data/gems/ospec/ospec.gemspec +0 -0
  142. data/gems/rquery/README.md +9 -0
  143. data/gems/rquery/lib/rquery.rb +10 -0
  144. data/gems/rquery/lib/rquery/ajax.rb +4 -0
  145. data/gems/rquery/lib/rquery/css.rb +96 -0
  146. data/gems/rquery/lib/rquery/document.rb +25 -0
  147. data/gems/rquery/lib/rquery/element.rb +292 -0
  148. data/gems/rquery/lib/rquery/event.rb +108 -0
  149. data/gems/rquery/lib/rquery/jquery.js +8177 -0
  150. data/gems/rquery/lib/rquery/request.rb +138 -0
  151. data/gems/rquery/lib/rquery/response.rb +49 -0
  152. data/gems/rquery/rquery.gemspec +16 -0
  153. data/lib/opal.js +1597 -0
  154. data/lib/opal.rb +6 -69
  155. data/lib/opal/builder.rb +115 -0
  156. data/lib/opal/bundle.rb +131 -0
  157. data/lib/opal/command.rb +11 -0
  158. data/lib/opal/context.rb +69 -0
  159. data/lib/opal/context/console.rb +12 -0
  160. data/lib/opal/context/file_system.rb +19 -0
  161. data/lib/opal/context/loader.rb +117 -0
  162. data/lib/opal/gem.rb +153 -0
  163. data/lib/opal/ruby/nodes.rb +1302 -0
  164. data/lib/opal/ruby/parser.rb +780 -0
  165. data/lib/opal/ruby/ruby_parser.rb +5170 -0
  166. data/lib/opal/ruby/ruby_parser.y +1298 -0
  167. data/opal.gemspec +11 -256
  168. metadata +179 -240
  169. data/.gitmodules +0 -6
  170. data/Opalfile +0 -384
  171. data/VERSION +0 -1
  172. data/demos/apps/browser_demo/index.html +0 -11
  173. data/demos/apps/browser_demo/lib/browser_demo.rb +0 -31
  174. data/demos/apps/simple_opal/Opalfile +0 -13
  175. data/demos/apps/simple_opal/index.html +0 -11
  176. data/demos/apps/simple_opal/lib/app_controller.rb +0 -62
  177. data/demos/apps/simple_opal/lib/main_window.rb +0 -146
  178. data/demos/browser/request/index.html +0 -52
  179. data/demos/browser/request/request.rb +0 -48
  180. data/gen/browser/__PROJECT_NAME__/Rakefile +0 -12
  181. data/gen/browser/__PROJECT_NAME__/index.html +0 -11
  182. data/gen/browser/__PROJECT_NAME__/javascripts/opal.debug.js +0 -4687
  183. data/gen/browser/__PROJECT_NAME__/javascripts/opal.min.js +0 -175
  184. data/gen/browser/__PROJECT_NAME__/lib/__PROJECT_NAME__.rb +0 -1
  185. data/lib/opal/builders/base.rb +0 -50
  186. data/lib/opal/builders/css.rb +0 -46
  187. data/lib/opal/builders/javascript.rb +0 -44
  188. data/lib/opal/builders/opal.rb +0 -79
  189. data/lib/opal/builders/ruby.rb +0 -50
  190. data/lib/opal/builders/ruby/generate.rb +0 -1851
  191. data/lib/opal/builders/ruby/nodes.rb +0 -210
  192. data/lib/opal/builders/ruby/ruby.rb +0 -916
  193. data/lib/opal/builders/ruby/ruby_parser.rb +0 -6008
  194. data/lib/opal/builders/ruby/ruby_parser.rb.y +0 -1451
  195. data/lib/opal/models/build_item.rb +0 -104
  196. data/lib/opal/models/hash_struct.rb +0 -40
  197. data/lib/opal/models/project.rb +0 -252
  198. data/lib/opal/models/struct_accessors.rb +0 -58
  199. data/lib/opal/models/target.rb +0 -176
  200. data/lib/opal/opal/build.rb +0 -169
  201. data/lib/opal/opal/env/console.rb +0 -66
  202. data/lib/opal/opal/env/fs.rb +0 -98
  203. data/lib/opal/opal/env/object.rb +0 -48
  204. data/lib/opal/opal/environment.rb +0 -139
  205. data/lib/opal/opal/gen.rb +0 -62
  206. data/lib/opal/opal/opal.rb +0 -75
  207. data/lib/opal/opal/repl.rb +0 -38
  208. data/lib/opal/opalfile/dsl.rb +0 -62
  209. data/lib/opal/opalfile/opalfile.rb +0 -133
  210. data/lib/opal/opalfile/task.rb +0 -96
  211. data/lib/opal/opalfile/task_manager.rb +0 -63
  212. data/lib/opal/opalfile/task_scope.rb +0 -52
  213. data/lib/opal/rack/app_server.rb +0 -119
  214. data/lib/opal/rake/opal_task.rb +0 -34
  215. data/opals/opal/README.md +0 -37
  216. data/opals/opal/browser/Opalfile +0 -11
  217. data/opals/opal/browser/README.md +0 -146
  218. data/opals/opal/browser/SIZZLE_LICESNSE.txt +0 -148
  219. data/opals/opal/browser/lib/browser.rb +0 -118
  220. data/opals/opal/browser/lib/browser/builder.rb +0 -41
  221. data/opals/opal/browser/lib/browser/canvas_context.rb +0 -115
  222. data/opals/opal/browser/lib/browser/dimensions.rb +0 -50
  223. data/opals/opal/browser/lib/browser/document.rb +0 -146
  224. data/opals/opal/browser/lib/browser/element.rb +0 -487
  225. data/opals/opal/browser/lib/browser/element/attributes.rb +0 -88
  226. data/opals/opal/browser/lib/browser/element/css.rb +0 -290
  227. data/opals/opal/browser/lib/browser/element/form.rb +0 -146
  228. data/opals/opal/browser/lib/browser/event/dom_events.rb +0 -81
  229. data/opals/opal/browser/lib/browser/event/event.rb +0 -177
  230. data/opals/opal/browser/lib/browser/event/trigger_events.rb +0 -53
  231. data/opals/opal/browser/lib/browser/geometry.rb +0 -97
  232. data/opals/opal/browser/lib/browser/json.rb +0 -32
  233. data/opals/opal/browser/lib/browser/request/request.rb +0 -201
  234. data/opals/opal/browser/lib/browser/sizzle.js +0 -1068
  235. data/opals/opal/browser/lib/browser/string.rb +0 -42
  236. data/opals/opal/browser/lib/browser/touch.rb +0 -37
  237. data/opals/opal/browser/lib/browser/vml_context.js +0 -33
  238. data/opals/opal/browser/lib/browser/window.rb +0 -36
  239. data/opals/opal/browser/spec/browser/browser_detection_spec.rb +0 -7
  240. data/opals/opal/browser/spec/document/aref_spec.rb +0 -110
  241. data/opals/opal/browser/spec/document/ready_spec.rb +0 -16
  242. data/opals/opal/browser/spec/element/body_spec.rb +0 -11
  243. data/opals/opal/browser/spec/element/clear_spec.rb +0 -26
  244. data/opals/opal/browser/spec/element/empty_spec.rb +0 -29
  245. data/opals/opal/browser/spec/element/has_class_spec.rb +0 -40
  246. data/opals/opal/browser/spec/element/hidden_spec.rb +0 -23
  247. data/opals/opal/browser/spec/element/hide_spec.rb +0 -31
  248. data/opals/opal/browser/spec/element/remove_spec.rb +0 -25
  249. data/opals/opal/browser/spec/element/show_spec.rb +0 -31
  250. data/opals/opal/browser/spec/element/style_spec.rb +0 -69
  251. data/opals/opal/browser/spec/element/toggle_spec.rb +0 -31
  252. data/opals/opal/browser/spec/element/visible_spec.rb +0 -23
  253. data/opals/opal/browser/spec/spec_helper.rb +0 -1
  254. data/opals/opal/opal/Opalfile +0 -14
  255. data/opals/opal/opal/spec/core/array/compact_spec.rb +0 -15
  256. data/opals/opal/opal/spec/fixtures/super.rb +0 -70
  257. data/opals/opal/opal/spec/language/____temp_remove_this.rb +0 -12
  258. data/opals/opal/opal/spec/language/block_spec.rb +0 -18
  259. data/opals/opal/opal/spec/language/case_spec.rb +0 -103
  260. data/opals/opal/opal/spec/language/metaclass_spec.rb +0 -21
  261. data/opals/opal/opal/spec/language/super_spec.rb +0 -26
  262. data/opals/opal/runtime/Opalfile +0 -78
  263. data/opals/opal/runtime/README.md +0 -12
  264. data/opals/opal/runtime/docs/debugging.md +0 -51
  265. data/opals/opal/runtime/lib/array.rb +0 -1516
  266. data/opals/opal/runtime/lib/basic_object.rb +0 -49
  267. data/opals/opal/runtime/lib/class.rb +0 -54
  268. data/opals/opal/runtime/lib/dir.rb +0 -36
  269. data/opals/opal/runtime/lib/error.rb +0 -49
  270. data/opals/opal/runtime/lib/false_class.rb +0 -52
  271. data/opals/opal/runtime/lib/file.rb +0 -79
  272. data/opals/opal/runtime/lib/hash.rb +0 -791
  273. data/opals/opal/runtime/lib/io.rb +0 -39
  274. data/opals/opal/runtime/lib/kernel.rb +0 -288
  275. data/opals/opal/runtime/lib/match_data.rb +0 -36
  276. data/opals/opal/runtime/lib/module.rb +0 -109
  277. data/opals/opal/runtime/lib/nil_class.rb +0 -69
  278. data/opals/opal/runtime/lib/number.rb +0 -398
  279. data/opals/opal/runtime/lib/proc.rb +0 -77
  280. data/opals/opal/runtime/lib/range.rb +0 -63
  281. data/opals/opal/runtime/lib/regexp.rb +0 -111
  282. data/opals/opal/runtime/lib/ruby.rb +0 -30
  283. data/opals/opal/runtime/lib/string.rb +0 -328
  284. data/opals/opal/runtime/lib/symbol.rb +0 -40
  285. data/opals/opal/runtime/lib/top_self.rb +0 -33
  286. data/opals/opal/runtime/lib/true_class.rb +0 -45
  287. data/opals/opal/runtime/runtime/browser.js +0 -287
  288. data/opals/opal/runtime/runtime/debug.js +0 -180
  289. data/opals/opal/runtime/runtime/opal.js +0 -1008
  290. data/opals/opal/runtime/runtime/post_opal.js +0 -1
  291. data/opals/opal/runtime/runtime/pre_opal.js +0 -2
  292. data/opals/opal/runtime/runtime/server_side.js +0 -50
  293. data/opals/opal/spec/LICENSE.txt +0 -26
  294. data/opals/opal/spec/Opalfile +0 -5
  295. data/opals/opal/spec/bin/spec.rb +0 -43
  296. data/opals/opal/spec/lib/spec.rb +0 -33
  297. data/opals/opal/spec/lib/spec/dsl.rb +0 -41
  298. data/opals/opal/spec/lib/spec/example.rb +0 -35
  299. data/opals/opal/spec/lib/spec/example/before_and_after_hooks.rb +0 -81
  300. data/opals/opal/spec/lib/spec/example/errors.rb +0 -42
  301. data/opals/opal/spec/lib/spec/example/example_group.rb +0 -37
  302. data/opals/opal/spec/lib/spec/example/example_group_factory.rb +0 -43
  303. data/opals/opal/spec/lib/spec/example/example_group_hierarchy.rb +0 -45
  304. data/opals/opal/spec/lib/spec/example/example_group_proxy.rb +0 -41
  305. data/opals/opal/spec/lib/spec/example/example_methods.rb +0 -73
  306. data/opals/opal/spec/lib/spec/example/example_proxy.rb +0 -48
  307. data/opals/opal/spec/lib/spec/expectations.rb +0 -46
  308. data/opals/opal/spec/lib/spec/expectations/errors.rb +0 -35
  309. data/opals/opal/spec/lib/spec/expectations/fail_with.rb +0 -37
  310. data/opals/opal/spec/lib/spec/expectations/handler.rb +0 -48
  311. data/opals/opal/spec/lib/spec/matchers.rb +0 -50
  312. data/opals/opal/spec/lib/spec/matchers/be.rb +0 -26
  313. data/opals/opal/spec/lib/spec/matchers/generated_descriptions.rb +0 -47
  314. data/opals/opal/spec/lib/spec/matchers/operator_matcher.rb +0 -66
  315. data/opals/opal/spec/lib/spec/runner.rb +0 -48
  316. data/opals/opal/spec/lib/spec/runner/example_group_runner.rb +0 -71
  317. data/opals/opal/spec/lib/spec/runner/formatter/terminal_formatter.rb +0 -82
  318. data/opals/opal/spec/lib/spec/runner/options.rb +0 -63
  319. data/opals/opal/spec/resources/index.html +0 -25
  320. data/opals/opal/spec/resources/spec.css +0 -132
  321. data/spec/cherry_kit/iseq_spec.rb +0 -38
  322. data/spec/spec_helper.rb +0 -16
  323. data/spec/vienna_spec.rb +0 -7
  324. data/yard/index.html +0 -43
  325. data/yard/style.css +0 -765
@@ -1,6 +0,0 @@
1
- [submodule "opals/opal"]
2
- path = opals/opal
3
- url = git://github.com/adambeynon/opal.git
4
- [submodule "opals/cherry_kit"]
5
- path = opals/cherry_kit
6
- url = git://github.com/adambeynon/cherry_kit.git
data/Opalfile DELETED
@@ -1,384 +0,0 @@
1
- mode :all do
2
-
3
- config :all,
4
- :build_prefix => 'tmp/build',
5
- :staging_prefix => 'tmp/staging',
6
- :tmp_root => 'tmp',
7
-
8
- # where our libs are kept - i.e. what should be a valid build item
9
- :lib_directories => ['lib'],
10
-
11
-
12
- # which sub directory do our javascripts go into
13
- :javascripts_prefix => 'javascripts',
14
-
15
- # which sub dir do our built stylesheets go into
16
- :stylesheets_prefix => 'stylesheets',
17
-
18
- # final name for our js built file (:project_name for name of project,
19
- # other wise to_s is called on it)
20
- :javascript_name => :project_name,
21
-
22
- # same as above
23
- :stylehseet_name => :project_name,
24
-
25
- # default bin file to run.. if none given, then it defaults to :project_name
26
- # which is replaced by the actual project name. This will then mean either
27
- # a bin file of the given name, or lib/project_name will be loaded
28
- :bin_file => :project_name,
29
-
30
- # by default do NOT build stylesheets.. only cherrykit/spec wants this, so
31
- # for browsers etc, do not do this.
32
- :build_stylesheets => false,
33
-
34
- # should we copy the html files (if found?)
35
- :copy_html => false
36
- end
37
-
38
- mode :debug do
39
- config :all,
40
-
41
- :build_prefix => '',
42
- :staging_prefix => 'tmp/debug/staging'
43
-
44
- end
45
-
46
- mode :release do
47
- config :all,
48
-
49
- :build_prefix => '',
50
- :staging_prefix => 'tmp/release/staging'
51
-
52
- end
53
-
54
- mode :spec do
55
- config :all,
56
-
57
- :build_prefix => 'tmp/built_specs',
58
- :staging_prefix => 'tmp/spec/staging'
59
-
60
- end
61
-
62
- # This is the root opalfile. It is used as the basis for every target. These can
63
- # all be overridden by each opalfile, and so provide "defaults".
64
-
65
- # Building targets - each opal (app, framework, theme etc) are a single target
66
- namespace :target do
67
-
68
- desc "Preparing the target"
69
- task :prepare do
70
- # set the build root
71
- @target.build_root = File.join(@project.build_root, @config.staging_prefix, 'opals', @target.target_name)
72
- # set the staging root
73
- @target.staging_root = File.join(@project.build_root, @config.staging_prefix, @target.target_name)
74
- end
75
-
76
- desc "Building the target"
77
- task :build => [:catalog, :hide_non_build_files, :'prepare_build_tasks:all']
78
-
79
- desc "catalog"
80
- task :catalog do
81
- target_root = @target.target_root
82
- Dir[File.join(target_root, '**', '*')].each do |source|
83
- next if !File.exist?(source) || File.directory?(source)
84
- # should check if its another target
85
-
86
- relative_path = source.sub(/^#{Regexp.escape target_root}\//, "")
87
- relative_path = relative_path.split(::File::SEPARATOR).join('/')
88
- @target.add_build_item relative_path
89
- end
90
- end
91
-
92
- desc "Hide opalfiles etc"
93
- task :hide_non_build_files => [:catalog] do
94
- # puts "checking for extra files"
95
- @target.build_items.each do |item|
96
-
97
- can_skip = false
98
- # skip if item is in our lib directory(s)
99
- can_skip = @config.lib_directories.each do |dir|
100
- break true if item.filename =~ /^#{dir}.+(rb|js)$/
101
- end
102
-
103
- # puts "trying #{item.filename}"
104
-
105
- if @config.copy_html && item.filename =~ /\.html$/
106
- # allow html files if we have said so
107
- next
108
- end
109
-
110
- next if can_skip == true
111
-
112
- # skip all resources
113
- if @config.build_stylesheets
114
- # puts "can build styleheets for #{item.filename}"
115
- next if item.filename =~ /^resources.+$/
116
- end
117
-
118
- # if we have a bin item, and our config says we should include the bin
119
- # file...
120
- next if item.filename =~ /^bin.+$/ and @config.include_bin
121
-
122
- # puts "hiding #{item.filename}"
123
-
124
- # hide any other file
125
- item.hide!
126
- end
127
- # puts "running hide_opalfiles with #{@target.build_items}"
128
- # remove all non build files.. for example, if target is not main target,
129
- # then remove any bin files.. only want lib files, also remove spec folders
130
- # really... the only ruby, for example, we want is in the lib folder
131
- end
132
- end
133
-
134
- namespace :prepare_build_tasks do
135
-
136
- desc "This should invoke all needed tasks"
137
- task :all => [:css, :ruby, :javascript, :combine]
138
-
139
- desc "setup"
140
- task :setup => [:'target:prepare']
141
-
142
- desc "Ruby sources"
143
- task :ruby => [:setup] do
144
- # puts "running ruby tasks for #{@target}"
145
- # make sure we only grab the ruby files
146
- build_items = @target.build_items.select { |item| item.ext == 'rb' }
147
-
148
- build_items.each do |item|
149
- # p "item.filename is #{item.filename}"
150
- item = @target.add_transform item,
151
- :filename => item.filename,
152
- :build_task => 'build:ruby',
153
- :resource => :ruby,
154
- # give our ruby a name.rb.js extension to make it clearer what it is
155
- :build_path => File.join(@target.build_root, item.filename) + '.js',
156
- :staging_path => File.join(@target.staging_root, item.filename) + '.js'
157
- end
158
- end
159
-
160
- desc "Any javascript sources - not likely to be many"
161
- task :javascript => [:setup] do
162
- # puts @target.build_items.map { |a| a.filename }
163
- build_items = @target.build_items.select { |item| item.ext == 'js' }
164
- # puts "found some javascript items: #{build_items}"
165
- build_items.each do |item|
166
- item = @target.add_transform item,
167
- :filename => item.filename,
168
- :build_task => 'build:javascript',
169
- :resource => :javascript,
170
- :build_path => File.join(@target.build_root, item.filename),
171
- :staging_path => File.join(@target.staging_root, item.filename)
172
- end
173
- end
174
-
175
- desc "Collect all css resources"
176
- task :css => [:setup] do
177
- if @config.build_stylesheets
178
- build_items = @target.build_items.select { |item| item.ext == "css" }
179
-
180
- build_items.each do |item|
181
- item = @target.add_transform item,
182
- :filename => item.filename,
183
- :build_task => 'build:css',
184
- :resource => :css,
185
- :build_path => File.join(@target.build_root, item.filename),
186
- :staging_path => File.join(@target.staging_root, item.filename)
187
- end
188
- end
189
- end
190
-
191
- desc "combined ruby etc"
192
- task :combine => [:css, :ruby, :javascript] do
193
- # puts "combining for #{@target.target_name}"
194
- code_items = []
195
- css_items = []
196
- @target.build_items.each do |item|
197
- # all resouurce (ruby, css etc) types will have a .resource property
198
- next if item.resource.nil?
199
- # lookup specific ruby, css etc
200
- case item.resource
201
- when :ruby, :javascript
202
- code_items << item
203
- when :css
204
- css_items << item
205
- else
206
- # puts "found NON ruby #{item.inspect}"
207
- end
208
- end
209
-
210
- # code target: the opal - javascript and ruby sources
211
- code_target_name = @target.target_name + '.js'
212
-
213
- @target.add_composite code_target_name,
214
- :build_task => 'build:opal',
215
- :source_items => code_items
216
-
217
- if @config.build_stylesheets
218
- # css target is all the css resources (less, css, sass)
219
- css_target_name = @target.target_name + '.css'
220
-
221
- @target.add_composite css_target_name,
222
- :build_task => 'build:opal_css',
223
- :source_items => css_items
224
- end
225
- end
226
-
227
- end
228
-
229
- namespace :build_item do
230
-
231
- task :prepare do
232
- filename = @build_item.filename
233
- raise "All build items must have a filename." unless filename
234
-
235
- # default build task for a build item
236
- @build_item.build_task ||= 'build:copy'
237
- # make sure we have an extension set
238
- @build_item.ext = File.extname(filename)[1..-1]
239
- # make sure our full source path is ready
240
- @build_item.source_path ||= File.join(@target.target_root, filename)
241
- end
242
- end
243
-
244
- namespace :build do
245
-
246
- task :clean do
247
- # clean.. remove only tmps etc, leave final build as it is
248
- staging = File.join @project.build_root, @config.tmp_root
249
- FileUtils.rm_rf staging
250
- end
251
-
252
- task :copy do
253
- # puts "building simple copy task for #{@build_item.source_path}"
254
- from = @build_item.source_path
255
- to = File.join(@project.build_root, @config.build_prefix, @build_item.filename)
256
- # puts from
257
- # puts to
258
- FileUtils.mkdir_p File.dirname(to)
259
- FileUtils.copy_file from, to
260
- end
261
-
262
- task :ruby do
263
- Vienna::Builders::Ruby.build @build_item, @dst_path
264
- end
265
-
266
- task :javascript do
267
- Vienna::Builders::Javascript.build @build_item, @dst_path
268
- end
269
-
270
- task :css do
271
- Vienna::Builders::CSS.build @build_item, @dst_path
272
- end
273
-
274
- desc "Build the opal itself (as javascript)"
275
- task :opal do
276
- Vienna::Builders::Opal.build @build_item, @dst_path
277
- end
278
-
279
- task :opal_css do
280
- source_items = @build_item.source_items
281
- build_path = @build_item.build_path
282
-
283
- FileUtils.mkdir_p File.dirname(build_path)
284
-
285
- File.open(build_path, 'w') do |out|
286
- source_items.each do |item|
287
- out.write File.read(item.stage!.staging_path)
288
- end
289
- end
290
- end
291
-
292
- desc "Final package to combine all opals"
293
- task :package do
294
- # puts "running package task!"
295
- # only run package task if we are the main target
296
- if @target.main_target?
297
- js_build_path = File.join @project.build_root, @config.build_prefix, @config.javascripts_prefix
298
-
299
- FileUtils.mkdir_p js_build_path
300
-
301
- js_name = @config.javascript_name
302
-
303
- if js_name == :project_name
304
- js_name = "#{@project.project_name}.js"
305
- end
306
-
307
- # if @config.build_stylesheets
308
- css_build_path = File.join @project.build_root, @config.build_prefix, @config.stylesheets_prefix
309
-
310
- # FileUtils.mkdir_p css_build_path
311
-
312
- css_name = @config.stylesheet_name
313
-
314
- if css_name == :project_name
315
- css_name = "#{@project.project_name}.css"
316
- end
317
- # end
318
- # javascripts_prefix
319
- opals = @project.targets.each_value.to_a.dup
320
-
321
- # puts "opals are:"
322
- # p opals
323
-
324
- # order is more-a-less irrelevant, but we MUST have opal first
325
- opals.unshift(opals.find { |o| o.target_name.to_sym == :runtime }).uniq!
326
-
327
- # puts "opals are now:"
328
- # p opals
329
-
330
- # build the final javascript.js package
331
- File.open(File.join(js_build_path, js_name), 'w') do |out|
332
- opals.each do |opal|
333
- item = opal.build_item_for("#{opal.target_name}.js")
334
- out.puts File.read(item.build_path)
335
- end
336
- # Also, we must include the bin file we want to use, and set the working
337
- # directory (which is in the base folder of the main_target)
338
- bin_file = @config.bin_file
339
- bin_file = @project.project_name if bin_file == :project_name
340
- working_dir = @target.target_name.to_s
341
-
342
- unless bin_file == nil
343
- out.puts "opal.run('#{bin_file}','#{working_dir}');"
344
- else
345
- out.puts "opal.require('browser');"
346
- end
347
- end
348
-
349
- # if @config.build_stylesheets
350
- # puts "in a"
351
- # puts css_build_path
352
- # puts css_name
353
-
354
- all_css_targets = []
355
- opals.each do |opal|
356
- item = opal.build_item_for("#{opal.target_name}.css")
357
- # puts item
358
- (all_css_targets << item) if item
359
- end
360
-
361
- if all_css_targets.length > 0
362
- FileUtils.mkdir_p css_build_path
363
- File.open(File.join(css_build_path, css_name), 'w') do |out|
364
- all_css_targets.each do |item|
365
- out.puts File.read(item.build_path)
366
- end
367
- end
368
- end
369
- # FileUtils.mkdir_p css_build_path
370
-
371
- # build the final stylesheet.css package
372
- # File.open(File.join(css_build_path, css_name), 'w') do |out|
373
- # opals.each do |opal|
374
- # puts opal.target_name
375
- # item = /opal.build_item_for("#{opal.target_name}.css")
376
- # puts item
377
- # out.puts(File.read(item.build_path)) if item
378
- # end
379
- # end
380
- # end
381
-
382
- end
383
- end
384
- end
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 0.2.2
@@ -1,11 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <title>Browser Demo</title>
5
- <script src="browser_demo.js"></script>
6
- </head>
7
- <body>
8
- <div>Hey</div>
9
- <div class="typess" id="wow"></div>
10
- </body>
11
- </html>
@@ -1,31 +0,0 @@
1
-
2
- require 'browser'
3
-
4
- Document.ready? do
5
-
6
- puts "testing events"
7
- Document.add_listener :click do |evt|
8
- puts "in listener"
9
- puts evt
10
- end
11
-
12
- puts "testing Request"
13
- req = Request.new
14
- puts req
15
-
16
- req.on :success do
17
- puts "handler success!"
18
- end
19
-
20
- req.on :failure do
21
- puts "handler failure!"
22
- end
23
-
24
- req.on :complete do
25
- puts "handler complete!"
26
- end
27
-
28
- req.send :url => "javascripts/browser_demo.js"
29
-
30
- end
31
-
@@ -1,13 +0,0 @@
1
-
2
- # for all modes, set the bin to foundation (will be cherry_kit)
3
- mode :all do
4
- config :simple_opal,
5
-
6
- :required => [:cherry_kit],
7
- :bin_file => :cherry_kit
8
-
9
- config :cherry_kit,
10
-
11
- :include_bin => true
12
-
13
- end