lib/eddy/models/element/n.rb in eddy-0.6.0 vs lib/eddy/models/element/n.rb in eddy-0.7.0
- old
+ new
@@ -29,36 +29,33 @@
self.ref = ref
self.decimals = decimals
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 self.process_value()
- end
-
# @raise [Eddy::Errors::ElementValidationError]
# @param arg [Numeric]
# @return [void]
def value=(arg)
- if arg.nil?
+ if arg == :skip
+ @val = :skip
+ return
+ end
+ if arg.nil?()
@val = nil
return
end
raise Eddy::Errors::TypeValidationError.new(element: self, arg: arg) unless arg.is_a?(Numeric)
@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,
self.decimals,
min: self.min,
@@ -80,10 +77,9 @@
if (val - val.floor) == 0
return sprintf("%0#{min}d", val.truncate)
else
return sprintf("%0#{min}d", val.round(2))
end
- # return sprintf("%0#{min}d", val)
when Float
return (val * (10.0**decimals)).round.to_s
else
raise ArgumentError, "'val' must be a Float or an Integer."
end