Module: Decoradar

Defined in:
lib/decoradar.rb,
lib/decoradar/errors.rb,
lib/decoradar/version.rb,
lib/decoradar/attribute.rb,
lib/decoradar/collection.rb

Overview

Decorates and serializes model into a hash

class PlayerDecorator

include Decoradar

attributes :id, :name, :team
attribute :shirt_number
attribute :nationality, include_if: -> model { model.has_nationality? }

def shirt_number
  model.team.shirt
end

def team
  TeamDecorator.new(model.team)
end

end

PlayerDecorator.new(Player.first).as_json

Defined Under Namespace

Modules: ClassMethods, InstanceMethods Classes: Attribute, AttributeNotFound, Collection

Constant Summary collapse

VERSION =
"0.1.1"

Class Method Summary collapse

Class Method Details

.included(base) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
# File 'lib/decoradar.rb', line 26

def self.included(base)
  base.singleton_class.class_eval { attr_accessor :attribute_set }

  base.class_eval do
    self.attribute_set = Set.new

    extend Forwardable
    extend ClassMethods
    include InstanceMethods
  end
end