Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- require 'json'
- require 'transproc/all'
- # create your own local registry for transformation functions
- module Functions
- extend Transproc::Registry
- end
- # import necessary functions from other transprocs...
- module Functions
- # import all singleton methods from a module/class
- import Transproc::HashTransformations
- import Transproc::ArrayTransformations
- end
- def t(*args)
- Functions[*args]
- end
- # The original one (broken)
- transformation = t(:map_array, t(:symbolize_keys)
- .>> t(:rename_keys, user_name: :user))
- .>> t(:wrap, :address, [:city, :street, :zipcode])
- ## version 1
- # transformation = t(:map_array, (
- # t(:symbolize_keys).>> t(:rename_keys, user_name: :user)
- # )).>> t(:wrap, :address, [:city, :street, :zipcode])
- ## version 2
- # transformation = t(:map_array,
- # (t(:symbolize_keys).>> t(:rename_keys, user_name: :user))
- # ).>> t(:wrap, :address, [:city, :street, :zipcode])
- ## version 3
- # symbolize_and_rename = t(:symbolize_keys).>> t(:rename_keys, user_name: :user)
- # transformation = t(:map_array, symbolize_and_rename)
- # .>> t(:wrap, :address, [:city, :street, :zipcode])
- result = transformation.call(
- [
- { 'user_name' => 'Jane',
- 'city' => 'NYC',
- 'street' => 'Street 1',
- 'zipcode' => '123' }
- ]
- )
- puts result
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement