lhs 6.8.0 → 6.8.1

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