cascade-rb 0.2.1 → 0.2.2

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: d2165fc5c39a2e0e92ea8a3151c08d0dfe23b124
4
- data.tar.gz: 436c06bdae41f289e2a73600eebff8f1b6d5f5db
3
+ metadata.gz: d26998810ac71323dc84adce37888cb7bbce2127
4
+ data.tar.gz: ac4635ee292536f00506ecd96a6cee059ec0745e
5
5
  SHA512:
6
- metadata.gz: 9259f30d5960e10b8f416729d64a0acf343f9f50a1df6d70e2076a198e03adb188be243bb3efb78b6e4d2215f80b9fadb0b82d83cf404fd5f6e8908fb3ae8d33
7
- data.tar.gz: 585e311fa3ceec43cedbd7e6be9c7e2597c02a27a16b154fb1b0fe841fc541814a2754531c69795377ad6b4af01ddf9223d42748abdbb55bdaaf6307f2b03b9c
6
+ metadata.gz: f2942683553dbdef1d91b028f7720e9f284d8df08640bd76c9403da70b77ec2a959292aa0f268835fd0c647c4eae715c55fba061510423415c8f8067e3806a55
7
+ data.tar.gz: bebf683f1b2bbabf727555aca0c114373612c93a7f0cced61ffc836e07f2f576d37d365b791c66f5e56fdd82a4e1074c0c095944e0c8e277fc9861efeddee482
@@ -1,2 +1,3 @@
1
1
  require "cascade/complex_fields/currency"
2
2
  require "cascade/complex_fields/boolean"
3
+ require "cascade/complex_fields/array_processor"
@@ -0,0 +1,13 @@
1
+ module Cascade
2
+ module ComplexFields
3
+ class ArrayProcessor
4
+ def initialize(processor)
5
+ @processor = processor
6
+ end
7
+
8
+ def call(values)
9
+ values.map { |value| @processor.call(value) }
10
+ end
11
+ end
12
+ end
13
+ end
@@ -47,12 +47,17 @@ module Cascade
47
47
  @presenters ||= options.reverse_merge(defined_presenters)
48
48
  end
49
49
 
50
+ def self_copy
51
+ self.class.new(options)
52
+ end
53
+
50
54
  def defined_presenters
51
55
  {
52
- string: DEFAULT_PROCESSOR,
53
- currency: ComplexFields::Currency.new,
54
- boolean: ComplexFields::Boolean.new,
55
- recursive: self.class.new(options)
56
+ string: DEFAULT_PROCESSOR,
57
+ currency: ComplexFields::Currency.new,
58
+ boolean: ComplexFields::Boolean.new,
59
+ iterable_recursive: ComplexFields::ArrayProcessor.new(self_copy),
60
+ recursive: self_copy
56
61
  }
57
62
  end
58
63
  end
@@ -1,4 +1,4 @@
1
1
  module Cascade
2
2
  # current gem version
3
- VERSION = "0.2.1"
3
+ VERSION = "0.2.2"
4
4
  end
@@ -0,0 +1,15 @@
1
+ require "spec_helper"
2
+ require "cascade/complex_fields/array_processor"
3
+
4
+ describe Cascade::ComplexFields::ArrayProcessor do
5
+ def described_class
6
+ Cascade::ComplexFields::ArrayProcessor
7
+ end
8
+
9
+ let(:processor) { -> (value) { value + 1 } }
10
+ let(:subject) { described_class.new(processor) }
11
+
12
+ it "return processed array" do
13
+ assert_equal subject.call([1, 2, 3]), [2, 3, 4]
14
+ end
15
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cascade-rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ignat Zakrevsky
@@ -167,6 +167,7 @@ files:
167
167
  - lib/cascade.rb
168
168
  - lib/cascade/columns_matching.rb
169
169
  - lib/cascade/complex_fields.rb
170
+ - lib/cascade/complex_fields/array_processor.rb
170
171
  - lib/cascade/complex_fields/boolean.rb
171
172
  - lib/cascade/complex_fields/currency.rb
172
173
  - lib/cascade/concerns/statistics_collectible.rb
@@ -187,6 +188,7 @@ files:
187
188
  - lib/cascade/statistics_stores/counter_store.rb
188
189
  - lib/cascade/version.rb
189
190
  - spec/lib/columns_matching_spec.rb
191
+ - spec/lib/complex_fields/array_processor_spec.rb
190
192
  - spec/lib/complex_fields/boolean_spec.rb
191
193
  - spec/lib/complex_fields/currency_spec.rb
192
194
  - spec/lib/concerns/statistics_collectible_spec.rb
@@ -230,6 +232,7 @@ specification_version: 4
230
232
  summary: Ruby data parser gem.
231
233
  test_files:
232
234
  - spec/lib/columns_matching_spec.rb
235
+ - spec/lib/complex_fields/array_processor_spec.rb
233
236
  - spec/lib/complex_fields/boolean_spec.rb
234
237
  - spec/lib/complex_fields/currency_spec.rb
235
238
  - spec/lib/concerns/statistics_collectible_spec.rb