lib/eddy/models/element/dt.rb in eddy-0.6.0 vs lib/eddy/models/element/dt.rb in eddy-0.7.0
- old
+ new
@@ -41,37 +41,46 @@
self.fmt = fmt
end
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
- case self.fmt
- when :yymmdd then return Eddy::Util::Time.yymmdd(@val)
- when :ccyymmdd then return Eddy::Util::Time.ccyymmdd(@val)
- else raise Eddy::Errors::Error "invalid fmt value for DT object"
- end
- end
-
# @raise [ElementValidationError] Unless passed a *UTC* formatted `Time` object.
# @param arg [Time] A *UTC* formatted [Time](https://ruby-doc.org/stdlib-2.6.5/libdoc/time/rdoc/Time.html) object.
# @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::TypeValidationError.new(element: self, arg: arg) unless arg.is_a?(Time)
raise Eddy::Errors::ElementValidationError.new("Argument passed is not in UTC format", element: self) unless arg.utc?()
@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.fmt)
+ end
+
+ # @param val [Time] A *UTC* formatted [Time](https://ruby-doc.org/stdlib-2.6.5/libdoc/time/rdoc/Time.html) object.
+ # @param fmt [Symbol]
+ # @return [String]
+ def self.process_value(val, fmt)
+ case fmt
+ when :yymmdd then return Eddy::Util::Time.yymmdd(val)
+ when :ccyymmdd then return Eddy::Util::Time.ccyymmdd(val)
+ else raise Eddy::Errors::Error "invalid fmt value for DT object"
+ end
end
# @param fmt [Symbol]
# @return [void]
def fmt=(fmt)