Simulating a Subclass of Fixnum : Fixnum extension « Number « Ruby

Home
Ruby
1.ActiveRecord
2.Array
3.CGI
4.Class
5.Collections
6.Database
7.Date
8.Design Patterns
9.Development
10.File Directory
11.GUI
12.Hash
13.Language Basics
14.Method
15.Network
16.Number
17.Rails
18.Range
19.Reflection
20.Statement
21.String
22.Threads
23.Time
24.Tk
25.Unit Test
26.Windows Platform
27.XML
Ruby » Number » Fixnum extension 




Simulating a Subclass of Fixnum


require 'delegate'
class HexNumber < DelegateClass(Fixnum)
  # The string representations of this class are hexadecimal numbers.
  def to_s
    sign = self < "-" ""
    hex = abs.to_s(16)
    "#{sign}0x#{hex}"
  end

  def inspect
    to_s
  end
end

HexNumber.new(10)                             # => 0xa
HexNumber.new(-10)                            # => -0xa
HexNumber.new(1000000)                        # => 0xf4240
HexNumber.new(1024 ** 10)                     # => 0x10000000000000000000000000

HexNumber.new(10).succ                        # => 11
HexNumber.new(102                         # => 20

 














Related examples in the same category
1.Calculating a factorial in Ruby
2.NoMethodError: undefined method 'new' for Fixnum:Class
3.Add double_upto method to Fixnum
4.redefine basic arithmetic
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.