Class: JSONAPIHelpers::Serializers::Model
- Inherits:
-
Object
- Object
- JSONAPIHelpers::Serializers::Model
- Defined in:
- lib/jsonapi_helpers/serializers/model.rb
Instance Attribute Summary collapse
-
#current_language ⇒ Object
readonly
rubocop:disable Metrics/LineLength.
-
#current_user ⇒ Object
readonly
rubocop:disable Metrics/LineLength.
-
#fields ⇒ Object
readonly
rubocop:disable Metrics/LineLength.
-
#included ⇒ Object
readonly
rubocop:disable Metrics/LineLength.
-
#key_transform ⇒ Object
readonly
rubocop:disable Metrics/LineLength.
-
#meta ⇒ Object
readonly
rubocop:disable Metrics/LineLength.
-
#model_scope ⇒ Object
readonly
rubocop:disable Metrics/LineLength.
-
#request ⇒ Object
readonly
rubocop:disable Metrics/LineLength.
-
#serializer ⇒ Object
readonly
rubocop:disable Metrics/LineLength.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(model_scope, included: [], fields: {}, current_user: nil, current_language: nil, meta: {}, request: nil, key_transform: JSONAPIHelpers.config.key_transform) ⇒ Model
constructor
private.
- #serialize ⇒ Object
- #serializer_instance ⇒ Object
Constructor Details
#initialize(model_scope, included: [], fields: {}, current_user: nil, current_language: nil, meta: {}, request: nil, key_transform: JSONAPIHelpers.config.key_transform) ⇒ Model
private
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/jsonapi_helpers/serializers/model.rb', line 16 def initialize( model_scope, included: [], fields: {}, current_user: nil, current_language: nil, meta: {}, request: nil, key_transform: JSONAPIHelpers.config.key_transform ) @model_scope = model_scope @included = included @fields = fields @meta = @current_user = current_user @current_language = current_language @key_transform = key_transform # NOTE: ActiveModel::Serializer#serializer_for is from active_model_serializers @serializer = ActiveModel::Serializer.serializer_for(model_scope) @request = ActionDispatchRequestWrapper.new(request) end |
Instance Attribute Details
#current_language ⇒ Object (readonly)
rubocop:disable Metrics/LineLength
8 9 10 |
# File 'lib/jsonapi_helpers/serializers/model.rb', line 8 def current_language @current_language end |
#current_user ⇒ Object (readonly)
rubocop:disable Metrics/LineLength
8 9 10 |
# File 'lib/jsonapi_helpers/serializers/model.rb', line 8 def current_user @current_user end |
#fields ⇒ Object (readonly)
rubocop:disable Metrics/LineLength
8 9 10 |
# File 'lib/jsonapi_helpers/serializers/model.rb', line 8 def fields @fields end |
#included ⇒ Object (readonly)
rubocop:disable Metrics/LineLength
8 9 10 |
# File 'lib/jsonapi_helpers/serializers/model.rb', line 8 def included @included end |
#key_transform ⇒ Object (readonly)
rubocop:disable Metrics/LineLength
8 9 10 |
# File 'lib/jsonapi_helpers/serializers/model.rb', line 8 def key_transform @key_transform end |
#meta ⇒ Object (readonly)
rubocop:disable Metrics/LineLength
8 9 10 |
# File 'lib/jsonapi_helpers/serializers/model.rb', line 8 def @meta end |
#model_scope ⇒ Object (readonly)
rubocop:disable Metrics/LineLength
8 9 10 |
# File 'lib/jsonapi_helpers/serializers/model.rb', line 8 def model_scope @model_scope end |
#request ⇒ Object (readonly)
rubocop:disable Metrics/LineLength
8 9 10 |
# File 'lib/jsonapi_helpers/serializers/model.rb', line 8 def request @request end |
#serializer ⇒ Object (readonly)
rubocop:disable Metrics/LineLength
8 9 10 |
# File 'lib/jsonapi_helpers/serializers/model.rb', line 8 def serializer @serializer end |
Class Method Details
.serialize(*args) ⇒ Object
10 11 12 |
# File 'lib/jsonapi_helpers/serializers/model.rb', line 10 def self.serialize(*args) new(*args).serialize end |
Instance Method Details
#serialize ⇒ Object
54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/jsonapi_helpers/serializers/model.rb', line 54 def serialize # NOTE: ActiveModelSerializers::Adapter#create is from active_model_serializers ActiveModelSerializers::Adapter.create( serializer_instance, key_transform: key_transform, include: included, fields: fields, meta: , serialization_context: request ) end |
#serializer_instance ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/jsonapi_helpers/serializers/model.rb', line 38 def serializer_instance = { scope: { current_user: current_user, current_language: current_language, current_language_id: current_language&.id } } if @model_scope.respond_to?(:to_ary) [:each_serializer] = serializer end serializer.new(@model_scope, ) end |