class Enolib::ValueElementBase
Public Instance Methods
optional_string_value()
click to toggle source
# File lib/enolib/elements/value_element_base.rb, line 5 def optional_string_value _value(required: false) end
optional_value(loader = nil)
click to toggle source
# File lib/enolib/elements/value_element_base.rb, line 9 def optional_value(loader = nil) loader = Proc.new if block_given? unless loader raise ArgumentError, 'A loader function must be provided' end _value(loader, required: false) end
required_string_value()
click to toggle source
# File lib/enolib/elements/value_element_base.rb, line 19 def required_string_value _value(required: true) end
required_value(loader = nil)
click to toggle source
# File lib/enolib/elements/value_element_base.rb, line 23 def required_value(loader = nil) loader = Proc.new if block_given? unless loader raise ArgumentError, 'A loader function must be provided' end _value(loader, required: true) end
value_error(message = nil) { |value| ... }
click to toggle source
# File lib/enolib/elements/value_element_base.rb, line 33 def value_error(message = nil) if block_given? message = yield(@context.value(@instruction)) elsif message.is_a?(Proc) message = message.call(@context.value(@instruction)) end unless message raise ArgumentError, 'A message or message function must be provided' end Errors::Validation.value_error(@context, message, @instruction) end
Private Instance Methods
_value(loader = nil, required:)
click to toggle source
# File lib/enolib/elements/value_element_base.rb, line 59 def _value(loader = nil, required:) @touched = true value = @context.value(@instruction) if value return value unless loader begin loader.call(value) rescue => message raise Errors::Validation.value_error(@context, message, @instruction) end else return nil unless required raise Errors::Validation.missing_value(@context, @instruction) end end
print_value()
click to toggle source
# File lib/enolib/elements/value_element_base.rb, line 49 def print_value value = @context.value(@instruction) return 'nil' unless value value = "#{value[0..10]}..." if value.length > 14 value.gsub("\n", '\n') end