Class: Bronze::Transforms::Attributes::DateTransform
- Inherits:
-
Bronze::Transform
- Object
- Bronze::Transform
- Bronze::Transforms::Attributes::DateTransform
- Defined in:
- lib/bronze/transforms/attributes/date_transform.rb
Overview
Transform class that normalizes a Date to a formatted string representation.
Constant Summary collapse
- ISO_8601 =
Format string for ISO 8601 date format. Equivalent to YYYY-MM-DD.
'%F'
Instance Attribute Summary collapse
-
#format ⇒ String
readonly
The format string.
Class Method Summary collapse
-
.instance ⇒ DateTransform
A memoized instance of DateTransform.
Instance Method Summary collapse
-
#denormalize(value) ⇒ Date
Converts a formatted Date string to a Date instance.
-
#initialize(format = ISO_8601) ⇒ DateTransform
constructor
A new instance of DateTransform.
-
#normalize(value) ⇒ String
Converts a Date to a formatted string.
Constructor Details
#initialize(format = ISO_8601) ⇒ DateTransform
Returns a new instance of DateTransform.
21 22 23 |
# File 'lib/bronze/transforms/attributes/date_transform.rb', line 21 def initialize(format = ISO_8601) @format = format end |
Instance Attribute Details
#format ⇒ String (readonly)
Returns the format string.
26 27 28 |
# File 'lib/bronze/transforms/attributes/date_transform.rb', line 26 def format @format end |
Class Method Details
.instance ⇒ DateTransform
Returns a memoized instance of DateTransform.
15 16 17 |
# File 'lib/bronze/transforms/attributes/date_transform.rb', line 15 def self.instance @instance ||= new end |
Instance Method Details
#denormalize(value) ⇒ Date
Converts a formatted Date string to a Date instance.
33 34 35 36 37 38 39 |
# File 'lib/bronze/transforms/attributes/date_transform.rb', line 33 def denormalize(value) return value if value.is_a?(Date) return nil if value.nil? || value.empty? Date.strptime(value, read_format) end |
#normalize(value) ⇒ String
Converts a Date to a formatted string.
46 47 48 49 50 |
# File 'lib/bronze/transforms/attributes/date_transform.rb', line 46 def normalize(value) return nil if value.nil? value.strftime(format) end |