Module: Serega::SeregaPlugins::Presenter::ClassMethods

Defined in:
lib/serega/plugins/presenter/presenter.rb

Overview

Serega additional/patched class methods

See Also:

Instance Method Summary collapse

Instance Method Details

#custom_presenter?Boolean

Checks if the serializer's Presenter class (or an inherited one) was extended with custom user code. When it was not, serialized objects are not wrapped in the Presenter at all.

Returns:

  • (Boolean)

    whether custom presenter methods were defined



192
193
194
# File 'lib/serega/plugins/presenter/presenter.rb', line 192

def custom_presenter?
  self::Presenter.modified?
end

#presenter(&block) ⇒ void

This method returns an undefined value.

Defines presenter methods — evaluates the block inside the serializer's own Presenter class. Multiple blocks accumulate.

presenter do
def name
  [first_name, last_name].compact.join(" ")
end
end

Raises:



177
178
179
180
181
182
# File 'lib/serega/plugins/presenter/presenter.rb', line 177

def presenter(&block)
  raise SeregaError, "Provide a block with presenter methods: `presenter do ... end`" unless block

  self::Presenter.class_exec(&block)
  nil
end