Module: Alba::Resource::InstanceMethods
- Included in:
- Alba::Resource
- Defined in:
- lib/alba/resource.rb
Overview
Instance methods
Instance Attribute Summary collapse
-
#object ⇒ Object
readonly
Returns the value of attribute object.
-
#params ⇒ Object
readonly
Returns the value of attribute params.
Instance Method Summary collapse
-
#as_json(_options = {}, root_key: nil, meta: {}) ⇒ Hash
Returns a Hash corresponding #serialize.
- #initialize(object, params: {}, within: WITHIN_DEFAULT) ⇒ Object
-
#serializable_hash ⇒ Hash
(also: #to_h)
A Hash for serialization.
-
#serialize(root_key: nil, meta: {}) ⇒ String
Serialize object into JSON string.
-
#to_json(options = {}, root_key: nil, meta: {}) ⇒ Object
For Rails compatibility The first options is a dummy parameter.
Instance Attribute Details
#object ⇒ Object (readonly)
Returns the value of attribute object.
44 45 46 |
# File 'lib/alba/resource.rb', line 44 def object @object end |
#params ⇒ Object (readonly)
Returns the value of attribute params.
44 45 46 |
# File 'lib/alba/resource.rb', line 44 def params @params end |
Instance Method Details
#as_json(_options = {}, root_key: nil, meta: {}) ⇒ Hash
Returns a Hash corresponding #serialize
87 88 89 90 91 92 93 94 95 96 |
# File 'lib/alba/resource.rb', line 87 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, ) else serializable_hash end end |
#initialize(object, params: {}, within: WITHIN_DEFAULT) ⇒ Object
49 50 51 52 53 54 |
# File 'lib/alba/resource.rb', line 49 def initialize(object, params: {}, within: WITHIN_DEFAULT) @object = object @params = params @within = within _setup end |
#serializable_hash ⇒ Hash Also known as: to_h
A Hash for serialization
101 102 103 |
# File 'lib/alba/resource.rb', line 101 def serializable_hash collection? ? serializable_hash_for_collection : converter.call(@object) end |
#serialize(root_key: nil, meta: {}) ⇒ String
Serialize object into JSON string
61 62 63 |
# File 'lib/alba/resource.rb', line 61 def serialize(root_key: nil, meta: {}) serialize_with(as_json(root_key: root_key, meta: )) end |
#to_json(options = {}, root_key: nil, meta: {}) ⇒ Object
For Rails compatibility The first options is a dummy parameter
70 71 72 73 74 75 76 77 78 79 |
# File 'lib/alba/resource.rb', line 70 def to_json( = {}, root_key: nil, meta: {}) = .keys.select { |k| k.to_sym == :only || k.to_sym == :except } unless .empty? .sort! .map! { |s| "\"#{s}\"" } = "You passed #{.join(' and ')} options but ignored. Please refer to the document: https://github.com/okuramasafumi/alba/blob/main/docs/rails.md" Kernel.warn() end serialize(root_key: root_key, meta: ) end |