Class: ActiveModelSerializers::FilterableAttributes::FilteredAttribute

Inherits:
ActiveModel::Serializer::Attribute
  • Object
show all
Defined in:
lib/filterable_attributes.rb

Instance Method Summary collapse

Instance Method Details

#evaluate_condition(serializer) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/filterable_attributes.rb', line 29

def evaluate_condition(serializer)
  case condition
  when Symbol
    serializer.send(condition)
  when String
    serializer.instance_eval(condition)
  when Proc
    if condition.arity.zero?
      serializer.instance_exec(&condition)
    else
      serializer.instance_exec(serializer, &condition)
    end
  end
end

#value(serializer) ⇒ Object



21
22
23
24
25
26
27
# File 'lib/filterable_attributes.rb', line 21

def value(serializer)
  if block
    serializer.instance_eval(&block)
  else
    serializer.read_attribute_for_serialization(name)
  end
end