deepsort 0.2.1 → 0.2.2
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.
- checksums.yaml +8 -8
- data/lib/deepsort.rb +10 -23
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
MTM1YTQ1NjczOTQ3MDVlYzQzM2E4MjgxYzI3MmI0ZjhiNGRiZjNkMg==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
ZDYzMGZiZTRlYjk0ZWQzNTg4Yjg1ODA5NjQ4YzNlZmQ4OWJhZmIxZQ==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
YzM1ZTVhNWE2NzdmY2I0M2VkNTVjNmQyYzBkZWFjNGEyYjFiZGZlOTE2MWNk
|
10
|
+
Y2M1ZTVkYzY4ZWVlMDNkZjhhOTM0NTczNWZhNGNiODc4MjE2OTU4NTQ1NTA4
|
11
|
+
NDgyOGEwNjViMGIxNWY1MDEwNGIzYzcwZDQ5MDc5ZDRiMDQ5Yzc=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
NTU1MWVjMTNlOTVlMzI1MzRkZDc5NDhmMzc0YTJiYzMxYjc3MjNjODMwYTdi
|
14
|
+
ZjVmYmJlYWE4ZDU2NzBkM2YzZmJhZDA0YWIxNjhkYmJkOTI0NjM2OWJhYmI4
|
15
|
+
ZjUyZWZlMWUyMWI5NmE4NTkwMTQ3NDAxNzMzZWY4MDYyYWQ5ZmE=
|
data/lib/deepsort.rb
CHANGED
@@ -28,8 +28,6 @@ module DeepSort
|
|
28
28
|
self.map do |value|
|
29
29
|
if value.respond_to? :deep_sort_by
|
30
30
|
value.deep_sort_by(&block)
|
31
|
-
elsif value.respond_to? :sort_by
|
32
|
-
value.sort_by(&block)
|
33
31
|
else
|
34
32
|
value
|
35
33
|
end
|
@@ -40,8 +38,6 @@ module DeepSort
|
|
40
38
|
self.map! do |value|
|
41
39
|
if value.respond_to? :deep_sort_by!
|
42
40
|
value.deep_sort_by!(&block)
|
43
|
-
elsif value.respond_to? :sort_by!
|
44
|
-
value.sort_by!(&block)
|
45
41
|
else
|
46
42
|
value
|
47
43
|
end
|
@@ -50,7 +46,6 @@ module DeepSort
|
|
50
46
|
end
|
51
47
|
|
52
48
|
# inject this method into the Hash class to add deep sort functionality to Hashes
|
53
|
-
# Note: this cannot sort a hashes keys in place (deep_sort!), only the values
|
54
49
|
module DeepSortHash
|
55
50
|
def deep_sort
|
56
51
|
deep_sort_by { |obj| obj }
|
@@ -64,16 +59,12 @@ module DeepSort
|
|
64
59
|
Hash[self.map do |key, value|
|
65
60
|
[if key.respond_to? :deep_sort_by
|
66
61
|
key.deep_sort_by(&block)
|
67
|
-
elsif key.respond_to? :sort_by
|
68
|
-
key.sort_by(&block)
|
69
62
|
else
|
70
63
|
key
|
71
64
|
end,
|
72
65
|
|
73
66
|
if value.respond_to? :deep_sort_by
|
74
67
|
value.deep_sort_by(&block)
|
75
|
-
elsif value.respond_to? :sort_by
|
76
|
-
value.sort_by(&block)
|
77
68
|
else
|
78
69
|
value
|
79
70
|
end]
|
@@ -81,25 +72,21 @@ module DeepSort
|
|
81
72
|
end.sort_by(&block)]
|
82
73
|
end
|
83
74
|
|
84
|
-
# Ruby Hashes don't have in-place-modification like map!, each!, or sort!
|
85
|
-
# that means that this method won't be able to sort the hash keys in place either.
|
86
|
-
# since Hashes are technically non-sorted key value pairs, this shouldn't be a problem
|
87
75
|
def deep_sort_by!(&block)
|
88
|
-
Hash[self.map do |key, value|
|
89
|
-
if key.respond_to? :deep_sort_by!
|
76
|
+
replace(Hash[self.map do |key, value|
|
77
|
+
[if key.respond_to? :deep_sort_by!
|
90
78
|
key.deep_sort_by!(&block)
|
91
|
-
|
92
|
-
key
|
93
|
-
end
|
79
|
+
else
|
80
|
+
key
|
81
|
+
end,
|
94
82
|
|
95
|
-
if value.respond_to? :
|
83
|
+
if value.respond_to? :deep_sort_by!
|
96
84
|
value.deep_sort_by!(&block)
|
97
|
-
|
98
|
-
value
|
99
|
-
end
|
85
|
+
else
|
86
|
+
value
|
87
|
+
end]
|
100
88
|
|
101
|
-
|
102
|
-
end]
|
89
|
+
end.sort_by(&block)])
|
103
90
|
end
|
104
91
|
end
|
105
92
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: deepsort
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mark Crossen
|
@@ -18,7 +18,8 @@ extra_rdoc_files: []
|
|
18
18
|
files:
|
19
19
|
- lib/deepsort.rb
|
20
20
|
homepage: https://github.com/mcrossen/deepsort
|
21
|
-
licenses:
|
21
|
+
licenses:
|
22
|
+
- MIT
|
22
23
|
metadata: {}
|
23
24
|
post_install_message:
|
24
25
|
rdoc_options: []
|