aggkit 0.4.5.12711 → 0.4.5.12925

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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +2 -2
  3. data/bin/aggmerge +25 -2
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0b00794559e4868ffe8d903cd0d4ed94f9fdd8e402327874488788047b6c16ad
4
- data.tar.gz: 534c66235fb3ff26ef985922cd4449d3f7f9bc9e4908d6bdb8fd828cbd344f07
3
+ metadata.gz: 3950616bd877f083d95f58db6c1a5eb033ffe375be3b80d7b92c24bb309beb86
4
+ data.tar.gz: d6b2b40d76a67e9e6f630fafc8d6739a0ceac1374c364fce76b875b199aa60bc
5
5
  SHA512:
6
- metadata.gz: 70b0d3f242ee71a9bc6386d651d5f888772b54cc72d95da33f887ce9c6403a850f515ea4311116a1d081df85fbcef0dfeb12a07770b95ebe16baca04205a9a4c
7
- data.tar.gz: ac33be8ecd680b890764eb9e61a6cc29a9126acc3f08675fc8d4ed0f4f6b746c2f1f7657c64b5eb7d4c3e943926c1c0dea5e0b6b7028cc4b9a9bfcc1f7fd9af0
6
+ metadata.gz: 9dd3a92b921e51cd9292caf4f02eb450fc992fb25d779a46d3942630d5f47b7a98f688374b117bae4f4fb440a493003db6ffe4d0f408ca83f758442e23b6abdf
7
+ data.tar.gz: 460930faa6ebf351b2001a5f58caed260f2ea505284580e148f8279e6d38ffb902094e5f4a765341691cda9165fd888e810db882e9b460142ebd66398d6f8f62
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- aggkit (0.4.5.12711)
4
+ aggkit (0.4.5.12925)
5
5
  diplomat
6
6
  dotenv
7
7
  json
@@ -18,7 +18,7 @@ GEM
18
18
  deep_merge (~> 1.0, >= 1.0.1)
19
19
  faraday (~> 0.9)
20
20
  docile (1.3.1)
21
- dotenv (2.7.3)
21
+ dotenv (2.7.4)
22
22
  faraday (0.15.4)
23
23
  multipart-post (>= 1.2, < 3)
24
24
  json (2.2.0)
data/bin/aggmerge CHANGED
@@ -29,7 +29,31 @@ class Array
29
29
 
30
30
  end
31
31
 
32
+ def smart_array_merge(first, second)
33
+ # FV:["FIELD1", "FIELD2", "FIELD3=3", "FIELD4=4"]
34
+ # SV:["FIELD2=2", "FIELD4=44"]
35
+ # RESULT:["FIELD1", "FIELD2=2", "FIELD3=3", "FIELD4=44"]
36
+
37
+ vmap = first.each_with_object({}) do |value, vmap|
38
+ k = value
39
+ k, v = value.split('=') rescue nil
40
+ vmap[k] = v
41
+ end
42
+
43
+ second.each_with_object(vmap) do |value, vmap|
44
+ k = value
45
+ k, v = value.split('=') rescue nil
46
+ vmap[k] = v
47
+ end
32
48
 
49
+ vmap.each_with_object([]) do |(k, v), result|
50
+ result << if v
51
+ "#{k}=#{v}"
52
+ else
53
+ k
54
+ end
55
+ end
56
+ end
33
57
 
34
58
  def extend_hash(first, second)
35
59
  raise ArgumentError.new('First and second args equal nil') if [first, second].all? &:nil?
@@ -50,8 +74,7 @@ def extend_hash(first, second)
50
74
  elsif fv.is_a? Hash
51
75
  extend_hash(fv, sv)
52
76
  elsif fv.is_a? Array
53
- fv |= sv
54
- first[fk] = fv
77
+ first[fk] = smart_array_merge(fv, sv)
55
78
  else
56
79
  first[fk] = sv
57
80
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aggkit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.5.12711
4
+ version: 0.4.5.12925
5
5
  platform: ruby
6
6
  authors:
7
7
  - Godko Ivan
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2019-06-23 00:00:00.000000000 Z
12
+ date: 2019-06-26 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: diplomat