netrand 2.0.0 → 3.0.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.
- data/CHANGELOG +8 -0
- data/Gemfile.lock +1 -1
- data/README.md +6 -3
- data/bin/netrand +53 -10
- data/lib/functions/common.rb +31 -0
- data/lib/functions/dice.rb +10 -0
- data/lib/functions/int.rb +16 -18
- data/lib/functions/list.rb +41 -13
- data/lib/functions/sequence.rb +4 -9
- data/lib/functions/string.rb +6 -3
- data/lib/netrand.rb +3 -1
- data/netrand.gemspec +5 -5
- data/pkg/netrand-3.0.0.gem +0 -0
- data/tests/ZoznamOkresov-randomized.txt +79 -0
- data/tests/ZoznamOkresov.txt +1 -1
- data/tests/test.rb +2 -2
- data/tests/test_dice.rb +7 -0
- data/tests/test_int.rb +1 -2
- data/tests/test_list.rb +10 -11
- data/tests/test_sequence.rb +1 -2
- data/tests/test_string.rb +1 -2
- metadata +9 -5
- data/lib/functions/quota.rb +0 -16
data/CHANGELOG
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
3.0.0
|
2
|
+
========
|
3
|
+
*Preformance, size and bug fixes
|
4
|
+
*Improvements in CLI (like... it works! ;)
|
5
|
+
*Massive changes in handling of file and sequence randomization
|
6
|
+
*Added Netrand.dice function
|
7
|
+
*Better documentation
|
8
|
+
|
1
9
|
2.0.0
|
2
10
|
========
|
3
11
|
*Added list order randomizer
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -1,3 +1,6 @@
|
|
1
|
-
Wrapper around Random.org random number and string generator.
|
2
|
-
Pretty much every parameter has maximum of 10 000.
|
3
|
-
For more info look in the RDocs.
|
1
|
+
Wrapper around Random.org random number and string generator.
|
2
|
+
Pretty much every parameter has maximum of 10 000.
|
3
|
+
For more info look in the RDocs.
|
4
|
+
install using *sudo gem install Netrand*
|
5
|
+
Remember, that the tests only test the module, not Random.org service.
|
6
|
+
[Information about Random.org](http://www.random.org/faq/ "Random.org FAQ")
|
data/bin/netrand
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
-
require "
|
3
|
-
|
4
|
-
def self.loadstring
|
2
|
+
require "netrand"
|
3
|
+
def loadstring
|
5
4
|
upperalpha = ARGV.include?("-ua") ? :upperalpha : nil
|
6
5
|
loweralpha = ARGV.include?("-la") ? :loweralpha : nil
|
7
6
|
digits = ARGV.include?("-d") ? :digits : nil
|
@@ -9,10 +8,43 @@ def self.loadstring
|
|
9
8
|
Netrand.string(ARGV[1].to_i, ARGV[2].to_i, digits, upperalpha, loweralpha, unique)
|
10
9
|
end
|
11
10
|
|
11
|
+
def invalid_args
|
12
|
+
puts "Invalid arguments! Stop."
|
13
|
+
exit 1
|
14
|
+
end
|
15
|
+
|
16
|
+
def loadint
|
17
|
+
if ARGV.length < 3 then invalid_args end
|
18
|
+
if ARGV.length < 4 and ARGV.include?("-u") then invalid_args end
|
19
|
+
if ARGV.include?("-u") #This must be first, so that we can process it independently from its position
|
20
|
+
uniq = :uniq
|
21
|
+
ARGV.delete("-u")
|
22
|
+
else
|
23
|
+
uniq = :notuniq
|
24
|
+
end
|
25
|
+
numget = ARGV[1].to_i
|
26
|
+
max = ARGV[2].to_i
|
27
|
+
if ARGV[3] == nil
|
28
|
+
min = 1
|
29
|
+
else
|
30
|
+
min = ARGV[3].to_i
|
31
|
+
end
|
32
|
+
Netrand.int(numget, max, min, uniq)
|
33
|
+
end
|
34
|
+
|
35
|
+
def loadsequence
|
36
|
+
if ARGV.length == 2
|
37
|
+
Netrand.sequence(ARGV[1].to_i, 1)
|
38
|
+
else
|
39
|
+
Netrand.sequence(ARGV[1].to_i, ARGV[2].to_i)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
12
43
|
def self.usage
|
13
|
-
puts "netrand int|sequence|string|
|
44
|
+
puts "netrand int|sequence|string|file|dice"
|
14
45
|
puts "You provide additional arguments according to documentation in ri Netrand"
|
15
46
|
puts "You can force int to provide unique numbers by using -u flag at the end of command."
|
47
|
+
puts "file invokes randomize_file_lines function"
|
16
48
|
puts "String mode flags:"
|
17
49
|
puts ":upperalpha is activated using -ua switch"
|
18
50
|
puts ":loweralpha using -la"
|
@@ -20,21 +52,32 @@ def self.usage
|
|
20
52
|
puts ":unique using -u"
|
21
53
|
end
|
22
54
|
|
55
|
+
|
56
|
+
def cmdout(arr)
|
57
|
+
arr.each do |e|
|
58
|
+
print e
|
59
|
+
print ", "
|
60
|
+
end
|
61
|
+
print "\n"
|
62
|
+
end
|
63
|
+
|
23
64
|
case ARGV[0]
|
24
65
|
when "int"
|
25
|
-
out =
|
66
|
+
out = loadint
|
26
67
|
when "sequence"
|
27
|
-
out =
|
28
|
-
when "
|
29
|
-
out = Netrand.
|
68
|
+
out = loadsequence
|
69
|
+
when "file"
|
70
|
+
out = Netrand.randomize_file_lines(ARGV[1])
|
30
71
|
when "string"
|
31
|
-
out =
|
72
|
+
out = loadstring
|
73
|
+
when "dice"
|
74
|
+
out = Netrand.dice(ARGV[1])
|
32
75
|
else
|
33
76
|
self.usage
|
34
77
|
end
|
35
78
|
|
36
79
|
if out.class == Array
|
37
|
-
out
|
80
|
+
cmdout(out)
|
38
81
|
else
|
39
82
|
puts out
|
40
83
|
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require "open-uri"
|
2
|
+
module Netrand
|
3
|
+
#Generates exception if quota of random.org is exhausted.
|
4
|
+
|
5
|
+
def self.check_quota
|
6
|
+
quota = nil
|
7
|
+
open("http://www.random.org/quota/?format=plain") do |c|
|
8
|
+
quota = c.read.to_i
|
9
|
+
self.check_quota_value(quota)
|
10
|
+
end
|
11
|
+
quota
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
class QuotaExhaustedException < RuntimeError; end
|
17
|
+
|
18
|
+
#Harvests lines in plaintext output (private)
|
19
|
+
def self.harvest(address)
|
20
|
+
values = []
|
21
|
+
open(address) do |c|
|
22
|
+
c.each_line {|l| values << l.chop.to_i}
|
23
|
+
end
|
24
|
+
values
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.check_quota_value(quota)
|
28
|
+
if quota < 0 then raise QuotaExhaustedException, "Random.org quota exhausted, please try again after 0:00 UTC" end
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
data/lib/functions/int.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
|
-
|
2
|
-
require_relative "quota"
|
1
|
+
require_relative "common"
|
3
2
|
module Netrand
|
4
3
|
|
5
4
|
#Generates numget random numbers using random.org service.
|
@@ -7,27 +6,26 @@ module Netrand
|
|
7
6
|
#Returns Array of numbers.
|
8
7
|
#If you use :unique flag, then there won't be two same numbers in the array.
|
9
8
|
|
10
|
-
def
|
11
|
-
|
12
|
-
|
13
|
-
|
9
|
+
def self.int(numget, max, min = 1, uniq = :notuniq)
|
10
|
+
raise ArgumentError, "You must ask for more numbers than 0" if numget == 0
|
11
|
+
raise ArgumentError, "Maximum number must be bigger than 0" if max == 0
|
12
|
+
raise ArgumentError, "max must be bigger than min!" if min > max
|
14
13
|
self.check_quota
|
15
|
-
values = self.
|
16
|
-
if uniq == :unique
|
17
|
-
values.uniq!
|
18
|
-
while values.length != numget do
|
19
|
-
values << self.load_random_integers(numget - values.length, max, min)
|
20
|
-
values.uniq!
|
21
|
-
end
|
22
|
-
end
|
14
|
+
values = self.harvest("http://www.random.org/integers/?num=#{numget}&min=#{min}&max=#{max}&format=plain&col=1&base=10")
|
15
|
+
if uniq == :unique then self.get_unique_ints(numget, max, min, values) end
|
23
16
|
values
|
24
17
|
end
|
25
18
|
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
19
|
+
private
|
20
|
+
|
21
|
+
#Gets unique integers in a way that is fast and conserves bandwidth (private)
|
22
|
+
def self.get_unique_ints(numget, max, min, values = [])
|
23
|
+
values.uniq!
|
24
|
+
while values.length != numget do
|
25
|
+
values << self.harvest("http://www.random.org/integers/?num=#{numget - values.length}&min=#{min}&max=#{max}&format=plain&col=1&base=10")
|
26
|
+
values.uniq!
|
30
27
|
end
|
31
28
|
values
|
32
29
|
end
|
30
|
+
|
33
31
|
end
|
data/lib/functions/list.rb
CHANGED
@@ -1,25 +1,39 @@
|
|
1
1
|
require_relative "sequence"
|
2
2
|
module Netrand
|
3
3
|
|
4
|
-
#
|
5
|
-
#
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
4
|
+
#Randomizes order of items in array
|
5
|
+
#Array must be shorter than 10 000 items
|
6
|
+
#Example: <br>
|
7
|
+
#Netrand.list([1, 2, 3]) <br>
|
8
|
+
#May return [2, 1, 3]
|
9
|
+
|
10
|
+
def self.list(arr)
|
11
|
+
randarr = []
|
12
|
+
random_positions = self.sequence(arr.length - 1, 0)
|
13
|
+
arr = arr.to_enum
|
14
|
+
random_positions.each do |pos|
|
15
|
+
randarr[pos] = arr.next
|
16
16
|
end
|
17
|
+
randarr
|
18
|
+
end
|
19
|
+
|
20
|
+
#Randomizes order of lines in file
|
21
|
+
#They are saved to file called input_file_name-randomized.type
|
22
|
+
|
23
|
+
def self.randomize_file_lines(filename)
|
24
|
+
src = File.new(filename, "r")
|
25
|
+
out = File.new(assemble_randomized_path(src), "w")
|
26
|
+
values = src.readlines
|
27
|
+
randomized_values = self.list(values)
|
28
|
+
randomized_values.each {|value| out.write(value)}
|
17
29
|
src.close
|
18
30
|
out.close
|
19
31
|
end
|
20
32
|
|
33
|
+
private
|
34
|
+
|
21
35
|
#Counts lines in file
|
22
|
-
def
|
36
|
+
def self.countlines(file_to_count)
|
23
37
|
count = 0
|
24
38
|
File.open(file_to_count, "r") do |f|
|
25
39
|
ret = 0
|
@@ -30,5 +44,19 @@ module Netrand
|
|
30
44
|
end
|
31
45
|
count
|
32
46
|
end
|
47
|
+
|
48
|
+
#Assembles the filename, so that it won't corrupt paths
|
49
|
+
def self.assemble_randomized_path(input_file)
|
50
|
+
path = input_file.path
|
51
|
+
dir = File.dirname(path)
|
52
|
+
|
53
|
+
filename = path.split("/")[-1]
|
54
|
+
filename = filename.split(".")
|
55
|
+
filename = filename[0, filename.length - 1]
|
56
|
+
|
57
|
+
filetype = File.extname(path)
|
58
|
+
fn_with_suffix = filename[0] + "-randomized"
|
59
|
+
return dir + "/" + fn_with_suffix + filetype
|
60
|
+
end
|
33
61
|
|
34
62
|
end
|
data/lib/functions/sequence.rb
CHANGED
@@ -1,16 +1,11 @@
|
|
1
|
-
|
2
|
-
require_relative "quota"
|
1
|
+
require_relative "common"
|
3
2
|
module Netrand
|
4
|
-
#Returns numbers from min to max in random order.
|
5
3
|
|
6
|
-
|
4
|
+
#Returns sequence of numbers from min to max in random order.
|
5
|
+
def self.sequence(max, min = 1)
|
7
6
|
if max == 0 then raise ArgumentError, "Maximum number must be bigger than 0" end
|
8
7
|
if min > max then raise ArgumentError, "max must be bigger than min!" end
|
9
8
|
self.check_quota
|
10
|
-
order =
|
11
|
-
open("http://www.random.org/sequences/?min=#{min}&max=#{max}&col=1&format=plain&rnd=new") do |c|
|
12
|
-
c.each_line {|l| order << l.chop.to_i}
|
13
|
-
end
|
14
|
-
order
|
9
|
+
order = self.harvest("http://www.random.org/sequences/?min=#{min}&max=#{max}&col=1&format=plain&rnd=new")
|
15
10
|
end
|
16
11
|
end
|
data/lib/functions/string.rb
CHANGED
@@ -1,12 +1,15 @@
|
|
1
|
-
|
2
|
-
require_relative "quota"
|
1
|
+
require_relative "common"
|
3
2
|
module Netrand
|
4
3
|
|
5
4
|
#Generates num random strings of len length.
|
6
5
|
#They can contain digits, uppercase and lowercase letters.
|
7
6
|
#They can be set to be unique.
|
7
|
+
#Example:<br>
|
8
|
+
#Netrand.string(10, 5, :upperalpha, :loweralpha, :digits, :unique) <br>
|
9
|
+
#Will produce 10 5 characters long strings containing uppercase, lowercase letters and digits.
|
10
|
+
#There won't be 2 same characters in one string. This example used all of the possible options
|
8
11
|
|
9
|
-
def
|
12
|
+
def self.string(num, len, *opts)
|
10
13
|
digits = opts.include?(:digits) ? "on" : "off"
|
11
14
|
upperalpha = opts.include?(:upperalpha) ? "on" : "off"
|
12
15
|
loweralpha = opts.include?(:loweralpha) ? "on" : "off"
|
data/lib/netrand.rb
CHANGED
data/netrand.gemspec
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
|
-
s.name
|
5
|
-
s.summary
|
6
|
-
s.description= "Wrapper around Random.org random number and string generator."
|
7
|
-
s.requirements
|
8
|
-
s.version = "
|
4
|
+
s.name = "netrand"
|
5
|
+
s.summary = "Generate true random numbers using random.org"
|
6
|
+
s.description = "Wrapper around Random.org random number and string generator."
|
7
|
+
s.requirements= [ 'Working internet connection' ]
|
8
|
+
s.version = "3.0.0"
|
9
9
|
s.author = "Róbert Selvek"
|
10
10
|
s.email = "me@sellweek.eu"
|
11
11
|
s.homepage = "http://github.com/sellweek/netrand"
|
Binary file
|
@@ -0,0 +1,79 @@
|
|
1
|
+
Svidník
|
2
|
+
Skalica
|
3
|
+
Detva
|
4
|
+
Dolný Kubín
|
5
|
+
Komárno
|
6
|
+
Šaľa
|
7
|
+
Zlaté Moravce
|
8
|
+
Bratislava V
|
9
|
+
Trebišov
|
10
|
+
Malacky
|
11
|
+
Nové Mesto nad Váhom
|
12
|
+
Partizánske
|
13
|
+
Bratislava I
|
14
|
+
Žilina
|
15
|
+
Piešťany
|
16
|
+
Lučenec
|
17
|
+
Košice II
|
18
|
+
Levice
|
19
|
+
Snina
|
20
|
+
Hlohovec
|
21
|
+
Zvolen
|
22
|
+
Prešov
|
23
|
+
Bratislava IV
|
24
|
+
Pezinok
|
25
|
+
Dunajská Streda
|
26
|
+
Myjava
|
27
|
+
Liptovský Mikuláš
|
28
|
+
Bratislava II
|
29
|
+
Košice III
|
30
|
+
Ružomberok
|
31
|
+
Martin
|
32
|
+
Kysucké Nové Mesto
|
33
|
+
Čadca
|
34
|
+
Sobrance
|
35
|
+
Poprad
|
36
|
+
Kežmarok
|
37
|
+
Stará Ľubovňa
|
38
|
+
Gelnica
|
39
|
+
Michalovce
|
40
|
+
Humenné
|
41
|
+
Trenčín
|
42
|
+
Krupina
|
43
|
+
Banská Bystrica
|
44
|
+
Tvrdošín
|
45
|
+
Nitra
|
46
|
+
Sabinov
|
47
|
+
Košice-okolie
|
48
|
+
Nové Zámky
|
49
|
+
Trnava
|
50
|
+
Poltár
|
51
|
+
Púchov
|
52
|
+
Brezno
|
53
|
+
Veľký Krtíš
|
54
|
+
Senica
|
55
|
+
Levoča
|
56
|
+
Topoľčany
|
57
|
+
Bardejov
|
58
|
+
Medzilaborce
|
59
|
+
Galanta
|
60
|
+
Ilava
|
61
|
+
Košice IV
|
62
|
+
Bytča
|
63
|
+
Spišská Nová Ves
|
64
|
+
Prievidza
|
65
|
+
Bratislava III
|
66
|
+
Košice I
|
67
|
+
Považská Bystrica
|
68
|
+
Žiar nad Hronom
|
69
|
+
Rimavská Sobota
|
70
|
+
Žarnovica
|
71
|
+
Bánovce nad Bebravou
|
72
|
+
Turčianske Teplice
|
73
|
+
Vranov nad Topľou
|
74
|
+
Stropkov
|
75
|
+
Revúca
|
76
|
+
Senec
|
77
|
+
Námestovo
|
78
|
+
Banská Štiavnica
|
79
|
+
Rožňava
|
data/tests/ZoznamOkresov.txt
CHANGED
data/tests/test.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
puts "The Netrand.list tests are going to fail. Move them to folder you have write rights to and then try it."
|
2
1
|
require_relative "test_int"
|
3
2
|
require_relative "test_sequence"
|
4
3
|
require_relative "test_string"
|
5
|
-
require_relative "test_list"
|
4
|
+
require_relative "test_list"
|
5
|
+
require_relative "test_dice"
|
data/tests/test_dice.rb
ADDED
data/tests/test_int.rb
CHANGED
data/tests/test_list.rb
CHANGED
@@ -1,20 +1,21 @@
|
|
1
|
-
require "
|
2
|
-
|
1
|
+
require "netrand"
|
3
2
|
require "test/unit"
|
4
3
|
class TestList < MiniTest::Unit::TestCase
|
5
|
-
def
|
4
|
+
def setup
|
5
|
+
Netrand.randomize_file_lines("#{File.dirname(__FILE__)}/ZoznamOkresov.txt")
|
6
|
+
end
|
7
|
+
def test_file_randomization
|
6
8
|
original = Array.new
|
7
9
|
randomized = Array.new
|
8
10
|
line = 0
|
9
|
-
File.open("ZoznamOkresov.txt", "r") do |f|
|
11
|
+
File.open("#{File.dirname(__FILE__)}/ZoznamOkresov.txt", "r") do |f|
|
10
12
|
until line == nil
|
11
13
|
line = f.gets
|
12
14
|
original << line
|
13
15
|
end
|
14
16
|
end
|
15
17
|
|
16
|
-
|
17
|
-
File.open("randomized_ZoznamOkresov.txt", "r") do |f|
|
18
|
+
File.open("#{File.dirname(__FILE__)}/ZoznamOkresov-randomized.txt", "r") do |f|
|
18
19
|
until line == nil
|
19
20
|
line = f.gets
|
20
21
|
randomized << line
|
@@ -23,20 +24,18 @@ class TestList < MiniTest::Unit::TestCase
|
|
23
24
|
refute_equal(randomized, original)
|
24
25
|
end
|
25
26
|
|
26
|
-
def
|
27
|
+
def test_file_not_same
|
27
28
|
rand1 = Array.new
|
28
29
|
rand2 = Array.new
|
29
30
|
line = 0
|
30
|
-
|
31
|
-
File.open("randomized_ZoznamOkresov.txt", "r") do |f|
|
31
|
+
File.open("#{File.dirname(__FILE__)}/ZoznamOkresov-randomized.txt", "r") do |f|
|
32
32
|
until line == nil
|
33
33
|
line = f.gets
|
34
34
|
rand1 << line
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
38
|
-
|
39
|
-
File.open("randomized_ZoznamOkresov.txt", "r") do |f|
|
38
|
+
File.open("#{File.dirname(__FILE__)}/ZoznamOkresov-randomized.txt", "r") do |f|
|
40
39
|
until line == nil
|
41
40
|
line = f.gets
|
42
41
|
rand2 << line
|
data/tests/test_sequence.rb
CHANGED
data/tests/test_string.rb
CHANGED
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: netrand
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version:
|
5
|
+
version: 3.0.0
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- "R\xC3\xB3bert Selvek"
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-
|
13
|
+
date: 2011-07-12 00:00:00 Z
|
14
14
|
dependencies: []
|
15
15
|
|
16
16
|
description: Wrapper around Random.org random number and string generator.
|
@@ -26,21 +26,25 @@ files:
|
|
26
26
|
- CHANGELOG
|
27
27
|
- Gemfile
|
28
28
|
- Gemfile.lock
|
29
|
+
- lib/functions/common.rb
|
30
|
+
- lib/functions/dice.rb
|
29
31
|
- lib/functions/int.rb
|
30
32
|
- lib/functions/list.rb
|
31
|
-
- lib/functions/quota.rb
|
32
33
|
- lib/functions/sequence.rb
|
33
34
|
- lib/functions/string.rb
|
34
35
|
- lib/netrand.rb
|
35
36
|
- LICENSE
|
36
37
|
- netrand.gemspec
|
38
|
+
- pkg/netrand-3.0.0.gem
|
37
39
|
- Rakefile
|
38
40
|
- README.md
|
39
41
|
- tests/test.rb
|
42
|
+
- tests/test_dice.rb
|
40
43
|
- tests/test_int.rb
|
41
44
|
- tests/test_list.rb
|
42
45
|
- tests/test_sequence.rb
|
43
46
|
- tests/test_string.rb
|
47
|
+
- tests/ZoznamOkresov-randomized.txt
|
44
48
|
- tests/ZoznamOkresov.txt
|
45
49
|
homepage: http://github.com/sellweek/netrand
|
46
50
|
licenses: []
|
@@ -61,14 +65,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
61
65
|
requirements:
|
62
66
|
- - ">="
|
63
67
|
- !ruby/object:Gem::Version
|
64
|
-
hash:
|
68
|
+
hash: 1909816175611674823
|
65
69
|
segments:
|
66
70
|
- 0
|
67
71
|
version: "0"
|
68
72
|
requirements:
|
69
73
|
- Working internet connection
|
70
74
|
rubyforge_project:
|
71
|
-
rubygems_version: 1.
|
75
|
+
rubygems_version: 1.8.5
|
72
76
|
signing_key:
|
73
77
|
specification_version: 3
|
74
78
|
summary: Generate true random numbers using random.org
|
data/lib/functions/quota.rb
DELETED
@@ -1,16 +0,0 @@
|
|
1
|
-
require "open-uri"
|
2
|
-
require_relative "quota"
|
3
|
-
module Netrand
|
4
|
-
#Generates exception if quota of random.org is exhausted.
|
5
|
-
|
6
|
-
def Netrand.check_quota
|
7
|
-
quota = nil
|
8
|
-
open("http://www.random.org/quota/?format=plain") do |c|
|
9
|
-
quota = c.read.to_i
|
10
|
-
if quota < 0 then raise QuotaExhaustedException, "Random.org quota exhausted, please try again after 0:00 UTC" end
|
11
|
-
end
|
12
|
-
quota
|
13
|
-
end
|
14
|
-
|
15
|
-
class QuotaExhaustedException < RuntimeError; end
|
16
|
-
end
|