class Pakyow::Support::Configurable::Setting

@api private

Public Class Methods

new(default:, configurable:, &block) click to toggle source
# File lib/pakyow/support/configurable/setting.rb, line 16
def initialize(default:, configurable:, &block)
  @default, @block, @configurable = default, block, configurable
end

Public Instance Methods

freeze() click to toggle source
Calls superclass method
# File lib/pakyow/support/configurable/setting.rb, line 25
def freeze
  value
  super
end
initialize_copy(_) click to toggle source
Calls superclass method
# File lib/pakyow/support/configurable/setting.rb, line 20
def initialize_copy(_)
  @default = @default.deep_dup
  super
end
set(value) click to toggle source
# File lib/pakyow/support/configurable/setting.rb, line 30
def set(value)
  @value = value
end
update_configurable(configurable) click to toggle source
# File lib/pakyow/support/configurable/setting.rb, line 46
def update_configurable(configurable)
  @configurable = configurable
end
value() click to toggle source
# File lib/pakyow/support/configurable/setting.rb, line 34
def value
  if instance_variable_defined?(:@value)
    @value
  else
    @value = if @block
      @configurable.instance_eval(&@block)
    else
      @default
    end
  end
end