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