Module: Cerializable
- Defined in:
- lib/cerializable.rb,
lib/cerializable/model.rb,
lib/cerializable/version.rb,
lib/cerializable/cerializer.rb
Defined Under Namespace
Modules: Model Classes: Cerializer
Constant Summary collapse
- VERSION =
"0.2.0"
Class Method Summary collapse
-
.setup(options) ⇒ Object
:nodoc:.
Class Method Details
.setup(options) ⇒ Object
:nodoc:
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/cerializable.rb', line 6 def self.setup() # :nodoc: # evaluate code in the context of the base class [:base].class_eval do # define a 'cerializer' class method on the base class. # it returns a cerializer object which does the serialization for instances of the class. define_singleton_method :cerializer, proc { @cerializer ||= Cerializer.new.tap do |cerializer| serializer_module = [:serialize_with] || "#{ [:base].name }Serializer".constantize # use class_eval to include the serializer module in the cerializer's eigenclass cerializer.class_eval { include serializer_module } end } end end |