hexable 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 47c474a2cb9be6afc75a472365b6af8ce9f28ae9
4
- data.tar.gz: 6f60392d97081415e3beb8883b5db1797a244773
3
+ metadata.gz: 83a406d79077051def30b079ca8640ce7a2c62e9
4
+ data.tar.gz: 039a30914928860aa6cbf298ee0a75325e4b8c61
5
5
  SHA512:
6
- metadata.gz: bcdde7b702c36bb43255ebedf3eb315bfef07d319981c116ad2b0997a6944b5fff77821a5ee729f625ba5aa3a36d4326181b41ed03cab1e0d18009cffe4eb5ed
7
- data.tar.gz: 9e7c374861abf79b3b3794ed707d995cbd2631add01d37ca190f198a3659b0b91d9a98c26132a9cc6294438ea3067d281c6e3c561d677332e372ab7f4ef7e2e5
6
+ metadata.gz: 994f6678ed505296cd93279187598f3b2a0c75ff8dcdf6bed327b9cea53d98a558809ac101c7cc166a4491309c7408094f888a47cbf1745eb7192975e5525b7a
7
+ data.tar.gz: c3b736ac0d93b9bfeb5d97b41d6b41df465ccfca90de343c5bc887ff63464f5b47fadbc2d289fd0c5feea8f4d07a7d21d410eadf36254c900db4baf4583e2ca2
data/README.md CHANGED
@@ -22,11 +22,13 @@ Or install it yourself as:
22
22
 
23
23
  ## Usage
24
24
 
25
+ ```
25
26
  num = Hexable::Number.new(42)
26
27
  puts num.binary
27
28
  puts num.octal
28
29
  puts num.decimal
29
30
  puts num.hex
31
+ ```
30
32
 
31
33
  ## Development
32
34
 
@@ -15,12 +15,13 @@ Gem::Specification.new do |spec|
15
15
 
16
16
  # Prevent pushing this gem to RubyGems.org by setting 'allowed_push_host', or
17
17
  # delete this section to allow pushing this gem to any host.
18
+ =begin
18
19
  if spec.respond_to?(:metadata)
19
- spec.metadata['allowed_push_host'] = "https://rubygems.org"
20
+ spec.metadata['allowed_push_host'] = "https://rubygems.org/"
20
21
  else
21
22
  raise "RubyGems 2.0 or newer is required to protect against public gem pushes."
22
23
  end
23
-
24
+ =end
24
25
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
25
26
  spec.bindir = "exe"
26
27
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
@@ -3,48 +3,104 @@ require "hexable/version"
3
3
  module Hexable
4
4
  class Number
5
5
  def initialize(num)
6
- @number = (num == nil) ? num : 0
6
+ @number = num.eql?(nil) ? num : 0
7
+ @base = 10
7
8
  end
8
9
 
9
10
  def number(num)
10
11
  @number = num
11
12
  end
12
13
 
14
+ def base
15
+ return @base
16
+ end
17
+
13
18
  def binary
19
+ @base = 2
14
20
  return @number.to_i().to_s(2)
15
21
  end
16
22
 
17
23
  def octal
24
+ @base = 8
18
25
  return @number.to_i().to_s(8)
19
26
  end
20
27
 
21
28
  def decimal
29
+ @base = 10
22
30
  return Integer(@number)
23
31
  end
24
32
 
25
33
  def hex
34
+ @base = 16
26
35
  return @number.to_i().to_s(16)
27
36
  end
28
- =begin
29
- def base64
30
37
 
38
+ def base32
39
+ @base = 32
40
+ return @number.to_i().to_s(32)
31
41
  end
32
42
 
33
- def add()
43
+ def add(x)
44
+ num = decimal(x)
45
+ num += @number
46
+ return convert(num)
47
+ end
34
48
 
49
+ def subtract(x)
50
+ num = decimal(x)
51
+ num -= @number
52
+ return convert(num)
35
53
  end
36
54
 
37
- def subtract()
55
+ def multiply(x)
56
+ num = decimal(x)
57
+ num *= @number
58
+ return convert(num)
59
+ end
38
60
 
61
+ def divide(x)
62
+ num = decimal(x)
63
+ num /= @number
64
+ return convert(num)
39
65
  end
40
66
 
41
- def multiply()
67
+ private
42
68
 
69
+ def convert(num)
70
+ case @base
71
+ when 2
72
+ return binary(num)
73
+ when 8
74
+ return octal(num)
75
+ when 10
76
+ return decimal(num)
77
+ when 16
78
+ return hex(num)
79
+ when 32
80
+ return base32(num)
81
+ end
43
82
  end
44
83
 
45
- def divide()
84
+ end
46
85
 
47
- end
48
- =end
86
+ def add(x,y)
87
+ a = Hexable::Number.new(x)
88
+ return a.add(y)
49
89
  end
90
+
91
+ def subtract(x,y)
92
+ a = Hexable::Number.new(x)
93
+ return a.subtract(y)
94
+ end
95
+
96
+ def multiply(x,y)
97
+ a = Hexable::Number.new(x)
98
+ return a.multiply(y)
99
+ end
100
+
101
+ def divide(x,y)
102
+ a = Hexable::Number.new(x)
103
+ return a.divide(y)
104
+ end
105
+
50
106
  end
@@ -1,3 +1,3 @@
1
1
  module Hexable
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hexable
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - austin.vecchio
@@ -58,8 +58,7 @@ files:
58
58
  - lib/hexable/version.rb
59
59
  homepage: https://github.com/avecchio/hexable
60
60
  licenses: []
61
- metadata:
62
- allowed_push_host: https://rubygems.org
61
+ metadata: {}
63
62
  post_install_message:
64
63
  rdoc_options: []
65
64
  require_paths: