Class: Hexable::Number
- Inherits:
-
Object
- Object
- Hexable::Number
- Defined in:
- lib/hexable.rb
Instance Method Summary collapse
- #add(x) ⇒ Object
- #base ⇒ Object
- #base32 ⇒ Object
- #base64 ⇒ Object
- #binary ⇒ Object
- #decimal ⇒ Object
- #divide(x) ⇒ Object
- #hex ⇒ Object
-
#initialize(num, base, mode) ⇒ Number
constructor
A new instance of Number.
- #multiply(x) ⇒ Object
- #number(num) ⇒ Object
- #octal ⇒ Object
- #subtract(x) ⇒ Object
Constructor Details
#initialize(num, base, mode) ⇒ Number
Returns a new instance of Number.
5 6 7 8 9 10 |
# File 'lib/hexable.rb', line 5 def initialize(num, base, mode) @number = !num.eql?(nil) ? num.to_s.to_i(base) : 0 @base = !base.eql?(nil) ? base : 10 # default dynamic is off, so static is false @mode = !mode.eql?(nil) ? mode : false end |
Instance Method Details
#add(x) ⇒ Object
80 81 82 83 84 |
# File 'lib/hexable.rb', line 80 def add(x) num = Hexable::Number.new(x).decimal num += @number return convert(num) end |
#base ⇒ Object
16 17 18 |
# File 'lib/hexable.rb', line 16 def base return @base end |
#base32 ⇒ Object
60 61 62 63 64 65 66 67 68 |
# File 'lib/hexable.rb', line 60 def base32 transform = @number.to_i().to_s(32) if @mode @base = 32 @number = transform else return transform end end |
#base64 ⇒ Object
70 71 72 73 74 75 76 77 78 |
# File 'lib/hexable.rb', line 70 def base64 transform = 4#@number.to_i().to_s(32) if @mode @base = 64 @number = transform else return transform end end |
#binary ⇒ Object
20 21 22 23 24 25 26 27 28 |
# File 'lib/hexable.rb', line 20 def binary transform = @number.to_i().to_s(2) if @mode @base = 2 @number = transform else return transform end end |
#decimal ⇒ Object
40 41 42 43 44 45 46 47 48 |
# File 'lib/hexable.rb', line 40 def decimal transform = Integer(@number) if @mode @base = 10 @number = transform else return transform end end |
#divide(x) ⇒ Object
98 99 100 101 102 |
# File 'lib/hexable.rb', line 98 def divide(x) num = Hexable::Number.new(x).decimal num /= @number return convert(num) end |
#hex ⇒ Object
50 51 52 53 54 55 56 57 58 |
# File 'lib/hexable.rb', line 50 def hex transform = @number.to_i().to_s(16) if @mode @base = 16 @number = transform else return transform end end |
#multiply(x) ⇒ Object
92 93 94 95 96 |
# File 'lib/hexable.rb', line 92 def multiply(x) num = Hexable::Number.new(x).decimal num *= @number return convert(num) end |
#number(num) ⇒ Object
12 13 14 |
# File 'lib/hexable.rb', line 12 def number(num) @number = num end |
#octal ⇒ Object
30 31 32 33 34 35 36 37 38 |
# File 'lib/hexable.rb', line 30 def octal transform = @number.to_i().to_s(8) if @mode @base = 8 @number = transform else return transform end end |
#subtract(x) ⇒ Object
86 87 88 89 90 |
# File 'lib/hexable.rb', line 86 def subtract(x) num = Hexable::Number.new(x).decimal num -= @number return convert(num) end |