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.
- data/.gitignore +5 -10
- data/LICENSE +75 -0
- data/README.md +55 -3
- data/Rakefile +62 -139
- data/bin/opal +7 -10
- data/gems/core/README.md +5 -0
- data/gems/core/Rakefile +7 -0
- data/gems/core/core.gemspec +13 -0
- data/gems/core/lib/core.rb +33 -0
- data/gems/core/lib/core/array.rb +1470 -0
- data/gems/core/lib/core/basic_object.rb +15 -0
- data/gems/core/lib/core/class.rb +31 -0
- data/gems/core/lib/core/dir.rb +26 -0
- data/gems/core/lib/core/error.rb +43 -0
- data/gems/core/lib/core/false_class.rb +21 -0
- data/gems/core/lib/core/file.rb +54 -0
- data/gems/core/lib/core/hash.rb +725 -0
- data/gems/core/lib/core/kernel.rb +240 -0
- data/gems/core/lib/core/module.rb +98 -0
- data/gems/core/lib/core/nil_class.rb +41 -0
- data/gems/core/lib/core/numeric.rb +370 -0
- data/gems/core/lib/core/proc.rb +11 -0
- data/gems/core/lib/core/range.rb +17 -0
- data/gems/core/lib/core/regexp.rb +18 -0
- data/gems/core/lib/core/string.rb +328 -0
- data/gems/core/lib/core/symbol.rb +15 -0
- data/gems/core/lib/core/top_self.rb +8 -0
- data/gems/core/lib/core/true_class.rb +20 -0
- data/gems/core/lib/core/vm.rb +16 -0
- data/{opals/opal/opal → gems/core}/spec/core/array/append_spec.rb +0 -0
- data/{opals/opal/opal → gems/core}/spec/core/array/assoc_spec.rb +0 -0
- data/{opals/opal/opal → gems/core}/spec/core/array/at_spec.rb +0 -0
- data/{opals/opal/opal → gems/core}/spec/core/array/clear_spec.rb +1 -1
- data/{opals/opal/opal → gems/core}/spec/core/array/collect_bang_spec.rb +0 -0
- data/{opals/opal/opal → gems/core}/spec/core/array/collect_spec.rb +0 -0
- data/gems/core/spec/core/array/compact_spec.rb +41 -0
- data/{opals/opal/opal → gems/core}/spec/core/array/concat_spec.rb +0 -0
- data/{opals/opal/opal → gems/core}/spec/core/array/constructor_spec.rb +0 -0
- data/{opals/opal/opal → gems/core}/spec/core/array/each_spec.rb +0 -0
- data/{opals/opal/opal → gems/core}/spec/core/array/element_reference_spec.rb +0 -0
- data/{opals/opal/opal → gems/core}/spec/core/array/first_spec.rb +1 -1
- data/{opals/opal/opal → gems/core}/spec/core/array/include_spec.rb +0 -0
- data/gems/core/spec/core/array/join_spec.rb +6 -0
- data/gems/core/spec/core/array/last_spec.rb +51 -0
- data/gems/core/spec/core/array/length_spec.rb +6 -0
- data/{opals/opal/opal → gems/core}/spec/core/array/map_spec.rb +2 -0
- data/gems/core/spec/core/array/reverse_spec.rb +6 -0
- data/{opals/opal/opal → gems/core}/spec/core/builtin_constants/builtin_constants_spec.rb +0 -0
- data/{opals/opal/opal → gems/core}/spec/core/false/and_spec.rb +0 -0
- data/{opals/opal/opal → gems/core}/spec/core/false/inspect_spec.rb +0 -0
- data/{opals/opal/opal → gems/core}/spec/core/false/or_spec.rb +0 -0
- data/{opals/opal/opal → gems/core}/spec/core/false/to_s_spec.rb +0 -0
- data/{opals/opal/opal → gems/core}/spec/core/false/xor_spec.rb +0 -0
- data/{opals/opal/opal → gems/core}/spec/core/file/join_spec.rb +1 -1
- data/gems/core/spec/core/hash/assoc_spec.rb +32 -0
- data/{opals/opal/opal → gems/core}/spec/core/kernel/instance_eval_spec.rb +0 -0
- data/{opals/opal/opal → gems/core}/spec/core/kernel/loop_spec.rb +0 -0
- data/{opals/opal/opal → gems/core}/spec/core/kernel/raise_spec.rb +0 -0
- data/{opals/opal/opal → gems/core}/spec/core/module/attr_accessor_spec.rb +0 -0
- data/{opals/opal/opal → gems/core}/spec/core/number/lt_spec.rb +0 -0
- data/gems/core/spec/core/string/sub_spec.rb +24 -0
- data/{opals/opal/opal → gems/core}/spec/core/true/and_spec.rb +0 -0
- data/{opals/opal/opal → gems/core}/spec/core/true/inspect_spec.rb +0 -0
- data/{opals/opal/opal → gems/core}/spec/core/true/or_spec.rb +0 -0
- data/{opals/opal/opal → gems/core}/spec/core/true/to_s_spec.rb +0 -0
- data/{opals/opal/opal → gems/core}/spec/core/true/xor_spec.rb +0 -0
- data/{opals/opal/opal → gems/core}/spec/language/and_spec.rb +2 -3
- data/{opals/opal/opal → gems/core}/spec/language/array_spec.rb +21 -5
- data/gems/core/spec/language/block_spec.rb +38 -0
- data/{opals/opal/opal → gems/core}/spec/language/break_spec.rb +0 -0
- data/gems/core/spec/language/case_spec.rb +103 -0
- data/{opals/opal/opal → gems/core}/spec/language/def_spec.rb +11 -1
- data/{opals/opal/opal → gems/core}/spec/language/eigenclass_spec.rb +0 -0
- data/gems/core/spec/language/file_spec.rb +13 -0
- data/gems/core/spec/language/fixtures/block.rb +21 -0
- data/gems/core/spec/language/fixtures/super.rb +293 -0
- data/{opals/opal/opal → gems/core}/spec/language/hash_spec.rb +0 -0
- data/{opals/opal/opal → gems/core}/spec/language/if_spec.rb +0 -0
- data/{opals/opal/opal → gems/core}/spec/language/loop_spec.rb +0 -0
- data/gems/core/spec/language/metaclass_spec.rb +21 -0
- data/{opals/opal/opal → gems/core}/spec/language/method_spec.rb +60 -0
- data/{opals/opal/opal → gems/core}/spec/language/next_spec.rb +0 -0
- data/{opals/opal/opal → gems/core}/spec/language/or_spec.rb +0 -0
- data/{opals/opal/opal → gems/core}/spec/language/redo_spec.rb +0 -0
- data/gems/core/spec/language/regexp_spec.rb +26 -0
- data/{opals/opal/opal → gems/core}/spec/language/rescue_spec.rb +0 -0
- data/{opals/opal/opal → gems/core}/spec/language/return_spec.rb +0 -0
- data/{opals/opal/opal → gems/core}/spec/language/string_spec.rb +0 -0
- data/gems/core/spec/language/super_spec.rb +32 -0
- data/{opals/opal/opal → gems/core}/spec/language/until_spec.rb +47 -47
- data/gems/core/spec/language/variables_spec.rb +155 -0
- data/{opals/opal/opal → gems/core}/spec/language/while_spec.rb +47 -47
- data/{opals/opal/opal → gems/core}/spec/spec_helper.rb +1 -1
- data/gems/core_fs/README.md +19 -0
- data/gems/dev/Rakefile +5 -0
- data/gems/dev/lib/dev.js +99 -0
- data/gems/dev/lib/dev/generator.js +1264 -0
- data/gems/dev/lib/dev/parser.js +979 -0
- data/gems/dev/lib/dev/ruby_parser.js +1088 -0
- data/gems/dev/lib/dev/ruby_parser.y +1267 -0
- data/gems/dev/lib/dev/string_scanner.js +38 -0
- data/gems/dev/tools/racc2js/README.md +39 -0
- data/gems/dev/tools/racc2js/math_parser.js +222 -0
- data/gems/dev/tools/racc2js/math_parser.rb +133 -0
- data/gems/dev/tools/racc2js/math_parser.y +28 -0
- data/gems/dev/tools/racc2js/parser.js +218 -0
- data/gems/dev/tools/racc2js/racc2js.rb +153 -0
- data/gems/json/README.md +4 -0
- data/gems/json/json.gemspec +14 -0
- data/gems/json/lib/json.rb +64 -0
- data/gems/json/lib/json/ext.rb +51 -0
- data/{opals/opal/browser/lib/browser/json_parse.js → gems/json/lib/json/json2.js} +197 -37
- data/gems/ospec/README.md +0 -0
- data/gems/ospec/lib/ospec.rb +6 -0
- data/gems/ospec/lib/ospec/autorun.rb +3 -0
- data/gems/ospec/lib/ospec/dsl.rb +15 -0
- data/gems/ospec/lib/ospec/example.rb +11 -0
- data/gems/ospec/lib/ospec/example/before_and_after_hooks.rb +56 -0
- data/gems/ospec/lib/ospec/example/errors.rb +17 -0
- data/gems/ospec/lib/ospec/example/example_group.rb +12 -0
- data/gems/ospec/lib/ospec/example/example_group_factory.rb +21 -0
- data/gems/ospec/lib/ospec/example/example_group_hierarchy.rb +20 -0
- data/{opals/opal/spec/lib/spec → gems/ospec/lib/ospec}/example/example_group_methods.rb +26 -68
- data/gems/ospec/lib/ospec/example/example_group_proxy.rb +14 -0
- data/gems/ospec/lib/ospec/example/example_methods.rb +46 -0
- data/gems/ospec/lib/ospec/example/example_proxy.rb +18 -0
- data/gems/ospec/lib/ospec/expectations.rb +19 -0
- data/gems/ospec/lib/ospec/expectations/errors.rb +8 -0
- data/gems/ospec/lib/ospec/expectations/fail_with.rb +8 -0
- data/gems/ospec/lib/ospec/expectations/handler.rb +27 -0
- data/gems/ospec/lib/ospec/matchers.rb +24 -0
- data/{opals/opal/Rakefile → gems/ospec/lib/ospec/matchers/be.rb} +0 -0
- data/gems/ospec/lib/ospec/matchers/generated_descriptions.rb +20 -0
- data/gems/ospec/lib/ospec/matchers/operator_matcher.rb +52 -0
- data/gems/ospec/lib/ospec/runner.rb +40 -0
- data/gems/ospec/lib/ospec/runner/example_group_runner.rb +44 -0
- data/{opals/opal/spec/lib/spec → gems/ospec/lib/ospec}/runner/formatter/html_formatter.rb +31 -40
- data/gems/ospec/lib/ospec/runner/formatter/terminal_formatter.rb +48 -0
- data/gems/ospec/lib/ospec/runner/options.rb +36 -0
- data/{opals/opal/spec/lib/spec → gems/ospec/lib/ospec}/runner/reporter.rb +23 -55
- data/gems/ospec/ospec.gemspec +0 -0
- data/gems/rquery/README.md +9 -0
- data/gems/rquery/lib/rquery.rb +10 -0
- data/gems/rquery/lib/rquery/ajax.rb +4 -0
- data/gems/rquery/lib/rquery/css.rb +96 -0
- data/gems/rquery/lib/rquery/document.rb +25 -0
- data/gems/rquery/lib/rquery/element.rb +292 -0
- data/gems/rquery/lib/rquery/event.rb +108 -0
- data/gems/rquery/lib/rquery/jquery.js +8177 -0
- data/gems/rquery/lib/rquery/request.rb +138 -0
- data/gems/rquery/lib/rquery/response.rb +49 -0
- data/gems/rquery/rquery.gemspec +16 -0
- data/lib/opal.js +1597 -0
- data/lib/opal.rb +6 -69
- data/lib/opal/builder.rb +115 -0
- data/lib/opal/bundle.rb +131 -0
- data/lib/opal/command.rb +11 -0
- data/lib/opal/context.rb +69 -0
- data/lib/opal/context/console.rb +12 -0
- data/lib/opal/context/file_system.rb +19 -0
- data/lib/opal/context/loader.rb +117 -0
- data/lib/opal/gem.rb +153 -0
- data/lib/opal/ruby/nodes.rb +1302 -0
- data/lib/opal/ruby/parser.rb +780 -0
- data/lib/opal/ruby/ruby_parser.rb +5170 -0
- data/lib/opal/ruby/ruby_parser.y +1298 -0
- data/opal.gemspec +11 -256
- metadata +179 -240
- data/.gitmodules +0 -6
- data/Opalfile +0 -384
- data/VERSION +0 -1
- data/demos/apps/browser_demo/index.html +0 -11
- data/demos/apps/browser_demo/lib/browser_demo.rb +0 -31
- data/demos/apps/simple_opal/Opalfile +0 -13
- data/demos/apps/simple_opal/index.html +0 -11
- data/demos/apps/simple_opal/lib/app_controller.rb +0 -62
- data/demos/apps/simple_opal/lib/main_window.rb +0 -146
- data/demos/browser/request/index.html +0 -52
- data/demos/browser/request/request.rb +0 -48
- data/gen/browser/__PROJECT_NAME__/Rakefile +0 -12
- data/gen/browser/__PROJECT_NAME__/index.html +0 -11
- data/gen/browser/__PROJECT_NAME__/javascripts/opal.debug.js +0 -4687
- data/gen/browser/__PROJECT_NAME__/javascripts/opal.min.js +0 -175
- data/gen/browser/__PROJECT_NAME__/lib/__PROJECT_NAME__.rb +0 -1
- data/lib/opal/builders/base.rb +0 -50
- data/lib/opal/builders/css.rb +0 -46
- data/lib/opal/builders/javascript.rb +0 -44
- data/lib/opal/builders/opal.rb +0 -79
- data/lib/opal/builders/ruby.rb +0 -50
- data/lib/opal/builders/ruby/generate.rb +0 -1851
- data/lib/opal/builders/ruby/nodes.rb +0 -210
- data/lib/opal/builders/ruby/ruby.rb +0 -916
- data/lib/opal/builders/ruby/ruby_parser.rb +0 -6008
- data/lib/opal/builders/ruby/ruby_parser.rb.y +0 -1451
- data/lib/opal/models/build_item.rb +0 -104
- data/lib/opal/models/hash_struct.rb +0 -40
- data/lib/opal/models/project.rb +0 -252
- data/lib/opal/models/struct_accessors.rb +0 -58
- data/lib/opal/models/target.rb +0 -176
- data/lib/opal/opal/build.rb +0 -169
- data/lib/opal/opal/env/console.rb +0 -66
- data/lib/opal/opal/env/fs.rb +0 -98
- data/lib/opal/opal/env/object.rb +0 -48
- data/lib/opal/opal/environment.rb +0 -139
- data/lib/opal/opal/gen.rb +0 -62
- data/lib/opal/opal/opal.rb +0 -75
- data/lib/opal/opal/repl.rb +0 -38
- data/lib/opal/opalfile/dsl.rb +0 -62
- data/lib/opal/opalfile/opalfile.rb +0 -133
- data/lib/opal/opalfile/task.rb +0 -96
- data/lib/opal/opalfile/task_manager.rb +0 -63
- data/lib/opal/opalfile/task_scope.rb +0 -52
- data/lib/opal/rack/app_server.rb +0 -119
- data/lib/opal/rake/opal_task.rb +0 -34
- data/opals/opal/README.md +0 -37
- data/opals/opal/browser/Opalfile +0 -11
- data/opals/opal/browser/README.md +0 -146
- data/opals/opal/browser/SIZZLE_LICESNSE.txt +0 -148
- data/opals/opal/browser/lib/browser.rb +0 -118
- data/opals/opal/browser/lib/browser/builder.rb +0 -41
- data/opals/opal/browser/lib/browser/canvas_context.rb +0 -115
- data/opals/opal/browser/lib/browser/dimensions.rb +0 -50
- data/opals/opal/browser/lib/browser/document.rb +0 -146
- data/opals/opal/browser/lib/browser/element.rb +0 -487
- data/opals/opal/browser/lib/browser/element/attributes.rb +0 -88
- data/opals/opal/browser/lib/browser/element/css.rb +0 -290
- data/opals/opal/browser/lib/browser/element/form.rb +0 -146
- data/opals/opal/browser/lib/browser/event/dom_events.rb +0 -81
- data/opals/opal/browser/lib/browser/event/event.rb +0 -177
- data/opals/opal/browser/lib/browser/event/trigger_events.rb +0 -53
- data/opals/opal/browser/lib/browser/geometry.rb +0 -97
- data/opals/opal/browser/lib/browser/json.rb +0 -32
- data/opals/opal/browser/lib/browser/request/request.rb +0 -201
- data/opals/opal/browser/lib/browser/sizzle.js +0 -1068
- data/opals/opal/browser/lib/browser/string.rb +0 -42
- data/opals/opal/browser/lib/browser/touch.rb +0 -37
- data/opals/opal/browser/lib/browser/vml_context.js +0 -33
- data/opals/opal/browser/lib/browser/window.rb +0 -36
- data/opals/opal/browser/spec/browser/browser_detection_spec.rb +0 -7
- data/opals/opal/browser/spec/document/aref_spec.rb +0 -110
- data/opals/opal/browser/spec/document/ready_spec.rb +0 -16
- data/opals/opal/browser/spec/element/body_spec.rb +0 -11
- data/opals/opal/browser/spec/element/clear_spec.rb +0 -26
- data/opals/opal/browser/spec/element/empty_spec.rb +0 -29
- data/opals/opal/browser/spec/element/has_class_spec.rb +0 -40
- data/opals/opal/browser/spec/element/hidden_spec.rb +0 -23
- data/opals/opal/browser/spec/element/hide_spec.rb +0 -31
- data/opals/opal/browser/spec/element/remove_spec.rb +0 -25
- data/opals/opal/browser/spec/element/show_spec.rb +0 -31
- data/opals/opal/browser/spec/element/style_spec.rb +0 -69
- data/opals/opal/browser/spec/element/toggle_spec.rb +0 -31
- data/opals/opal/browser/spec/element/visible_spec.rb +0 -23
- data/opals/opal/browser/spec/spec_helper.rb +0 -1
- data/opals/opal/opal/Opalfile +0 -14
- data/opals/opal/opal/spec/core/array/compact_spec.rb +0 -15
- data/opals/opal/opal/spec/fixtures/super.rb +0 -70
- data/opals/opal/opal/spec/language/____temp_remove_this.rb +0 -12
- data/opals/opal/opal/spec/language/block_spec.rb +0 -18
- data/opals/opal/opal/spec/language/case_spec.rb +0 -103
- data/opals/opal/opal/spec/language/metaclass_spec.rb +0 -21
- data/opals/opal/opal/spec/language/super_spec.rb +0 -26
- data/opals/opal/runtime/Opalfile +0 -78
- data/opals/opal/runtime/README.md +0 -12
- data/opals/opal/runtime/docs/debugging.md +0 -51
- data/opals/opal/runtime/lib/array.rb +0 -1516
- data/opals/opal/runtime/lib/basic_object.rb +0 -49
- data/opals/opal/runtime/lib/class.rb +0 -54
- data/opals/opal/runtime/lib/dir.rb +0 -36
- data/opals/opal/runtime/lib/error.rb +0 -49
- data/opals/opal/runtime/lib/false_class.rb +0 -52
- data/opals/opal/runtime/lib/file.rb +0 -79
- data/opals/opal/runtime/lib/hash.rb +0 -791
- data/opals/opal/runtime/lib/io.rb +0 -39
- data/opals/opal/runtime/lib/kernel.rb +0 -288
- data/opals/opal/runtime/lib/match_data.rb +0 -36
- data/opals/opal/runtime/lib/module.rb +0 -109
- data/opals/opal/runtime/lib/nil_class.rb +0 -69
- data/opals/opal/runtime/lib/number.rb +0 -398
- data/opals/opal/runtime/lib/proc.rb +0 -77
- data/opals/opal/runtime/lib/range.rb +0 -63
- data/opals/opal/runtime/lib/regexp.rb +0 -111
- data/opals/opal/runtime/lib/ruby.rb +0 -30
- data/opals/opal/runtime/lib/string.rb +0 -328
- data/opals/opal/runtime/lib/symbol.rb +0 -40
- data/opals/opal/runtime/lib/top_self.rb +0 -33
- data/opals/opal/runtime/lib/true_class.rb +0 -45
- data/opals/opal/runtime/runtime/browser.js +0 -287
- data/opals/opal/runtime/runtime/debug.js +0 -180
- data/opals/opal/runtime/runtime/opal.js +0 -1008
- data/opals/opal/runtime/runtime/post_opal.js +0 -1
- data/opals/opal/runtime/runtime/pre_opal.js +0 -2
- data/opals/opal/runtime/runtime/server_side.js +0 -50
- data/opals/opal/spec/LICENSE.txt +0 -26
- data/opals/opal/spec/Opalfile +0 -5
- data/opals/opal/spec/bin/spec.rb +0 -43
- data/opals/opal/spec/lib/spec.rb +0 -33
- data/opals/opal/spec/lib/spec/dsl.rb +0 -41
- data/opals/opal/spec/lib/spec/example.rb +0 -35
- data/opals/opal/spec/lib/spec/example/before_and_after_hooks.rb +0 -81
- data/opals/opal/spec/lib/spec/example/errors.rb +0 -42
- data/opals/opal/spec/lib/spec/example/example_group.rb +0 -37
- data/opals/opal/spec/lib/spec/example/example_group_factory.rb +0 -43
- data/opals/opal/spec/lib/spec/example/example_group_hierarchy.rb +0 -45
- data/opals/opal/spec/lib/spec/example/example_group_proxy.rb +0 -41
- data/opals/opal/spec/lib/spec/example/example_methods.rb +0 -73
- data/opals/opal/spec/lib/spec/example/example_proxy.rb +0 -48
- data/opals/opal/spec/lib/spec/expectations.rb +0 -46
- data/opals/opal/spec/lib/spec/expectations/errors.rb +0 -35
- data/opals/opal/spec/lib/spec/expectations/fail_with.rb +0 -37
- data/opals/opal/spec/lib/spec/expectations/handler.rb +0 -48
- data/opals/opal/spec/lib/spec/matchers.rb +0 -50
- data/opals/opal/spec/lib/spec/matchers/be.rb +0 -26
- data/opals/opal/spec/lib/spec/matchers/generated_descriptions.rb +0 -47
- data/opals/opal/spec/lib/spec/matchers/operator_matcher.rb +0 -66
- data/opals/opal/spec/lib/spec/runner.rb +0 -48
- data/opals/opal/spec/lib/spec/runner/example_group_runner.rb +0 -71
- data/opals/opal/spec/lib/spec/runner/formatter/terminal_formatter.rb +0 -82
- data/opals/opal/spec/lib/spec/runner/options.rb +0 -63
- data/opals/opal/spec/resources/index.html +0 -25
- data/opals/opal/spec/resources/spec.css +0 -132
- data/spec/cherry_kit/iseq_spec.rb +0 -38
- data/spec/spec_helper.rb +0 -16
- data/spec/vienna_spec.rb +0 -7
- data/yard/index.html +0 -43
- data/yard/style.css +0 -765
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
#
|
|
2
|
-
# io.rb
|
|
3
|
-
# vienna
|
|
4
|
-
#
|
|
5
|
-
# Created by Adam Beynon.
|
|
6
|
-
# Copyright 2010 Adam Beynon.
|
|
7
|
-
#
|
|
8
|
-
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
9
|
-
# of this software and associated documentation files (the "Software"), to deal
|
|
10
|
-
# in the Software without restriction, including without limitation the rights
|
|
11
|
-
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
12
|
-
# copies of the Software, and to permit persons to whom the Software is
|
|
13
|
-
# furnished to do so, subject to the following conditions:
|
|
14
|
-
#
|
|
15
|
-
# The above copyright notice and this permission notice shall be included in
|
|
16
|
-
# all copies or substantial portions of the Software.
|
|
17
|
-
#
|
|
18
|
-
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
19
|
-
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
20
|
-
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
21
|
-
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
22
|
-
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
23
|
-
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
24
|
-
# THE SOFTWARE.
|
|
25
|
-
#
|
|
26
|
-
|
|
27
|
-
class IO
|
|
28
|
-
|
|
29
|
-
def puts(*objects)
|
|
30
|
-
if objects.length == 0
|
|
31
|
-
# print new line only
|
|
32
|
-
else
|
|
33
|
-
objects.each do |object|
|
|
34
|
-
# print each one on a new line
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
|
-
nil
|
|
38
|
-
end
|
|
39
|
-
end
|
|
@@ -1,288 +0,0 @@
|
|
|
1
|
-
#
|
|
2
|
-
# kernel.rb
|
|
3
|
-
# vienna
|
|
4
|
-
#
|
|
5
|
-
# Created by Adam Beynon.
|
|
6
|
-
# Copyright 2010 Adam Beynon.
|
|
7
|
-
#
|
|
8
|
-
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
9
|
-
# of this software and associated documentation files (the "Software"), to deal
|
|
10
|
-
# in the Software without restriction, including without limitation the rights
|
|
11
|
-
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
12
|
-
# copies of the Software, and to permit persons to whom the Software is
|
|
13
|
-
# furnished to do so, subject to the following conditions:
|
|
14
|
-
#
|
|
15
|
-
# The above copyright notice and this permission notice shall be included in
|
|
16
|
-
# all copies or substantial portions of the Software.
|
|
17
|
-
#
|
|
18
|
-
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
19
|
-
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
20
|
-
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
21
|
-
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
22
|
-
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
23
|
-
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
24
|
-
# THE SOFTWARE.
|
|
25
|
-
#
|
|
26
|
-
|
|
27
|
-
# The kernel module is included directly into {Object}, making all of these
|
|
28
|
-
# methods globally accessible from any Object.
|
|
29
|
-
module Kernel
|
|
30
|
-
|
|
31
|
-
# Returns `true` if `yield` would execute a block in the current context,
|
|
32
|
-
# `false` otherwise.
|
|
33
|
-
#
|
|
34
|
-
# @note In Opal this is kind of a fake method. The compiler treats
|
|
35
|
-
# `block_given?` as a keyword to make its use easier to deal with in
|
|
36
|
-
# javascript (keep things nice and efficient). Its use is the same to the end
|
|
37
|
-
# programmer, apart from it should not be overriden - it is never actually
|
|
38
|
-
# called.
|
|
39
|
-
#
|
|
40
|
-
# @return [Boolean] was a block given
|
|
41
|
-
def block_given?
|
|
42
|
-
false
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
def !=(other)
|
|
46
|
-
`return #{self == other}.r ? #{false} : #{true};`
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
# Repeatedly executes the block.
|
|
50
|
-
#
|
|
51
|
-
# @note Method does not return an enumerator if no block given(yet).
|
|
52
|
-
#
|
|
53
|
-
# @example
|
|
54
|
-
# loop do
|
|
55
|
-
# puts "this will infinetly print"
|
|
56
|
-
# end
|
|
57
|
-
#
|
|
58
|
-
# @param [Proc] block
|
|
59
|
-
# @return [Object] returns the receiver
|
|
60
|
-
def loop(&block)
|
|
61
|
-
`try {
|
|
62
|
-
while (true) {
|
|
63
|
-
#{block}.apply(#{block}.__self__, []);
|
|
64
|
-
}
|
|
65
|
-
} catch (e) {
|
|
66
|
-
// capture break statements
|
|
67
|
-
if (e.__keyword__ == 'break') {
|
|
68
|
-
return e.opal_value;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
// rethrow everything else
|
|
72
|
-
throw e;
|
|
73
|
-
}`
|
|
74
|
-
end
|
|
75
|
-
|
|
76
|
-
def is_a?(klass)
|
|
77
|
-
# `console.log("chjecking isa for:")
|
|
78
|
-
# console.log(#{self});
|
|
79
|
-
# console.log(#{klass});
|
|
80
|
-
# throw "";
|
|
81
|
-
# `
|
|
82
|
-
|
|
83
|
-
`var search = #{self}.isa;
|
|
84
|
-
|
|
85
|
-
while (search) {
|
|
86
|
-
if (search == #{klass})
|
|
87
|
-
return #{self}.t;
|
|
88
|
-
|
|
89
|
-
search = search.super_class;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
return #{self}.f;`
|
|
93
|
-
end
|
|
94
|
-
|
|
95
|
-
# alias_method :kind_of?, :is_a?
|
|
96
|
-
|
|
97
|
-
def nil?
|
|
98
|
-
false
|
|
99
|
-
end
|
|
100
|
-
|
|
101
|
-
def respond_to?(method)
|
|
102
|
-
`var method_id = #{method.to_s}.toString();
|
|
103
|
-
method_id = #{self}.mid2jsid(method_id);
|
|
104
|
-
if (#{self}[method_id]) {
|
|
105
|
-
return #{true};
|
|
106
|
-
}`
|
|
107
|
-
false
|
|
108
|
-
end
|
|
109
|
-
|
|
110
|
-
def ===(other)
|
|
111
|
-
self == other
|
|
112
|
-
end
|
|
113
|
-
|
|
114
|
-
def instance_variable_defined?(variable_name)
|
|
115
|
-
`return (#{self}[#{variable_name.to_s}.toString()]) ? #{true} : #{false};`
|
|
116
|
-
end
|
|
117
|
-
|
|
118
|
-
def instance_variable_get(variable_name)
|
|
119
|
-
`return #{self}.ig(#{variable_name.to_s}.toString());`
|
|
120
|
-
end
|
|
121
|
-
|
|
122
|
-
def instance_variable_set(variable_name, value)
|
|
123
|
-
`#{self}.is(#{variable_name.to_s}.toString(), #{value});`
|
|
124
|
-
value
|
|
125
|
-
end
|
|
126
|
-
|
|
127
|
-
def __send__(method, *args)
|
|
128
|
-
`var res= #{self}['$' + #{method.to_s}].apply(#{self}, #{args});
|
|
129
|
-
return res;`
|
|
130
|
-
end
|
|
131
|
-
|
|
132
|
-
def class
|
|
133
|
-
`return #{self}.isa;`
|
|
134
|
-
end
|
|
135
|
-
|
|
136
|
-
def superclass
|
|
137
|
-
`return #{self}.super_class;`
|
|
138
|
-
end
|
|
139
|
-
|
|
140
|
-
# Try to load the library or file named `require_path`. Causes an error to be
|
|
141
|
-
# thrown if required path cannot be found.
|
|
142
|
-
#
|
|
143
|
-
# @todo Loading relative paths does not work. Paths need to be full. To load
|
|
144
|
-
# element from Browser, do require('browser/element/element'). The .rb
|
|
145
|
-
# extension can be ommited.
|
|
146
|
-
#
|
|
147
|
-
# @param [String] require_path
|
|
148
|
-
# @return [Boolean] success
|
|
149
|
-
def require require_path
|
|
150
|
-
`opal.require(#{require_path});`
|
|
151
|
-
true
|
|
152
|
-
end
|
|
153
|
-
|
|
154
|
-
# Simple equivalent to `Proc.new`. Returns a {Proc} instance.
|
|
155
|
-
#
|
|
156
|
-
# @example
|
|
157
|
-
# proc { puts "a" }
|
|
158
|
-
# # => #<Proc 0x2828283>
|
|
159
|
-
#
|
|
160
|
-
# @param [Proc] block
|
|
161
|
-
# @return [Proc]
|
|
162
|
-
def proc &block
|
|
163
|
-
if block_given?
|
|
164
|
-
block
|
|
165
|
-
else
|
|
166
|
-
raise "ArgumentError: tried to create Proc object without a block"
|
|
167
|
-
end
|
|
168
|
-
end
|
|
169
|
-
|
|
170
|
-
# Prints each argument in turn to the browser console. Currently there is no
|
|
171
|
-
# use of `$stdout`, so it is hardcoded into this method to write to the
|
|
172
|
-
# console directly.
|
|
173
|
-
#
|
|
174
|
-
# @param [Object] args objects to print using `inspect`
|
|
175
|
-
# @return [nil]
|
|
176
|
-
def puts(args)
|
|
177
|
-
# args.each do |arg|
|
|
178
|
-
`console.log(#{args}.$to_s().toString());`
|
|
179
|
-
# end
|
|
180
|
-
nil
|
|
181
|
-
end
|
|
182
|
-
|
|
183
|
-
# Returns a random number. If `max` is `nil` then the result is 0. Otherwise
|
|
184
|
-
# returns a random number from `0` to `max`.
|
|
185
|
-
#
|
|
186
|
-
# @example
|
|
187
|
-
# rand # => 0.192272821917329
|
|
188
|
-
# rand # => 0.972628272363732
|
|
189
|
-
# rand 10 # => 8
|
|
190
|
-
# rand 10 # => 4
|
|
191
|
-
#
|
|
192
|
-
# @param [Number] max max number to use
|
|
193
|
-
# @return [Number] random number
|
|
194
|
-
def rand(max = nil)
|
|
195
|
-
if max
|
|
196
|
-
`return Math.floor(Math.random() * #{max})`
|
|
197
|
-
else
|
|
198
|
-
`return Math.random();`
|
|
199
|
-
end
|
|
200
|
-
end
|
|
201
|
-
|
|
202
|
-
def to_s
|
|
203
|
-
`return "#<" + #{self}.class_name + ":" + #{self}.id + ">";`
|
|
204
|
-
end
|
|
205
|
-
|
|
206
|
-
def inspect
|
|
207
|
-
to_s
|
|
208
|
-
end
|
|
209
|
-
|
|
210
|
-
def object_id
|
|
211
|
-
`return #{self}.id;`
|
|
212
|
-
end
|
|
213
|
-
|
|
214
|
-
# Raises an exception. If given a {String} argument, this method will raise a
|
|
215
|
-
# {RuntimeError} with the given `string` as a message. Otherwise, if the first
|
|
216
|
-
# parameter is a subclass of {Exception}, then the method will raise a new
|
|
217
|
-
# instance of the given `exception` class with the `string` as a method, if it
|
|
218
|
-
# exists, or a default message otherwise`
|
|
219
|
-
#
|
|
220
|
-
# @example String message
|
|
221
|
-
# raise "some error"
|
|
222
|
-
# # => RuntimeError: some error
|
|
223
|
-
#
|
|
224
|
-
# @example Exception subclass
|
|
225
|
-
# raise StandardError, "something went wrong"
|
|
226
|
-
# # => StandardError: something went wrong
|
|
227
|
-
#
|
|
228
|
-
# @param [Exception, String] exception exception class or string to throw
|
|
229
|
-
# @param [String] string to pass as message for exception
|
|
230
|
-
# @return [nil]
|
|
231
|
-
def raise(exception, string)
|
|
232
|
-
# puts "need to raise"
|
|
233
|
-
msg = nil
|
|
234
|
-
if exception.is_a? String
|
|
235
|
-
msg = exception
|
|
236
|
-
exc = RuntimeError.new msg
|
|
237
|
-
elsif exception.is_a? Exception
|
|
238
|
-
exc = exception
|
|
239
|
-
else
|
|
240
|
-
`if (#{string}) { #{msg = string} }`
|
|
241
|
-
exc = exception.new msg
|
|
242
|
-
end
|
|
243
|
-
# puts "really about to raise"
|
|
244
|
-
`#{exc}.raise();`
|
|
245
|
-
end
|
|
246
|
-
|
|
247
|
-
# An alias of {#raise}
|
|
248
|
-
#
|
|
249
|
-
# @param [Exception, String] exception exception class or string to throw
|
|
250
|
-
# @param [String] string to pass as message for exception
|
|
251
|
-
# @return [nil]
|
|
252
|
-
def fail(exception = nil, string = nil)
|
|
253
|
-
raise exception, string
|
|
254
|
-
end
|
|
255
|
-
|
|
256
|
-
def instance_eval(&block)
|
|
257
|
-
if block_given?
|
|
258
|
-
# `#{block}.__fun__.opal_self = true;`
|
|
259
|
-
`#{block}.apply(#{self});`
|
|
260
|
-
end
|
|
261
|
-
end
|
|
262
|
-
|
|
263
|
-
def const_set(const_name, const_value)
|
|
264
|
-
`return #{self}.const_set(#{const_name}, #{const_value});`
|
|
265
|
-
end
|
|
266
|
-
|
|
267
|
-
end
|
|
268
|
-
|
|
269
|
-
# ============================================================================
|
|
270
|
-
# = Argh - these need to be here early for method in core lib that use alias =
|
|
271
|
-
# ============================================================================
|
|
272
|
-
|
|
273
|
-
class String
|
|
274
|
-
|
|
275
|
-
def to_s
|
|
276
|
-
self
|
|
277
|
-
end
|
|
278
|
-
|
|
279
|
-
def inspect
|
|
280
|
-
`return '"' + #{self} + '"';`
|
|
281
|
-
end
|
|
282
|
-
end
|
|
283
|
-
|
|
284
|
-
class Symbol
|
|
285
|
-
def to_s
|
|
286
|
-
`return #{self}.__ptr__;`
|
|
287
|
-
end
|
|
288
|
-
end
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
#
|
|
2
|
-
# match_data.rb
|
|
3
|
-
# vienna
|
|
4
|
-
#
|
|
5
|
-
# Created by Adam Beynon.
|
|
6
|
-
# Copyright 2010 Adam Beynon.
|
|
7
|
-
#
|
|
8
|
-
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
9
|
-
# of this software and associated documentation files (the "Software"), to deal
|
|
10
|
-
# in the Software without restriction, including without limitation the rights
|
|
11
|
-
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
12
|
-
# copies of the Software, and to permit persons to whom the Software is
|
|
13
|
-
# furnished to do so, subject to the following conditions:
|
|
14
|
-
#
|
|
15
|
-
# The above copyright notice and this permission notice shall be included in
|
|
16
|
-
# all copies or substantial portions of the Software.
|
|
17
|
-
#
|
|
18
|
-
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
19
|
-
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
20
|
-
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
21
|
-
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
22
|
-
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
23
|
-
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
24
|
-
# THE SOFTWARE.
|
|
25
|
-
#
|
|
26
|
-
|
|
27
|
-
class MatchData
|
|
28
|
-
|
|
29
|
-
def initialize(data)
|
|
30
|
-
@data = data
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
def inspect
|
|
34
|
-
"#<MatchData '#{@data[0]}'>"
|
|
35
|
-
end
|
|
36
|
-
end
|
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
#
|
|
2
|
-
# module.rb
|
|
3
|
-
# vienna
|
|
4
|
-
#
|
|
5
|
-
# Created by Adam Beynon.
|
|
6
|
-
# Copyright 2010 Adam Beynon.
|
|
7
|
-
#
|
|
8
|
-
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
9
|
-
# of this software and associated documentation files (the "Software"), to deal
|
|
10
|
-
# in the Software without restriction, including without limitation the rights
|
|
11
|
-
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
12
|
-
# copies of the Software, and to permit persons to whom the Software is
|
|
13
|
-
# furnished to do so, subject to the following conditions:
|
|
14
|
-
#
|
|
15
|
-
# The above copyright notice and this permission notice shall be included in
|
|
16
|
-
# all copies or substantial portions of the Software.
|
|
17
|
-
#
|
|
18
|
-
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
19
|
-
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
20
|
-
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
21
|
-
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
22
|
-
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
23
|
-
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
24
|
-
# THE SOFTWARE.
|
|
25
|
-
#
|
|
26
|
-
|
|
27
|
-
class Module
|
|
28
|
-
|
|
29
|
-
def ===(object)
|
|
30
|
-
object.is_a? self
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
def undef_method symbol
|
|
34
|
-
puts "need to undefine method: #{symbol}"
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
def define_method(method, &implementation)
|
|
38
|
-
# we are defining a method, so always use opal_self to reclaim self
|
|
39
|
-
# `#{implementation}.__fun__.opal_self = true;
|
|
40
|
-
`var mid = #{method.to_s};
|
|
41
|
-
#{self}.dm(mid, #{implementation}, false);`
|
|
42
|
-
self
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
def alias_method(new_name, old_name)
|
|
46
|
-
new_name = new_name.to_s
|
|
47
|
-
old_name = old_name.to_s
|
|
48
|
-
# puts "alias #{new_name} from #{old_name}"
|
|
49
|
-
# `console.log(#{self}.allocator.prototype);`
|
|
50
|
-
# `var body = function() {
|
|
51
|
-
# return #{self}['$' + #{old_name}].apply(this, arguments);
|
|
52
|
-
# };`
|
|
53
|
-
`#{self}.dm(#{new_name}, #{self}.allocator.prototype['$' + #{old_name}], false);`
|
|
54
|
-
self
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
def attr_accessor(*attributes)
|
|
58
|
-
# puts "in attr_accessor"
|
|
59
|
-
`#{self}.$attr_reader.apply(#{self}, #{attributes});`
|
|
60
|
-
`#{self}.$attr_writer.apply(#{self}, #{attributes});`
|
|
61
|
-
self
|
|
62
|
-
end
|
|
63
|
-
|
|
64
|
-
def to_s
|
|
65
|
-
`return #{self}.class_name;`
|
|
66
|
-
end
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
def attr_reader(*attributes)
|
|
71
|
-
attributes.each do |attribute|
|
|
72
|
-
`var mid = #{attribute.to_s};
|
|
73
|
-
#{self}.dm(mid, function() {
|
|
74
|
-
return #{self}.ig('@' + mid);
|
|
75
|
-
}, false);`
|
|
76
|
-
end
|
|
77
|
-
|
|
78
|
-
self
|
|
79
|
-
end
|
|
80
|
-
|
|
81
|
-
def attr_writer(*attributes)
|
|
82
|
-
attributes.each do |attribute|
|
|
83
|
-
`var mid = #{attribute.to_s};
|
|
84
|
-
var mid2 = mid + "=";
|
|
85
|
-
#{self}.dm(mid2, function(val) {
|
|
86
|
-
return #{self}.is('@' + mid, val);
|
|
87
|
-
}, false);`
|
|
88
|
-
end
|
|
89
|
-
|
|
90
|
-
self
|
|
91
|
-
end
|
|
92
|
-
|
|
93
|
-
def const_set(id, value)
|
|
94
|
-
`return #{self}.const_set(#{id}, #{value});`
|
|
95
|
-
end
|
|
96
|
-
|
|
97
|
-
def module_eval(&block)
|
|
98
|
-
# puts "about to module eval"
|
|
99
|
-
# `console.log(#{self});`
|
|
100
|
-
if block_given?
|
|
101
|
-
# puts "block was given.."
|
|
102
|
-
# `console.log(#{self});`
|
|
103
|
-
# `#{block}.__fun__.opal_self = true;`
|
|
104
|
-
`#{block}.apply(#{self});`
|
|
105
|
-
end
|
|
106
|
-
end
|
|
107
|
-
|
|
108
|
-
# alias_method :class_eval, :module_eval
|
|
109
|
-
end
|