remi 0.2.32 → 0.2.33
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/features/transforms/data_frame_sieve.feature +3 -1
- data/jobs/transforms/data_frame_sieve_job.rb +4 -0
- data/lib/remi/transform.rb +7 -1
- data/lib/remi/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a91453040868eaabb19fb50db4aafa0f0da4a643
|
4
|
+
data.tar.gz: 8530db1145f89b1abcb8450fe8bcb4eb5325409d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 866bd205d40ea549fc8b11fd06d599a54a12bae6cdc3ddbb746c377c5bd17617ddf4eb48b0e88e2869df529eeafe26043b8fba7bbea8641ecc81eb2455b8480f
|
7
|
+
data.tar.gz: fc7906b2ffd875e42519a065a21212237cf48c0ece1a0ad393f58b83a02ea6f40811290e4fc21068a0322d9aa2828d8e0e5ea5bec61cb835ed9602eba0c87a6f
|
data/Gemfile.lock
CHANGED
@@ -18,7 +18,7 @@ Feature: Tests the DataFrameSieve transform
|
|
18
18
|
| Undergrad | NURS | \\nil | intensive |
|
19
19
|
| Undergrad | \\nil | true | intensive |
|
20
20
|
| Undergrad | \\nil | false | base |
|
21
|
-
| Grad | ENG
|
21
|
+
| Grad | /ENG/ | true | intensive | # regex
|
22
22
|
| \\nil | \\nil | \\nil | base |
|
23
23
|
|
24
24
|
And the following example for 'Source Data':
|
@@ -28,6 +28,7 @@ Feature: Tests the DataFrameSieve transform
|
|
28
28
|
| 3 | Grad | CHEM | true |
|
29
29
|
| 4 | Undergrad | NURS | false |
|
30
30
|
| 5 | Unknown | CHEM | true |
|
31
|
+
| 6 | Grad | ENGL | true |
|
31
32
|
|
32
33
|
Then the target should match the example:
|
33
34
|
| id | level | program | contact | group |
|
@@ -36,3 +37,4 @@ Feature: Tests the DataFrameSieve transform
|
|
36
37
|
| 3 | Grad | CHEM | true | base |
|
37
38
|
| 4 | Undergrad | NURS | false | intensive |
|
38
39
|
| 5 | Unknown | CHEM | true | base |
|
40
|
+
| 6 | Grad | ENGL | true | intensive |
|
@@ -22,6 +22,10 @@ class DataFrameSieveJob
|
|
22
22
|
define_target :target_data, Remi::DataTarget::DataFrame
|
23
23
|
|
24
24
|
define_transform :main, sources: :source_data, targets: :target_data do
|
25
|
+
|
26
|
+
# Hack to convert example to regex
|
27
|
+
sieve.df[:program].recode! { |v| (v || '').match(/\A\/.*\/\Z/) ? /#{v[1...-1]}/ : v }
|
28
|
+
|
25
29
|
Remi::SourceToTargetMap.apply(source_data.df, target_data.df) do
|
26
30
|
map source(:level, :program, :contact) .target(:group)
|
27
31
|
.transform(Remi::Transform::DataFrameSieve.new(sieve.df))
|
data/lib/remi/transform.rb
CHANGED
@@ -622,7 +622,13 @@ module Remi
|
|
622
622
|
@sieve_df.each.find do |sieve_row|
|
623
623
|
match_row = true
|
624
624
|
sieve_keys.each_with_index do |key,idx|
|
625
|
-
|
625
|
+
match_value = if sieve_row[key].is_a?(Regexp)
|
626
|
+
!!sieve_row[key].match(values[idx])
|
627
|
+
else
|
628
|
+
sieve_row[key] == values[idx]
|
629
|
+
end
|
630
|
+
|
631
|
+
match_row &&= sieve_row[key].nil? || match_value
|
626
632
|
end
|
627
633
|
match_row
|
628
634
|
end[sieve_result_key]
|
data/lib/remi/version.rb
CHANGED