Module: AdequateSerialization

Includes:
CacheBusting, CacheStep
Defined in:
lib/adequate_serialization.rb,
lib/adequate_serialization.rb,
lib/adequate_serialization/steps.rb,
lib/adequate_serialization/options.rb,
lib/adequate_serialization/version.rb,
lib/adequate_serialization/attribute.rb,
lib/adequate_serialization/decorator.rb,
lib/adequate_serialization/serializer.rb,
lib/adequate_serialization/steps/step.rb,
lib/adequate_serialization/serializable.rb,
lib/adequate_serialization/rails/cache_step.rb,
lib/adequate_serialization/inline_serializer.rb,
lib/adequate_serialization/rails/cache_busting.rb,
lib/adequate_serialization/rails/cache_refresh.rb,
lib/adequate_serialization/steps/serialize_step.rb,
lib/adequate_serialization/rails/cache_visualization.rb,
lib/adequate_serialization/rails/relation_serializer.rb

Defined Under Namespace

Modules: Attribute, CacheBusting, CacheRefresh, Decorator, Options, Rails, Serializable, Steps Classes: Error, InlineSerializer, Serializer

Constant Summary collapse

VERSION =
'2.0.1'

Class Attribute Summary collapse

Class Method Summary collapse

Methods included from CacheBusting

#attribute

Class Attribute Details

.active_job_queueObject

Returns the value of attribute active_job_queue.



13
14
15
# File 'lib/adequate_serialization.rb', line 13

def active_job_queue
  @active_job_queue
end

Class Method Details

.associate_cache(active_record, *association_names) ⇒ Object

Associate one or more caches with an active record such that when the record is updated the associated object caches are also updated.



24
25
26
27
28
29
30
31
32
33
34
# File 'lib/adequate_serialization.rb', line 24

def associate_cache(active_record, *association_names)
  require 'adequate_serialization/rails/cache_refresh'

  unless active_record.respond_to?(:associate_cache)
    active_record.extend(CacheRefresh)
  end

  association_names.each do |association_name|
    active_record.associate_cache(association_name)
  end
end

.configure {|_self| ... } ⇒ Object

DSL-like block for parity with other Ruby/Rails libraries.

Yields:

  • (_self)

Yield Parameters:



37
38
39
# File 'lib/adequate_serialization.rb', line 37

def configure
  yield self
end

.dump(object) ⇒ Object



4
5
6
7
8
9
10
11
12
# File 'lib/adequate_serialization/attribute.rb', line 4

def self.dump(object)
  if object.is_a?(Hash)
    object
  elsif object.respond_to?(:as_json)
    object.as_json
  else
    object
  end
end

.inline(&block) ⇒ Object



54
55
56
# File 'lib/adequate_serialization/inline_serializer.rb', line 54

def self.inline(&block)
  InlineSerializer.new(&block)
end

.prepend(step) ⇒ Object



29
30
31
# File 'lib/adequate_serialization/steps.rb', line 29

def prepend(step)
  @steps = step.new(steps)
end

.stepsObject



33
34
35
# File 'lib/adequate_serialization/steps.rb', line 33

def steps
  @steps ||= Steps::SerializeStep.new
end