Module: Pragma::Decorator::Collection
- Defined in:
- lib/pragma/decorator/collection.rb
Overview
This module is used to represent collections of objects.
It will wrap the collection in a data
property so that you can include meta-data about the collection at the root level.
Defined Under Namespace
Modules: ClassMethods, InstanceMethods
Class Method Summary collapse
Class Method Details
.included(klass) ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/pragma/decorator/collection.rb', line 31 def self.included(klass) klass.include InstanceMethods klass.extend ClassMethods klass.class_eval do collection :data, exec_context: :decorator, getter: (lambda do |options:, **| represented_collection = if self.class.instance_decorator.is_a?(Proc) represented.map do |item| self.class.instance_decorator.call(item).represent(item).to_hash() end elsif self.class.instance_decorator self.class.instance_decorator.represent(represented.to_a).to_hash() else represented end represented_collection end) end end |