sugar-high 0.4.3 → 0.4.4
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/VERSION +1 -1
- data/lib/sugar-high/array.rb +20 -9
- data/lib/sugar-high/enumerable.rb +9 -3
- data/spec/sugar-high/array_spec.rb +20 -1
- data/sugar-high.gemspec +1 -1
- metadata +3 -3
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.4.
|
1
|
+
0.4.4
|
data/lib/sugar-high/array.rb
CHANGED
@@ -4,11 +4,16 @@ require 'sugar-high/path'
|
|
4
4
|
|
5
5
|
class Array
|
6
6
|
def to_symbols
|
7
|
-
self.flatten.select_labels
|
7
|
+
res = self.flatten.select_labels
|
8
|
+
res = res.map{|a| a.to_s.to_sym } if res
|
9
|
+
res || []
|
8
10
|
end
|
9
11
|
|
10
12
|
def to_symbols!
|
11
|
-
|
13
|
+
self.flatten!
|
14
|
+
self.select_labels!
|
15
|
+
self.map!{|a| a.to_s.to_sym }
|
16
|
+
self
|
12
17
|
end
|
13
18
|
|
14
19
|
def to_symbols_num
|
@@ -16,7 +21,8 @@ class Array
|
|
16
21
|
end
|
17
22
|
|
18
23
|
def to_symbols_num!
|
19
|
-
self.flatten
|
24
|
+
self.flatten!
|
25
|
+
self.map!{|a| a.kind_of?(Fixnum) ? "_#{a}" : a}.map!{|a| a.to_s.to_sym }
|
20
26
|
end
|
21
27
|
|
22
28
|
def to_symbols_uniq
|
@@ -24,15 +30,16 @@ class Array
|
|
24
30
|
end
|
25
31
|
|
26
32
|
def to_symbols_uniq!
|
27
|
-
to_symbols!.uniq!
|
33
|
+
self.to_symbols!.uniq!
|
28
34
|
end
|
29
35
|
|
30
|
-
def to_strings
|
31
|
-
self.flatten
|
36
|
+
def to_strings!
|
37
|
+
self.flatten!
|
38
|
+
self.select_labels!.map!(&:to_s)
|
32
39
|
end
|
33
40
|
|
34
|
-
def to_strings
|
35
|
-
self.flatten.select_labels
|
41
|
+
def to_strings
|
42
|
+
self.flatten.select_labels.map(&:to_s)
|
36
43
|
end
|
37
44
|
|
38
45
|
def to_filenames
|
@@ -49,6 +56,7 @@ class Array
|
|
49
56
|
|
50
57
|
def to_paths!
|
51
58
|
self.map!(&:path)
|
59
|
+
self
|
52
60
|
end
|
53
61
|
|
54
62
|
def file_join
|
@@ -74,7 +82,10 @@ class Array
|
|
74
82
|
end
|
75
83
|
|
76
84
|
def flat_uniq!
|
77
|
-
self.flatten
|
85
|
+
self.flatten!
|
86
|
+
self.compact!
|
87
|
+
self.uniq!
|
88
|
+
self
|
78
89
|
end
|
79
90
|
|
80
91
|
def extract(sym)
|
@@ -13,6 +13,7 @@ module Enumerable
|
|
13
13
|
|
14
14
|
def select_kinds_of! *kinds
|
15
15
|
select!{|a| a.any_kind_of? *kinds }
|
16
|
+
self
|
16
17
|
end
|
17
18
|
|
18
19
|
def select_labels
|
@@ -20,7 +21,8 @@ module Enumerable
|
|
20
21
|
end
|
21
22
|
|
22
23
|
def select_labels!
|
23
|
-
select!
|
24
|
+
select!{|a| a.kind_of_label? }
|
25
|
+
self
|
24
26
|
end
|
25
27
|
|
26
28
|
|
@@ -30,18 +32,21 @@ module Enumerable
|
|
30
32
|
|
31
33
|
def select_symbols!
|
32
34
|
select_only! :symbol
|
35
|
+
self
|
33
36
|
end
|
34
37
|
|
35
38
|
def select_uniq_symbols!
|
36
39
|
select_only!(:symbol).uniq!
|
40
|
+
self
|
37
41
|
end
|
38
42
|
|
39
43
|
def select_strings
|
40
44
|
select_only :string
|
41
45
|
end
|
42
46
|
|
43
|
-
def select_strings
|
44
|
-
select_only :string
|
47
|
+
def select_strings!
|
48
|
+
select_only! :string
|
49
|
+
self
|
45
50
|
end
|
46
51
|
|
47
52
|
def select_only type
|
@@ -52,6 +57,7 @@ module Enumerable
|
|
52
57
|
def select_only! type
|
53
58
|
const = type.kind_of_label? ? "#{type.to_s.camelize}".constantize : type
|
54
59
|
select!{|a| a.kind_of? const}
|
60
|
+
self
|
55
61
|
end
|
56
62
|
|
57
63
|
def all_kinds
|
@@ -5,6 +5,10 @@ describe "SugarHigh" do
|
|
5
5
|
describe "Array ext" do
|
6
6
|
|
7
7
|
describe '#to_symbols' do
|
8
|
+
it "should translate invalid array into empty array" do
|
9
|
+
[1, nil].to_symbols.should == []
|
10
|
+
end
|
11
|
+
|
8
12
|
it "should translate nested array of numbers and strings into symbols only array, excluding numbers" do
|
9
13
|
[1, 'blip', [3, "hello"]].to_symbols.should == [:blip, :hello]
|
10
14
|
end
|
@@ -23,6 +27,11 @@ describe "SugarHigh" do
|
|
23
27
|
x = [1, 'hello', 'blip', [3, "hello"]].to_symbols!
|
24
28
|
x.should include :hello, :blip
|
25
29
|
end
|
30
|
+
|
31
|
+
it "should translate invalid array into empty array" do
|
32
|
+
x = [1, nil].to_symbols!
|
33
|
+
x.should == []
|
34
|
+
end
|
26
35
|
end
|
27
36
|
|
28
37
|
describe '#to_strings' do
|
@@ -31,7 +40,12 @@ describe "SugarHigh" do
|
|
31
40
|
end
|
32
41
|
end
|
33
42
|
|
34
|
-
describe '#to_strings
|
43
|
+
describe '#to_strings' do
|
44
|
+
it "should translate invalid array into empty array" do
|
45
|
+
x = [1, nil].to_strings!
|
46
|
+
x.should == []
|
47
|
+
end
|
48
|
+
|
35
49
|
it "should translate nested array of numbers and strings into symbols only array, excluding numbers" do
|
36
50
|
x = [1, 'blip', [3, "hello"]].to_strings!
|
37
51
|
x.should == ['blip', 'hello']
|
@@ -49,6 +63,11 @@ describe "SugarHigh" do
|
|
49
63
|
end
|
50
64
|
|
51
65
|
describe '#flat_uniq!' do
|
66
|
+
it "should translate invalid array into empty array" do
|
67
|
+
x = [1, nil].to_strings!
|
68
|
+
x.should == []
|
69
|
+
end
|
70
|
+
|
52
71
|
it "should flatten array, remove nils and make unique" do
|
53
72
|
x = [1, 'blip', ['blip', nil, 'c'], nil]
|
54
73
|
x.flat_uniq!
|
data/sugar-high.gemspec
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sugar-high
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2011-06-01 00:00:00.000000000Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
16
|
-
requirement: &
|
16
|
+
requirement: &2153218060 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,7 +21,7 @@ dependencies:
|
|
21
21
|
version: 2.4.1
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *2153218060
|
25
25
|
description: More Ruby sugar - inspired by the 'zuker' project
|
26
26
|
email: kmandrup@gmail.com
|
27
27
|
executables: []
|