-
Notifications
You must be signed in to change notification settings - Fork 0
Object to object (tree, bean etc.) mapping DSL.
License
simcha/mappum
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
== mappum Mappum is the tree to tree (object, bean etc.) mapping DSL. The example of usage is provided below. More documentation will follow. Mappum.catalogue_add "CRM-ERP" do map ERP::Person, CRM::Client do |p, c| #simple mapping map p.title <=> c.title #map with simple function call map p.person_id << c.key.downcase map p.person_id.upcase >> c.key #dictionary use map p.sex <=> c.sex_id, :dict => {"F" => "1", "M" => "2"} #submaps map p.address(ERP::Address) <=> c.address(CRM::Address) do |a, b| map a.street <=> b.street #etc. end #subobject to fields map p.main_phone(ERP::Phone) <=> c.self do |a, b| map a.number <=> b.main_phone map a.type <=> b.main_phone_type end #compilcated function call map p.name >> c.surname do |name| name + "ski" end map p.name << c.surname do |name| if name =~ /ski/ name[0..-4] else name end end #field to array and array to field map p.email1 <=> c.emails[0] map p.email2 <=> c.emails[1] map p.email3 <=> c.emails[2] map p.phones(ERP::Phone)[] <=> c.phones[] do |a, b| map a.number <=> b.self end end end
About
Object to object (tree, bean etc.) mapping DSL.
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published