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"