class Eddy::Models::Element::ID

Identifier. Works with a code list specified by the dictionary.

Public Class Methods

new( min:, max:, req: nil, ref: nil, val: nil ) click to toggle source

@param min [Integer] @param max [Integer] @param req [String] (nil) @param ref [String] (nil) @param val [String] (nil) @return [void]

# File lib/eddy/models/element/id.rb, line 13
def initialize(
  min:,
  max:,
  req: nil,
  ref: nil,
  val: nil
)
  @type = "ID"
  @min = min
  @max = max
  self.req = req
  self.ref = ref
  self.value = val
end
process_value(val) click to toggle source

@param val [String] Original value. @return [String]

# File lib/eddy/models/element/id.rb, line 56
def self.process_value(val)
  return val
end

Public Instance Methods

code_list() click to toggle source

@return [Array<String>]

# File lib/eddy/models/element/id.rb, line 61
def code_list()
  raise NotImplementedError, "Each ID element must define its own code_list"
end
process_value() click to toggle source

@return [String]

# File lib/eddy/models/element/id.rb, line 50
def process_value()
  return self.class.process_value(@val)
end
value() click to toggle source

@raise [Eddy::Errors::ElementNilValueError] If the element is required and no value has been set. @return [String]

Calls superclass method Eddy::Models::Element::Base#value
# File lib/eddy/models/element/id.rb, line 45
def value()
  return super()
end
value=(arg) click to toggle source

@param arg [String] return [void]

# File lib/eddy/models/element/id.rb, line 30
def value=(arg)
  if arg == :skip
    @val = :skip
    return
  end
  if arg.nil?()
    @val = arg
    return
  end
  raise Eddy::Errors::ElementValidationError.new("Value not present in code list: #{arg}", element: self) unless self.code_list().include?(arg)
  @val = arg
end