Class: Remi::SourceToTargetMap
- Inherits:
-
Object
- Object
- Remi::SourceToTargetMap
- Defined in:
- lib/remi/source_to_target_map.rb,
lib/remi/source_to_target_map/map.rb,
lib/remi/source_to_target_map/row.rb
Overview
Public: Class used to define a DSL for source to target maps.
Examples
SourceToTargetMap.apply(df) do
map source(:a) .target(:aprime)
.transform(->(v) { "#{v}prime" })
map source(:a) .target(:aup)
.transform(->(v) { "#{v.upcase}" })
end
#=> <Daru::DataFrame:70291322684920 @name = 8c546a52-c1a7-495a-996a-7f352b0087b7 @size = 3>
a aprime aup
0 a1 a1prime A1
1 a2 a2prime A2
2 a3 a3prime A3
Defined Under Namespace
Instance Attribute Summary collapse
-
#source_df ⇒ Object
readonly
Returns the value of attribute source_df.
-
#target_df ⇒ Object
readonly
Returns the value of attribute target_df.
Class Method Summary collapse
-
.apply(source_df, target_df = nil, source_metadata: Remi::Fields.new, target_metadata: Remi::Fields.new, &block) ⇒ Object
Public: Expects a block in which the DSL will be applied.
Instance Method Summary collapse
-
#initialize(source_df, target_df = nil, source_metadata: Remi::Fields.new, target_metadata: Remi::Fields.new) ⇒ SourceToTargetMap
constructor
Public: Initializes the SourceToTargetMap DSL.
-
#map(defined_map) ⇒ Object
Public: Executes a mapping.
-
#source(*source_vectors) ⇒ Object
Public: Adds a list of source vectors to a new mapping.
-
#target(*target_vectors) ⇒ Object
Public: Adds a list of targets vectors to a new mapping.
Constructor Details
#initialize(source_df, target_df = nil, source_metadata: Remi::Fields.new, target_metadata: Remi::Fields.new) ⇒ SourceToTargetMap
Public: Initializes the SourceToTargetMap DSL
source_df - The source dataframe. target_df - The target dataframe (default: source_df). source_metadata - Metadata (Remi::Fields) for the source fields. target_metadata - Metadata (Remi::Fields) for the target fields.
26 27 28 29 30 31 32 |
# File 'lib/remi/source_to_target_map.rb', line 26 def initialize(source_df, target_df=nil, source_metadata: Remi::Fields.new, target_metadata: Remi::Fields.new) @source_df = source_df @source_metadata = @target_df = target_df || source_df @target_metadata = || end |
Instance Attribute Details
#source_df ⇒ Object (readonly)
Returns the value of attribute source_df.
34 35 36 |
# File 'lib/remi/source_to_target_map.rb', line 34 def source_df @source_df end |
#target_df ⇒ Object (readonly)
Returns the value of attribute target_df.
34 35 36 |
# File 'lib/remi/source_to_target_map.rb', line 34 def target_df @target_df end |
Class Method Details
.apply(source_df, target_df = nil, source_metadata: Remi::Fields.new, target_metadata: Remi::Fields.new, &block) ⇒ Object
Public: Expects a block in which the DSL will be applied.
Same arguments as the constructor.
Returns the target dataframe.
41 42 43 44 45 |
# File 'lib/remi/source_to_target_map.rb', line 41 def self.apply(source_df, target_df=nil, source_metadata: Remi::Fields.new, target_metadata: Remi::Fields.new, &block) sttm = SourceToTargetMap.new(source_df, target_df, source_metadata: , target_metadata: ) Docile.dsl_eval(sttm, &block) target_df || source_df end |
Instance Method Details
#map(defined_map) ⇒ Object
Public: Executes a mapping.
defined_map - The SourceToTargetMap::Map object to execute
Returns the target dataframe.
70 71 72 |
# File 'lib/remi/source_to_target_map.rb', line 70 def map(defined_map) defined_map.execute end |
#source(*source_vectors) ⇒ Object
Public: Adds a list of source vectors to a new mapping.
source_vectors - A list of vector names.
Returns a SourceToTargetMap::Map with the defined source vectors.
52 53 54 |
# File 'lib/remi/source_to_target_map.rb', line 52 def source(*source_vectors) new_map.source(*source_vectors) end |
#target(*target_vectors) ⇒ Object
Public: Adds a list of targets vectors to a new mapping.
target_vectors - A list of target names.
Returns a SourceToTargetMap::Map with the defined target vectors.
61 62 63 |
# File 'lib/remi/source_to_target_map.rb', line 61 def target(*target_vectors) new_map.target(*target_vectors) end |