DocWrapper
This project rocks and uses MIT-LICENSE.
Description
Doc wrapper, convert a doc in another doc. Doc is some ruby data structure, like a Hash, Array or a simple String
The advantage is that the conversion engine is automatically identified, making the code cleaner
Example
:001 > DocWrapper.to_target_doc {origin: :sales, user_id: 1, account_id: 99 }
=> { user: 'John', account_name: 'xxxx' }
another example, only changes de origin key
:002 > DocWrapper.to_target_doc {owner: :billing, user_id: 1, account_id: 99 }
==> { user_name: 'john', amount: 100.87 }
Install
$ gem install ds_doc_wrapper
Usage
First you need define some doc wrappers
class DocWrapper::DocByTomCat
def self.to_target_doc a_doc
# -- here put you converter code
{
tom_cat_name: a_doc['name'],
tom_cat_eat: a_doc['food']
}
end
end
another doc wrapper:
class DocWrapper::DocByCook
def self.to_target_doc a_doc
# -- here put you converter code
{
name: a_doc['name'],
main: a_doc['food']
}
end
end
them:
:003 > DocWrapper::Base.to_target_doc( { owner: 'tom_cat', 'name' => 'Tom', 'food' => 'fish' } )
==> { tom_cat_name: 'Tom', tom_cat_eat: 'fish' }
:004 > DocWrapper::Base.to_target_doc( { owner: 'cook', 'name' => 'Tom', 'food' => 'fish' } )
==> { name: 'Tom', main: 'fish' }
Change log
-
1.2 -> Add ds_hash dependency
-
1.1 -> Add default options configurations