Class: Hexable::Number

Inherits:
Object
  • Object
show all
Defined in:
lib/hexable.rb

Instance Method Summary collapse

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

#baseObject



16
17
18
# File 'lib/hexable.rb', line 16

def base
  return @base
end

#base32Object



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

#base64Object



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

#binaryObject



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

#decimalObject



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

#hexObject



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

#octalObject



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