lhs 6.8.0 → 6.8.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: 49f6aad4dc7d9f73ffaabcc3d433b4ea1e22aa9b
4
- data.tar.gz: 9b913652093f6587c121d8e8e2da7ddbf8633ae5
3
+ metadata.gz: a903adf673e0a9c79c2e060986a78bbfd50ff519
4
+ data.tar.gz: 2be897ab11167c15ab24413e0a3121d3152ddf51
5
5
  SHA512:
6
- metadata.gz: 6a97f63461df816e36ac3ca2f837db9b330702683a0a320747f39258b3aa6b73ed6c3d37d7f5c2e014a9db9007ce774c58d1f52d0a0bf4d206e3880f41863ae5
7
- data.tar.gz: 71c16105809625cd8c2b598f1d8e5934cb7d0152bb067ed904ca41db1604838d5997f36dea4dbbc225d32d578743447067e189f5673e0210ec95254d8328008a
6
+ metadata.gz: 6155cbf30df50413a5339643d4bfda0126ea7e7c87ae20a21fa7dfc7cd9793448b971c139625d0ec508baa15bee59f318acf8d1c467b64d32479482fa333eddd
7
+ data.tar.gz: bc9c6bebdab8cbf5c915474e3837b7b6c649b25fc46e5eec1706a515a457e1b4ff28147b814ac1073a59d47f5e475f451d4543588d99f5c0fd87e05dcff683cf
@@ -28,6 +28,7 @@ Gem::Specification.new do |s|
28
28
  s.add_development_dependency 'rails', '>= 4.0.0'
29
29
  s.add_development_dependency 'webmock'
30
30
  s.add_development_dependency 'pry'
31
+ s.add_development_dependency 'pry-byebug'
31
32
  s.add_development_dependency 'capybara'
32
33
  s.add_development_dependency 'rubocop'
33
34
  s.add_development_dependency 'json', '>= 1.8.2'
@@ -3,178 +3,154 @@
3
3
  # [{ places: [:customer] }, { places: { customer: :contract }}]
4
4
  # and so on
5
5
  class LHS::Complex
6
+ attr_reader :data
6
7
 
7
- # Merge an array of complex that is created
8
- # when chaining includes/references and
9
- # reducing values is required for further handling
10
- def self.merge(data)
11
- result = []
12
- data.flatten.uniq.each do |datum|
13
- result = merge_first_level!(result, datum)
8
+ def reduce!(data)
9
+ if data.is_a?(LHS::Complex)
10
+ @data = data.data
11
+ elsif data.is_a?(Array) && !data.empty?
12
+ @data = data.inject(LHS::Complex.new.reduce!([])) { |acc, datum| acc.merge!(LHS::Complex.new.reduce!(datum)) }.data
13
+ elsif data.is_a?(Hash) && !data.empty?
14
+ @data = data.map { |k, v| [k, LHS::Complex.new.reduce!(v)] }.to_h
15
+ else
16
+ @data = data
14
17
  end
15
- reduce!(result)
16
- end
17
18
 
18
- def self.reduce!(array)
19
- array.flatten!
20
- array.uniq!
21
- return array.first if array.length == 1
22
- reduce_symbols!(array)
23
- return nil if array.blank?
24
- array
19
+ self
25
20
  end
26
- private_class_method :reduce!
27
21
 
28
- def self.reduce_symbols!(array)
29
- array.each do |element|
30
- if element.is_a?(Symbol)
31
- array.each do |other_element|
32
- array.delete(element) if other_element.is_a?(Hash) && other_element.key?(element)
33
- array.delete(element) if other_element.is_a?(Array) && other_element.include?(element)
34
- end
35
- end
36
- end
22
+ def self.reduce(data)
23
+ new.reduce!(data).unwrap
37
24
  end
38
- private_class_method :reduce_symbols!
39
25
 
40
- # Merging the addition into the base array (first level)
41
- def self.merge_first_level!(base, addition)
42
- return [addition] if base.empty?
43
- base.each do |element|
44
- merge_multi_level!(base, element, addition)
45
- end
46
- end
47
- private_class_method :merge_first_level!
48
-
49
- # Merge nested complex (addition) into
50
- # an hash or an array (element) of the parent
51
- def self.merge_multi_level!(parent, element, addition, key = nil)
52
- return if element == addition
53
- if addition.is_a?(Symbol) && element.is_a?(Hash)
54
- merge_symbol_into_hash!(parent, element, addition, key)
55
- elsif addition.is_a?(Symbol) && element.is_a?(Array)
56
- merge_symbol_into_array!(parent, element, addition, key)
57
- elsif addition.is_a?(Symbol) && element.is_a?(Symbol)
58
- add_symbol_to_parent!(parent, element, addition, key)
59
- elsif addition.is_a?(Hash) && element.is_a?(Symbol)
60
- merge_hash_into_symbol!(parent, element, addition, key)
61
- elsif addition.is_a?(Hash) && element.is_a?(Hash)
62
- merge_hash_into_hash!(parent, element, addition, key)
63
- elsif addition.is_a?(Hash) && element.is_a?(Array)
64
- merge_hash_into_array!(element, addition)
65
- elsif addition.is_a?(Array) && element.is_a?(Symbol)
66
- merge_array_into_symbol!(parent, element, addition, key)
67
- elsif addition.is_a?(Array) && element.is_a?(Hash)
68
- merge_array_into_hash!(parent, element, addition, key)
69
- elsif addition.is_a?(Array) && element.is_a?(Array)
70
- merge_array_into_array!(parent, element, addition, key)
26
+ def merge!(other)
27
+ if data.is_a?(Symbol)
28
+ merge_into_symbol!(other)
29
+ elsif data.is_a?(Array)
30
+ merge_into_array!(other)
31
+ elsif data.is_a?(Hash)
32
+ merge_into_hash!(other)
71
33
  else
72
- raise "Can't merge that complex: #{addition} -> #{parent} (#{element})#{key ? " for #{key}" : ''}"
34
+ raise ArgumentError, "Cannot merge #{unwrap} with #{other.unwrap}"
73
35
  end
36
+
37
+ self
74
38
  end
75
- private_class_method :merge_multi_level!
76
39
 
77
- def self.merge_symbol_into_hash!(parent, element, addition, key = nil)
78
- return if element.key?(addition)
79
- if parent.is_a?(Array)
80
- parent.push(addition)
81
- reduce!(parent)
82
- elsif parent.is_a?(Hash)
83
- parent[key] = reduce!([element, addition])
40
+ def unwrap
41
+ if data.is_a?(Array)
42
+ result = data.map(&:unwrap)
43
+ result.empty? ? nil : result
44
+ elsif data.is_a?(Hash)
45
+ result = data.map { |k, v| [k, v.unwrap] }.to_h
46
+ result.empty? ? nil : result
84
47
  else
85
- raise "Can't merge that complex: #{addition} -> #{parent} (#{element})#{key ? " for #{key}" : ''}"
48
+ data
86
49
  end
87
50
  end
88
- private_class_method :merge_symbol_into_hash!
89
51
 
90
- def self.merge_symbol_into_array!(_parent, element, addition, _key = nil)
91
- return if element.include?(addition)
92
- element.push(addition)
93
- reduce!(element)
52
+ def ==(other)
53
+ unwrap == other.unwrap
94
54
  end
95
- private_class_method :merge_symbol_into_array!
96
55
 
97
- def self.merge_hash_into_symbol!(parent, element, addition, key = nil)
98
- parent.delete(element) if addition.key?(element)
99
- if parent.is_a?(Array)
100
- merge_hash_into_array!(parent, addition)
101
- elsif parent.is_a?(Hash)
102
- if addition.key?(element)
103
- parent[key] = addition
104
- else
105
- parent[key] = reduce!([element, addition])
106
- end
107
- else
108
- raise "Can't merge that complex: #{addition} -> #{parent} (#{element})"
56
+ private
57
+
58
+ def merge_into_array!(other)
59
+ if data.empty?
60
+ @data = other.data
61
+ elsif other.data.is_a?(Symbol)
62
+ merge_symbol_into_array!(other)
63
+ elsif other.data.is_a?(Array)
64
+ merge_array_into_array!(other)
65
+ elsif other.data.is_a?(Hash)
66
+ merge_hash_into_array!(other)
109
67
  end
110
68
  end
111
- private_class_method :merge_hash_into_symbol!
112
69
 
113
- def self.merge_array_into_symbol!(parent, element, addition, key = nil)
114
- addition.unshift(element)
115
- reduce!(addition)
116
- parent[key] = addition
70
+ def merge_symbol_into_array!(other)
71
+ return if data.include?(other)
72
+ data.push(other)
117
73
  end
118
- private_class_method :merge_array_into_symbol!
119
74
 
120
- def self.merge_hash_into_hash!(parent, element, addition, _key = nil)
121
- addition.keys.each do |key|
122
- if element[key]
123
- parent.delete(addition)
124
- merge_multi_level!(element, element[key], addition[key], key)
125
- else
126
- parent.delete(addition)
127
- element[key] = addition[key]
75
+ def merge_array_into_array!(other)
76
+ @data = other.data.inject(self) { |acc, datum| acc.merge!(datum) }.data
77
+ end
78
+
79
+ def merge_hash_into_array!(other)
80
+ @data = [].tap do |new_data|
81
+ data.each do |element|
82
+ if element.data.is_a?(Symbol)
83
+ # remove keys that were in the hash
84
+ new_data << element if !other.data.key?(element.data)
85
+ elsif element.data.is_a?(Array)
86
+ new_data << element
87
+ elsif element.data.is_a?(Hash)
88
+ new_data << element.merge!(other)
89
+ end
128
90
  end
129
91
  end
92
+
93
+ # add it to the array if there was no hash to merge it
94
+ data.push(other) if !data.any? { |element| element.data.is_a?(Hash) }
130
95
  end
131
- private_class_method :merge_hash_into_hash!
132
96
 
133
- def self.merge_array_into_hash!(parent, element, addition, key = nil)
134
- addition.each do |element_to_add|
135
- merge_multi_level!(parent, element, element_to_add, key)
97
+ def merge_into_hash!(other)
98
+ if data.empty?
99
+ @data = other.data
100
+ elsif other.data.is_a?(Symbol)
101
+ merge_symbol_into_hash!(other)
102
+ elsif other.data.is_a?(Array)
103
+ merge_array_into_hash!(other)
104
+ elsif other.data.is_a?(Hash)
105
+ merge_hash_into_hash!(other)
136
106
  end
137
107
  end
138
- private_class_method :merge_array_into_hash!
139
108
 
140
- def self.merge_array_into_array!(_parent, element, addition, _key = nil)
141
- addition.each do |element_to_add|
142
- merge_multi_level!(element, element, element_to_add)
143
- end
109
+ def merge_symbol_into_hash!(other)
110
+ return if data.key?(other.data)
111
+
112
+ @data = [LHS::Complex.new.reduce!(data), other]
113
+ end
114
+
115
+ def merge_array_into_hash!(other)
116
+ @data = other.data.inject(self) { |acc, datum| acc.merge!(datum) }.data
144
117
  end
145
- private_class_method :merge_array_into_array!
146
118
 
147
- def self.merge_hash_into_array!(array, addition)
148
- array.each do |element|
149
- next unless element.is_a?(Hash)
150
- element.keys.each do |key|
151
- next unless addition.key?(key)
152
- return merge_multi_level!(element, element[key], addition[key], key)
119
+ def merge_hash_into_hash!(other)
120
+ other.data.each do |k, v|
121
+ if data.key?(k)
122
+ data[k] = data[k].merge!(v)
123
+ else
124
+ data[k] = v
153
125
  end
154
126
  end
155
- array.push(addition)
156
- reduce!(array)
157
127
  end
158
- private_class_method :merge_hash_into_array!
159
128
 
160
- def self.add_symbol_to_parent!(parent, element, addition, key = nil)
161
- if parent.is_a?(Array)
162
- unless parent.include?(addition)
163
- parent.push(addition)
164
- reduce!(parent)
165
- end
166
- elsif parent.is_a?(Hash)
167
- add_symbol_to_hash_parent!(parent, element, addition, key)
168
- else
169
- raise "Can't merge that complex: #{addition} -> #{parent} (#{element})"
129
+ def merge_into_symbol!(other)
130
+ if other.data.is_a?(Symbol)
131
+ merge_symbol_into_symbol!(other)
132
+ elsif other.data.is_a?(Array)
133
+ merge_array_into_symbol!(other)
134
+ elsif other.data.is_a?(Hash)
135
+ merge_hash_into_symbol!(other)
170
136
  end
171
137
  end
172
- private_class_method :add_symbol_to_parent!
173
138
 
174
- def self.add_symbol_to_hash_parent!(parent, element, addition, key)
175
- return if parent[key] == addition
176
- return if parent[key].is_a?(Array) && parent[key].include?(addition)
177
- parent[key] = reduce!([element, addition])
139
+ def merge_symbol_into_symbol!(other)
140
+ return if other.data == data
141
+
142
+ @data = [LHS::Complex.new.reduce!(data), other]
143
+ end
144
+
145
+ def merge_array_into_symbol!(other)
146
+ @data = other.data.unshift(LHS::Complex.new.reduce!(data)).uniq { |a| a.unwrap }
147
+ end
148
+
149
+ def merge_hash_into_symbol!(other)
150
+ if other.data.key?(data)
151
+ @data = other.data
152
+ else
153
+ @data = [LHS::Complex.new.reduce!(data), other]
154
+ end
178
155
  end
179
- private_class_method :add_symbol_to_hash_parent!
180
156
  end
@@ -288,7 +288,7 @@ class LHS::Record
288
288
  end
289
289
 
290
290
  def chain_includes
291
- LHS::Complex.merge(
291
+ LHS::Complex.reduce(
292
292
  _links
293
293
  .select { |link| link.is_a?(Include) && link.data.present? }
294
294
  .map { |link| link.data }
@@ -296,7 +296,7 @@ class LHS::Record
296
296
  end
297
297
 
298
298
  def chain_references
299
- LHS::Complex.merge(
299
+ LHS::Complex.reduce(
300
300
  _links
301
301
  .select { |link| link.is_a?(Reference) && link.data.present? }
302
302
  .map { |link| link.data }
@@ -193,8 +193,8 @@ class LHS::Record
193
193
  data = LHC.request(options.compact).map do |response|
194
194
  LHS::Data.new(response.body, nil, self, response.request)
195
195
  end
196
- including = LHS::Complex.merge options.compact.map { |options| options.delete(:including) }.compact
197
- referencing = LHS::Complex.merge options.compact.map { |options| options.delete(:referencing) }.compact
196
+ including = LHS::Complex.reduce options.compact.map { |options| options.delete(:including) }.compact
197
+ referencing = LHS::Complex.reduce options.compact.map { |options| options.delete(:referencing) }.compact
198
198
  data = restore_with_nils(data, locate_nils(options)) # nil objects in data provide location information for mapping
199
199
  data = LHS::Data.new(data, nil, self)
200
200
  handle_includes(including, data, referencing) if including.present? && !data.empty?
@@ -1,3 +1,3 @@
1
1
  module LHS
2
- VERSION = "6.8.0"
2
+ VERSION = "6.8.1"
3
3
  end
@@ -1,125 +1,139 @@
1
1
  require 'rails_helper'
2
2
 
3
3
  describe LHS::Complex do
4
+ it 'returns nil when result is empty' do
5
+ expect(LHS::Complex.reduce([])).to be_nil
6
+ end
7
+
8
+ it 'forwards primitive types' do
9
+ expect(LHS::Complex.reduce(entry_id: 123)).to eq(entry_id: 123)
10
+ end
11
+
12
+ it 'fails when trying to merge primitive types' do
13
+ expect {
14
+ LHS::Complex.reduce([{ entry: true }, { entry: :content }])
15
+ }.to raise_error(ArgumentError)
16
+ end
17
+
4
18
  context 'first level' do
5
- context 'merges symbols into/with X' do
6
- it 'merges symbols into hash' do
7
- expect(LHS::Complex.merge([
19
+ context 'reduces symbols into/with X' do
20
+ it 'reduces symbols into hash' do
21
+ expect(LHS::Complex.reduce([
8
22
  { entries: :contract },
9
23
  :entries
10
24
  ])).to eq(entries: :contract)
11
25
  end
12
26
 
13
- it 'merges symbols into array' do
14
- expect(LHS::Complex.merge([
27
+ it 'reduces symbols into array' do
28
+ expect(LHS::Complex.reduce([
15
29
  [:contracts],
16
30
  :entries
17
31
  ])).to eq([:contracts, :entries])
18
- expect(LHS::Complex.merge([
32
+ expect(LHS::Complex.reduce([
19
33
  [:entries],
20
34
  :entries
21
35
  ])).to eq(:entries)
22
36
  end
23
37
 
24
- it 'merges symbols with symbols' do
25
- expect(LHS::Complex.merge([
38
+ it 'reduces symbols with symbols' do
39
+ expect(LHS::Complex.reduce([
26
40
  :contracts,
27
41
  :entries
28
42
  ])).to eq([:contracts, :entries])
29
- expect(LHS::Complex.merge([
43
+ expect(LHS::Complex.reduce([
30
44
  :entries,
31
45
  :entries
32
46
  ])).to eq(:entries)
33
47
  end
34
48
  end
35
49
 
36
- context 'merges arrays into/with X' do
37
- it 'merges arrays into an hash' do
38
- expect(LHS::Complex.merge([
50
+ context 'reduces arrays into/with X' do
51
+ it 'reduces arrays into an hash' do
52
+ expect(LHS::Complex.reduce([
39
53
  { entries: :contract },
40
54
  [:entries]
41
55
  ])).to eq(entries: :contract)
42
- expect(LHS::Complex.merge([
56
+ expect(LHS::Complex.reduce([
43
57
  { entries: :contract },
44
58
  [:products]
45
59
  ])).to eq([{ entries: :contract }, :products])
46
60
  end
47
61
 
48
- it 'merges arrays into an arrays' do
49
- expect(LHS::Complex.merge([
62
+ it 'reduces arrays into an arrays' do
63
+ expect(LHS::Complex.reduce([
50
64
  [:entries],
51
65
  [:entries]
52
66
  ])).to eq(:entries)
53
- expect(LHS::Complex.merge([
67
+ expect(LHS::Complex.reduce([
54
68
  [:entries],
55
69
  [:products]
56
70
  ])).to eq([:entries, :products])
57
71
  end
58
72
 
59
- it 'merges arrays into an symbols' do
60
- expect(LHS::Complex.merge([
73
+ it 'reduces arrays into an symbols' do
74
+ expect(LHS::Complex.reduce([
61
75
  :entries,
62
76
  [:entries]
63
77
  ])).to eq(:entries)
64
- expect(LHS::Complex.merge([
78
+ expect(LHS::Complex.reduce([
65
79
  :entries,
66
80
  [:products]
67
81
  ])).to eq([:entries, :products])
68
82
  end
69
83
  end
70
84
 
71
- context 'merges hashes into/with X' do
72
- it 'merges hash into an hash' do
73
- expect(LHS::Complex.merge([
85
+ context 'reduces hashes into/with X' do
86
+ it 'reduces hash into an hash' do
87
+ expect(LHS::Complex.reduce([
74
88
  { entries: :contract },
75
89
  { entries: :products }
76
90
  ])).to eq(entries: [:contract, :products])
77
- expect(LHS::Complex.merge([
91
+ expect(LHS::Complex.reduce([
78
92
  { entries: :contract },
79
93
  { entries: :contract }
80
94
  ])).to eq(entries: :contract)
81
95
  end
82
96
 
83
- it 'merges hash into an array' do
84
- expect(LHS::Complex.merge([
97
+ it 'reduces hash into an array' do
98
+ expect(LHS::Complex.reduce([
85
99
  [:entries],
86
100
  { entries: :products }
87
101
  ])).to eq(entries: :products)
88
- expect(LHS::Complex.merge([
102
+ expect(LHS::Complex.reduce([
89
103
  [{ entries: :contract }],
90
104
  { entries: :contract }
91
105
  ])).to eq(entries: :contract)
92
106
  end
93
107
 
94
- it 'merges hash into a symbol' do
95
- expect(LHS::Complex.merge([
108
+ it 'reduces hash into a symbol' do
109
+ expect(LHS::Complex.reduce([
96
110
  :entries,
97
111
  { entries: :products }
98
112
  ])).to eq(entries: :products)
99
- expect(LHS::Complex.merge([
113
+ expect(LHS::Complex.reduce([
100
114
  :products,
101
115
  { entries: :contract }
102
116
  ])).to eq([:products, { entries: :contract }])
103
117
  end
104
118
  end
105
119
 
106
- context 'merges array into/with X' do
107
- it 'merges array into hash' do
108
- expect(LHS::Complex.merge([
120
+ context 'reduces array into/with X' do
121
+ it 'reduces array into hash' do
122
+ expect(LHS::Complex.reduce([
109
123
  { entries: :contract },
110
124
  [:entries, :products]
111
125
  ])).to eq([{ entries: :contract }, :products])
112
126
  end
113
127
 
114
- it 'merges array into array' do
115
- expect(LHS::Complex.merge([
128
+ it 'reduces array into array' do
129
+ expect(LHS::Complex.reduce([
116
130
  [:contracts],
117
131
  [:entries, :products, :contracts]
118
132
  ])).to eq([:contracts, :entries, :products])
119
133
  end
120
134
 
121
- it 'merges array with symbols' do
122
- expect(LHS::Complex.merge([
135
+ it 'reduces array with symbols' do
136
+ expect(LHS::Complex.reduce([
123
137
  :contracts,
124
138
  [:entries, :products]
125
139
  ])).to eq([:contracts, :entries, :products])
@@ -128,8 +142,8 @@ describe LHS::Complex do
128
142
  end
129
143
 
130
144
  context 'multi-level' do
131
- it 'merges a complex multi-level example' do
132
- expect(LHS::Complex.merge([
145
+ it 'reduces a complex multi-level example' do
146
+ expect(LHS::Complex.reduce([
133
147
  :contracts,
134
148
  [:entries, products: { content_ads: :address }],
135
149
  products: { content_ads: { place: :location } }
@@ -140,19 +154,19 @@ describe LHS::Complex do
140
154
  ])
141
155
  end
142
156
 
143
- it 'merges another complex multi-level example' do
144
- expect(LHS::Complex.merge([
157
+ it 'reduces another complex multi-level example' do
158
+ expect(LHS::Complex.reduce([
145
159
  [entries: :content_ads, products: :price],
146
160
  [:entries, products: { content_ads: :address }],
147
161
  [entries: { content_ads: :owner }, products: [{ price: :region }, :image, { content_ads: :owner }]]
148
162
  ])).to eq(
149
163
  entries: { content_ads: :owner },
150
- products: [{ content_ads: [:address, :owner] }, { price: :region }, :image]
164
+ products: [{ content_ads: [:address, :owner], price: :region }, :image]
151
165
  )
152
166
  end
153
167
 
154
- it 'merges another complex multi-level example' do
155
- expect(LHS::Complex.merge([
168
+ it 'reduces another complex multi-level example' do
169
+ expect(LHS::Complex.reduce([
156
170
  { entries: :products },
157
171
  { entries: [:customer, :contracts] }
158
172
  ])).to eq(
@@ -160,8 +174,8 @@ describe LHS::Complex do
160
174
  )
161
175
  end
162
176
 
163
- it 'merges another complex multi-level example' do
164
- expect(LHS::Complex.merge([
177
+ it 'reduces another complex multi-level example' do
178
+ expect(LHS::Complex.reduce([
165
179
  { entries: { customer: :contracts } },
166
180
  { entries: [:customer, :content_ads] }
167
181
  ])).to eq(
@@ -170,7 +184,7 @@ describe LHS::Complex do
170
184
  end
171
185
 
172
186
  it 'reduces properly' do
173
- expect(LHS::Complex.merge([
187
+ expect(LHS::Complex.reduce([
174
188
  [:entries, :place, :content_ads], [{ place: :content_ads }], { content_ads: :place }
175
189
  ])).to eq(
176
190
  [:entries, { place: :content_ads, content_ads: :place }]
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lhs
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.8.0
4
+ version: 6.8.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - https://github.com/local-ch/lhs/graphs/contributors
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-11-08 00:00:00.000000000 Z
11
+ date: 2016-11-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: lhc
@@ -108,6 +108,20 @@ dependencies:
108
108
  - - ">="
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: pry-byebug
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
111
125
  - !ruby/object:Gem::Dependency
112
126
  name: capybara
113
127
  requirement: !ruby/object:Gem::Requirement
@@ -221,7 +235,7 @@ files:
221
235
  - spec/collection/meta_data_spec.rb
222
236
  - spec/collection/respond_to_spec.rb
223
237
  - spec/collection/without_object_items_spec.rb
224
- - spec/complex/merge_spec.rb
238
+ - spec/complex/reduce_spec.rb
225
239
  - spec/data/collection_spec.rb
226
240
  - spec/data/equality_spec.rb
227
241
  - spec/data/inspect_spec.rb
@@ -372,7 +386,7 @@ test_files:
372
386
  - spec/collection/meta_data_spec.rb
373
387
  - spec/collection/respond_to_spec.rb
374
388
  - spec/collection/without_object_items_spec.rb
375
- - spec/complex/merge_spec.rb
389
+ - spec/complex/reduce_spec.rb
376
390
  - spec/data/collection_spec.rb
377
391
  - spec/data/equality_spec.rb
378
392
  - spec/data/inspect_spec.rb