character-roller 0.1.2 → 0.1.3
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 +4 -4
- data/VERSION +1 -1
- data/character-roller.gemspec +2 -0
- data/lib/roller.rb +36 -4
- metadata +30 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6f54f2ad00766b68f0f5d42b26e834ec2f252979
|
4
|
+
data.tar.gz: e0b3bb6ed89b0b8a31fb418053c7b5652ae0c01f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 959062159f5f66757a87e5e8b7f6aa9112010c60ba9d888cbfadb7dd0a268b9343f1a7e349996777f53573ec939b08ba68313e40d476042264622eee2e955cf7
|
7
|
+
data.tar.gz: cde46532697a13c65bea52885bee479e333147c2d1bbd3d9e1b1bd9d765f5f2d187fa4c88c75cbb849182be3ae53a85a14f6340721ea4e8538bd738d0edd55d6
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.3
|
data/character-roller.gemspec
CHANGED
@@ -22,6 +22,8 @@ Gem::Specification.new do |s|
|
|
22
22
|
|
23
23
|
s.add_development_dependency "rake"
|
24
24
|
s.add_development_dependency "pry"
|
25
|
+
s.add_development_dependency "pry-coolline"
|
26
|
+
s.add_development_dependency "pry-syntax-hacks"
|
25
27
|
s.add_development_dependency "watson-ruby"
|
26
28
|
|
27
29
|
s.add_runtime_dependency "thor"
|
data/lib/roller.rb
CHANGED
@@ -1,9 +1,16 @@
|
|
1
|
+
require 'json'
|
2
|
+
require 'net/http'
|
3
|
+
require 'uri'
|
1
4
|
require 'thor'
|
5
|
+
|
6
|
+
# [todo] - check for internet connectivity. If none, fallback to SecureRandom
|
2
7
|
require 'true-random'
|
3
8
|
|
4
9
|
class Roller < Thor
|
5
10
|
include Thor::Actions
|
6
11
|
|
12
|
+
JSONIP_URL = "http://jsonip.com/"
|
13
|
+
|
7
14
|
default_task :version
|
8
15
|
|
9
16
|
class_option :show_results,
|
@@ -54,7 +61,7 @@ class Roller < Thor
|
|
54
61
|
print roll[:total].to_s
|
55
62
|
|
56
63
|
if options.bonus
|
57
|
-
bonus = calculate_bonus
|
64
|
+
bonus = calculate_bonus roll[:total], true
|
58
65
|
print "\t(#{bonus})\n"
|
59
66
|
else
|
60
67
|
print "\n"
|
@@ -108,9 +115,17 @@ class Roller < Thor
|
|
108
115
|
private
|
109
116
|
|
110
117
|
def roll_dice(ndice = 1, nsides = 6, ignore_ones = false)
|
111
|
-
rander
|
112
|
-
|
113
|
-
results =
|
118
|
+
rander = TrueRandom::Random.new
|
119
|
+
results = rander.integer ndice, 1, nsides
|
120
|
+
results = [results] unless results.is_a? Array
|
121
|
+
|
122
|
+
if ignore_ones && results.include?(1)
|
123
|
+
results.delete_if {|n| n === 1 }
|
124
|
+
diff = ndice - results.size
|
125
|
+
new_ints = roll_dice diff, nsides, ignore_ones
|
126
|
+
results.concat new_ints
|
127
|
+
end
|
128
|
+
|
114
129
|
results
|
115
130
|
end
|
116
131
|
|
@@ -139,6 +154,23 @@ class Roller < Thor
|
|
139
154
|
|
140
155
|
bonus
|
141
156
|
end
|
157
|
+
|
158
|
+
def check_quota
|
159
|
+
rander = TrueRandom::Random.new
|
160
|
+
rander.quota get_external_ip
|
161
|
+
end
|
162
|
+
|
163
|
+
def get_external_ip
|
164
|
+
uri = URI.parse JSONIP_URL
|
165
|
+
resp = Net::HTTP.get_response uri
|
166
|
+
|
167
|
+
if resp.is_a? Net::HTTPOK
|
168
|
+
json = JSON.parse resp.body
|
169
|
+
return json['ip']
|
170
|
+
end
|
171
|
+
|
172
|
+
nil
|
173
|
+
end
|
142
174
|
end
|
143
175
|
|
144
176
|
# vim: set ts=2 sw=2 expandtab :
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: character-roller
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mike Green
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-07-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -38,6 +38,34 @@ dependencies:
|
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: pry-coolline
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: pry-syntax-hacks
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
41
69
|
- !ruby/object:Gem::Dependency
|
42
70
|
name: watson-ruby
|
43
71
|
requirement: !ruby/object:Gem::Requirement
|