data_maps 0.3.3 → 0.3.4

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: e98ad1206ae2fd432192dcc293147aa0a5f0bd3e
4
- data.tar.gz: 012bf7a5109b391cc1ba5ae3159cb1a1ec10e648
3
+ metadata.gz: af2821ba45839fc317a21346c3cfad439ad99757
4
+ data.tar.gz: 606ba1f46ff79b1328ddd8d398b037f8ff9b2fee
5
5
  SHA512:
6
- metadata.gz: 772a63b8e3436f1da7cc212e6e2d4418144df4d0a7bfc4aca0bc6938adec0c94d8af120df21743ee47f8fa59d316b3f7e44b4ac7bdef836f3725f26286719b9a
7
- data.tar.gz: 070be2c85255749782e8b9796b29556376051ff6485bb889dcf4dafecd07a16f87b28a97d4835922f1ab6b24b243136c9d63ac1aaf2d86787f1bce9b88ffe60a
6
+ metadata.gz: 3161cccfdd881fbd6cd6ada8cfe52c692d4df938aa7d6f771afc7fe913950b41145c314e8036a2bfbedd34dc01ec4cf642849440b4edeb83fd7ced331e43c74f
7
+ data.tar.gz: 3127ac3add6f6dc61b91276bddc8f20fb084d414a4a03920f37be42d0b98923b1d50c1931bc64c6bf6e26ee48bdcda5255270662e6c93ec64637fa0c219e0c78
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- data_maps (0.3.3)
4
+ data_maps (0.3.4)
5
5
  activesupport (~> 3.2, >= 3.2.21)
6
6
 
7
7
  GEM
@@ -47,7 +47,7 @@ module DataMaps
47
47
  data = _fetch_from_data(data)
48
48
 
49
49
  data = execute_conditions(data)
50
- data = execute_converter(data)
50
+ data = execute_converter(data) unless data.is_a? DataMaps::FilteredValue
51
51
 
52
52
  [to, data]
53
53
  end
@@ -58,7 +58,11 @@ module DataMaps
58
58
  # @return [mixed] mutated data
59
59
  def execute_conditions(data)
60
60
  conditions.reduce(data) do |data, condition|
61
- condition.execute(data)
61
+ if data.is_a? DataMaps::FilteredValue
62
+ data
63
+ else
64
+ condition.execute(data)
65
+ end
62
66
  end
63
67
  end
64
68
 
@@ -1,3 +1,3 @@
1
1
  module DataMaps
2
- VERSION = '0.3.3'
2
+ VERSION = '0.3.4'
3
3
  end
@@ -82,6 +82,17 @@ describe DataMaps::Statement do
82
82
 
83
83
  expect(statement.execute(data)).to eq ['to', 'some double mutated value']
84
84
  end
85
+
86
+ it 'doesn\'t call execute_converter if condition returns a FilteredValue' do
87
+ statement = DataMaps::Statement.new('from', 'to', [], [])
88
+ data = { 'from' => 'some value' }
89
+ filtered_value = DataMaps::FilteredValue.new('some value')
90
+
91
+ expect(statement).to receive(:execute_conditions).with('some value').and_return(filtered_value)
92
+ expect(statement).not_to receive(:execute_converter)
93
+
94
+ expect(statement.execute(data)).to eq ['to', filtered_value]
95
+ end
85
96
  end
86
97
 
87
98
  describe '#execute_conditions' do
@@ -93,6 +104,16 @@ describe DataMaps::Statement do
93
104
 
94
105
  expect(statement.execute_conditions('some value')).to eq 'some mutated value'
95
106
  end
107
+
108
+ it 'doesn\'t execute the next converter if the first one returns a filtered value' do
109
+ statement = DataMaps::Statement.new('from', 'to', [DataMaps::Condition.new([], []), DataMaps::Condition.new([], [])], [])
110
+ filtered_value = DataMaps::FilteredValue.new('some value')
111
+
112
+ expect(statement.conditions[0]).to receive(:execute).with('some value').and_return(filtered_value)
113
+ expect(statement.conditions[1]).not_to receive(:execute)
114
+
115
+ expect(statement.execute_conditions('some value')).to eq filtered_value
116
+ end
96
117
  end
97
118
 
98
119
  describe '#execute_converter' do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: data_maps
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.3
4
+ version: 0.3.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Axel Wahlen