Class: Stamp::Emitters::Ordinal
- Inherits:
-
Object
- Object
- Stamp::Emitters::Ordinal
- Defined in:
- lib/stamp/emitters/ordinal.rb
Instance Attribute Summary collapse
-
#field ⇒ Object
readonly
Returns the value of attribute field.
Instance Method Summary collapse
- #format(target) ⇒ Object
-
#initialize(field) ⇒ Ordinal
constructor
A new instance of Ordinal.
-
#ordinalize(number) ⇒ Object
Cribbed from ActiveSupport::Inflector https://github.com/rails/rails/blob/master/activesupport/lib/active_support/inflector/methods.rb.
Constructor Details
#initialize(field) ⇒ Ordinal
Returns a new instance of Ordinal.
7 8 9 |
# File 'lib/stamp/emitters/ordinal.rb', line 7 def initialize(field) @field = field end |
Instance Attribute Details
#field ⇒ Object (readonly)
Returns the value of attribute field.
4 5 6 |
# File 'lib/stamp/emitters/ordinal.rb', line 4 def field @field end |
Instance Method Details
#format(target) ⇒ Object
11 12 13 |
# File 'lib/stamp/emitters/ordinal.rb', line 11 def format(target) ordinalize(target.send(field)) end |
#ordinalize(number) ⇒ Object
Cribbed from ActiveSupport::Inflector https://github.com/rails/rails/blob/master/activesupport/lib/active_support/inflector/methods.rb
17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/stamp/emitters/ordinal.rb', line 17 def ordinalize(number) number.to_s + if (11..13).include?(number % 100) 'th' else case number % 10 when 1; 'st' when 2; 'nd' when 3; 'rd' else 'th' end end end |