class FastJsonapi::Scalar
Attributes
conditional_proc[R]
key[R]
method[R]
Public Class Methods
new(key:, method:, options: {})
click to toggle source
# File lib/fast_jsonapi/scalar.rb, line 5 def initialize(key:, method:, options: {}) @key = key @method = method @conditional_proc = options[:if] end
Public Instance Methods
conditionally_allowed?(record, serialization_params)
click to toggle source
# File lib/fast_jsonapi/scalar.rb, line 21 def conditionally_allowed?(record, serialization_params) if conditional_proc.present? FastJsonapi.call_proc(conditional_proc, record, serialization_params) else true end end
serialize(record, serialization_params, output_hash)
click to toggle source
# File lib/fast_jsonapi/scalar.rb, line 11 def serialize(record, serialization_params, output_hash) if conditionally_allowed?(record, serialization_params) if method.is_a?(Proc) output_hash[key] = FastJsonapi.call_proc(method, record, serialization_params) else output_hash[key] = record.public_send(method) end end end