Class: Statinize::Attribute::Options::Conditions

Inherits:
Array
  • Object
show all
Defined in:
lib/statinize/attribute/options/conditions.rb

Instance Method Summary collapse

Methods inherited from Array

#deep_dup

Instance Method Details

#falsey?(instance) ⇒ Boolean

Returns:

  • (Boolean)


19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/statinize/attribute/options/conditions.rb', line 19

def falsey?(instance)
  all? do |condition|
    if condition.is_a?(Symbol)
      !condition.to_proc.call(instance)
    elsif condition.lambda?
      !instance.instance_exec(&condition)
    elsif condition.is_a?(Proc)
      !condition.call(instance)
    else
      raise InvalidConditionError, "condition should be a Symbol, Proc, or a lambda"
    end
  end
end

#truthy?(instance) ⇒ Boolean

Returns:

  • (Boolean)


5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/statinize/attribute/options/conditions.rb', line 5

def truthy?(instance)
  all? do |condition|
    if condition.is_a?(Symbol)
      !!condition.to_proc.call(instance)
    elsif condition.lambda?
      !!instance.instance_exec(&condition)
    elsif condition.is_a?(Proc)
      !!condition.call(instance)
    else
      raise InvalidConditionError, "condition should be a Symbol, Proc, or a lambda"
    end
  end
end