Class: Bronze::Transforms::Attributes::DateTimeTransform
- Inherits:
-
Bronze::Transform
- Object
- Bronze::Transform
- Bronze::Transforms::Attributes::DateTimeTransform
- Defined in:
- lib/bronze/transforms/attributes/date_time_transform.rb
Overview
Transform class that normalizes a DateTime to a formatted string representation.
Constant Summary collapse
- ISO_8601 =
Format string for ISO 8601 date+time format. Equivalent to YYYY-MM-DDTHH:MM:SS+ZZZZ.
'%FT%T%z'
Instance Attribute Summary collapse
-
#format ⇒ String
readonly
The format string.
Class Method Summary collapse
-
.instance ⇒ DateTimeTransform
A memoized instance of DateTimeTransform.
Instance Method Summary collapse
-
#denormalize(value) ⇒ DateTime
Converts a formatted DateTime string to a Date instance.
-
#initialize(format = ISO_8601) ⇒ DateTimeTransform
constructor
A new instance of DateTimeTransform.
-
#normalize(value) ⇒ String
Converts a DateTime to a formatted string.
Constructor Details
#initialize(format = ISO_8601) ⇒ DateTimeTransform
23 24 25 |
# File 'lib/bronze/transforms/attributes/date_time_transform.rb', line 23 def initialize(format = ISO_8601) @format = format end |
Instance Attribute Details
#format ⇒ String (readonly)
28 29 30 |
# File 'lib/bronze/transforms/attributes/date_time_transform.rb', line 28 def format @format end |
Class Method Details
.instance ⇒ DateTimeTransform
17 18 19 |
# File 'lib/bronze/transforms/attributes/date_time_transform.rb', line 17 def self.instance @instance ||= new end |
Instance Method Details
#denormalize(value) ⇒ DateTime
Converts a formatted DateTime string to a Date instance.
35 36 37 38 39 40 41 |
# File 'lib/bronze/transforms/attributes/date_time_transform.rb', line 35 def denormalize(value) return value if value.is_a?(DateTime) return nil if value.nil? || value.empty? DateTime.strptime(value, read_format) end |
#normalize(value) ⇒ String
Converts a DateTime to a formatted string.
48 49 50 51 52 |
# File 'lib/bronze/transforms/attributes/date_time_transform.rb', line 48 def normalize(value) return nil if value.nil? value.strftime(format) end |