Class: ActiveModel::Serializer::Adapter
- Inherits:
-
Object
- Object
- ActiveModel::Serializer::Adapter
show all
- Extended by:
- ActiveSupport::Autoload
- Defined in:
- lib/active_model/serializer/adapter.rb,
lib/active_model/serializer/adapter/json.rb,
lib/active_model/serializer/adapter/null.rb,
lib/active_model/serializer/adapter/json_api.rb,
lib/active_model/serializer/adapter/flatten_json.rb,
lib/active_model/serializer/adapter/fragment_cache.rb,
lib/active_model/serializer/adapter/json/fragment_cache.rb,
lib/active_model/serializer/adapter/json_api/fragment_cache.rb,
lib/active_model/serializer/adapter/json_api/pagination_links.rb
Defined Under Namespace
Classes: FlattenJson, FragmentCache, Json, JsonApi, Null
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(serializer, options = {}) ⇒ Adapter
Returns a new instance of Adapter.
24
25
26
27
|
# File 'lib/active_model/serializer/adapter.rb', line 24
def initialize(serializer, options = {})
@serializer = serializer
@options = options
end
|
Instance Attribute Details
#serializer ⇒ Object
Returns the value of attribute serializer.
22
23
24
|
# File 'lib/active_model/serializer/adapter.rb', line 22
def serializer
@serializer
end
|
Class Method Details
.adapter_class(adapter) ⇒ Object
17
18
19
20
|
# File 'lib/active_model/serializer/adapter.rb', line 17
def self.adapter_class(adapter)
adapter_name = adapter.to_s.classify.sub('API', 'Api')
"ActiveModel::Serializer::Adapter::#{adapter_name}".safe_constantize
end
|
.create(resource, options = {}) ⇒ Object
11
12
13
14
15
|
# File 'lib/active_model/serializer/adapter.rb', line 11
def self.create(resource, options = {})
override = options.delete(:adapter)
klass = override ? adapter_class(override) : ActiveModel::Serializer.adapter
klass.new(resource, options)
end
|
Instance Method Details
#as_json(options = nil) ⇒ Object
33
34
35
36
37
|
# File 'lib/active_model/serializer/adapter.rb', line 33
def as_json(options = nil)
hash = serializable_hash(options)
include_meta(hash)
hash
end
|
#fragment_cache(*args) ⇒ Object
39
40
41
|
# File 'lib/active_model/serializer/adapter.rb', line 39
def fragment_cache(*args)
raise NotImplementedError, 'This is an abstract method. Should be implemented at the concrete adapter.'
end
|
#serializable_hash(options = nil) ⇒ Object
29
30
31
|
# File 'lib/active_model/serializer/adapter.rb', line 29
def serializable_hash(options = nil)
raise NotImplementedError, 'This is an abstract method. Should be implemented at the concrete adapter.'
end
|