jobs/json_job.rb in remi-0.2.42 vs jobs/json_job.rb in remi-0.3.0
- old
+ new
@@ -1,22 +1,26 @@
require_relative 'all_jobs_shared'
-class JsonJob
- include AllJobsShared
+class JsonJob < Remi::Job
+ source :source_data do
+ fields(
+ {
+ :json_array => { type: :json },
+ :json_hash => { type: :json }
+ }
+ )
+ end
- define_source :source_data, Remi::DataSource::DataFrame,
- fields: {
- :json_array => { type: :json },
- :json_hash => { type: :json }
- }
+ target :target_data do
+ fields(
+ {
+ :second_element => {},
+ :name_field => {}
+ }
+ )
+ end
- define_target :target_data, Remi::DataTarget::DataFrame,
- fields: {
- :second_element => {},
- :name_field => {}
- }
-
- define_transform :main do
+ transform :main do
Remi::SourceToTargetMap.apply(source_data.df, target_data.df, source_metadata: source_data.fields) do
map source(:json_array) .target(:second_element)
.transform(->(values) { values[1] })
map source(:json_hash) .target(:name_field)
.transform(->(json_hash) { json_hash['name'] })