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,42 +0,0 @@
|
|
|
1
|
-
#
|
|
2
|
-
# string.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
|
-
# Additions useful to browser
|
|
28
|
-
class String
|
|
29
|
-
|
|
30
|
-
# does the string contain the given string, with possible separator. This
|
|
31
|
-
# method checks against itsefl with the separator added to begin and ending
|
|
32
|
-
# of the string. Useful for checking strings in class_names (that are padded
|
|
33
|
-
# with " ", but not at start or end)
|
|
34
|
-
#
|
|
35
|
-
def __contains__(str, sep="")
|
|
36
|
-
`if ((#{sep} + #{self} + #{sep}).indexOf(#{sep} + #{str} + #{sep}) > -1) {
|
|
37
|
-
return #{true};
|
|
38
|
-
} else {
|
|
39
|
-
return #{false};
|
|
40
|
-
}`
|
|
41
|
-
end
|
|
42
|
-
end
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
#
|
|
2
|
-
# touch.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
|
-
|
|
28
|
-
class Event
|
|
29
|
-
|
|
30
|
-
def changed_touches
|
|
31
|
-
return @changed_touches if @changed_touches
|
|
32
|
-
# map them to Ruby touches (from JS touches)
|
|
33
|
-
@changed_touches = `#{self}.__event__.changedTouches`.map do |touch|
|
|
34
|
-
`#{Touch}.$from_native(#{touch});`
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
|
-
end
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* vml_context.js
|
|
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
|
-
|
|
28
|
-
if (!document.createElement('canvas').getContext) {
|
|
29
|
-
document.namespaces.add("v", "urn:schemas-microsoft-com:vml", "#default#VML");
|
|
30
|
-
var css = document.createStyleSheet();
|
|
31
|
-
css.cssText = 'canvas { overflow:hidden; display:inline-block; width: 300px; height: 150px }';
|
|
32
|
-
|
|
33
|
-
}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
#
|
|
2
|
-
# window.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 Window
|
|
28
|
-
|
|
29
|
-
def self.window
|
|
30
|
-
self
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
def self.document
|
|
34
|
-
Document
|
|
35
|
-
end
|
|
36
|
-
end
|
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
describe "Document#[]" do
|
|
3
|
-
|
|
4
|
-
before :all do
|
|
5
|
-
# add some test elements
|
|
6
|
-
elem = Element.new :div, :id => "document_aref_test"
|
|
7
|
-
|
|
8
|
-
elem.html = [
|
|
9
|
-
# id selectors
|
|
10
|
-
"<div id='a'></div>",
|
|
11
|
-
"<div id='b'></div>",
|
|
12
|
-
# non id selectors
|
|
13
|
-
"<div class='document_selector_a'></div>",
|
|
14
|
-
"<div class='document_selector_a'></div>",
|
|
15
|
-
# tag names
|
|
16
|
-
"<article></article>",
|
|
17
|
-
"<article></article>",
|
|
18
|
-
"<article></article>",
|
|
19
|
-
"<article></article>",
|
|
20
|
-
# multipart on single element
|
|
21
|
-
"<div class='partial'></div>",
|
|
22
|
-
"<div class='partial'></div>",
|
|
23
|
-
# multipart on nested elements
|
|
24
|
-
"<div>",
|
|
25
|
-
"<span class='something'>",
|
|
26
|
-
"<div></div>",
|
|
27
|
-
"</span>",
|
|
28
|
-
"</div>",
|
|
29
|
-
|
|
30
|
-
"<div id='foo_bar_baz'>",
|
|
31
|
-
"<span class='something'>",
|
|
32
|
-
"<p></p>",
|
|
33
|
-
"</span>",
|
|
34
|
-
"</div>"
|
|
35
|
-
].join("")
|
|
36
|
-
|
|
37
|
-
Document.body << elem
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
it "should return single elements when the selector is a symbol" do
|
|
41
|
-
a = Document[:a]
|
|
42
|
-
a.class.should == Element
|
|
43
|
-
a.id.should == "a"
|
|
44
|
-
a.tag.should == :div
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
it "should return nil when the selector is a symbol for an unknown id" do
|
|
48
|
-
Document[:some_id_that_will_not_exist].should == nil
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
it "should return a single element for a simple id string selector" do
|
|
52
|
-
b = Document['#b']
|
|
53
|
-
b.class.should == Element
|
|
54
|
-
b.id.should == "b"
|
|
55
|
-
b.tag.should == :div
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
it "should return nil for a simple id string selector for an unknown id" do
|
|
59
|
-
Document['#some_id_that_is_nowhere_to_be_found'].should == nil
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
it "should return an array of elements for non id selectors" do
|
|
63
|
-
res = Document['.document_selector_a']
|
|
64
|
-
|
|
65
|
-
res.class.should == Array
|
|
66
|
-
res.length.should == 2
|
|
67
|
-
|
|
68
|
-
res.each do |item|
|
|
69
|
-
item.class_name.should == "document_selector_a"
|
|
70
|
-
item.tag.should == :div
|
|
71
|
-
end
|
|
72
|
-
end
|
|
73
|
-
|
|
74
|
-
it "should return an empty array when no matching classes were found" do
|
|
75
|
-
Document['.some_class_that_is_nowhere_to_be_seen'].should == []
|
|
76
|
-
end
|
|
77
|
-
|
|
78
|
-
it "should be able to match tag names" do
|
|
79
|
-
articles = Document['article']
|
|
80
|
-
articles.class.should == Array
|
|
81
|
-
articles.length.should == 4
|
|
82
|
-
articles.each do |article|
|
|
83
|
-
article.class_name.should == ""
|
|
84
|
-
article.id.should == nil
|
|
85
|
-
article.tag.should == :article
|
|
86
|
-
end
|
|
87
|
-
|
|
88
|
-
Document['section'].should == []
|
|
89
|
-
end
|
|
90
|
-
|
|
91
|
-
it "should find multipart on single elements" do
|
|
92
|
-
res = Document['div.partial']
|
|
93
|
-
res.length.should == 2
|
|
94
|
-
res.each do |item|
|
|
95
|
-
item.tag.should == :div
|
|
96
|
-
item.class_name.should == 'partial'
|
|
97
|
-
end
|
|
98
|
-
end
|
|
99
|
-
|
|
100
|
-
it "should find multipart on nested elements" do
|
|
101
|
-
a = Document['div span.something div']
|
|
102
|
-
a.length.should == 1
|
|
103
|
-
a[0].tag.should == :div
|
|
104
|
-
|
|
105
|
-
b = Document['div#foo_bar_baz span.something p']
|
|
106
|
-
b.length.should == 1
|
|
107
|
-
b[0].tag.should == :p
|
|
108
|
-
end
|
|
109
|
-
|
|
110
|
-
end
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
describe "Document.ready?" do
|
|
3
|
-
|
|
4
|
-
it "should return true once the document is ready" do
|
|
5
|
-
Document.ready?.should == true
|
|
6
|
-
end
|
|
7
|
-
|
|
8
|
-
it "should execute blocks immediately when the document is ready" do
|
|
9
|
-
result = []
|
|
10
|
-
Document.ready? do
|
|
11
|
-
result << :a
|
|
12
|
-
end
|
|
13
|
-
result << :b
|
|
14
|
-
result.should == [:a, :b]
|
|
15
|
-
end
|
|
16
|
-
end
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
describe "Element.body" do
|
|
2
|
-
|
|
3
|
-
it "should return the body element of the document" do
|
|
4
|
-
(`#{Browser::Element.body}.__element__ === document.body ? #{true} : #{false}`).should == true
|
|
5
|
-
end
|
|
6
|
-
|
|
7
|
-
it "should return the same Element instance on multiple calls" do
|
|
8
|
-
Browser::Element.body.object_id.should == Browser::Element.body.object_id
|
|
9
|
-
Browser::Element.body.should == Browser::Element.body
|
|
10
|
-
end
|
|
11
|
-
end
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
describe "Element#clear" do
|
|
3
|
-
|
|
4
|
-
before(:all) do
|
|
5
|
-
elem = Element.new :div, :id => "element_clear_spec"
|
|
6
|
-
|
|
7
|
-
elem.html = [
|
|
8
|
-
"<div id='foo'></div>",
|
|
9
|
-
"<div id='bar'></div>",
|
|
10
|
-
"<div id='baz'></div>"
|
|
11
|
-
].join("")
|
|
12
|
-
|
|
13
|
-
Document.body << elem
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
it "should remove all elements from the receiver and return self" do
|
|
17
|
-
a = Document[:element_clear_spec]
|
|
18
|
-
a.clear.should == a
|
|
19
|
-
a.empty?.should == true
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
after(:all) do
|
|
24
|
-
Document[:element_clear_spec].remove
|
|
25
|
-
end
|
|
26
|
-
end
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
describe "Element#empty?" do
|
|
3
|
-
|
|
4
|
-
before(:all) do
|
|
5
|
-
elem = Element.new :div, :id => "element_empty_spec"
|
|
6
|
-
|
|
7
|
-
elem.html = [
|
|
8
|
-
"<div id='element_empty_spec_1'></div>",
|
|
9
|
-
"<div id='element_empty_spec_2'><p></p></div>",
|
|
10
|
-
"<div id='element_empty_spec_3'> </div>"
|
|
11
|
-
].join("")
|
|
12
|
-
|
|
13
|
-
Document.body << elem
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
it "should correctly return if an element is empty or not of content" do
|
|
17
|
-
Document[:element_empty_spec_1].empty?.should == true
|
|
18
|
-
Document[:element_empty_spec_2].empty?.should == false
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
it "should ignore whitespace if there is no other content" do
|
|
22
|
-
Document[:element_empty_spec_3].empty?.should == true
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
after :all do
|
|
26
|
-
# puts "running in after all"
|
|
27
|
-
Document[:element_empty_spec].remove
|
|
28
|
-
end
|
|
29
|
-
end
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
describe "Element#has_class?" do
|
|
3
|
-
|
|
4
|
-
before :all do
|
|
5
|
-
elem = Element.new :div, :id => "element_has_class_spec"
|
|
6
|
-
|
|
7
|
-
elem.html = [
|
|
8
|
-
"<div id='element_has_class_spec_1' class='foo'></div>",
|
|
9
|
-
"<div id='element_has_class_spec_2' class='foo bar'></div>",
|
|
10
|
-
"<div id='element_has_class_spec_3'></div>"
|
|
11
|
-
].join("")
|
|
12
|
-
|
|
13
|
-
Document.body << elem
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
it "should return true if the element has the given class" do
|
|
17
|
-
Document[:element_has_class_spec_1].has_class?('foo').should == true
|
|
18
|
-
Document[:element_has_class_spec_1].has_class?('baz').should == false
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
it "should return true if the class is one of many the element has" do
|
|
22
|
-
Document[:element_has_class_spec_2].has_class?('foo').should == true
|
|
23
|
-
Document[:element_has_class_spec_2].has_class?('bar').should == true
|
|
24
|
-
Document[:element_has_class_spec_2].has_class?('baz').should == false
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
it "should return false if the element has no class" do
|
|
28
|
-
Document[:element_has_class_spec_3].has_class?('foo').should == false
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
it "should not count a partial class name as a matching name" do
|
|
32
|
-
Document[:element_has_class_spec_1].has_class?('fo').should == false
|
|
33
|
-
Document[:element_has_class_spec_1].has_class?('oo').should == false
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
after :all do
|
|
37
|
-
# puts "running in after all"
|
|
38
|
-
Document[:element_has_class_spec].remove
|
|
39
|
-
end
|
|
40
|
-
end
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
describe "Element#hidden?" do
|
|
3
|
-
|
|
4
|
-
before(:all) do
|
|
5
|
-
elem = Element.new :div, :id => "element_hidden_spec"
|
|
6
|
-
|
|
7
|
-
elem.html = [
|
|
8
|
-
"<div id='testing_hidden' style='display: none;'></div>",
|
|
9
|
-
"<div id='testing_not_hidden'></div>"
|
|
10
|
-
].join("")
|
|
11
|
-
|
|
12
|
-
Document.body << elem
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
it "should correctly identify elements that are hidden" do
|
|
16
|
-
Document[:testing_hidden].hidden?.should == true
|
|
17
|
-
Document[:testing_not_hidden].hidden?.should == false
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
after :all do
|
|
21
|
-
Document[:element_hidden_spec].remove
|
|
22
|
-
end
|
|
23
|
-
end
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
describe "Element#hide" do
|
|
3
|
-
|
|
4
|
-
before(:all) do
|
|
5
|
-
elem = Element.new :div, :id => "element_hide_spec"
|
|
6
|
-
|
|
7
|
-
elem.html = [
|
|
8
|
-
"<div id='testing_hide_hidden' style='display: none;'></div>",
|
|
9
|
-
"<div id='testing_hide_visible'></div>"
|
|
10
|
-
].join("")
|
|
11
|
-
|
|
12
|
-
Document.body << elem
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
it "should hide elements on the page" do
|
|
16
|
-
Document[:testing_hide_visible].hide
|
|
17
|
-
Document[:testing_hide_visible].visible?.should == false
|
|
18
|
-
Document[:testing_hide_visible].hidden?.should == true
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
it "should leave already hidden elements hidden" do
|
|
22
|
-
Document[:testing_hide_hidden].hide
|
|
23
|
-
Document[:testing_hide_hidden].visible?.should == false
|
|
24
|
-
Document[:testing_hide_hidden].hidden?.should == true
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
after :all do
|
|
28
|
-
Document[:element_hide_spec].remove
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
end
|