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