Module: Stamp
- Defined in:
- lib/stamp/core.rb,
lib/stamp/version.rb,
lib/stamp/refinement.rb,
lib/stamp/translator.rb,
lib/stamp/disambiguator.rb,
lib/stamp/emitters/am_pm.rb,
lib/stamp/emitters/lookup.rb,
lib/stamp/emitters/string.rb,
lib/stamp/emitters/ordinal.rb,
lib/stamp/emitters/delegate.rb,
lib/stamp/emitters/ambiguous.rb,
lib/stamp/emitters/composite.rb,
lib/stamp/emitters/two_digit.rb,
lib/stamp/emitters/utc_offset.rb,
lib/stamp/emitters/twelve_hour.rb
Defined Under Namespace
Modules: Emitters, Refinement Classes: Disambiguator, Translator
Constant Summary collapse
- VERSION =
"0.7.0"
Class Method Summary collapse
-
.format(target, example) ⇒ String
Formats a date/time using a human-friendly example as a template, without monkey patching Date or Time.
-
.strftime_format(example) ⇒ String
Translates a human-friendly example into a strftime format string.
Instance Method Summary collapse
-
#stamp(example) ⇒ String
(also: #stamp_like, #format_like)
Formats a date/time using a human-friendly example as a template.
Class Method Details
.format(target, example) ⇒ String
Formats a date/time using a human-friendly example as a template, without monkey patching Date or Time.
29 30 31 32 33 34 35 |
# File 'lib/stamp/core.rb', line 29 def self.format(target, example) emitters(example).format(target) rescue NoMethodError => e raise e if target.respond_to?(e.name) raise ArgumentError, "#{example.inspect} requires ##{e.name}, which #{target.class} doesn't implement (e.g. a Date can't format time-of-day examples)" end |
.strftime_format(example) ⇒ String
Translates a human-friendly example into a strftime format string.
48 49 50 |
# File 'lib/stamp/core.rb', line 48 def self.strftime_format(example) emitters(example).strftime_format end |