Class: Virtus::Attribute::DefaultValue::FromSymbol Private

Inherits:
Virtus::Attribute::DefaultValue show all
Defined in:
lib/virtus/attribute/default_value/from_symbol.rb

Overview

This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.

Represents default value evaluated via a symbol

Instance Attribute Summary

Attributes inherited from Virtus::Attribute::DefaultValue

#value

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Virtus::Attribute::DefaultValue

build, #initialize

Constructor Details

This class inherits a constructor from Virtus::Attribute::DefaultValue

Class Method Details

.handle?(value) ⇒ Boolean

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Return if the class can handle the value

Parameters:

  • value (Object)

Returns:



17
18
19
# File 'lib/virtus/attribute/default_value/from_symbol.rb', line 17

def self.handle?(value)
  value.is_a?(Symbol)
end

Instance Method Details

#call(instance, _) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Evaluates the value via instance#public_send(value)

Symbol value is returned if the instance doesn’t respond to value

Returns:

  • (Object)

    evaluated value



28
29
30
# File 'lib/virtus/attribute/default_value/from_symbol.rb', line 28

def call(instance, _)
  instance.respond_to?(@value, true) ? instance.send(@value) : @value
end