opal 0.3.26 → 0.3.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. data/.gitignore +1 -6
  2. data/.travis.yml +1 -4
  3. data/Gemfile +1 -1
  4. data/README.md +3 -8
  5. data/Rakefile +26 -3
  6. data/core/array.rb +33 -91
  7. data/core/boolean.rb +1 -4
  8. data/core/class.rb +25 -71
  9. data/core/error.rb +5 -3
  10. data/core/hash.rb +3 -2
  11. data/core/kernel.rb +40 -1
  12. data/core/load_order +1 -1
  13. data/core/nil_class.rb +1 -3
  14. data/core/runtime.js +4 -44
  15. data/core/template.rb +20 -0
  16. data/core/{opal-spec → test_runner}/runner.js +0 -6
  17. data/lib/opal.rb +1 -12
  18. data/lib/opal/builder.rb +3 -10
  19. data/lib/opal/lexer.rb +1095 -1110
  20. data/lib/opal/parser.rb +229 -26
  21. data/lib/opal/rake_task.rb +3 -3
  22. data/lib/opal/version.rb +1 -1
  23. data/opal.gemspec +2 -2
  24. data/spec/core/array/assoc_spec.rb +2 -3
  25. data/spec/core/array/comparison_spec.rb +16 -0
  26. data/spec/core/array/constructor_spec.rb +0 -9
  27. data/spec/core/array/drop_spec.rb +21 -0
  28. data/spec/core/array/dup_spec.rb +15 -0
  29. data/spec/core/array/{eql_spec.rb → equal_value_spec.rb} +0 -0
  30. data/spec/core/array/index_spec.rb +26 -0
  31. data/spec/core/array/inspect_spec.rb +13 -0
  32. data/spec/core/array/intersection_spec.rb +22 -0
  33. data/spec/core/array/join_spec.rb +9 -0
  34. data/spec/core/array/keep_if_spec.rb +7 -0
  35. data/spec/core/array/minus_spec.rb +19 -9
  36. data/spec/core/array/multiply_spec.rb +13 -0
  37. data/spec/core/array/new_spec.rb +40 -0
  38. data/spec/core/array/rindex_spec.rb +21 -0
  39. data/spec/core/array/select_spec.rb +13 -0
  40. data/spec/core/array/shift_spec.rb +51 -0
  41. data/spec/core/array/slice_spec.rb +37 -0
  42. data/spec/core/array/take_spec.rb +21 -0
  43. data/spec/core/array/take_while_spec.rb +13 -0
  44. data/spec/core/array/to_a_spec.rb +7 -0
  45. data/spec/core/array/unshift_spec.rb +29 -0
  46. data/spec/core/hash/constructor_spec.rb +13 -0
  47. data/spec/core/hash/default_proc_spec.rb +20 -0
  48. data/spec/core/hash/default_spec.rb +8 -0
  49. data/spec/core/hash/delete_spec.rb +11 -0
  50. data/spec/core/hash/dup_spec.rb +10 -0
  51. data/spec/core/hash/reject_spec.rb +18 -0
  52. data/spec/core/hash/to_a_spec.rb +13 -0
  53. data/spec/core/kernel/Array_spec.rb +10 -0
  54. data/spec/core/kernel/class_spec.rb +6 -0
  55. data/spec/core/kernel/equal_spec.rb +12 -0
  56. data/spec/core/kernel/extend_spec.rb +21 -0
  57. data/spec/core/kernel/instance_eval_spec.rb +28 -0
  58. data/spec/core/kernel/instance_variable_get_spec.rb +14 -0
  59. data/spec/core/kernel/instance_variable_set_spec.rb +10 -0
  60. data/spec/core/kernel/match_spec.rb +5 -0
  61. data/spec/core/module/alias_method_spec.rb +10 -0
  62. data/spec/core/module/ancestors_spec.rb +11 -0
  63. data/spec/core/module/append_features_spec.rb +14 -0
  64. data/spec/core/proc/call_spec.rb +21 -0
  65. data/spec/core/proc/proc_tricks_spec.rb +1 -1
  66. data/spec/language/alias_spec.rb +1 -1
  67. data/spec/opal/class/instance_methods_spec.rb +13 -0
  68. data/spec/opal/kernel/attribute_spec.rb +57 -0
  69. data/spec/spec_helper.rb +1 -1
  70. data/spec/test_case.html +13 -0
  71. metadata +88 -12
  72. data/core/erb.rb +0 -32
  73. data/lib/opal/erb_parser.rb +0 -20
  74. data/spec/opal/erb/erb_spec.rb +0 -23
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: opal
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.26
4
+ version: 0.3.27
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,10 +9,10 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-09-18 00:00:00.000000000Z
12
+ date: 2012-09-22 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: Ruby runtime and core library for javascript.
15
- email: adam@adambeynon.com
15
+ email: adam.beynon@gmail.com
16
16
  executables:
17
17
  - opal
18
18
  extensions: []
@@ -31,7 +31,6 @@ files:
31
31
  - core/class.rb
32
32
  - core/comparable.rb
33
33
  - core/enumerable.rb
34
- - core/erb.rb
35
34
  - core/error.rb
36
35
  - core/hash.rb
37
36
  - core/json.rb
@@ -39,7 +38,6 @@ files:
39
38
  - core/load_order
40
39
  - core/nil_class.rb
41
40
  - core/numeric.rb
42
- - core/opal-spec/runner.js
43
41
  - core/parser/browser.js
44
42
  - core/parser/racc.rb
45
43
  - core/parser/strscan.rb
@@ -48,10 +46,11 @@ files:
48
46
  - core/regexp.rb
49
47
  - core/runtime.js
50
48
  - core/string.rb
49
+ - core/template.rb
50
+ - core/test_runner/runner.js
51
51
  - core/time.rb
52
52
  - lib/opal.rb
53
53
  - lib/opal/builder.rb
54
- - lib/opal/erb_parser.rb
55
54
  - lib/opal/grammar.rb
56
55
  - lib/opal/grammar.y
57
56
  - lib/opal/lexer.rb
@@ -68,26 +67,36 @@ files:
68
67
  - spec/core/array/clone_spec.rb
69
68
  - spec/core/array/collect_spec.rb
70
69
  - spec/core/array/compact_spec.rb
70
+ - spec/core/array/comparison_spec.rb
71
71
  - spec/core/array/concat_spec.rb
72
72
  - spec/core/array/constructor_spec.rb
73
73
  - spec/core/array/count_spec.rb
74
74
  - spec/core/array/delete_at_spec.rb
75
75
  - spec/core/array/delete_if_spec.rb
76
76
  - spec/core/array/delete_spec.rb
77
+ - spec/core/array/drop_spec.rb
78
+ - spec/core/array/dup_spec.rb
77
79
  - spec/core/array/each_index_spec.rb
78
80
  - spec/core/array/each_spec.rb
79
81
  - spec/core/array/element_reference_spec.rb
80
82
  - spec/core/array/empty_spec.rb
81
- - spec/core/array/eql_spec.rb
83
+ - spec/core/array/equal_value_spec.rb
82
84
  - spec/core/array/fetch_spec.rb
83
85
  - spec/core/array/first_spec.rb
84
86
  - spec/core/array/flatten_spec.rb
85
87
  - spec/core/array/include_spec.rb
88
+ - spec/core/array/index_spec.rb
86
89
  - spec/core/array/insert_spec.rb
90
+ - spec/core/array/inspect_spec.rb
91
+ - spec/core/array/intersection_spec.rb
92
+ - spec/core/array/join_spec.rb
93
+ - spec/core/array/keep_if_spec.rb
87
94
  - spec/core/array/last_spec.rb
88
95
  - spec/core/array/length_spec.rb
89
96
  - spec/core/array/map_spec.rb
90
97
  - spec/core/array/minus_spec.rb
98
+ - spec/core/array/multiply_spec.rb
99
+ - spec/core/array/new_spec.rb
91
100
  - spec/core/array/plus_spec.rb
92
101
  - spec/core/array/pop_spec.rb
93
102
  - spec/core/array/push_spec.rb
@@ -96,9 +105,17 @@ files:
96
105
  - spec/core/array/replace_spec.rb
97
106
  - spec/core/array/reverse_each_spec.rb
98
107
  - spec/core/array/reverse_spec.rb
108
+ - spec/core/array/rindex_spec.rb
109
+ - spec/core/array/select_spec.rb
110
+ - spec/core/array/shift_spec.rb
99
111
  - spec/core/array/size_spec.rb
112
+ - spec/core/array/slice_spec.rb
113
+ - spec/core/array/take_spec.rb
114
+ - spec/core/array/take_while_spec.rb
115
+ - spec/core/array/to_a_spec.rb
100
116
  - spec/core/array/to_ary_spec.rb
101
117
  - spec/core/array/uniq_spec.rb
118
+ - spec/core/array/unshift_spec.rb
102
119
  - spec/core/array/zip_spec.rb
103
120
  - spec/core/class/fixtures/classes.rb
104
121
  - spec/core/class/new_spec.rb
@@ -130,8 +147,12 @@ files:
130
147
  - spec/core/hash/assoc_spec.rb
131
148
  - spec/core/hash/clear_spec.rb
132
149
  - spec/core/hash/clone_spec.rb
150
+ - spec/core/hash/constructor_spec.rb
151
+ - spec/core/hash/default_proc_spec.rb
133
152
  - spec/core/hash/default_spec.rb
134
153
  - spec/core/hash/delete_if_spec.rb
154
+ - spec/core/hash/delete_spec.rb
155
+ - spec/core/hash/dup_spec.rb
135
156
  - spec/core/hash/each_key_spec.rb
136
157
  - spec/core/hash/each_pair_spec.rb
137
158
  - spec/core/hash/each_spec.rb
@@ -156,18 +177,28 @@ files:
156
177
  - spec/core/hash/merge_spec.rb
157
178
  - spec/core/hash/new_spec.rb
158
179
  - spec/core/hash/rassoc_spec.rb
180
+ - spec/core/hash/reject_spec.rb
159
181
  - spec/core/hash/replace_spec.rb
160
182
  - spec/core/hash/select_spec.rb
161
183
  - spec/core/hash/shift_spec.rb
162
184
  - spec/core/hash/size_spec.rb
185
+ - spec/core/hash/to_a_spec.rb
163
186
  - spec/core/hash/update_spec.rb
164
187
  - spec/core/hash/value_spec.rb
165
188
  - spec/core/hash/values_at_spec.rb
166
189
  - spec/core/hash/values_spec.rb
190
+ - spec/core/kernel/Array_spec.rb
191
+ - spec/core/kernel/class_spec.rb
167
192
  - spec/core/kernel/define_singleton_method_spec.rb
168
193
  - spec/core/kernel/eql_spec.rb
194
+ - spec/core/kernel/equal_spec.rb
169
195
  - spec/core/kernel/equal_value_spec.rb
196
+ - spec/core/kernel/extend_spec.rb
197
+ - spec/core/kernel/instance_eval_spec.rb
198
+ - spec/core/kernel/instance_variable_get_spec.rb
199
+ - spec/core/kernel/instance_variable_set_spec.rb
170
200
  - spec/core/kernel/loop_spec.rb
201
+ - spec/core/kernel/match_spec.rb
171
202
  - spec/core/kernel/nil_spec.rb
172
203
  - spec/core/kernel/proc_spec.rb
173
204
  - spec/core/kernel/rand_spec.rb
@@ -176,6 +207,9 @@ files:
176
207
  - spec/core/kernel/tap_spec.rb
177
208
  - spec/core/kernel/to_s_spec.rb
178
209
  - spec/core/matchdata/to_a_spec.rb
210
+ - spec/core/module/alias_method_spec.rb
211
+ - spec/core/module/ancestors_spec.rb
212
+ - spec/core/module/append_features_spec.rb
179
213
  - spec/core/nil/and_spec.rb
180
214
  - spec/core/nil/inspect_spec.rb
181
215
  - spec/core/nil/nil_spec.rb
@@ -186,6 +220,7 @@ files:
186
220
  - spec/core/nil/to_s_spec.rb
187
221
  - spec/core/nil/xor_spec.rb
188
222
  - spec/core/numeric/equal_value_spec.rb
223
+ - spec/core/proc/call_spec.rb
189
224
  - spec/core/proc/proc_tricks_spec.rb
190
225
  - spec/core/range/begin_spec.rb
191
226
  - spec/core/range/case_compare_spec.rb
@@ -321,10 +356,11 @@ files:
321
356
  - spec/opal/boolean/singleton_class_spec.rb
322
357
  - spec/opal/boolean/to_json_spec.rb
323
358
  - spec/opal/class/bridge_class_spec.rb
324
- - spec/opal/erb/erb_spec.rb
359
+ - spec/opal/class/instance_methods_spec.rb
325
360
  - spec/opal/hash/to_json_spec.rb
326
361
  - spec/opal/hash/to_native_spec.rb
327
362
  - spec/opal/json/parse_spec.rb
363
+ - spec/opal/kernel/attribute_spec.rb
328
364
  - spec/opal/kernel/to_json_spec.rb
329
365
  - spec/opal/nil/to_json_spec.rb
330
366
  - spec/opal/numeric/to_json_spec.rb
@@ -340,7 +376,8 @@ files:
340
376
  - spec/opal/strscan/check_spec.rb
341
377
  - spec/opal/strscan/scan_spec.rb
342
378
  - spec/spec_helper.rb
343
- homepage: http://opalrb.org
379
+ - spec/test_case.html
380
+ homepage: http://opal.github.com
344
381
  licenses: []
345
382
  post_install_message:
346
383
  rdoc_options: []
@@ -360,7 +397,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
360
397
  version: '0'
361
398
  requirements: []
362
399
  rubyforge_project:
363
- rubygems_version: 1.8.11
400
+ rubygems_version: 1.8.24
364
401
  signing_key:
365
402
  specification_version: 3
366
403
  summary: Ruby runtime and core library for javascript
@@ -373,26 +410,36 @@ test_files:
373
410
  - spec/core/array/clone_spec.rb
374
411
  - spec/core/array/collect_spec.rb
375
412
  - spec/core/array/compact_spec.rb
413
+ - spec/core/array/comparison_spec.rb
376
414
  - spec/core/array/concat_spec.rb
377
415
  - spec/core/array/constructor_spec.rb
378
416
  - spec/core/array/count_spec.rb
379
417
  - spec/core/array/delete_at_spec.rb
380
418
  - spec/core/array/delete_if_spec.rb
381
419
  - spec/core/array/delete_spec.rb
420
+ - spec/core/array/drop_spec.rb
421
+ - spec/core/array/dup_spec.rb
382
422
  - spec/core/array/each_index_spec.rb
383
423
  - spec/core/array/each_spec.rb
384
424
  - spec/core/array/element_reference_spec.rb
385
425
  - spec/core/array/empty_spec.rb
386
- - spec/core/array/eql_spec.rb
426
+ - spec/core/array/equal_value_spec.rb
387
427
  - spec/core/array/fetch_spec.rb
388
428
  - spec/core/array/first_spec.rb
389
429
  - spec/core/array/flatten_spec.rb
390
430
  - spec/core/array/include_spec.rb
431
+ - spec/core/array/index_spec.rb
391
432
  - spec/core/array/insert_spec.rb
433
+ - spec/core/array/inspect_spec.rb
434
+ - spec/core/array/intersection_spec.rb
435
+ - spec/core/array/join_spec.rb
436
+ - spec/core/array/keep_if_spec.rb
392
437
  - spec/core/array/last_spec.rb
393
438
  - spec/core/array/length_spec.rb
394
439
  - spec/core/array/map_spec.rb
395
440
  - spec/core/array/minus_spec.rb
441
+ - spec/core/array/multiply_spec.rb
442
+ - spec/core/array/new_spec.rb
396
443
  - spec/core/array/plus_spec.rb
397
444
  - spec/core/array/pop_spec.rb
398
445
  - spec/core/array/push_spec.rb
@@ -401,9 +448,17 @@ test_files:
401
448
  - spec/core/array/replace_spec.rb
402
449
  - spec/core/array/reverse_each_spec.rb
403
450
  - spec/core/array/reverse_spec.rb
451
+ - spec/core/array/rindex_spec.rb
452
+ - spec/core/array/select_spec.rb
453
+ - spec/core/array/shift_spec.rb
404
454
  - spec/core/array/size_spec.rb
455
+ - spec/core/array/slice_spec.rb
456
+ - spec/core/array/take_spec.rb
457
+ - spec/core/array/take_while_spec.rb
458
+ - spec/core/array/to_a_spec.rb
405
459
  - spec/core/array/to_ary_spec.rb
406
460
  - spec/core/array/uniq_spec.rb
461
+ - spec/core/array/unshift_spec.rb
407
462
  - spec/core/array/zip_spec.rb
408
463
  - spec/core/class/fixtures/classes.rb
409
464
  - spec/core/class/new_spec.rb
@@ -435,8 +490,12 @@ test_files:
435
490
  - spec/core/hash/assoc_spec.rb
436
491
  - spec/core/hash/clear_spec.rb
437
492
  - spec/core/hash/clone_spec.rb
493
+ - spec/core/hash/constructor_spec.rb
494
+ - spec/core/hash/default_proc_spec.rb
438
495
  - spec/core/hash/default_spec.rb
439
496
  - spec/core/hash/delete_if_spec.rb
497
+ - spec/core/hash/delete_spec.rb
498
+ - spec/core/hash/dup_spec.rb
440
499
  - spec/core/hash/each_key_spec.rb
441
500
  - spec/core/hash/each_pair_spec.rb
442
501
  - spec/core/hash/each_spec.rb
@@ -461,18 +520,28 @@ test_files:
461
520
  - spec/core/hash/merge_spec.rb
462
521
  - spec/core/hash/new_spec.rb
463
522
  - spec/core/hash/rassoc_spec.rb
523
+ - spec/core/hash/reject_spec.rb
464
524
  - spec/core/hash/replace_spec.rb
465
525
  - spec/core/hash/select_spec.rb
466
526
  - spec/core/hash/shift_spec.rb
467
527
  - spec/core/hash/size_spec.rb
528
+ - spec/core/hash/to_a_spec.rb
468
529
  - spec/core/hash/update_spec.rb
469
530
  - spec/core/hash/value_spec.rb
470
531
  - spec/core/hash/values_at_spec.rb
471
532
  - spec/core/hash/values_spec.rb
533
+ - spec/core/kernel/Array_spec.rb
534
+ - spec/core/kernel/class_spec.rb
472
535
  - spec/core/kernel/define_singleton_method_spec.rb
473
536
  - spec/core/kernel/eql_spec.rb
537
+ - spec/core/kernel/equal_spec.rb
474
538
  - spec/core/kernel/equal_value_spec.rb
539
+ - spec/core/kernel/extend_spec.rb
540
+ - spec/core/kernel/instance_eval_spec.rb
541
+ - spec/core/kernel/instance_variable_get_spec.rb
542
+ - spec/core/kernel/instance_variable_set_spec.rb
475
543
  - spec/core/kernel/loop_spec.rb
544
+ - spec/core/kernel/match_spec.rb
476
545
  - spec/core/kernel/nil_spec.rb
477
546
  - spec/core/kernel/proc_spec.rb
478
547
  - spec/core/kernel/rand_spec.rb
@@ -481,6 +550,9 @@ test_files:
481
550
  - spec/core/kernel/tap_spec.rb
482
551
  - spec/core/kernel/to_s_spec.rb
483
552
  - spec/core/matchdata/to_a_spec.rb
553
+ - spec/core/module/alias_method_spec.rb
554
+ - spec/core/module/ancestors_spec.rb
555
+ - spec/core/module/append_features_spec.rb
484
556
  - spec/core/nil/and_spec.rb
485
557
  - spec/core/nil/inspect_spec.rb
486
558
  - spec/core/nil/nil_spec.rb
@@ -491,6 +563,7 @@ test_files:
491
563
  - spec/core/nil/to_s_spec.rb
492
564
  - spec/core/nil/xor_spec.rb
493
565
  - spec/core/numeric/equal_value_spec.rb
566
+ - spec/core/proc/call_spec.rb
494
567
  - spec/core/proc/proc_tricks_spec.rb
495
568
  - spec/core/range/begin_spec.rb
496
569
  - spec/core/range/case_compare_spec.rb
@@ -626,10 +699,11 @@ test_files:
626
699
  - spec/opal/boolean/singleton_class_spec.rb
627
700
  - spec/opal/boolean/to_json_spec.rb
628
701
  - spec/opal/class/bridge_class_spec.rb
629
- - spec/opal/erb/erb_spec.rb
702
+ - spec/opal/class/instance_methods_spec.rb
630
703
  - spec/opal/hash/to_json_spec.rb
631
704
  - spec/opal/hash/to_native_spec.rb
632
705
  - spec/opal/json/parse_spec.rb
706
+ - spec/opal/kernel/attribute_spec.rb
633
707
  - spec/opal/kernel/to_json_spec.rb
634
708
  - spec/opal/nil/to_json_spec.rb
635
709
  - spec/opal/numeric/to_json_spec.rb
@@ -645,3 +719,5 @@ test_files:
645
719
  - spec/opal/strscan/check_spec.rb
646
720
  - spec/opal/strscan/scan_spec.rb
647
721
  - spec/spec_helper.rb
722
+ - spec/test_case.html
723
+ has_rdoc:
data/core/erb.rb DELETED
@@ -1,32 +0,0 @@
1
- # A wapper for ERB templates in Opal. Other templates may be used
2
- class ERB
3
-
4
- # @private Stores all registered instances
5
- @templates = {}
6
- def self.[]=(name, instance)
7
- @templates[name] = instance
8
- end
9
-
10
- def self.[](name)
11
- @templates[name]
12
- end
13
-
14
- def initialize(name, &body)
15
- ERB[name] = self
16
- @body = body
17
- end
18
-
19
- # Run this erb template against the given context. Unlike ERB, opals
20
- # implementation uses a normal object as a context.
21
- #
22
- # view = UserView.new
23
- # ERB[:user_view].render(view)
24
- #
25
- # @param [Object] context
26
- # @result [String]
27
- def render(content)
28
- content.instance_eval(&@body)
29
- end
30
-
31
- alias :result :render
32
- end
@@ -1,20 +0,0 @@
1
- require 'opal/parser'
2
-
3
- module Opal
4
- class ERBParser
5
-
6
- def parse(str, name = 'erb')
7
- Parser.new.parse compile(str, name)
8
- end
9
-
10
- def compile(str, name)
11
- res = "ERB.new('#{name}') do\nout = []\nout.<<(\"" +
12
- str.gsub('"', '\\"'
13
- ).gsub(/<%=([\s\S]+?)%>/) do
14
- "\")\nout.<<(" + $1.gsub(/\\'/, "'").gsub(/\\"/, '"') + ")\nout.<<(\""
15
- end.gsub(/<%([\s\S]+?)%>/) do
16
- "\")\n" + $1 + "\nout.<<(\""
17
- end + "\")\nout.join\nend"
18
- end
19
- end
20
- end
@@ -1,23 +0,0 @@
1
- describe 'ERB' do
2
- before do
3
- opal_eval(Opal::ERBParser.new.compile("<div><%= @some_data %></div>", "simple_test"))
4
- @simple = ERB['simple_test']
5
-
6
- opal_eval(Opal::ERBParser.new.compile('<div class="foo">hello <%= "there " + @name %></div>', "quoted_test"))
7
- @quoted = ERB['quoted_test']
8
- end
9
-
10
- it "should create an instance for each template by its basename" do
11
- @simple.should be_kind_of(ERB)
12
- end
13
-
14
- it "should execute the body and return the result as a string, with #result" do
15
- @some_data = "hello"
16
- @simple.render(self).should == "<div>hello</div>"
17
- end
18
-
19
- it "should accept quotes in strings" do
20
- @name = "adam"
21
- @quoted.render(self).should == "<div class=\"foo\">hello there adam</div>"
22
- end
23
- end