class Lab42::BasicConstraints::Constraint

Attributes

default[R]
name[R]

Public Class Methods

new(name, &blk) click to toggle source
# File lib/lab42/basic_constraints/constraint.rb, line 52
def initialize name, &blk
  @constraint = blk
  @has_default = false
  @default = -> {}
  @name = name
end

Public Instance Methods

call(value) click to toggle source
# File lib/lab42/basic_constraints/constraint.rb, line 10
def call value
  return Result.ok if @constraint.(value)
  Result.error("#{_show value} is not a legal #{@name}", error: Lab42::BasicConstraints::ConstraintError)
end
set_default(value=nil, &blk) click to toggle source
# File lib/lab42/basic_constraints/constraint.rb, line 29
def set_default value=nil, &blk
  @default = 
    if value
      value
    else
      blk
    end
  @has_default = true
  self
end

Private Instance Methods

_show(value) click to toggle source
# File lib/lab42/basic_constraints/constraint.rb, line 41
def _show value
  case value
  when NilClass
    "nil"
  when String
    value.inspect
  else
    value
  end
end