knuckles 0.1.0 → 0.1.1

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: bb83d5d1b1dd47e62ea44595951f957304215bc2
4
- data.tar.gz: a7ca90254ffad1b2a5c7d901ffb00bd18a0cce07
3
+ metadata.gz: 5c87ae8cc3d3661d7f726b97cc65a6a14ddd1570
4
+ data.tar.gz: b9a84d855d7088f3808eeeba46311e6707f220e6
5
5
  SHA512:
6
- metadata.gz: 3f705fab0c4141190600d8c7179cb0f5ef9db0fd408fa978377ec0fb8c8e01bcb6d9b266049ba7c86bc30753eb6d4afa4586fa099396792609375122be967e4b
7
- data.tar.gz: df014c860e15f578d98c9cdb5f6a5ab264da0451923b3647f17eca26d6ebe440f7d88f1b51c8ca61fb4a32936fbd7a2b55821f176d4d583549f87f322b8277a1
6
+ metadata.gz: 288a745e8475764d7322d8108ef201c93b9adc61f10469caad7b00d626d8598202c6e88baa775e1c82d6a18920371a3841aa259b036a33cefb05a230067b0a24
7
+ data.tar.gz: 0660c72b861d3405249949734808987969644f43ad6ce63b01b0b1d7166586908e44c1ca8f1bba73c434e7c6d6cfe3f01c4becb0fa65e86751fae694c72458f4
data/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ ## v0.1.1 - 2016-03-22
2
+
3
+ * Performance: Improve unique handling by favoring a single `uniq!` call over
4
+ the use of `Set`.
5
+
1
6
  ## v0.1.0 - 2016-03-21
2
7
 
3
8
  * Initial release (third time's the charm).
@@ -9,7 +9,7 @@ module Knuckles
9
9
  end
10
10
 
11
11
  def call(prepared, _)
12
- prepared.each_with_object(set_backed_hash) do |hash, memo|
12
+ prepared.each_with_object(array_backed_hash) do |hash, memo|
13
13
  hash[:result].each do |root, values|
14
14
  case values
15
15
  when Hash then memo[root] << values
@@ -19,8 +19,8 @@ module Knuckles
19
19
  end
20
20
  end
21
21
 
22
- def set_backed_hash
23
- Hash.new { |hash, key| hash[key] = Set.new }
22
+ def array_backed_hash
23
+ Hash.new { |hash, key| hash[key] = [] }
24
24
  end
25
25
  end
26
26
  end
@@ -13,8 +13,8 @@ module Knuckles
13
13
  private
14
14
 
15
15
  def keys_to_arrays(objects)
16
- objects.each do |key, value|
17
- objects[key] = value.to_a if value.is_a?(Set)
16
+ objects.each do |_, value|
17
+ value.uniq! if value.is_a?(Array)
18
18
  end
19
19
  end
20
20
  end
@@ -1,3 +1,3 @@
1
1
  module Knuckles
2
- VERSION = "0.1.0".freeze
2
+ VERSION = "0.1.1".freeze
3
3
  end
@@ -19,17 +19,18 @@ RSpec.describe Knuckles::Combiner do
19
19
  combined = Knuckles::Combiner.call(prepared, {})
20
20
 
21
21
  expect(combined).to eq(
22
- author: Set.new([
22
+ author: [
23
23
  {id: 1, name: "Michael"}
24
- ]),
25
- posts: Set.new([
24
+ ],
25
+ posts: [
26
26
  {id: 1, title: "hello", tag_ids: [1, 2]},
27
27
  {id: 2, title: "there", tag_ids: [1]}
28
- ]),
29
- tags: Set.new([
28
+ ],
29
+ tags: [
30
30
  {id: 1, name: "alpha"},
31
- {id: 2, name: "gamma"}
32
- ])
31
+ {id: 2, name: "gamma"},
32
+ {id: 1, name: "alpha"}
33
+ ]
33
34
  )
34
35
  end
35
36
  end
@@ -3,14 +3,14 @@ RSpec.describe Knuckles::Dumper do
3
3
  it "dumps a tree of objects" do
4
4
  objects = {
5
5
  author: {id: 1, name: "Ernest"},
6
- posts: Set.new([
6
+ posts: [
7
7
  {id: 1, title: "great"},
8
8
  {id: 2, title: "stuff"}
9
- ]),
10
- tags: Set.new([
9
+ ],
10
+ tags: [
11
11
  {id: 1, name: "alpha"},
12
12
  {id: 2, name: "gamma"}
13
- ])
13
+ ]
14
14
  }
15
15
 
16
16
  dumped = Knuckles::Dumper.call(objects, {})
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: knuckles
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Parker Selbert
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-03-21 00:00:00.000000000 Z
11
+ date: 2016-03-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport