opal 0.3.42 → 0.3.43
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/CHANGELOG.md +29 -0
- data/CONTRIBUTING.md +9 -1
- data/Rakefile +58 -21
- data/config.ru +14 -0
- data/examples/rack/Gemfile +3 -0
- data/examples/rack/README.md +22 -0
- data/examples/rack/app/app.rb +5 -0
- data/examples/rack/config.ru +20 -0
- data/examples/rack/index.html +12 -0
- data/examples/server/Gemfile +3 -0
- data/examples/server/README.md +22 -0
- data/examples/server/app/app.rb +18 -0
- data/examples/server/config.ru +10 -0
- data/examples/server/index.html.erb +10 -0
- data/lib/opal.rb +4 -1
- data/lib/opal/erb.rb +41 -0
- data/lib/opal/lexer.rb +1 -1
- data/lib/opal/parser.rb +5 -12
- data/lib/opal/processor.rb +70 -0
- data/lib/opal/server.rb +93 -0
- data/lib/opal/version.rb +1 -1
- data/opal.gemspec +1 -1
- data/opal/{opal/date.rb → date.rb} +0 -0
- data/opal/erb.rb +19 -0
- data/{spec → opal}/fileutils.rb +0 -0
- data/{spec → opal}/iconv.rb +0 -0
- data/opal/observer.rb +202 -0
- data/opal/opal-browser/local_storage.rb +27 -0
- data/opal/opal-browser/script_loader.rb +40 -0
- data/opal/opal-eventable.rb +26 -0
- data/opal/opal-parser.js.erb +8 -3
- data/opal/{opal/template.rb → opal-template.rb} +0 -0
- data/opal/opal.rb +20 -18
- data/opal/opal/array.rb +1 -1
- data/opal/opal/class.rb +6 -1
- data/opal/opal/kernel.rb +1 -1
- data/opal/opal/native.rb +91 -5
- data/opal/opal/runtime.js +39 -8
- data/{spec → opal}/pp.rb +0 -0
- data/opal/{opal/racc.rb → racc.rb} +0 -0
- data/{spec → opal}/rbconfig.rb +0 -0
- data/opal/{opal/strscan.rb → strscan.rb} +0 -0
- data/{spec → opal}/yaml.rb +0 -0
- data/spec/{core_ext → opal}/array/element_reference_spec.rb +0 -0
- data/spec/{core_ext → opal}/array/equal_value_spec.rb +0 -0
- data/spec/{core_ext → opal}/array/fill_spec.rb +0 -0
- data/spec/{core_ext → opal}/array/reduce_spec.rb +0 -0
- data/spec/{core_ext → opal}/array/to_json_spec.rb +0 -0
- data/spec/{core_ext → opal}/basic_object/send_spec.rb +0 -0
- data/spec/{core_ext → opal}/boolean/singleton_class_spec.rb +0 -0
- data/spec/{core_ext → opal}/boolean/to_json_spec.rb +0 -0
- data/spec/opal/browser/local_storage_spec.rb +55 -0
- data/spec/{core_ext → opal}/class/_inherited_spec.rb +0 -0
- data/spec/{core_ext → opal}/class/proc_methods_spec.rb +0 -0
- data/spec/{core_ext → opal}/class/singleton_methods_spec.rb +0 -0
- data/spec/{core_ext → opal}/constants_spec.rb +0 -0
- data/spec/opal/erb/erb_spec.rb +31 -0
- data/spec/opal/eventable_spec.rb +75 -0
- data/spec/{core_ext → opal}/method_missing_spec.rb +0 -0
- data/spec/opal/native/element_reference_spec.rb +40 -0
- data/spec/opal/native/equal_spec.rb +17 -0
- data/spec/opal/native/fixtures/classes.rb +27 -0
- data/spec/opal/native/global_spec.rb +12 -0
- data/spec/opal/native/initialize_spec.rb +8 -0
- data/spec/opal/native/method_missing_spec.rb +53 -0
- data/spec/{core_ext → opal}/native/to_native_spec.rb +1 -1
- data/spec/{core_ext → opal}/nil/to_json_spec.rb +0 -0
- data/spec/opal/runtime/eval_spec.rb +5 -0
- data/spec/opal/runtime/send_spec.rb +34 -0
- data/spec/ospec/main.rb.erb +9 -3
- data/spec/ospec/runner.rb +132 -5
- data/spec/{grammar → parser}/alias_spec.rb +0 -0
- data/spec/{grammar → parser}/and_spec.rb +0 -0
- data/spec/{grammar → parser}/array_spec.rb +0 -0
- data/spec/{grammar → parser}/attrasgn_spec.rb +0 -0
- data/spec/{grammar → parser}/begin_spec.rb +0 -0
- data/spec/{grammar → parser}/block_spec.rb +0 -0
- data/spec/{grammar → parser}/break_spec.rb +0 -0
- data/spec/{grammar → parser}/call_spec.rb +0 -0
- data/spec/{grammar → parser}/class_spec.rb +0 -0
- data/spec/{grammar → parser}/const_spec.rb +0 -0
- data/spec/{grammar → parser}/cvar_spec.rb +0 -0
- data/spec/{grammar → parser}/def_spec.rb +0 -0
- data/spec/{grammar → parser}/false_spec.rb +0 -0
- data/spec/{grammar → parser}/file_spec.rb +0 -0
- data/spec/{grammar → parser}/gvar_spec.rb +0 -0
- data/spec/{grammar → parser}/hash_spec.rb +0 -0
- data/spec/{grammar → parser}/iasgn_spec.rb +0 -0
- data/spec/{grammar → parser}/if_spec.rb +0 -0
- data/spec/{grammar → parser}/iter_spec.rb +0 -0
- data/spec/{grammar → parser}/ivar_spec.rb +0 -0
- data/spec/{grammar → parser}/lambda_spec.rb +0 -0
- data/spec/{grammar → parser}/lasgn_spec.rb +0 -0
- data/spec/{grammar → parser}/line_spec.rb +0 -0
- data/spec/{grammar → parser}/lvar_spec.rb +0 -0
- data/spec/{grammar → parser}/masgn_spec.rb +0 -0
- data/spec/{grammar → parser}/module_spec.rb +0 -0
- data/spec/{grammar → parser}/nil_spec.rb +0 -0
- data/spec/{grammar → parser}/not_spec.rb +0 -0
- data/spec/{grammar → parser}/nth_ref_spec.rb +0 -0
- data/spec/{grammar → parser}/op_asgn1_spec.rb +0 -0
- data/spec/{grammar → parser}/op_asgn2_spec.rb +0 -0
- data/spec/{grammar → parser}/or_spec.rb +0 -0
- data/spec/{grammar → parser}/parser_spec.rb +0 -0
- data/spec/{grammar → parser}/return_spec.rb +0 -0
- data/spec/{grammar → parser}/sclass_spec.rb +0 -0
- data/spec/{grammar → parser}/self_spec.rb +0 -0
- data/spec/{grammar → parser}/str_spec.rb +0 -0
- data/spec/{grammar → parser}/string_spec.rb +0 -0
- data/spec/{grammar → parser}/strscan/check_spec.rb +0 -0
- data/spec/{grammar → parser}/strscan/scan_spec.rb +0 -0
- data/spec/{grammar → parser}/super_spec.rb +0 -0
- data/spec/{grammar → parser}/true_spec.rb +0 -0
- data/spec/{grammar → parser}/undef_spec.rb +0 -0
- data/spec/{grammar → parser}/unless_spec.rb +0 -0
- data/spec/{grammar → parser}/while_spec.rb +0 -0
- data/spec/{grammar → parser}/xstr_spec.rb +0 -0
- data/spec/{grammar → parser}/yield_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/allocate_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/append_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/array_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/assoc_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/at_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/choice_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/clear_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/clone_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/collect_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/combination_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/compact_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/comparison_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/concat_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/constructor_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/count_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/delete_at_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/delete_if_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/delete_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/drop_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/drop_while_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/dup_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/each_index_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/each_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/empty_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/eql_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/fetch_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/find_index_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/first_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/fixtures/classes.rb +0 -0
- data/spec/{core → rubyspec/core}/array/flatten_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/frozen_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/include_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/index_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/insert_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/inspect_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/intersection_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/join_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/keep_if_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/last_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/length_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/map_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/minus_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/multiply_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/new_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/ntimes_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/plus_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/pop_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/push_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/rassoc_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/reject_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/replace_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/reverse_each_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/reverse_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/rindex_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/select_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/shared/collect.rb +0 -0
- data/spec/{core → rubyspec/core}/array/shared/enumeratorize.rb +0 -0
- data/spec/{core → rubyspec/core}/array/shared/eql.rb +0 -0
- data/spec/{core → rubyspec/core}/array/shared/index.rb +0 -0
- data/spec/{core → rubyspec/core}/array/shared/inspect.rb +0 -0
- data/spec/{core → rubyspec/core}/array/shared/join.rb +0 -0
- data/spec/{core → rubyspec/core}/array/shared/keep_if.rb +0 -0
- data/spec/{core → rubyspec/core}/array/shared/length.rb +0 -0
- data/spec/{core → rubyspec/core}/array/shared/replace.rb +0 -0
- data/spec/{core → rubyspec/core}/array/shared/slice.rb +0 -0
- data/spec/{core → rubyspec/core}/array/shift_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/shuffle_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/size_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/slice_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/sort_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/take_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/take_while_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/to_a_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/to_ary_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/try_convert_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/uniq_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/unshift_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/array/zip_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/class/bridge_class_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/class/extend_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/class/fixtures/classes.rb +0 -0
- data/spec/{core → rubyspec/core}/class/instance_methods_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/class/last_value_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/class/new_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/enumerable/all_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/enumerable/any_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/enumerable/collect_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/enumerable/count_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/enumerable/detect_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/enumerable/drop_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/enumerable/drop_while_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/enumerable/each_slice_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/enumerable/each_with_index_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/enumerable/each_with_object_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/enumerable/entries_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/enumerable/find_all_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/enumerable/find_index_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/enumerable/find_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/enumerable/first_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/enumerable/fixtures/classes.rb +0 -0
- data/spec/{core → rubyspec/core}/enumerable/grep_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/enumerable/group_by_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/enumerable/select_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/enumerable/take_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/enumerable/to_a_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/enumerator/each_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/enumerator/new_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/enumerator/next_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/enumerator/rewind_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/false/and_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/false/inspect_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/false/or_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/false/to_s_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/false/xor_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/hash/allocate_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/hash/assoc_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/hash/clear_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/hash/clone_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/hash/constructor_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/hash/default_proc_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/hash/default_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/hash/delete_if_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/hash/delete_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/hash/dup_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/hash/each_key_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/hash/each_pair_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/hash/each_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/hash/each_value_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/hash/element_reference_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/hash/element_set_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/hash/empty_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/hash/fetch_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/hash/flatten_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/hash/has_key_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/hash/has_value_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/hash/include_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/hash/index_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/hash/indexes_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/hash/indices_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/hash/invert_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/hash/keep_if_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/hash/key_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/hash/keys_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/hash/length_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/hash/member_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/hash/merge_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/hash/new_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/hash/rassoc_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/hash/reject_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/hash/replace_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/hash/select_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/hash/shift_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/hash/size_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/hash/to_a_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/hash/to_json_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/hash/to_native_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/hash/update_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/hash/value_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/hash/values_at_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/hash/values_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/json/parse_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/kernel/Array_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/kernel/block_given.rb +0 -0
- data/spec/{core → rubyspec/core}/kernel/class_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/kernel/define_singleton_method_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/kernel/eql_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/kernel/equal_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/kernel/equal_value_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/kernel/extend_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/kernel/format_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/kernel/instance_eval_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/kernel/instance_variable_get_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/kernel/instance_variable_set_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/kernel/loop_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/kernel/match_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/kernel/method_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/kernel/methods_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/kernel/nil_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/kernel/p_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/kernel/printf_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/kernel/proc_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/kernel/rand_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/kernel/respond_to_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/kernel/send_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/kernel/sprintf_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/kernel/tap_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/kernel/to_json_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/kernel/to_s_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/matchdata/to_a_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/module/alias_method_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/module/ancestors_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/module/append_features_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/module/const_get_spec.rb +0 -0
- data/spec/rubyspec/core/module/const_missing_spec.rb +18 -0
- data/spec/{core → rubyspec/core}/module/const_set_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/module/fixtures/classes.rb +0 -0
- data/spec/{core → rubyspec/core}/module/method_defined_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/module/module_function_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/module/undef_method_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/nil/and_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/nil/dup_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/nil/inspect_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/nil/nil_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/nil/or_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/nil/to_a_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/nil/to_f_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/nil/to_h_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/nil/to_i_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/nil/to_s_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/nil/xor_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/numeric/abs_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/numeric/bit_and_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/numeric/bit_or_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/numeric/bit_xor_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/numeric/ceil_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/numeric/chr_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/numeric/comparison_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/numeric/complement_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/numeric/divide_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/numeric/downto_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/numeric/eql_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/numeric/equal_value_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/numeric/even_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/numeric/exponent_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/numeric/floor_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/numeric/gt_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/numeric/gte_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/numeric/integer_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/numeric/left_shift_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/numeric/lt_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/numeric/lte_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/numeric/magnitude_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/numeric/minus_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/numeric/modulo_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/numeric/multiply_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/numeric/next_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/numeric/odd_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/numeric/ord_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/numeric/plus_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/numeric/pred_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/numeric/right_shift_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/numeric/succ_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/numeric/times_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/numeric/to_f_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/numeric/to_i_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/numeric/to_json_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/numeric/to_s_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/numeric/uminus_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/numeric/upto_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/numeric/zero_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/proc/call_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/proc/element_reference_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/proc/proc_tricks_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/range/begin_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/range/case_compare_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/range/end_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/regexp/match_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/runtime/call_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/runtime/class_hierarchy_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/runtime/def_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/runtime/defined_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/runtime/super_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/string/capitalize_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/string/casecmp_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/string/chomp_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/string/chop_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/string/chr_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/string/comparison_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/string/demodulize_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/string/downcase_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/string/element_reference_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/string/empty_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/string/end_with_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/string/fixtures/classes.rb +0 -0
- data/spec/{core → rubyspec/core}/string/format_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/string/gsub_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/string/include_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/string/intern_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/string/length_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/string/lstrip_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/string/match_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/string/next_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/string/ord_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/string/partition_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/string/reverse_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/string/rstrip_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/string/size_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/string/slice_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/string/split_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/string/start_with_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/string/strip_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/string/sub_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/string/succ_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/string/sum_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/string/swapcase_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/string/to_a_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/string/to_f_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/string/to_i_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/string/to_json_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/string/to_s_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/string/to_str_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/string/to_sym_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/string/underscore_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/string/upcase_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/symbol/to_proc_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/time/at_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/time/day_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/time/friday_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/time/hour_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/time/min_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/time/monday_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/time/month_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/time/now_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/time/saturday_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/true/and_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/true/inspect_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/true/or_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/true/to_s_spec.rb +0 -0
- data/spec/{core → rubyspec/core}/true/xor_spec.rb +0 -0
- data/spec/rubyspec/filters/bugs/alias.rb +6 -0
- data/spec/{filters → rubyspec/filters/bugs}/ancestors.rb +0 -0
- data/spec/rubyspec/filters/bugs/array.rb +5 -0
- data/spec/{filters → rubyspec/filters/bugs}/array_delete.rb +0 -0
- data/spec/{filters → rubyspec/filters/bugs}/array_fetch.rb +0 -0
- data/spec/{filters → rubyspec/filters/bugs}/array_first.rb +0 -0
- data/spec/{filters → rubyspec/filters/bugs}/array_flatten.rb +0 -0
- data/spec/{filters → rubyspec/filters/bugs}/array_intersection.rb +0 -0
- data/spec/{filters → rubyspec/filters/bugs}/array_join.rb +0 -0
- data/spec/{filters → rubyspec/filters/bugs}/block_args.rb +0 -0
- data/spec/rubyspec/filters/bugs/break.rb +10 -0
- data/spec/rubyspec/filters/bugs/case.rb +8 -0
- data/spec/{filters → rubyspec/filters/bugs}/coerce_integer.rb +0 -0
- data/spec/rubyspec/filters/bugs/kernel/instance_variables.rb +3 -0
- data/spec/rubyspec/filters/bugs/language/class.rb +11 -0
- data/spec/rubyspec/filters/bugs/language/class_variables.rb +12 -0
- data/spec/rubyspec/filters/bugs/module/class_variables.rb +6 -0
- data/spec/rubyspec/filters/bugs/public_methods.rb +3 -0
- data/spec/{filters → rubyspec/filters/mspec}/mocks.rb +0 -0
- data/spec/rubyspec/filters/mspec/ruby_exe.rb +5 -0
- data/spec/{filters → rubyspec/filters/mspec}/should_receive.rb +1 -0
- data/spec/rubyspec/filters/parser/block_args.rb +51 -0
- data/spec/{filters → rubyspec/filters/unsupported}/array_subclasses.rb +0 -0
- data/spec/{filters → rubyspec/filters/unsupported}/frozen.rb +0 -0
- data/spec/{filters → rubyspec/filters/unsupported}/tainted.rb +0 -0
- data/spec/{fixtures → rubyspec/fixtures}/class.rb +0 -0
- data/spec/{fixtures → rubyspec/fixtures}/class_variables.rb +0 -0
- data/spec/rubyspec/fixtures/constants.rb +20 -0
- data/spec/{language → rubyspec/language}/alias_spec.rb +7 -7
- data/spec/{language → rubyspec/language}/and_spec.rb +0 -0
- data/spec/{language → rubyspec/language}/array_spec.rb +3 -3
- data/spec/{language → rubyspec/language}/block_spec.rb +59 -59
- data/spec/{language → rubyspec/language}/break_spec.rb +15 -19
- data/spec/{language → rubyspec/language}/case_spec.rb +6 -6
- data/spec/{language → rubyspec/language}/class_spec.rb +16 -18
- data/spec/{language → rubyspec/language}/class_variable_spec.rb +10 -10
- data/spec/{language → rubyspec/language}/def_spec.rb +0 -0
- data/spec/{language → rubyspec/language}/defined_spec.rb +2 -2
- data/spec/{language → rubyspec/language}/ensure_spec.rb +0 -0
- data/spec/{language → rubyspec/language}/execution_spec.rb +0 -0
- data/spec/{language → rubyspec/language}/fixtures/array.rb +0 -0
- data/spec/{language → rubyspec/language}/fixtures/block.rb +0 -0
- data/spec/{language → rubyspec/language}/fixtures/break.rb +0 -0
- data/spec/{language → rubyspec/language}/fixtures/ensure.rb +0 -0
- data/spec/{language → rubyspec/language}/fixtures/literal_lambda.rb +0 -0
- data/spec/{language → rubyspec/language}/fixtures/metaclass.rb +0 -0
- data/spec/{language → rubyspec/language}/fixtures/module.rb +0 -0
- data/spec/{language → rubyspec/language}/fixtures/next.rb +0 -0
- data/spec/{language → rubyspec/language}/fixtures/return.rb +0 -0
- data/spec/{language → rubyspec/language}/fixtures/send.rb +0 -0
- data/spec/{language → rubyspec/language}/fixtures/send_1.9.rb +0 -0
- data/spec/{language → rubyspec/language}/fixtures/super.rb +0 -0
- data/spec/{language → rubyspec/language}/fixtures/variables.rb +0 -0
- data/spec/{language → rubyspec/language}/fixtures/yield.rb +0 -0
- data/spec/{language → rubyspec/language}/for_spec.rb +0 -0
- data/spec/{language → rubyspec/language}/hash_spec.rb +0 -0
- data/spec/{language → rubyspec/language}/if_spec.rb +0 -0
- data/spec/{language → rubyspec/language}/literal_lambda_spec.rb +0 -0
- data/spec/{language → rubyspec/language}/loop_spec.rb +0 -0
- data/spec/{language → rubyspec/language}/metaclass_spec.rb +0 -0
- data/spec/{language → rubyspec/language}/module_spec.rb +0 -0
- data/spec/{language → rubyspec/language}/next_spec.rb +0 -0
- data/spec/{language → rubyspec/language}/not_spec.rb +0 -0
- data/spec/{language → rubyspec/language}/numbers_spec.rb +0 -0
- data/spec/{language → rubyspec/language}/or_spec.rb +0 -0
- data/spec/{language → rubyspec/language}/order_spec.rb +0 -0
- data/spec/{language → rubyspec/language}/precedence_spec.rb +0 -0
- data/spec/{language → rubyspec/language}/predefined_spec.rb +0 -0
- data/spec/{language → rubyspec/language}/proc_spec.rb +0 -0
- data/spec/{language → rubyspec/language}/redo_spec.rb +0 -0
- data/spec/{language → rubyspec/language}/regexp_spec.rb +0 -0
- data/spec/{language → rubyspec/language}/rescue_spec.rb +0 -0
- data/spec/{language → rubyspec/language}/retry_spec.rb +0 -0
- data/spec/{language → rubyspec/language}/return_spec.rb +0 -0
- data/spec/{language → rubyspec/language}/send_spec.rb +0 -1
- data/spec/{language → rubyspec/language}/singleton_class_spec.rb +0 -0
- data/spec/{language → rubyspec/language}/string_spec.rb +0 -0
- data/spec/{language → rubyspec/language}/super_spec.rb +0 -0
- data/spec/{language → rubyspec/language}/symbol_spec.rb +0 -0
- data/spec/{language → rubyspec/language}/undef_spec.rb +0 -0
- data/spec/{language → rubyspec/language}/unless_spec.rb +0 -0
- data/spec/{language → rubyspec/language}/until_spec.rb +0 -0
- data/spec/{language → rubyspec/language}/variables_spec.rb +3 -3
- data/spec/{language → rubyspec/language}/versions/array_1.9.rb +0 -0
- data/spec/{language → rubyspec/language}/versions/case_1.9.rb +0 -0
- data/spec/{language → rubyspec/language}/versions/hash_1.9.rb +0 -0
- data/spec/{language → rubyspec/language}/versions/literal_lambda_1.9.rb +0 -0
- data/spec/{language → rubyspec/language}/versions/not_1.9.rb +0 -0
- data/spec/{language → rubyspec/language}/versions/send_1.9.rb +0 -0
- data/spec/{language → rubyspec/language}/versions/symbol_1.9.rb +0 -0
- data/spec/{language → rubyspec/language}/versions/variables_1.9.rb +0 -0
- data/spec/{language → rubyspec/language}/while_spec.rb +0 -0
- data/spec/{language → rubyspec/language}/yield_spec.rb +0 -0
- data/spec/{library → rubyspec/library}/date/new_spec.rb +0 -0
- data/spec/{library → rubyspec/library}/date/to_s_spec.rb +0 -0
- data/spec/{library → rubyspec/library}/date/today_spec.rb +0 -0
- data/spec/rubyspec/library/observer/add_observer_spec.rb +31 -0
- data/spec/rubyspec/library/observer/count_observers_spec.rb +33 -0
- data/spec/rubyspec/library/observer/delete_observer_spec.rb +19 -0
- data/spec/rubyspec/library/observer/delete_observers_spec.rb +19 -0
- data/spec/rubyspec/library/observer/fixtures/classes.rb +25 -0
- data/spec/rubyspec/library/observer/notify_observers_spec.rb +31 -0
- data/spec/rubyspec/spec_helper.rb +59 -0
- data/spec/simple_erb_template.opalerb +1 -0
- data/spec/spec_helper.rb +0 -59
- data/spec/templates/foo/bar.opalerb +1 -0
- data/spec/templates/prefixed.opalerb +1 -0
- metadata +1028 -961
- data/opal/opal/browser_loader.js +0 -57
- data/spec/core_ext/native/fixtures/classes.rb +0 -5
- data/spec/core_ext/native/initialize_spec.rb +0 -8
- data/spec/core_ext/native/method_missing_spec.rb +0 -8
- data/spec/date.rb +0 -0
- data/spec/fixtures/constants.rb +0 -0
- data/spec/ospec/filter.rb +0 -32
- data/spec/ospec/phantom.rb +0 -97
|
@@ -25,7 +25,6 @@ describe "The break statement in a captured block" do
|
|
|
25
25
|
end
|
|
26
26
|
|
|
27
27
|
describe "when the invocation of the scope creating the block is still active" do
|
|
28
|
-
pending do
|
|
29
28
|
deviates_on :rubinius do
|
|
30
29
|
it "returns a value to the invoking scope when invoking the block from the scope creating the block" do
|
|
31
30
|
@program.break_in_method
|
|
@@ -59,16 +58,15 @@ describe "The break statement in a captured block" do
|
|
|
59
58
|
ScratchPad.recorded.should == [:a, :xa, :c, :aa, :b]
|
|
60
59
|
end
|
|
61
60
|
end
|
|
62
|
-
end
|
|
63
61
|
end
|
|
64
62
|
|
|
65
63
|
describe "from a scope that has returned" do
|
|
66
|
-
|
|
64
|
+
it "raises a LocalJumpError when calling the block from a method" do
|
|
67
65
|
lambda { @program.break_in_method_captured }.should raise_error(LocalJumpError)
|
|
68
66
|
ScratchPad.recorded.should == [:a, :za, :xa, :zd, :zb]
|
|
69
67
|
end
|
|
70
68
|
|
|
71
|
-
|
|
69
|
+
it "raises a LocalJumpError when yielding to the block" do
|
|
72
70
|
lambda { @program.break_in_yield_captured }.should raise_error(LocalJumpError)
|
|
73
71
|
ScratchPad.recorded.should == [:a, :za, :xa, :zd, :aa, :zb]
|
|
74
72
|
end
|
|
@@ -82,27 +80,26 @@ describe "The break statement in a lambda" do
|
|
|
82
80
|
end
|
|
83
81
|
|
|
84
82
|
describe "when the invocation of the scope creating the lambda is still active" do
|
|
85
|
-
|
|
83
|
+
it "returns nil when not passed an argument" do
|
|
86
84
|
@program.break_in_defining_scope false
|
|
87
85
|
ScratchPad.recorded.should == [:a, :b, nil, :d]
|
|
88
86
|
end
|
|
89
87
|
|
|
90
|
-
|
|
88
|
+
it "returns a value to the scope creating and calling the lambda" do
|
|
91
89
|
@program.break_in_defining_scope
|
|
92
90
|
ScratchPad.recorded.should == [:a, :b, :break, :d]
|
|
93
91
|
end
|
|
94
92
|
|
|
95
|
-
|
|
93
|
+
it "returns a value to the method scope below invoking the lambda" do
|
|
96
94
|
@program.break_in_nested_scope
|
|
97
95
|
ScratchPad.recorded.should == [:a, :d, :aa, :b, :break, :bb, :e]
|
|
98
96
|
end
|
|
99
97
|
|
|
100
|
-
|
|
98
|
+
it "returns a value to a block scope invoking the lambda in a method below" do
|
|
101
99
|
@program.break_in_nested_scope_block
|
|
102
100
|
ScratchPad.recorded.should == [:a, :d, :aa, :aaa, :bb, :b, :break, :cc, :bbb, :dd, :e]
|
|
103
101
|
end
|
|
104
102
|
|
|
105
|
-
pending do
|
|
106
103
|
deviates_on :rubinius do
|
|
107
104
|
it "returns a value when yielding to a lambda passed as a block argument" do
|
|
108
105
|
@program.break_in_nested_scope_yield
|
|
@@ -116,33 +113,32 @@ describe "The break statement in a lambda" do
|
|
|
116
113
|
ScratchPad.recorded.should == [:a, :d, :aaa, :b]
|
|
117
114
|
end
|
|
118
115
|
end
|
|
119
|
-
end
|
|
120
116
|
end
|
|
121
117
|
|
|
122
118
|
describe "created at the toplevel" do
|
|
123
|
-
|
|
119
|
+
it "returns a value when invoking from the toplevel" do
|
|
124
120
|
code = fixture __FILE__, "break_lambda_toplevel.rb"
|
|
125
121
|
ruby_exe(code).chomp.should == "a,b,break,d"
|
|
126
122
|
end
|
|
127
123
|
|
|
128
|
-
|
|
124
|
+
it "returns a value when invoking from a method" do
|
|
129
125
|
code = fixture __FILE__, "break_lambda_toplevel_method.rb"
|
|
130
126
|
ruby_exe(code).chomp.should == "a,d,b,break,e,f"
|
|
131
127
|
end
|
|
132
128
|
|
|
133
|
-
|
|
129
|
+
it "returns a value when invoking from a block" do
|
|
134
130
|
code = fixture __FILE__, "break_lambda_toplevel_block.rb"
|
|
135
131
|
ruby_exe(code).chomp.should == "a,d,f,b,break,g,e,h"
|
|
136
132
|
end
|
|
137
133
|
end
|
|
138
134
|
|
|
139
135
|
describe "from a scope that has returned" do
|
|
140
|
-
|
|
136
|
+
it "returns a value to the method scope invoking the lambda" do
|
|
141
137
|
@program.break_in_method
|
|
142
138
|
ScratchPad.recorded.should == [:a, :la, :ld, :lb, :break, :b]
|
|
143
139
|
end
|
|
144
140
|
|
|
145
|
-
|
|
141
|
+
it "returns a value to the block scope invoking the lambda in a method" do
|
|
146
142
|
@program.break_in_block_in_method
|
|
147
143
|
ScratchPad.recorded.should == [:a, :aaa, :b, :la, :ld, :lb, :break, :c, :bbb, :d]
|
|
148
144
|
end
|
|
@@ -151,7 +147,7 @@ describe "The break statement in a lambda" do
|
|
|
151
147
|
# the lambda as a block, which in this case means breaking to a scope that
|
|
152
148
|
# has returned. This is a subtle and confusing semantic where a block pass
|
|
153
149
|
# is removing the lambda-ness of a lambda.
|
|
154
|
-
|
|
150
|
+
it "raises a LocalJumpError when yielding to a lambda passed as a block argument" do
|
|
155
151
|
lambda { @program.break_in_method_yield }.should raise_error(LocalJumpError)
|
|
156
152
|
ScratchPad.recorded.should == [:a, :la, :ld, :aaa, :lb]
|
|
157
153
|
end
|
|
@@ -231,7 +227,7 @@ describe "Executing break from within a block" do
|
|
|
231
227
|
end
|
|
232
228
|
|
|
233
229
|
# Discovered in JRuby (see JRUBY-2756)
|
|
234
|
-
|
|
230
|
+
it "returns from the original invoking method even in case of chained calls" do
|
|
235
231
|
class BreakTest
|
|
236
232
|
# case #1: yield
|
|
237
233
|
def self.meth_with_yield(&b)
|
|
@@ -301,7 +297,7 @@ describe "Executing break from within a block" do
|
|
|
301
297
|
end
|
|
302
298
|
end
|
|
303
299
|
|
|
304
|
-
|
|
300
|
+
it "runs ensures when continuing upward" do
|
|
305
301
|
ScratchPad.record []
|
|
306
302
|
|
|
307
303
|
bt2 = BreakTest2.new
|
|
@@ -324,7 +320,7 @@ describe "Executing break from within a block" do
|
|
|
324
320
|
ScratchPad.recorded.should == [:begin, :ensure]
|
|
325
321
|
end
|
|
326
322
|
|
|
327
|
-
|
|
323
|
+
it "doesn't run ensures in the destination method" do
|
|
328
324
|
ScratchPad.record []
|
|
329
325
|
|
|
330
326
|
bt2 = BreakTest2.new
|
|
@@ -163,7 +163,7 @@ describe "The 'case'-construct" do
|
|
|
163
163
|
end.should == nil
|
|
164
164
|
end
|
|
165
165
|
|
|
166
|
-
|
|
166
|
+
it "lets you define a method after the case statement" do
|
|
167
167
|
case (def foo; 'foo'; end; 'f')
|
|
168
168
|
when 'a'
|
|
169
169
|
'foo'
|
|
@@ -244,13 +244,13 @@ describe "The 'case'-construct" do
|
|
|
244
244
|
end
|
|
245
245
|
|
|
246
246
|
describe "The 'case'-construct with no target expression" do
|
|
247
|
-
|
|
247
|
+
it "evaluates the body of the first clause when at least one of its condition expressions is true" do
|
|
248
248
|
# case
|
|
249
249
|
# when true, false; 'foo'
|
|
250
250
|
# end.should == 'foo'
|
|
251
251
|
end
|
|
252
252
|
|
|
253
|
-
|
|
253
|
+
it "evaluates the body of the first when clause that is not false/nil" do
|
|
254
254
|
# case
|
|
255
255
|
# when false; 'foo'
|
|
256
256
|
# when 2; 'bar'
|
|
@@ -264,7 +264,7 @@ describe "The 'case'-construct with no target expression" do
|
|
|
264
264
|
# end.should == 'bar'
|
|
265
265
|
end
|
|
266
266
|
|
|
267
|
-
|
|
267
|
+
it "evaluates the body of the else clause if all when clauses are false/nil" do
|
|
268
268
|
# case
|
|
269
269
|
# when false; 'foo'
|
|
270
270
|
# when nil; 'foo'
|
|
@@ -273,7 +273,7 @@ describe "The 'case'-construct with no target expression" do
|
|
|
273
273
|
# end.should == 'baz'
|
|
274
274
|
end
|
|
275
275
|
|
|
276
|
-
|
|
276
|
+
it "evaluates multiple conditional expressions as a boolean disjunction" do
|
|
277
277
|
# case
|
|
278
278
|
# when true, false; 'foo'
|
|
279
279
|
# else 'bar'
|
|
@@ -285,7 +285,7 @@ describe "The 'case'-construct with no target expression" do
|
|
|
285
285
|
# end.should == 'foo'
|
|
286
286
|
end
|
|
287
287
|
|
|
288
|
-
|
|
288
|
+
it "evaluates true as only 'true' when true is the first clause" do
|
|
289
289
|
case 1
|
|
290
290
|
when true; "bad"
|
|
291
291
|
when Integer; "good"
|
|
@@ -13,11 +13,11 @@ describe "A class definition" do
|
|
|
13
13
|
ClassSpecs::A.new.should be_kind_of(ClassSpecs::A)
|
|
14
14
|
end
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
it "has no class variables" do
|
|
17
17
|
ClassSpecs::A.class_variables.should == []
|
|
18
18
|
end
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
it "raises TypeError if constant given as class name exists and is not a Module" do
|
|
21
21
|
# 1.9 needs the constant defined here because of it's scoping rules
|
|
22
22
|
ClassSpecsNumber = 12
|
|
23
23
|
lambda {
|
|
@@ -27,14 +27,14 @@ describe "A class definition" do
|
|
|
27
27
|
end
|
|
28
28
|
|
|
29
29
|
# test case known to be detecting bugs (JRuby, MRI 1.9)
|
|
30
|
-
|
|
30
|
+
it "raises TypeError if the constant qualifying the class is nil" do
|
|
31
31
|
lambda {
|
|
32
32
|
class nil::Foo
|
|
33
33
|
end
|
|
34
34
|
}.should raise_error(TypeError)
|
|
35
35
|
end
|
|
36
36
|
|
|
37
|
-
|
|
37
|
+
it "raises TypeError if any constant qualifying the class is not a Module" do
|
|
38
38
|
lambda {
|
|
39
39
|
class ClassSpecs::Number::MyClass
|
|
40
40
|
end
|
|
@@ -46,7 +46,7 @@ describe "A class definition" do
|
|
|
46
46
|
}.should raise_error(TypeError)
|
|
47
47
|
end
|
|
48
48
|
|
|
49
|
-
|
|
49
|
+
it "allows using self as the superclass if self is a class" do
|
|
50
50
|
ClassSpecs::I::J.superclass.should == ClassSpecs::I
|
|
51
51
|
|
|
52
52
|
lambda {
|
|
@@ -54,7 +54,7 @@ describe "A class definition" do
|
|
|
54
54
|
}.should raise_error(TypeError)
|
|
55
55
|
end
|
|
56
56
|
|
|
57
|
-
|
|
57
|
+
it "raises a TypeError if inheriting from a metaclass" do
|
|
58
58
|
obj = mock("metaclass super")
|
|
59
59
|
meta = obj.singleton_class
|
|
60
60
|
lambda { class ClassSpecs::MetaclassSuper < meta; end }.should raise_error(TypeError)
|
|
@@ -65,29 +65,29 @@ describe "A class definition" do
|
|
|
65
65
|
# ClassSpecs::A.instance_variables.should == []
|
|
66
66
|
# end
|
|
67
67
|
|
|
68
|
-
|
|
68
|
+
it "allows the declaration of class variables in the body" do
|
|
69
69
|
ClassSpecs.string_class_variables(ClassSpecs::B).should == ["@@cvar"]
|
|
70
70
|
ClassSpecs::B.send(:class_variable_get, :@@cvar).should == :cvar
|
|
71
71
|
end
|
|
72
72
|
|
|
73
|
-
|
|
73
|
+
it "stores instance variables defined in the class body in the class object" do
|
|
74
74
|
ClassSpecs.string_instance_variables(ClassSpecs::B).should include("@ivar")
|
|
75
75
|
ClassSpecs::B.instance_variable_get(:@ivar).should == :ivar
|
|
76
76
|
end
|
|
77
77
|
|
|
78
|
-
|
|
78
|
+
it "allows the declaration of class variables in a class method" do
|
|
79
79
|
ClassSpecs::C.class_variables.should == []
|
|
80
80
|
ClassSpecs::C.make_class_variable
|
|
81
81
|
ClassSpecs.string_class_variables(ClassSpecs::C).should == ["@@cvar"]
|
|
82
82
|
end
|
|
83
83
|
|
|
84
|
-
|
|
84
|
+
it "allows the definition of class-level instance variables in a class method" do
|
|
85
85
|
ClassSpecs.string_instance_variables(ClassSpecs::C).should_not include("@civ")
|
|
86
86
|
ClassSpecs::C.make_class_instance_variable
|
|
87
87
|
ClassSpecs.string_instance_variables(ClassSpecs::C).should include("@civ")
|
|
88
88
|
end
|
|
89
89
|
|
|
90
|
-
|
|
90
|
+
it "allows the declaration of class variables in an instance method" do
|
|
91
91
|
ClassSpecs::D.class_variables.should == []
|
|
92
92
|
ClassSpecs::D.new.make_class_variable
|
|
93
93
|
ClassSpecs.string_class_variables(ClassSpecs::D).should == ["@@cvar"]
|
|
@@ -105,7 +105,7 @@ describe "A class definition" do
|
|
|
105
105
|
ClassSpecs::E.smeth.should == :smeth
|
|
106
106
|
end
|
|
107
107
|
|
|
108
|
-
|
|
108
|
+
it "allows the definition of Constants" do
|
|
109
109
|
Object.const_defined?('CONSTANT').should == false
|
|
110
110
|
ClassSpecs::E.const_defined?('CONSTANT').should == true
|
|
111
111
|
ClassSpecs::E::CONSTANT.should == :constant!
|
|
@@ -127,7 +127,7 @@ describe "An outer class definition" do
|
|
|
127
127
|
end
|
|
128
128
|
|
|
129
129
|
ruby_version_is "1.9" do
|
|
130
|
-
|
|
130
|
+
it "contains the inner classes" do
|
|
131
131
|
ClassSpecs::Container.constants.should include(:A, :B)
|
|
132
132
|
end
|
|
133
133
|
end
|
|
@@ -138,7 +138,7 @@ describe "A class definition extending an object (sclass)" do
|
|
|
138
138
|
ClassSpecs::O.smeth.should == :smeth
|
|
139
139
|
end
|
|
140
140
|
|
|
141
|
-
|
|
141
|
+
it "raises a TypeError when trying to extend numbers" do
|
|
142
142
|
lambda {
|
|
143
143
|
eval <<-CODE
|
|
144
144
|
class << 1
|
|
@@ -150,17 +150,15 @@ describe "A class definition extending an object (sclass)" do
|
|
|
150
150
|
}.should raise_error(TypeError)
|
|
151
151
|
end
|
|
152
152
|
|
|
153
|
-
|
|
153
|
+
it "allows accessing the block of the original scope" do
|
|
154
154
|
ClassSpecs.sclass_with_block { 123 }.should == 123
|
|
155
155
|
end
|
|
156
156
|
|
|
157
|
-
pending do
|
|
158
157
|
not_compliant_on :rubinius do
|
|
159
158
|
it "can use return to cause the enclosing method to return" do
|
|
160
159
|
ClassSpecs.sclass_with_return.should == :inner
|
|
161
160
|
end
|
|
162
161
|
end
|
|
163
|
-
end
|
|
164
162
|
end
|
|
165
163
|
|
|
166
164
|
describe "Reopening a class" do
|
|
@@ -174,7 +172,7 @@ describe "Reopening a class" do
|
|
|
174
172
|
ClassSpecs::G.new.override.should == :override
|
|
175
173
|
end
|
|
176
174
|
|
|
177
|
-
|
|
175
|
+
it "raises a TypeError when superclasses mismatch" do
|
|
178
176
|
lambda { class ClassSpecs::A < Array; end }.should raise_error(TypeError)
|
|
179
177
|
end
|
|
180
178
|
|
|
@@ -2,11 +2,11 @@ require File.expand_path('../../spec_helper', __FILE__)
|
|
|
2
2
|
require File.expand_path('../../fixtures/class_variables', __FILE__)
|
|
3
3
|
|
|
4
4
|
describe "A class variable" do
|
|
5
|
-
|
|
5
|
+
it "can be accessed from a subclass" do
|
|
6
6
|
ClassVariablesSpec::ClassB.new.cvar_a.should == :cvar_a
|
|
7
7
|
end
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
it "is set in the superclass" do
|
|
10
10
|
a = ClassVariablesSpec::ClassA.new
|
|
11
11
|
b = ClassVariablesSpec::ClassB.new
|
|
12
12
|
b.cvar_a = :new_val
|
|
@@ -16,41 +16,41 @@ describe "A class variable" do
|
|
|
16
16
|
end
|
|
17
17
|
|
|
18
18
|
describe "A class variable defined in a module" do
|
|
19
|
-
|
|
19
|
+
it "can be accessed from classes that extend the module" do
|
|
20
20
|
ClassVariablesSpec::ClassC.cvar_m.should == :value
|
|
21
21
|
end
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
it "is not defined in these classes" do
|
|
24
24
|
ClassVariablesSpec::ClassC.cvar_defined?.should be_false
|
|
25
25
|
end
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
it "is only updated in the module a method defined in the module is used" do
|
|
28
28
|
ClassVariablesSpec::ClassC.cvar_m = "new value"
|
|
29
29
|
ClassVariablesSpec::ClassC.cvar_m.should == "new value"
|
|
30
30
|
|
|
31
31
|
ClassVariablesSpec::ClassC.cvar_defined?.should be_false
|
|
32
32
|
end
|
|
33
33
|
|
|
34
|
-
|
|
34
|
+
it "is updated in the class when a Method defined in the class is used" do
|
|
35
35
|
ClassVariablesSpec::ClassC.cvar_c = "new value"
|
|
36
36
|
ClassVariablesSpec::ClassC.cvar_defined?.should be_true
|
|
37
37
|
end
|
|
38
38
|
|
|
39
|
-
|
|
39
|
+
it "can be accessed inside the class using the module methods" do
|
|
40
40
|
ClassVariablesSpec::ClassC.cvar_c = "new value"
|
|
41
41
|
|
|
42
42
|
ClassVariablesSpec::ClassC.cvar_m.should == "new value"
|
|
43
43
|
end
|
|
44
44
|
|
|
45
|
-
|
|
45
|
+
it "can be accessed from modules that extend the module" do
|
|
46
46
|
ClassVariablesSpec::ModuleO.cvar_n.should == :value
|
|
47
47
|
end
|
|
48
48
|
|
|
49
|
-
|
|
49
|
+
it "is defined in the extended module" do
|
|
50
50
|
ClassVariablesSpec::ModuleN.class_variable_defined?(:@@cvar_n).should be_true
|
|
51
51
|
end
|
|
52
52
|
|
|
53
|
-
|
|
53
|
+
it "is not defined in the extending module" do
|
|
54
54
|
ClassVariablesSpec::ModuleO.class_variable_defined?(:@@cvar_n).should be_false
|
|
55
55
|
end
|
|
56
56
|
end
|
|
File without changes
|
|
@@ -90,9 +90,9 @@ describe "The defined? keyword for ivars" do
|
|
|
90
90
|
ret.should == "instance-variable"
|
|
91
91
|
end
|
|
92
92
|
|
|
93
|
-
it "returns
|
|
93
|
+
it "returns nil if not assigned" do
|
|
94
94
|
ret = defined?(@unassigned_ivar)
|
|
95
|
-
ret.should ==
|
|
95
|
+
ret.should == nil
|
|
96
96
|
end
|
|
97
97
|
end
|
|
98
98
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|