xelor 0.1.0 → 0.1.1

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: f3300637291fc1ab333f5c3dcd04bbc232c5416e
4
- data.tar.gz: 231b3ddc9c77b4df281427b80c7da94756cdd22e
3
+ metadata.gz: 755cd200b9e5ce102a1e7a8bc1f1c2ce9d98f644
4
+ data.tar.gz: f7204f52f3068ad7f61042bff094c9b741d73ae4
5
5
  SHA512:
6
- metadata.gz: 94c738af7de8f282e8c6712b60ffc2548c4533b0014dcd01ece9c490ac45a97389fdccbd8e952a00336ee7ca9afffdbccc0feaff5b9919cda12c14495b75c6aa
7
- data.tar.gz: 1f68a164874d3b752f6d36c25ee3385b41d7b4fd26bf7b07f763bd4f170ecd18eafcfe1fca7e2c575ac950decc3a36aaadeabce4b60931f2ba39230b0c44c92b
6
+ metadata.gz: ad4281dc782b814aecaa31985081d4fe42a977eaee80bcdc7b25f60dcad55724eb3634611875631585db7b942c62f007509cf521ca92ebe4a5b745b355875fff
7
+ data.tar.gz: 3768f3c7f3398c6dc63dc1beba5f9068a4e2f53f05c157f35d574f99924d60bf4097ed36e2e111a112e6735eff4dd5460fcc83ca5854e1214476f82227f38257
@@ -1,21 +1,55 @@
1
1
  require "xelor/version"
2
+ require 'hexable'
2
3
  require 'securerandom'
3
4
  module Xelor
4
5
 
6
+ def binary(size)
7
+ num = chaos(size)
8
+ return num.binary
9
+ end
10
+
11
+ def octal(size)
12
+ num = chaos(size)
13
+ return num.octal
14
+ end
15
+
16
+ def decimal(size)
17
+ num = chaos(size)
18
+ return num.decimal
19
+ end
20
+
5
21
  def hex(size)
6
- return chaos(size)
22
+ num = chaos(size)
23
+ return num.hex
24
+ end
25
+
26
+ def base32(size)
27
+ num = chaos(size)
28
+ return num.base32
29
+ end
30
+
31
+ def base64(size)
32
+ num = chaos(size)
33
+ return num.base64
34
+ end
35
+
36
+ def string(size)
37
+ num = chaos(size)
38
+ return [num.to_s].pack('H*')
7
39
  end
8
40
 
9
41
  private
10
42
 
11
43
  def chaos(size)
44
+ msg = nil
12
45
  begin
13
46
  # /dev/urandom exists only on unix or linux systems
14
- return system("cat /dev/urandom | base64 | head -c #{size}")
47
+ msg = system("cat /dev/urandom | base64 | head -c #{size}")
15
48
  rescue
16
- # if on windows
17
- return SecureRandom.hex(size)
49
+ # if on windows or another system
50
+ msg = SecureRandom.hex(size)
18
51
  end
52
+ return Hexable::Number.new(msg, 16, false)
19
53
  end
20
54
 
21
55
  end
@@ -1,3 +1,3 @@
1
1
  module Xelor
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
@@ -19,6 +19,8 @@ Gem::Specification.new do |spec|
19
19
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
20
  spec.require_paths = ["lib"]
21
21
 
22
+ spec.add_dependency "hexable", "~> 0.2"
22
23
  spec.add_development_dependency "bundler", "~> 1.12"
23
24
  spec.add_development_dependency "rake", "~> 10.0"
25
+ spec.add_development_dependency "rspec", "~> 3.4"
24
26
  end
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xelor
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
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-06-07 00:00:00.000000000 Z
11
+ date: 2016-06-20 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: hexable
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0.2'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0.2'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: bundler
15
29
  requirement: !ruby/object:Gem::Requirement
@@ -38,6 +52,20 @@ dependencies:
38
52
  - - "~>"
39
53
  - !ruby/object:Gem::Version
40
54
  version: '10.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '3.4'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '3.4'
41
69
  description: Xelor was built for systems that require random bytes for processes faster
42
70
  than one second. Because normal random generation is based off of time as a seed,
43
71
  if there exists multiple calls towards SecureRandom or Rand within one second, the