Module: Alba::Resource::InstanceMethods

Included in:
Alba::Resource
Defined in:
lib/alba/resource.rb

Overview

Instance methods

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#objectObject (readonly)

Returns the value of attribute object.



42
43
44
# File 'lib/alba/resource.rb', line 42

def object
  @object
end

#paramsObject (readonly)

Returns the value of attribute params.



42
43
44
# File 'lib/alba/resource.rb', line 42

def params
  @params
end

Instance Method Details

#as_json(root_key: nil, meta: {}) ⇒ Hash

Returns a Hash correspondng #serialize

Parameters:

  • root_key (Symbol, nil, true) (defaults to: nil)
  • meta (Hash) (defaults to: {})

    metadata for this seialization

Returns:

  • (Hash)


77
78
79
80
81
82
83
84
85
86
# File 'lib/alba/resource.rb', line 77

def as_json(root_key: nil, meta: {})
  key = root_key.nil? ? fetch_key : root_key
  key = Alba.regularize_key(key)
  if key && !key.empty?
    h = {key => serializable_hash}
    (h, meta)
  else
    serializable_hash
  end
end

#initialize(object, params: {}, within: WITHIN_DEFAULT) ⇒ Object

Parameters:

  • object (Object)

    the object to be serialized

  • params (Hash) (defaults to: {})

    user-given Hash for arbitrary data

  • within (Object, nil, false, true) (defaults to: WITHIN_DEFAULT)

    determines what associations to be serialized. If not set, it serializes all associations.



47
48
49
50
51
52
# File 'lib/alba/resource.rb', line 47

def initialize(object, params: {}, within: WITHIN_DEFAULT)
  @object = object
  @params = params
  @within = within
  _setup
end

#serializable_hashHash Also known as: to_h

A Hash for serialization

Returns:

  • (Hash)


91
92
93
# File 'lib/alba/resource.rb', line 91

def serializable_hash
  collection? ? serializable_hash_for_collection : converter.call(@object)
end

#serialize(root_key: nil, meta: {}) ⇒ String

Serialize object into JSON string

Parameters:

  • root_key (Symbol, nil, true) (defaults to: nil)
  • meta (Hash) (defaults to: {})

    metadata for this seialization

Returns:

  • (String)

    serialized JSON string



59
60
61
# File 'lib/alba/resource.rb', line 59

def serialize(root_key: nil, meta: {})
  serialize_with(as_json(root_key: root_key, meta: meta))
end

#to_json(options = {}, root_key: nil, meta: {}) ⇒ Object

For Rails compatibility The first options is a dummy parameter



68
69
70
# File 'lib/alba/resource.rb', line 68

def to_json(options = {}, root_key: nil, meta: {})
  _to_json(root_key, meta, options)
end