class Koine::Attributes::Adapter::Base
Attributes
attribute_name[R]
Public Class Methods
new()
click to toggle source
# File lib/koine/attributes/adapter/base.rb, line 9 def initialize with_attribute_name('annonymous_attribute_name') end
Public Instance Methods
coerce(value)
click to toggle source
# File lib/koine/attributes/adapter/base.rb, line 13 def coerce(value) return coerce_nil if value.nil? coerce_not_nil(value) end
default_value()
click to toggle source
# File lib/koine/attributes/adapter/base.rb, line 19 def default_value @default_value.respond_to?(:call) && @default_value.call || @default_value end
with_attribute_name(name)
click to toggle source
# File lib/koine/attributes/adapter/base.rb, line 38 def with_attribute_name(name) @attribute_name = name self end
with_default_value(value = nil, &block)
click to toggle source
# File lib/koine/attributes/adapter/base.rb, line 32 def with_default_value(value = nil, &block) @default_value = value @default_value = block if block self end
with_nil_value(value = nil, &block)
click to toggle source
# File lib/koine/attributes/adapter/base.rb, line 25 def with_nil_value(value = nil, &block) @nil_value_set = true @nil_value = value @nil_value = block if block self end
Private Instance Methods
coerce_nil()
click to toggle source
# File lib/koine/attributes/adapter/base.rb, line 45 def coerce_nil if @nil_value_set return @nil_value.respond_to?(:call) ? @nil_value.call : @nil_value end raise_error('Cannot be nil') end
coerce_not_nil(_value)
click to toggle source
# File lib/koine/attributes/adapter/base.rb, line 53 def coerce_not_nil(_value) raise NotImplementedError end
raise_error(message)
click to toggle source
# File lib/koine/attributes/adapter/base.rb, line 74 def raise_error(message) raise Koine::Attributes::InvalidAttributeError.new(message, attribute_name) end
secure() { || ... }
click to toggle source
duplicates if possible and freezes object
# File lib/koine/attributes/adapter/base.rb, line 58 def secure value = yield unless value.is_a?(::Symbol) value = value.dup if value.respond_to?(:dup) end value.freeze end
wrap_errors() { || ... }
click to toggle source
# File lib/koine/attributes/adapter/base.rb, line 68 def wrap_errors yield rescue StandardError => exception raise_error(exception) end