deep_sort 0.1.5 → 0.1.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 51308ee499cdbda6ae004eaf59d25f82c75fe0f6
4
- data.tar.gz: a9e7beb34b34c6e830f822d972661f834e493a2d
3
+ metadata.gz: 7f99e5f35efb24d1bbe94438fe3d2f41660173cf
4
+ data.tar.gz: eab9fbf3d5e3f4aac99429be7bd9a40ed93810a5
5
5
  SHA512:
6
- metadata.gz: cbbc5f475b1e1e31ec7a10004c982f8dfc959e4882e505052e19e677abf285c43a540e3c59f017fd04a3a42342cd34e6c5e4142711cdc938c351cf03e2d303cf
7
- data.tar.gz: 9ae882bb8dd8cbf35653220b9a978b06703ed9d6ac931db8f8f3dce402816313950bbdfb0ccfaaa7988f36abbecd633148dc599943301ea1127546c4d9e9b2c5
6
+ metadata.gz: f2bb698c4f4d76138f9de4018a2135216a699b8959a87c1183c8d2fb32a33356df455deb3a4dfd12d57525754ea8c30538399cc2b75c6eea8f81190f2b3fd564
7
+ data.tar.gz: 0b596614e5dc349c089c4010a5397b05bf7088ae340cd419fa51bab409536f1b28ac7b194a53b3e8c30e9d2c9053cc39aa3ec4a4bf2675ded5eea0b86a2a0f2c
data/.gitignore CHANGED
@@ -7,3 +7,4 @@
7
7
  /pkg/
8
8
  /spec/reports/
9
9
  /tmp/
10
+ /test.rb
data/README.md CHANGED
@@ -50,7 +50,7 @@ hash = {"firstName"=>"John",
50
50
  [{"type"=>"home", "number"=>"212 555-1234"},
51
51
  {"type"=>"fax", "number"=>"646 555-4567"}],
52
52
  "gender"=>{"type"=>"male"},
53
- "number"=>[5, 4, 9, 7],
53
+ "number"=>[10, 5, 4, 9, 7],
54
54
  "tags"=>Set["staff", "engineer", {"joined_at"=>"2016", "emp_no"=>10}, "writer"]}
55
55
 
56
56
  pp DeepSort.deep_sort(hash)
@@ -66,7 +66,7 @@ pp DeepSort.deep_sort(hash)
66
66
  # "phoneNumber"=>
67
67
  # [{"number"=>"212 555-1234", "type"=>"home"},
68
68
  # {"number"=>"646 555-4567", "type"=>"fax"}],
69
- # "number" => [4, 5, 7, 9],
69
+ # "number" => [4, 5, 7, 9, 10],
70
70
  # "tags"=>Set["staff", "engineer", {"joined_at"=>"2016", "emp_no"=>10}, "writer"]}
71
71
  ```
72
72
 
@@ -9,7 +9,7 @@ module DeepSort::ArrayExt
9
9
  end
10
10
 
11
11
  def self.deep_sort(array, options = {})
12
- array.map {|value|
12
+ array = array.map do |value|
13
13
  if value.is_a?(Array)
14
14
  DeepSort::ArrayExt.deep_sort(value, options)
15
15
  elsif value.is_a?(Hash)
@@ -19,6 +19,12 @@ module DeepSort::ArrayExt
19
19
  else
20
20
  value
21
21
  end
22
- }.sort_by(&:to_s)
22
+ end
23
+
24
+ begin
25
+ array.sort
26
+ rescue
27
+ array.sort_by(&:to_s)
28
+ end
23
29
  end
24
30
  end
@@ -10,8 +10,15 @@ module DeepSort::HashExt
10
10
 
11
11
  def self.deep_sort(hash, options = {})
12
12
  new_hash = {}
13
+ keys = hash.keys
13
14
 
14
- hash.keys.sort_by(&:to_s).each do |key|
15
+ begin
16
+ keys = keys.sort
17
+ rescue
18
+ keys = keys.sort_by(&:to_s)
19
+ end
20
+
21
+ keys.each do |key|
15
22
  value = hash[key]
16
23
 
17
24
  if value.is_a?(Array)
@@ -1,3 +1,3 @@
1
1
  module DeepSort
2
- VERSION = '0.1.5'
2
+ VERSION = '0.1.6'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: deep_sort
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - winebarrel
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-08-20 00:00:00.000000000 Z
11
+ date: 2016-08-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler