Module: Serega::SeregaPlugins::Presenter
- Defined in:
- lib/serega/plugins/presenter/presenter.rb
Overview
Plugin Presenter adds possibility to use declare Presenter for your objects inside serializer
class User < Serega plugin :presenter
attribute :name
class Presenter
def name
[first_name, last_name].compact_blank.join(' ')
end
end
end
Defined Under Namespace
Modules: ClassMethods, SeregaObjectSerializerInstanceMethods Classes: Presenter
Class Method Summary collapse
-
.after_load_plugin(serializer_class, **_opts) ⇒ void
Runs callbacks after plugin was attached.
-
.load_plugin(serializer_class, **_opts) ⇒ void
Applies plugin code to specific serializer.
-
.plugin_name ⇒ Symbol
Plugin name.
Class Method Details
.after_load_plugin(serializer_class, **_opts) ⇒ void
This method returns an undefined value.
Runs callbacks after plugin was attached
49 50 51 52 53 |
# File 'lib/serega/plugins/presenter/presenter.rb', line 49 def self.after_load_plugin(serializer_class, **_opts) presenter_class = Class.new(Presenter) presenter_class.serializer_class = serializer_class serializer_class.const_set(:Presenter, presenter_class) end |
.load_plugin(serializer_class, **_opts) ⇒ void
This method returns an undefined value.
Applies plugin code to specific serializer
36 37 38 39 |
# File 'lib/serega/plugins/presenter/presenter.rb', line 36 def self.load_plugin(serializer_class, **_opts) serializer_class.extend(ClassMethods) serializer_class::SeregaObjectSerializer.include(SeregaObjectSerializerInstanceMethods) end |
.plugin_name ⇒ Symbol
Returns Plugin name.
24 25 26 |
# File 'lib/serega/plugins/presenter/presenter.rb', line 24 def self.plugin_name :presenter end |