opal 0.7.2 → 0.8.0.beta1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +6 -1
- data/CHANGELOG.md +29 -0
- data/CONTRIBUTING.md +51 -4
- data/Gemfile +3 -0
- data/README.md +5 -5
- data/config.ru +1 -1
- data/examples/sinatra/Gemfile +1 -0
- data/examples/sinatra/config.ru +13 -3
- data/lib/mspec/opal/rake_task.rb +21 -30
- data/lib/mspec/opal/runner.rb +37 -0
- data/lib/mspec/opal/special_calls.rb +6 -0
- data/lib/opal/builder.rb +1 -0
- data/lib/opal/builder_processors.rb +5 -2
- data/lib/opal/cli_runners/phantom.js +10 -1
- data/lib/opal/compiler.rb +6 -3
- data/lib/opal/config.rb +48 -0
- data/lib/opal/nodes/call.rb +3 -2
- data/lib/opal/nodes/literal.rb +19 -2
- data/lib/opal/parser/grammar.rb +2224 -2196
- data/lib/opal/parser/grammar.y +25 -7
- data/lib/opal/parser/lexer.rb +12 -9
- data/lib/opal/path_reader.rb +1 -1
- data/lib/opal/sprockets/erb.rb +6 -20
- data/lib/opal/sprockets/path_reader.rb +4 -2
- data/lib/opal/sprockets/processor.rb +135 -80
- data/lib/opal/sprockets/server.rb +49 -78
- data/lib/opal/sprockets/source_map_header_patch.rb +41 -0
- data/lib/opal/sprockets/source_map_server.rb +115 -0
- data/lib/opal/version.rb +1 -1
- data/lib/tilt/opal.rb +48 -0
- data/opal.gemspec +1 -1
- data/opal/corelib/array.rb +179 -51
- data/opal/corelib/array/inheritance.rb +14 -0
- data/opal/corelib/boolean.rb +5 -0
- data/opal/corelib/hash.rb +1 -1
- data/opal/corelib/kernel.rb +660 -164
- data/opal/corelib/match_data.rb +44 -21
- data/opal/corelib/module.rb +83 -53
- data/opal/corelib/numeric.rb +15 -1
- data/opal/corelib/regexp.rb +31 -75
- data/opal/corelib/runtime.js +20 -8
- data/opal/corelib/string.rb +754 -243
- data/opal/corelib/string/inheritance.rb +20 -3
- data/opal/corelib/struct.rb +30 -6
- data/opal/corelib/variables.rb +2 -2
- data/spec/filters/bugs/array.rb +0 -39
- data/spec/filters/bugs/kernel.rb +10 -7
- data/spec/filters/bugs/module.rb +21 -0
- data/spec/filters/bugs/opal.rb +0 -5
- data/spec/filters/bugs/singleton.rb +0 -2
- data/spec/filters/bugs/string.rb +69 -315
- data/spec/filters/bugs/struct.rb +0 -16
- data/spec/filters/unsupported/encoding.rb +7 -0
- data/spec/filters/unsupported/float.rb +3 -0
- data/spec/filters/unsupported/integer_size.rb +52 -0
- data/spec/filters/unsupported/marshal.rb +4 -0
- data/spec/filters/unsupported/mutable_strings.rb +37 -0
- data/spec/filters/unsupported/private_methods.rb +11 -0
- data/spec/filters/unsupported/rational_numbers.rb +4 -0
- data/spec/filters/unsupported/regular_expressions.rb +47 -0
- data/spec/filters/unsupported/symbols.rb +7 -0
- data/spec/filters/unsupported/tainted.rb +23 -1
- data/spec/filters/unsupported/trusted.rb +5 -0
- data/spec/lib/fixtures/complex_sprockets.js.rb.erb +4 -0
- data/spec/lib/fixtures/jst_file.js.jst +1 -0
- data/spec/lib/parser/call_spec.rb +19 -0
- data/spec/lib/parser/def_spec.rb +6 -0
- data/spec/lib/sprockets/erb_spec.rb +17 -4
- data/spec/lib/sprockets/processor_spec.rb +50 -18
- data/spec/lib/sprockets/server_spec.rb +39 -11
- data/spec/lib/tilt/opal_spec.rb +19 -0
- data/spec/opal/core/kernel/format_spec.rb +10 -10
- data/spec/opal/core/language/predefined_spec.rb +10 -0
- data/spec/opal/core/object_id_spec.rb +56 -0
- data/spec/opal/core/runtime/bridged_classes_spec.rb +4 -4
- data/spec/opal/core/runtime_spec.rb +7 -0
- data/spec/opal/stdlib/native/native_class_spec.rb +1 -1
- data/spec/opal/stdlib/promise/always_spec.rb +30 -0
- data/spec/opal/stdlib/promise/then_spec.rb +8 -0
- data/spec/opal/stdlib/promise/trace_spec.rb +8 -0
- data/spec/rubyspecs +15 -104
- data/spec/spec_helper.rb +4 -0
- data/stdlib/native.rb +7 -18
- data/stdlib/nodejs/file.rb +1 -1
- data/stdlib/opal-parser.rb +1 -0
- data/stdlib/pp.rb +7 -5
- data/stdlib/promise.rb +53 -41
- data/tasks/testing.rake +8 -6
- metadata +28 -14
- data/spec/filters/bugs/match_data.rb +0 -13
- data/spec/filters/bugs/numeric.rb +0 -22
- data/spec/filters/bugs/regexp.rb +0 -9
- data/spec/filters/bugs/unknown.rb +0 -11
@@ -5,6 +5,8 @@ require 'rack/test'
|
|
5
5
|
describe Opal::Server do
|
6
6
|
include Rack::Test::Methods
|
7
7
|
|
8
|
+
let(:maps_prefix) { described_class::SOURCE_MAPS_PREFIX_PATH }
|
9
|
+
|
8
10
|
def app
|
9
11
|
described_class.new { |s|
|
10
12
|
s.main = 'opal'
|
@@ -19,51 +21,77 @@ describe Opal::Server do
|
|
19
21
|
expect(last_response).to be_ok
|
20
22
|
end
|
21
23
|
|
24
|
+
it 'serves assets with complex sprockets requires' do
|
25
|
+
asset = app.sprockets['complex_sprockets']
|
26
|
+
expect(asset).to be_truthy
|
27
|
+
|
28
|
+
assets = asset.to_a.map do |sub_asset|
|
29
|
+
sub_asset.logical_path.gsub(/\.self\.js$/, '.js')
|
30
|
+
end
|
31
|
+
|
32
|
+
%w[
|
33
|
+
no_requires.js
|
34
|
+
jst_file.js
|
35
|
+
required_tree_test/required_file1.js
|
36
|
+
required_tree_test/required_file2.js
|
37
|
+
file_with_directives.js
|
38
|
+
].each do |logical_path|
|
39
|
+
expect(assets).to include(logical_path)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
22
43
|
describe 'source maps' do
|
23
44
|
it 'serves map on a top level file' do
|
24
45
|
get '/assets/source_map.js'
|
25
46
|
expect(last_response).to be_ok
|
26
47
|
|
27
|
-
get '/
|
48
|
+
get maps_prefix+'/source_map.map'
|
28
49
|
expect(last_response).to be_ok
|
29
50
|
end
|
30
51
|
|
31
52
|
it 'serves map on a subfolder file' do
|
32
53
|
js_path = '/assets/source_map/subfolder/other_file.js'
|
33
|
-
map_path = '/
|
54
|
+
map_path = maps_prefix+'/source_map/subfolder/other_file.map'
|
34
55
|
|
35
56
|
get js_path
|
36
57
|
|
37
58
|
expect(last_response).to be_ok
|
38
|
-
received_map_path =
|
59
|
+
received_map_path = extract_map_path(last_response)
|
39
60
|
expect(expand_path(received_map_path, js_path+'/..')).to eq(map_path)
|
40
61
|
|
41
|
-
get '/
|
62
|
+
get maps_prefix+'/source_map/subfolder/other_file.map'
|
42
63
|
expect(last_response).to be_ok
|
43
64
|
end
|
44
65
|
|
45
66
|
it 'serves map on a subfolder file' do
|
46
67
|
js_path = '/assets/source_map/subfolder/other_file.js'
|
47
|
-
map_path = '/
|
68
|
+
map_path = maps_prefix+'/source_map/subfolder/other_file.map'
|
48
69
|
|
49
70
|
get js_path
|
50
71
|
|
51
72
|
expect(last_response).to be_ok
|
52
|
-
received_map_path =
|
73
|
+
received_map_path = extract_map_path(last_response)
|
53
74
|
expect(expand_path(received_map_path, js_path+'/..')).to eq(map_path)
|
54
75
|
|
55
76
|
|
56
|
-
get '/
|
77
|
+
get maps_prefix+'/source_map/subfolder/other_file.map'
|
57
78
|
expect(last_response).to be_ok
|
58
79
|
map = ::SourceMap::Map.from_json(last_response.body)
|
59
|
-
expect(map.sources).to include('/
|
80
|
+
expect(map.sources).to include(maps_prefix+'/source_map/subfolder/other_file.rb')
|
60
81
|
end
|
61
82
|
end
|
62
83
|
|
63
|
-
def
|
84
|
+
def extract_map_path(response)
|
64
85
|
source_map_comment_regexp = %r{//# sourceMappingURL=(.*)$}
|
65
|
-
|
66
|
-
|
86
|
+
|
87
|
+
case
|
88
|
+
when response.body =~ source_map_comment_regexp
|
89
|
+
body.scan(source_map_comment_regexp).first.first
|
90
|
+
when response.headers['X-SourceMap']
|
91
|
+
response.headers['X-SourceMap']
|
92
|
+
else
|
93
|
+
raise "cannot find source map in response: #{response.inspect}"
|
94
|
+
end
|
67
95
|
end
|
68
96
|
|
69
97
|
def expand_path(file_name, dir_string)
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'lib/spec_helper'
|
2
|
+
require 'tilt/opal'
|
3
|
+
|
4
|
+
describe Opal::TiltTemplate do
|
5
|
+
%w[rb js.rb opal js.opal].each do |ext|
|
6
|
+
let(:ext) { ext }
|
7
|
+
|
8
|
+
describe %Q{with extension ".#{ext}"} do
|
9
|
+
it "is registered for '.#{ext}' files" do
|
10
|
+
expect(Tilt["test.#{ext}"]).to be <= described_class
|
11
|
+
end
|
12
|
+
|
13
|
+
it "compiles and evaluates the template on #render" do
|
14
|
+
template = described_class.new('file') { |t| "puts 'Hello, World!'\n" }
|
15
|
+
expect(template.render(Object.new)).to include('"Hello, World!"')
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -81,30 +81,30 @@ describe "Kernel#format" do
|
|
81
81
|
format("%x", 10).should == "a"
|
82
82
|
format("%X", 10).should == "A"
|
83
83
|
|
84
|
-
format("%x", -1).should == "
|
84
|
+
format("%x", -1).should == "..f"
|
85
85
|
end
|
86
86
|
|
87
87
|
it "should format a floating number with specifier 'f', 'e', 'E', 'g' or 'G'" do
|
88
88
|
format("%f", 1.0).should == "1.000000"
|
89
89
|
(format("%e", 1.0) =~ /^1\.000000e\+0*0$/).should_not == nil
|
90
|
-
format("%g", 1.0).should == "1
|
90
|
+
format("%g", 1.0).should == "1"
|
91
91
|
|
92
92
|
format("%f", 10.1).should == "10.100000"
|
93
93
|
(format("%E", 10.1) =~ /^1\.010000E\+0*1$/).should_not == nil
|
94
|
-
format("%g", 10.1).should == "10.
|
94
|
+
format("%g", 10.1).should == "10.1"
|
95
95
|
|
96
|
-
|
97
|
-
|
96
|
+
format("%g", 1000000).should == "1e+06"
|
97
|
+
format("%g", 0.0000001).should == "1e-07"
|
98
98
|
end
|
99
99
|
|
100
100
|
it "should format special floating number special values" do
|
101
|
-
format("%f", 1.0/0).should == "
|
102
|
-
format("%f", -1.0/0).should == "-
|
101
|
+
format("%f", 1.0/0).should == "Inf"
|
102
|
+
format("%f", -1.0/0).should == "-Inf"
|
103
103
|
format("%f", 0.0/0).should == "NaN"
|
104
104
|
|
105
|
-
format("%E", 1.0/0).should == "
|
106
|
-
format("%E", -1.0/0).should == "-
|
107
|
-
format("%E", 0.0/0).should == "
|
105
|
+
format("%E", 1.0/0).should == "Inf"
|
106
|
+
format("%E", -1.0/0).should == "-Inf"
|
107
|
+
format("%E", 0.0/0).should == "NaN"
|
108
108
|
end
|
109
109
|
|
110
110
|
it "should take specified index of argument if '$' is specified" do
|
@@ -125,4 +125,14 @@ describe "The predefined global constants" do
|
|
125
125
|
Object.const_defined?(:RUBY_PLATFORM).should == true
|
126
126
|
RUBY_PLATFORM.should == "opal"
|
127
127
|
end
|
128
|
+
|
129
|
+
it "includes RUBY_ENGINE" do
|
130
|
+
Object.const_defined?(:RUBY_ENGINE).should == true
|
131
|
+
RUBY_ENGINE.should == "opal"
|
132
|
+
end
|
133
|
+
|
134
|
+
it "includes RUBY_ENGINE_VERSION" do
|
135
|
+
Object.const_defined?(:RUBY_ENGINE_VERSION).should == true
|
136
|
+
RUBY_ENGINE_VERSION.should == Opal::VERSION
|
137
|
+
end
|
128
138
|
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe "Opal.uid()" do
|
4
|
+
it "returns even sequential numbers in increments of 2" do
|
5
|
+
%x{
|
6
|
+
var id0 = Opal.uid(),
|
7
|
+
id1 = Opal.uid(),
|
8
|
+
id2 = Opal.uid(),
|
9
|
+
id3 = Opal.uid(),
|
10
|
+
id4 = Opal.uid();
|
11
|
+
}
|
12
|
+
|
13
|
+
modulo = `id0` % 2
|
14
|
+
modulo.should == 0
|
15
|
+
|
16
|
+
`id1`.should == `id0` + 2
|
17
|
+
`id2`.should == `id0` + 4
|
18
|
+
`id3`.should == `id0` + 6
|
19
|
+
`id4`.should == `id0` + 8
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
describe "FalseClass#object_id" do
|
24
|
+
it "returns 0" do
|
25
|
+
false.object_id.should == 0
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
describe "TrueClass#object_id" do
|
30
|
+
it "returns 2" do
|
31
|
+
true.object_id.should == 2
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
describe "NilClass#object_id" do
|
36
|
+
it "returns 4" do
|
37
|
+
nil.object_id.should == 4
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
describe "Numeric#object_id" do
|
42
|
+
it "returns (self * 2) + 1" do
|
43
|
+
0.object_id.should == 1
|
44
|
+
1.object_id.should == 3
|
45
|
+
2.object_id.should == 5
|
46
|
+
420.object_id.should == 841
|
47
|
+
-2.object_id.should == -3
|
48
|
+
-1.object_id.should == -1
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
describe "String#object_id" do
|
53
|
+
it "returns the primitive string version of self" do
|
54
|
+
`#{"hello".object_id} === "hello".toString()`.should be_true
|
55
|
+
end
|
56
|
+
end
|
@@ -49,16 +49,16 @@ describe "Bridged Classes" do
|
|
49
49
|
|
50
50
|
describe ".instance_methdods" do
|
51
51
|
it "should report methods for class" do
|
52
|
-
Array.instance_methods.should include(:shift)
|
52
|
+
Array.instance_methods(false).should include(:shift)
|
53
53
|
end
|
54
54
|
|
55
55
|
it "should not include methods donated from Object/Kernel" do
|
56
|
-
Array.instance_methods.should_not include(:class)
|
56
|
+
Array.instance_methods(false).should_not include(:class)
|
57
57
|
end
|
58
58
|
|
59
59
|
it "should not include methods donated from BasicObject" do
|
60
|
-
Array.instance_methods.should_not include(:__send__)
|
61
|
-
Array.instance_methods.should_not include(:send)
|
60
|
+
Array.instance_methods(false).should_not include(:__send__)
|
61
|
+
Array.instance_methods(false).should_not include(:send)
|
62
62
|
end
|
63
63
|
end
|
64
64
|
end
|
@@ -13,6 +13,6 @@ describe "Class#native_class" do
|
|
13
13
|
|
14
14
|
it 'aliases Class#new to the unprefixed new method in JS world' do
|
15
15
|
SomeClass.native_class
|
16
|
-
`Opal.global.SomeClass
|
16
|
+
`Opal.global.SomeClass["new"]()`.is_a?(SomeClass).should == true
|
17
17
|
end
|
18
18
|
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'promise'
|
2
|
+
|
3
|
+
describe 'Promise#always' do
|
4
|
+
it 'calls the block when it was resolved' do
|
5
|
+
x = 42
|
6
|
+
Promise.value(23).then { |v| x = v }.always { |v| x = 2 }
|
7
|
+
x.should == 2
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'calls the block when it was rejected' do
|
11
|
+
x = 42
|
12
|
+
Promise.error(23).rescue { |v| x = v }.always { |v| x = 2 }
|
13
|
+
x.should == 2
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'acts as resolved' do
|
17
|
+
x = 42
|
18
|
+
Promise.error(23).rescue { |v| x = v }.always { x = 2 }.then { x = 3 }
|
19
|
+
x.should == 3
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'raises an exception when the promise has already been chained' do
|
23
|
+
p = Promise.value(2)
|
24
|
+
p.then {}
|
25
|
+
|
26
|
+
proc {
|
27
|
+
p.always {}
|
28
|
+
}.should raise_error(ArgumentError)
|
29
|
+
end
|
30
|
+
end
|
data/spec/rubyspecs
CHANGED
@@ -48,30 +48,30 @@ corelib/core/exception/new_spec
|
|
48
48
|
corelib/core/exception/reason_spec
|
49
49
|
corelib/core/exception/to_s_spec
|
50
50
|
|
51
|
+
corelib/core/kernel/Array_spec
|
52
|
+
corelib/core/kernel/case_compare_spec
|
51
53
|
corelib/core/kernel/comparison_spec
|
52
54
|
corelib/core/kernel/eql_spec
|
53
55
|
corelib/core/kernel/equal_spec
|
54
56
|
corelib/core/kernel/equal_value_spec
|
57
|
+
corelib/core/kernel/format_spec
|
58
|
+
corelib/core/kernel/hash_spec
|
59
|
+
corelib/core/kernel/Integer_spec
|
60
|
+
corelib/core/kernel/Float_spec
|
61
|
+
corelib/core/kernel/sprintf_spec
|
62
|
+
corelib/core/kernel/String_spec
|
55
63
|
corelib/core/kernel/tap_spec
|
56
64
|
corelib/core/kernel/to_s_spec
|
57
65
|
corelib/core/kernel/warn_spec
|
58
66
|
|
59
|
-
corelib/core/matchdata
|
60
|
-
corelib/core/matchdata/element_reference_spec
|
61
|
-
corelib/core/matchdata/inspect_spec
|
62
|
-
corelib/core/matchdata/length_spec
|
63
|
-
corelib/core/matchdata/post_match_spec
|
64
|
-
corelib/core/matchdata/pre_match_spec
|
65
|
-
corelib/core/matchdata/regexp_spec
|
66
|
-
corelib/core/matchdata/size_spec
|
67
|
-
corelib/core/matchdata/string_spec
|
68
|
-
corelib/core/matchdata/to_a_spec
|
69
|
-
corelib/core/matchdata/to_s_spec
|
70
|
-
corelib/core/matchdata/values_at_spec
|
67
|
+
corelib/core/matchdata
|
71
68
|
|
72
69
|
corelib/core/module/class_variable_get_spec
|
73
70
|
corelib/core/module/class_variable_set_spec
|
74
71
|
corelib/core/module/module_function_spec
|
72
|
+
corelib/core/module/const_get_spec
|
73
|
+
corelib/core/module/include_spec
|
74
|
+
corelib/core/module/instance_methods_spec
|
75
75
|
|
76
76
|
corelib/core/range/begin_spec
|
77
77
|
corelib/core/range/case_compare_spec
|
@@ -79,98 +79,9 @@ corelib/core/range/end_spec
|
|
79
79
|
corelib/core/range/new_spec
|
80
80
|
corelib/core/range/size_spec
|
81
81
|
|
82
|
-
corelib/core/string
|
83
|
-
corelib/core/string/
|
84
|
-
corelib/core/string/
|
85
|
-
corelib/core/string/bytes_spec
|
86
|
-
corelib/core/string/bytesize_spec
|
87
|
-
# corelib/core/string/byteslice_spec - invalid regexp
|
88
|
-
corelib/core/string/capitalize_spec
|
89
|
-
corelib/core/string/case_compare_spec
|
90
|
-
corelib/core/string/casecmp_spec
|
91
|
-
corelib/core/string/center_spec
|
92
|
-
corelib/core/string/chars_spec
|
93
|
-
corelib/core/string/chomp_spec
|
94
|
-
corelib/core/string/chop_spec
|
95
|
-
corelib/core/string/chr_spec
|
96
|
-
corelib/core/string/clear_spec
|
97
|
-
corelib/core/string/codepoints_spec
|
98
|
-
corelib/core/string/comparison_spec
|
99
|
-
corelib/core/string/concat_spec
|
100
|
-
corelib/core/string/count_spec
|
101
|
-
# corelib/core/string/crypt_spec - not supported (can add these)
|
102
|
-
corelib/core/string/delete_spec
|
103
|
-
corelib/core/string/downcase_spec
|
104
|
-
# corelib/core/string/dump_spec - parse error on "\\x05"
|
105
|
-
corelib/core/string/dup_spec
|
106
|
-
corelib/core/string/each_byte_spec
|
107
|
-
corelib/core/string/each_char_spec
|
108
|
-
corelib/core/string/each_codepoint_spec
|
109
|
-
corelib/core/string/each_line_spec
|
110
|
-
# corelib/core/string/element_reference_spec - fails to find a shared group - "String#[] with Regexp"
|
111
|
-
corelib/core/string/element_set_spec
|
112
|
-
corelib/core/string/empty_spec
|
113
|
-
corelib/core/string/encode_spec
|
114
|
-
corelib/core/string/encoding_spec
|
115
|
-
corelib/core/string/end_with_spec
|
116
|
-
corelib/core/string/eql_spec
|
117
|
-
corelib/core/string/equal_value_spec
|
118
|
-
corelib/core/string/force_encoding_spec
|
119
|
-
# corelib/core/string/getbyte_spec - parse error - "UTF-8 (\u{9865}} characters and hex escapes (\xDE)"
|
120
|
-
# corelib/core/string/gsub_spec - invalid regular expression
|
121
|
-
corelib/core/string/hash_spec
|
122
|
-
corelib/core/string/hex_spec
|
123
|
-
corelib/core/string/include_spec
|
124
|
-
corelib/core/string/index_spec
|
125
|
-
corelib/core/string/initialize_spec
|
126
|
-
corelib/core/string/insert_spec
|
127
|
-
# corelib/core/string/inspect_spec - Encoding::CompatibilityError: incompatible character encodings: UTF-8 and ASCII-8BIT
|
128
|
-
corelib/core/string/intern_spec
|
129
|
-
corelib/core/string/length_spec
|
130
|
-
corelib/core/string/lines_spec
|
131
|
-
corelib/core/string/ljust_spec
|
132
|
-
corelib/core/string/lstrip_spec
|
133
|
-
#core/string/match_spec - fails to find a shared group
|
134
|
-
# corelib/core/string/modulo_spec - lots of failing specs
|
135
|
-
corelib/core/string/multiply_spec
|
136
|
-
corelib/core/string/new_spec
|
137
|
-
corelib/core/string/next_spec
|
138
|
-
# # corelib/core/string/oct_spec - parse error on -01234
|
139
|
-
corelib/core/string/ord_spec
|
140
|
-
corelib/core/string/partition_spec
|
141
|
-
corelib/core/string/plus_spec
|
142
|
-
corelib/core/string/prepend_spec
|
143
|
-
corelib/core/string/replace_spec
|
144
|
-
corelib/core/string/reverse_spec
|
145
|
-
corelib/core/string/rindex_spec
|
146
|
-
corelib/core/string/rjust_spec
|
147
|
-
corelib/core/string/rpartition_spec
|
148
|
-
corelib/core/string/rstrip_spec
|
149
|
-
# corelib/core/string/scan_spec - infinite loop on parsing
|
150
|
-
corelib/core/string/setbyte_spec
|
151
|
-
corelib/core/string/size_spec
|
152
|
-
# corelib/core/string/slice_spec - fails to find a shared thing (same as element_reference_spec)
|
153
|
-
corelib/core/string/split_spec
|
154
|
-
corelib/core/string/squeeze_spec
|
155
|
-
corelib/core/string/start_with_spec
|
156
|
-
corelib/core/string/strip_spec
|
157
|
-
corelib/core/string/sub_spec
|
158
|
-
corelib/core/string/succ_spec
|
159
|
-
corelib/core/string/sum_spec
|
160
|
-
corelib/core/string/swapcase_spec
|
161
|
-
# corelib/core/string/to_c_spec - lots of failing specs
|
162
|
-
corelib/core/string/to_f_spec
|
163
|
-
# corelib/core/string/to_i_spec
|
164
|
-
# corelib/core/string/to_r_spec
|
165
|
-
corelib/core/string/to_str_spec
|
166
|
-
corelib/core/string/to_sym_spec
|
167
|
-
corelib/core/string/to_s_spec
|
168
|
-
corelib/core/string/tr_s_spec
|
169
|
-
corelib/core/string/tr_spec
|
170
|
-
# corelib/core/string/try_convert_spec
|
171
|
-
corelib/core/string/upcase_spec
|
172
|
-
corelib/core/string/upto_spec
|
173
|
-
corelib/core/string/valid_encoding_spec
|
82
|
+
corelib/core/string
|
83
|
+
!corelib/core/string/crypt_spec
|
84
|
+
!corelib/core/string/scrub_spec
|
174
85
|
|
175
86
|
corelib/core/symbol/to_proc_spec
|
176
87
|
|