opal-activesupport 0.2.0 → 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.
Files changed (32) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +7 -0
  3. data/Rakefile +9 -2
  4. data/lib/opal/activesupport/version.rb +1 -1
  5. data/opal-activesupport.gemspec +1 -1
  6. data/opal/active_support/core_ext/array.rb +2 -0
  7. data/opal/active_support/core_ext/array/grouping.rb +99 -0
  8. data/opal/active_support/core_ext/array/wrap.rb +45 -0
  9. data/opal/active_support/core_ext/module.rb +2 -0
  10. data/opal/active_support/core_ext/module/delegation.rb +64 -0
  11. data/opal/active_support/core_ext/module/introspection.rb +62 -0
  12. data/test/abstract_unit.rb +46 -0
  13. data/test/core_ext/array_ext_test.rb +471 -0
  14. data/test/core_ext/blank_test.rb +24 -0
  15. data/{spec/core_ext/class/attribute_spec.rb → test/core_ext/class/attribute_test.rb} +16 -20
  16. data/test/core_ext/kernel_test.rb +124 -0
  17. data/test/core_ext/module/remove_method_test.rb +29 -0
  18. data/test/core_ext/module_test.rb +439 -0
  19. data/{spec/core_ext/numeric_spec.rb → test/core_ext/numeric_ext_test.rb} +110 -116
  20. data/test/core_ext/object_and_class_ext_test.rb +183 -0
  21. data/test/core_ext/string_ext_test.rb +628 -0
  22. data/{spec → test}/empty_bool.rb +0 -0
  23. data/{spec → test}/inflector_test_cases.rb +0 -0
  24. data/test/minitest/autorun.rb +29 -0
  25. metadata +39 -30
  26. data/spec/core_ext/array/extract_options_spec.rb +0 -49
  27. data/spec/core_ext/kernel_spec.rb +0 -9
  28. data/spec/core_ext/module/remove_method_spec.rb +0 -29
  29. data/spec/core_ext/object/blank_spec.rb +0 -40
  30. data/spec/core_ext/object/try_spec.rb +0 -102
  31. data/spec/core_ext/string_spec.rb +0 -71
  32. data/spec/spec_helper.rb +0 -26
File without changes
File without changes
@@ -0,0 +1,29 @@
1
+ require 'minitest'
2
+
3
+ def Minitest.run args = []
4
+ # PORT: removed
5
+ #self.load_plugins
6
+
7
+ options = process_args args
8
+
9
+ reporter = Minitest::CompositeReporter.new
10
+ reporter << Minitest::SummaryReporter.new(options[:io], options)
11
+ reporter << Minitest::ProgressReporter.new(options[:io], options)
12
+
13
+ self.reporter = reporter # this makes it available to plugins
14
+ # PORT: removed
15
+ #self.init_plugins options
16
+ self.reporter = nil # runnables shouldn't depend on the reporter, ever
17
+
18
+ reporter.start
19
+ __run reporter, options
20
+ # PORT: removed
21
+ #self.parallel_executor.shutdown
22
+ reporter.report
23
+
24
+ # PORT: modified
25
+ reporter.passed?
26
+ # `window.OPAL_TEST_EXIT_STATUS = #{reporter.passed?}`
27
+ end
28
+
29
+ at_exit { exit Minitest.run }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: opal-activesupport
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Elia Schito
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-10-08 00:00:00.000000000 Z
11
+ date: 2015-12-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: opal
@@ -31,19 +31,19 @@ dependencies:
31
31
  - !ruby/object:Gem::Version
32
32
  version: 1.0.0
33
33
  - !ruby/object:Gem::Dependency
34
- name: opal-rspec
34
+ name: opal-minitest
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
- - - "~>"
37
+ - - ">="
38
38
  - !ruby/object:Gem::Version
39
- version: 0.4.0
39
+ version: '0'
40
40
  type: :development
41
41
  prerelease: false
42
42
  version_requirements: !ruby/object:Gem::Requirement
43
43
  requirements:
44
- - - "~>"
44
+ - - ">="
45
45
  - !ruby/object:Gem::Version
46
- version: 0.4.0
46
+ version: '0'
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rake
49
49
  requirement: !ruby/object:Gem::Requirement
@@ -66,6 +66,7 @@ extensions: []
66
66
  extra_rdoc_files: []
67
67
  files:
68
68
  - ".gitignore"
69
+ - ".travis.yml"
69
70
  - Gemfile
70
71
  - LICENSE.txt
71
72
  - README.md
@@ -78,6 +79,8 @@ files:
78
79
  - opal/active_support/core_ext.rb
79
80
  - opal/active_support/core_ext/array.rb
80
81
  - opal/active_support/core_ext/array/extract_options.rb
82
+ - opal/active_support/core_ext/array/grouping.rb
83
+ - opal/active_support/core_ext/array/wrap.rb
81
84
  - opal/active_support/core_ext/class.rb
82
85
  - opal/active_support/core_ext/class/attribute.rb
83
86
  - opal/active_support/core_ext/enumerable.rb
@@ -88,6 +91,8 @@ files:
88
91
  - opal/active_support/core_ext/kernel.rb
89
92
  - opal/active_support/core_ext/kernel/singleton_class.rb
90
93
  - opal/active_support/core_ext/module.rb
94
+ - opal/active_support/core_ext/module/delegation.rb
95
+ - opal/active_support/core_ext/module/introspection.rb
91
96
  - opal/active_support/core_ext/module/remove_method.rb
92
97
  - opal/active_support/core_ext/numeric.rb
93
98
  - opal/active_support/core_ext/numeric/calculations.rb
@@ -104,17 +109,19 @@ files:
104
109
  - opal/active_support/inflector/inflections.rb
105
110
  - opal/active_support/time.rb
106
111
  - opal/opal-activesupport.rb
107
- - spec/core_ext/array/extract_options_spec.rb
108
- - spec/core_ext/class/attribute_spec.rb
109
- - spec/core_ext/kernel_spec.rb
110
- - spec/core_ext/module/remove_method_spec.rb
111
- - spec/core_ext/numeric_spec.rb
112
- - spec/core_ext/object/blank_spec.rb
113
- - spec/core_ext/object/try_spec.rb
114
- - spec/core_ext/string_spec.rb
115
- - spec/empty_bool.rb
116
- - spec/inflector_test_cases.rb
117
- - spec/spec_helper.rb
112
+ - test/abstract_unit.rb
113
+ - test/core_ext/array_ext_test.rb
114
+ - test/core_ext/blank_test.rb
115
+ - test/core_ext/class/attribute_test.rb
116
+ - test/core_ext/kernel_test.rb
117
+ - test/core_ext/module/remove_method_test.rb
118
+ - test/core_ext/module_test.rb
119
+ - test/core_ext/numeric_ext_test.rb
120
+ - test/core_ext/object_and_class_ext_test.rb
121
+ - test/core_ext/string_ext_test.rb
122
+ - test/empty_bool.rb
123
+ - test/inflector_test_cases.rb
124
+ - test/minitest/autorun.rb
118
125
  homepage: http://opalrb.org
119
126
  licenses: []
120
127
  metadata: {}
@@ -139,19 +146,21 @@ required_rubygems_version: !ruby/object:Gem::Requirement
139
146
  version: '0'
140
147
  requirements: []
141
148
  rubyforge_project:
142
- rubygems_version: 2.4.5.1
149
+ rubygems_version: 2.4.8
143
150
  signing_key:
144
151
  specification_version: 4
145
152
  summary: The port of the glorious ActiveSupport for Opal
146
153
  test_files:
147
- - spec/core_ext/array/extract_options_spec.rb
148
- - spec/core_ext/class/attribute_spec.rb
149
- - spec/core_ext/kernel_spec.rb
150
- - spec/core_ext/module/remove_method_spec.rb
151
- - spec/core_ext/numeric_spec.rb
152
- - spec/core_ext/object/blank_spec.rb
153
- - spec/core_ext/object/try_spec.rb
154
- - spec/core_ext/string_spec.rb
155
- - spec/empty_bool.rb
156
- - spec/inflector_test_cases.rb
157
- - spec/spec_helper.rb
154
+ - test/abstract_unit.rb
155
+ - test/core_ext/array_ext_test.rb
156
+ - test/core_ext/blank_test.rb
157
+ - test/core_ext/class/attribute_test.rb
158
+ - test/core_ext/kernel_test.rb
159
+ - test/core_ext/module/remove_method_test.rb
160
+ - test/core_ext/module_test.rb
161
+ - test/core_ext/numeric_ext_test.rb
162
+ - test/core_ext/object_and_class_ext_test.rb
163
+ - test/core_ext/string_ext_test.rb
164
+ - test/empty_bool.rb
165
+ - test/inflector_test_cases.rb
166
+ - test/minitest/autorun.rb
@@ -1,49 +0,0 @@
1
- require 'spec_helper'
2
-
3
- # require 'abstract_unit'
4
- # require 'active_support/core_ext/array'
5
- # require 'active_support/core_ext/hash'
6
-
7
- class HashSubclass < Hash
8
- end
9
-
10
- class ExtractableHashSubclass < Hash
11
- def extractable_options?
12
- true
13
- end
14
- end
15
-
16
- describe Array do
17
- describe '#extract_options!' do
18
- it 'extracts options' do
19
- assert_equal({}, [].extract_options!)
20
- assert_equal({}, [1].extract_options!)
21
- assert_equal({ a: :b }, [{ a: :b }].extract_options!)
22
- assert_equal({ a: :b }, [1, { a: :b }].extract_options!)
23
- end
24
-
25
- it 'doesnt extract hash subclasses' do
26
- hash = HashSubclass.new
27
- hash[:foo] = 1
28
- array = [hash]
29
- options = array.extract_options!
30
- assert_equal({}, options)
31
- assert_equal([hash], array)
32
- end
33
-
34
- it 'extracts extractable subclass' do
35
- hash = ExtractableHashSubclass.new
36
- hash[:foo] = 1
37
- array = [hash]
38
- options = array.extract_options!
39
- assert_equal({ foo: 1 }, options)
40
- assert_equal([], array)
41
- end
42
-
43
- it 'extracts hash with indifferent access' do
44
- array = [{ foo: 1 }.with_indifferent_access]
45
- options = array.extract_options!
46
- assert_equal(1, options[:foo])
47
- end
48
- end
49
- end
@@ -1,9 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe 'Kernel' do
4
- it 'adds class_eval to Object' do
5
- o = Object.new
6
- class << o; @x = 1; end
7
- assert_equal 1, o.class_eval { @x }
8
- end
9
- end
@@ -1,29 +0,0 @@
1
- require 'spec_helper'
2
-
3
- module RemoveMethodTests
4
- class A
5
- def do_something
6
- return 1
7
- end
8
- end
9
- end
10
-
11
- describe Module do
12
- describe '#remove_possible_method' do
13
- it 'removes method from an object' do
14
- RemoveMethodTests::A.class_eval{
15
- self.remove_possible_method(:do_something)
16
- }
17
- assert !RemoveMethodTests::A.new.respond_to?(:do_something)
18
- end
19
- end
20
-
21
- describe '#redefine_method' do
22
- it 'redefines method in an object' do
23
- RemoveMethodTests::A.class_eval{
24
- self.redefine_method(:do_something) { return 100 }
25
- }
26
- assert_equal 100, RemoveMethodTests::A.new.do_something
27
- end
28
- end
29
- end
@@ -1,40 +0,0 @@
1
- require 'spec_helper'
2
- require 'active_support/core_ext/object/blank'
3
- require 'empty_bool'
4
-
5
- describe 'Object#blank?' do
6
- BLANK = [ EmptyTrue.new, nil, false, '', ' ', " \n\t \r ", ' ', [], {} ]
7
- NOT = [ EmptyFalse.new, Object.new, true, 0, 1, 'a', [nil], { nil => 0 } ]
8
-
9
- BLANK.each do |v|
10
- describe "The value of #{v.inspect}" do
11
- it 'is #blank?' do
12
- v.blank?.should == true
13
- end
14
-
15
- it 'is not #present?' do
16
- v.present?.should == false
17
- end
18
-
19
- it 'has nil #presence' do
20
- v.presence.should == nil
21
- end
22
- end
23
- end
24
-
25
- NOT.each do |v|
26
- describe "The value of #{v.inspect}" do
27
- it 'is not #blank?' do
28
- v.blank?.should == false
29
- end
30
-
31
- it 'is not #present?' do
32
- v.present?.should == true
33
- end
34
-
35
- it 'has self #presence' do
36
- v.presence.should == v
37
- end
38
- end
39
- end
40
- end
@@ -1,102 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Object do
4
- describe '#try' do
5
- before do
6
- @string = "Hello"
7
- end
8
-
9
- it 'nonexisting method' do
10
- method = :undefined_method
11
- assert !@string.respond_to?(method)
12
- assert_nil @string.try(method)
13
- end
14
-
15
- it 'nonexisting method with arguments' do
16
- method = :undefined_method
17
- assert !@string.respond_to?(method)
18
- assert_nil @string.try(method, 'llo', 'y')
19
- end
20
-
21
- it 'nonexisting method bang' do
22
- method = :undefined_method
23
- assert !@string.respond_to?(method)
24
- assert_raise(NoMethodError) { @string.try!(method) }
25
- end
26
-
27
- it 'nonexisting method with arguments bang' do
28
- method = :undefined_method
29
- assert !@string.respond_to?(method)
30
- assert_raise(NoMethodError) { @string.try!(method, 'llo', 'y') }
31
- end
32
-
33
- it 'valid method' do
34
- assert_equal 5, @string.try(:size)
35
- end
36
-
37
- it 'argument forwarding' do
38
- assert_equal 'Hey', @string.try(:sub, 'llo', 'y')
39
- end
40
-
41
- it 'block forwarding' do
42
- assert_equal 'Hey', @string.try(:sub, 'llo') { |match| 'y' }
43
- end
44
-
45
- it 'nil to type' do
46
- assert_nil nil.try(:to_s)
47
- assert_nil nil.try(:to_i)
48
- end
49
-
50
- it 'false try' do
51
- assert_equal 'false', false.try(:to_s)
52
- end
53
-
54
- it 'try only block' do
55
- assert_equal @string.reverse, @string.try { |s| s.reverse }
56
- end
57
-
58
- it 'try only block bang' do
59
- assert_equal @string.reverse, @string.try! { |s| s.reverse }
60
- end
61
-
62
- it 'try only block nil' do
63
- ran = false
64
- nil.try { ran = true }
65
- assert_equal false, ran
66
- end
67
-
68
- it 'try with instance eval block' do
69
- assert_equal @string.reverse, @string.try { reverse }
70
- end
71
-
72
- it 'try with instance eval block bang' do
73
- assert_equal @string.reverse, @string.try! { reverse }
74
- end
75
-
76
- it 'try with private method bang' do
77
- klass = Class.new do
78
- private
79
-
80
- def private_method
81
- 'private method'
82
- end
83
- end
84
-
85
- # Opal doesn't currently support private methods
86
- # assert_raise(NoMethodError) { klass.new.try!(:private_method) }
87
- end
88
-
89
- it 'try with private method' do
90
- klass = Class.new do
91
- private
92
-
93
- def private_method
94
- 'private method'
95
- end
96
- end
97
-
98
- # Opal doesn't currently support private methods
99
- # assert_nil klass.new.try(:private_method)
100
- end
101
- end
102
- end
@@ -1,71 +0,0 @@
1
- require 'spec_helper'
2
- require 'active_support/core_ext/string'
3
- require 'inflector_test_cases'
4
-
5
- module InflectorTestCases
6
- describe 'String' do
7
- # include InflectorTestCases
8
-
9
- describe "#demodulize" do
10
- it "removes any preceding module name from the string" do
11
- "Foo::Bar".demodulize.should == "Bar"
12
- "Foo::Bar::Baz".demodulize.should == "Baz"
13
- end
14
-
15
- it "has no affect on strings with no module seperator" do
16
- "SomeClassName".demodulize.should == "SomeClassName"
17
- end
18
- end
19
-
20
- describe '#underscore' do
21
- it "camel to underscore" do
22
- CamelToUnderscore.each do |camel, underscore|
23
- camel.underscore.should eq(underscore)
24
- end
25
-
26
- "HTMLTidy".underscore.should eq("html_tidy")
27
- "HTMLTidyGenerator".underscore.should eq("html_tidy_generator")
28
- end
29
-
30
- it "replaces '-' in dasherized strings with underscores" do
31
- "well-hello-there".underscore.should == "well_hello_there"
32
- end
33
-
34
- it "converts single all-upcase strings into lowercase" do
35
- "OMG".underscore.should == "omg"
36
- end
37
-
38
- it "splits word bounderies and seperates using underscore" do
39
- "AdamBeynon".underscore.should == "adam_beynon"
40
- end
41
-
42
- it "does not split when 2 or more capitalized letters together" do
43
- "HTMLParser".underscore.should == "html_parser"
44
- end
45
- end
46
-
47
- describe '#dasherize' do
48
- it 'dasherizes' do
49
- {
50
- "street" => "street",
51
- "street_address" => "street-address",
52
- "person_street_address" => "person-street-address",
53
- }.each_pair do |underscore, dashes|
54
- underscore.dasherize.should == dashes
55
- end
56
- end
57
- end
58
-
59
- describe '#camelize' do
60
- it 'camelizes' do
61
- CamelToUnderscore.each do |camel, underscore|
62
- underscore.camelize.should == camel
63
- end
64
- end
65
-
66
- it 'accepts :lower to keep the first letter lowercase' do
67
- 'Capital'.camelize(:lower).should == 'capital'
68
- end
69
- end
70
- end
71
- end