hexable 0.2.2 → 0.3.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: 455a8b89875c36790d6600d9fc5ca8c5edbcc390
4
- data.tar.gz: dcb931b9c8d70dac0e76c822b1519be7126155a9
3
+ metadata.gz: 12c2a85a8366022e3168fe32e159be78ffc04806
4
+ data.tar.gz: 0e69ac5c2c2cd776e1d3aa81465f7277b5aef3fd
5
5
  SHA512:
6
- metadata.gz: befc96077e03e805f25bd445c85b05145105275ab1c8af88f21ed9de65107c6168591c4eb86df38a819f7125795c3295c24ebcbba363fab993e70c92c1bb6fe2
7
- data.tar.gz: 7e0ce45e27a17c945bb423c3029d6a3a90217761b94d39a4ceda5009e602d014b316ab6a4d22bea3cf6c278a25667efd4e3f1a820b6e3769c50f54021a2262ad
6
+ metadata.gz: 7a8cd38fca54bd2eb87c950d9d4c6a587031086423175e9cd051f82edceda08418ca30b29b73839aa2f2f86e853811416feb5c7112f9529c0a7d646efe79ac14
7
+ data.tar.gz: 6a9304f26510a5d635641b76eb84da1e158ab06cf459c9ca43c477554d8995ba04b8bef62fbccf75c922219d741d3113723792a35ca2590f914c12552a73aa49
data/hexable.gemspec CHANGED
@@ -13,15 +13,6 @@ Gem::Specification.new do |spec|
13
13
  spec.description = %q{Convert between binary octal decimal hex and base64 with add subtract multiply and divide operations}
14
14
  spec.homepage = "https://github.com/avecchio/hexable"
15
15
 
16
- # Prevent pushing this gem to RubyGems.org by setting 'allowed_push_host', or
17
- # delete this section to allow pushing this gem to any host.
18
- =begin
19
- if spec.respond_to?(:metadata)
20
- spec.metadata['allowed_push_host'] = "https://rubygems.org/"
21
- else
22
- raise "RubyGems 2.0 or newer is required to protect against public gem pushes."
23
- end
24
- =end
25
16
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
26
17
  spec.bindir = "exe"
27
18
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
@@ -29,4 +20,5 @@ Gem::Specification.new do |spec|
29
20
 
30
21
  spec.add_development_dependency "bundler", "~> 1.11"
31
22
  spec.add_development_dependency "rake", "~> 10.0"
23
+ spec.add_development_dependency "rspec", "~> 3.4"
32
24
  end
data/lib/hexable.rb CHANGED
@@ -2,9 +2,11 @@ require "hexable/version"
2
2
 
3
3
  module Hexable
4
4
  class Number
5
- def initialize(num)
6
- @number = num.eql?(nil) ? num : 0
7
- @base = 10
5
+ def initialize(num, base, mode)
6
+ @number = num.eql?(nil) ? num.to_i(base) : 0
7
+ @base = base.eql?(nil) ? base : 10
8
+ # default dynamic is off, so static is false
9
+ @mode = mode.eql?(nil) ? mode : false
8
10
  end
9
11
 
10
12
  def number(num)
@@ -16,28 +18,63 @@ module Hexable
16
18
  end
17
19
 
18
20
  def binary
19
- @base = 2
20
- return @number.to_i().to_s(2)
21
+ transform = @number.to_i().to_s(2)
22
+ if @mode
23
+ @base = 2
24
+ @number = transform
25
+ else
26
+ return transform
27
+ end
21
28
  end
22
29
 
23
30
  def octal
24
- @base = 8
25
- return @number.to_i().to_s(8)
31
+ transform = @number.to_i().to_s(8)
32
+ if @mode
33
+ @base = 8
34
+ @number = transform
35
+ else
36
+ return transform
37
+ end
26
38
  end
27
39
 
28
40
  def decimal
29
- @base = 10
30
- return Integer(@number)
41
+ transform = Integer(@number)
42
+ if @mode
43
+ @base = 10
44
+ @number = transform
45
+ else
46
+ return transform
47
+ end
31
48
  end
32
49
 
33
50
  def hex
34
- @base = 16
35
- return @number.to_i().to_s(16)
51
+ transform = @number.to_i().to_s(16)
52
+ if @mode
53
+ @base = 16
54
+ @number = transform
55
+ else
56
+ return transform
57
+ end
36
58
  end
37
59
 
38
60
  def base32
39
- @base = 32
40
- return @number.to_i().to_s(32)
61
+ transform = @number.to_i().to_s(32)
62
+ if @mode
63
+ @base = 32
64
+ @number = transform
65
+ else
66
+ return transform
67
+ end
68
+ end
69
+
70
+ def base64
71
+ transform = 4#@number.to_i().to_s(32)
72
+ if @mode
73
+ @base = 64
74
+ @number = transform
75
+ else
76
+ return transform
77
+ end
41
78
  end
42
79
 
43
80
  def add(x)
@@ -79,6 +116,8 @@ module Hexable
79
116
  return n.hex
80
117
  when 32
81
118
  return n.base32
119
+ when 64
120
+ return n.base64
82
121
  end
83
122
  end
84
123
 
@@ -1,3 +1,3 @@
1
1
  module Hexable
2
- VERSION = "0.2.2"
2
+ VERSION = "0.3.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hexable
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - austin.vecchio
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-01-15 00:00:00.000000000 Z
11
+ date: 2016-06-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.4'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.4'
41
55
  description: Convert between binary octal decimal hex and base64 with add subtract
42
56
  multiply and divide operations
43
57
  email: