deep_sort 0.1.5 → 0.1.6

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 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