aggkit 0.4.5.12711 → 0.4.5.12925

Sign up to get free protection for your applications and to get access to all the features.
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