Class: DryCrudJsonapi::Serializer

Inherits:
Object
  • Object
show all
Defined in:
app/domain/dry_crud_jsonapi/serializer.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(model_class) ⇒ Serializer

Returns a new instance of Serializer.



5
6
7
8
9
10
11
12
13
14
# File 'app/domain/dry_crud_jsonapi/serializer.rb', line 5

def initialize(model_class)
  @model_class = model_class.to_s.constantize
  @serializer_class = Class.new(JSONAPI::Serializable::Resource)
  @serializer_class.send :extend, JSONAPI::Serializable::Resource::ConditionalFields

  @define_conditionals = {
    vmware_license:  { if: -> { @current_user.license? } },
    discoverer:      { if: -> { @object.try(:discoverer_id).present? } }
  }
end

Instance Attribute Details

#define_conditionalsObject (readonly)

Returns the value of attribute define_conditionals.



3
4
5
# File 'app/domain/dry_crud_jsonapi/serializer.rb', line 3

def define_conditionals
  @define_conditionals
end

#model_classObject (readonly)

Returns the value of attribute model_class.



3
4
5
# File 'app/domain/dry_crud_jsonapi/serializer.rb', line 3

def model_class
  @model_class
end

#serializer_classObject (readonly)

Returns the value of attribute serializer_class.



3
4
5
# File 'app/domain/dry_crud_jsonapi/serializer.rb', line 3

def serializer_class
  @serializer_class
end

Instance Method Details

#buildObject



16
17
18
19
20
21
22
23
24
25
26
# File 'app/domain/dry_crud_jsonapi/serializer.rb', line 16

def build
  define_type
  define_attributes
  define_link_to_self
  define_has_one_relations
  define_belongs_to_relations
  define_has_many_relations(:through)
  define_has_many_relations(:has_many)

  serializer_class
end