Module: Handlebarer::Serialize::ClassMethods

Defined in:
lib/handlebarer/serialize.rb

Instance Method Summary collapse

Instance Method Details

#hbs_serializable(*args) ⇒ Object

Enable serialization on ActiveModel classes

Examples:

class User < ActiveRecord::Base
  include Handlebarer::Serialize
  hbs_serializable :name, :email, :merge => false
end

Parameters:

  • args (Array<Symbol>)

    model attribute names to serialize

  • args (Hash)

    options serializing mode

Options Hash (*args):

  • :merge (Boolean)

    should serialized attributes be merged with ‘self.attributes`



16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/handlebarer/serialize.rb', line 16

def hbs_serializable(*args)
  serialize = {
    :attrs => [],
    :merge => true
  }
  args.each do |arg|
    if arg.is_a? Symbol
      serialize[:attrs] << arg
    elsif arg.is_a? Hash
      serialize[:merge] = arg[:merge] if arg.include?(:merge)
    end
  end
  class_variable_set(:@@serialize, serialize)
end