Never been to DZone Snippets before?

Snippets is a public source code repository. Easily build up your personal collection of code snippets, categorize them with tags / keywords, and share them with the world

About this user

JavaScript Wizard

« Newer Snippets
Older Snippets »
Showing 1-2 of 2 total  RSS 

Ordinals for All Numeric Types

This snippet will extend all numerical types with a method for returning the English ordinal, i.e. 1st, 2nd, 3rd, 4th, etc.

class Numeric
  def ordinal
    cardinal = self.to_i.abs
    if (10...20).include?(cardinal) then
      cardinal.to_s << 'th'
    else
      cardinal.to_s << %w{th st nd rd th th th th th th}[cardinal % 10]
    end
  end
end
 
[1, 22, 123, 10, -3.1415].collect { |i| i.ordinal }
=> ["1st", "22nd", "123rd", "10th", "3rd"]


This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License.

Extend Float and FixNum to do calculations in S.I. units

Found at http://stephan.walter.name/Ruby_snippets

module SiUnits
        def mega;  self * 1000.kilo;   end
        def kilo;  self * 1000;        end
        def milli; self * 0.001;       end
        def micro; self * 0.001.milli; end

        def seconds; self;              end
        def minutes; self * 60;         end
        def hours;   self * 60.minutes; end
        def days;    self * 24.hours;   end
        def years;   self * 365.days;   end

        def metres; self; end

        def grams; self * 0.001; end
end

class Float; include SiUnits; end
class Fixnum; include SiUnits; end

p 2.days             # => 172800
p 3.milli.metres     # => 0.003
p 4.kilo.grams       # => 4.0


Note: This code is under the Creative Commons Attribution-NonCommercial-ShareAlike License.
« Newer Snippets
Older Snippets »
Showing 1-2 of 2 total  RSS