Module: FlexiView::Serializer

Defined in:
lib/flexi_view/serializer.rb

Defined Under Namespace

Modules: ClassMethods

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#contextObject

Returns the value of attribute context.



111
112
113
# File 'lib/flexi_view/serializer.rb', line 111

def context
  @context
end

#objectObject

Returns the value of attribute object.



111
112
113
# File 'lib/flexi_view/serializer.rb', line 111

def object
  @object
end

#objectsObject (readonly)

Returns the value of attribute objects.



110
111
112
# File 'lib/flexi_view/serializer.rb', line 110

def objects
  @objects
end

#optionsObject (readonly)

Returns the value of attribute options.



110
111
112
# File 'lib/flexi_view/serializer.rb', line 110

def options
  @options
end

Class Method Details

.included(klass) ⇒ Object



11
12
13
14
# File 'lib/flexi_view/serializer.rb', line 11

def self.included(klass)
  klass.send :extend, Serializer::ClassMethods
  klass.__init__
end

Instance Method Details

#initialize(objects, options: nil) ⇒ Object



113
114
115
116
# File 'lib/flexi_view/serializer.rb', line 113

def initialize(objects, options: nil)
  @objects = objects
  @options = options || {}
end

#serializable_hash(namespace: nil, view: nil) ⇒ Object



118
119
120
121
122
# File 'lib/flexi_view/serializer.rb', line 118

def serializable_hash(namespace: nil, view: nil)
  v = self.class.find_view(namespace, view)
  self.context = { namespace: namespace || :default, view: view || :default }
  v.serializable_hash(self)
end

#serialize(namespace: nil, view: nil) ⇒ Object



124
125
126
127
128
# File 'lib/flexi_view/serializer.rb', line 124

def serialize(namespace: nil, view: nil)
  FlexiView.json_encoder.dump(
    serializable_hash(namespace: namespace, view: view)
  )
end