lib/eddy/models/element/id.rb in eddy-0.6.0 vs lib/eddy/models/element/id.rb in eddy-0.7.0

- old
+ new

@@ -23,31 +23,39 @@ self.req = req self.ref = ref self.value = val end - # @raise [Eddy::Errors::ElementNilValueError] If the element is required and no value has been set. - # @return [String] - def value() - if @val.nil? - case self.req - when "M" then raise Eddy::Errors::ElementNilValueError.new(element: self) - when "O", "C" then return "" - else raise Eddy::Errors::Error, "Invalid req value: #{self.req}" - end - end - return @val - end - # @param arg [String] # return [void] def value=(arg) - if arg.nil? + 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 + + # @raise [Eddy::Errors::ElementNilValueError] If the element is required and no value has been set. + # @return [String] + def value() + return super() + end + + # @return [String] + def process_value() + return self.class.process_value(@val) + end + + # @param val [String] Original value. + # @return [String] + def self.process_value(val) + return val end # @return [Array<String>] def code_list() raise NotImplementedError, "Each ID element must define its own code_list"