cinch-dicebag 1.0.9 → 1.0.10
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/.travis.yml +0 -1
- data/lib/cinch-dicebag.rb +2 -0
- data/lib/cinch/plugins/dicebag.rb +26 -85
- data/lib/cinch/plugins/dicebag/bag.rb +48 -0
- data/lib/cinch/plugins/dicebag/die.rb +78 -0
- data/lib/cinch/plugins/dicebag/version.rb +1 -1
- data/spec/cinch-dicebag_spec.rb +119 -35
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 03ffcf66f79f8ac4138c0616c87bdec979c8a68b
|
4
|
+
data.tar.gz: 2ffd9ee34d9838564ce75c3823645f4d6b8d6016
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 28deec95c393d146cf89c89aa49f476838f5e23aa045217addfdb3fccd7fb8a553be9c669b3a160e6956c29da0e611190370a4d60ffc726b30a781febf5ba1d0
|
7
|
+
data.tar.gz: 63c0c078021222b79ebed0dd726c191d5e57eb3ee87799f6f94c767d41f106c4c3d65dd87cd415742e9ba218226df1c865ca1e744f5dfc164692f90c92cc9af6
|
data/.travis.yml
CHANGED
data/lib/cinch-dicebag.rb
CHANGED
@@ -18,13 +18,15 @@ module Cinch::Plugins
|
|
18
18
|
'use .roll (dice count)d(sides) to roll specific dice ' +
|
19
19
|
'(e.g. .roll 4d6 3d20)'
|
20
20
|
|
21
|
-
match /dicebag/,
|
21
|
+
match /dicebag\z/, method: :dicebag
|
22
|
+
match /dicebag stats/, method: :stats
|
22
23
|
match /roll(?:\s(.*))/, method: :roll
|
23
24
|
match /roll\z/, method: :roll
|
24
25
|
|
25
26
|
def initialize(*args)
|
26
27
|
super
|
27
28
|
@storage = Cinch::Storage.new(config[:filename] || 'yaml/dice.yml')
|
29
|
+
@bag = Bag.new({ 4 => 250, 6 => 500, 10 => 750, 20 => 1000 })
|
28
30
|
end
|
29
31
|
|
30
32
|
# Roll a random assortment of dice, total the rolls, and record the score.
|
@@ -32,19 +34,22 @@ module Cinch::Plugins
|
|
32
34
|
# @param [Cinch::Channel] channel The Channel object where the roll took
|
33
35
|
# place.
|
34
36
|
# @return [String] A description of the roll that took place
|
35
|
-
def
|
36
|
-
if
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
37
|
+
def dicebag(m)
|
38
|
+
return if Cinch::Toolbox.sent_via_private_message?(m)
|
39
|
+
|
40
|
+
@bag.roll
|
41
|
+
|
42
|
+
m.reply "#{m.user.nick} rolls a #{@bag.size} bag of dice totalling " +
|
43
|
+
"#{@bag.score}. " +
|
44
|
+
score_check(m.user.nick.downcase, m.channel.name, @bag.score)
|
45
|
+
end
|
46
|
+
|
47
|
+
def stats(m)
|
48
|
+
return if Cinch::Toolbox.sent_via_private_message?(m)
|
49
|
+
|
50
|
+
m.user.send 'Top ten dicebag rolls:'
|
51
|
+
top10 = top_ten_rolls(m.channel.name)
|
52
|
+
top10.each_with_index { |r, i| m.user.send "#{i + 1} - #{r.first} [#{r.last}]"}
|
48
53
|
end
|
49
54
|
|
50
55
|
# Roll a specific set of dice and return the pretty result
|
@@ -53,82 +58,18 @@ module Cinch::Plugins
|
|
53
58
|
# (i.e. '6d12 4d20 d10'
|
54
59
|
# @return [String] String describing the dice that were rolled
|
55
60
|
def roll(m, dice = '1d20')
|
56
|
-
result =
|
57
|
-
|
61
|
+
result = Die.roll(dice.split(' '))
|
58
62
|
result = "#{m.user.nick} rolls #{dice} totalling #{result}" if result.is_a?(Integer)
|
59
|
-
m.reply result
|
60
|
-
end
|
61
|
-
|
62
|
-
# Takes an Array of dice rolls, sanitizes them, parses them, and dispatches
|
63
|
-
# their calculation to `roll_die`.
|
64
|
-
# @param [Array] dice Array of strings that correspond to valid die rolls.
|
65
|
-
# (i.e. ['4d6', '6d10']
|
66
|
-
# @return [Fixnum] The total from rolling all of the dice.
|
67
|
-
def roll_dice(dice)
|
68
|
-
# Clean out anything invalid
|
69
|
-
dice.delete_if { |d| d.match(/\d*d\d+([\-\+]\d+)?/).nil? }
|
70
|
-
|
71
|
-
return roll_check?(dice) if roll_check?(dice)
|
72
|
-
|
73
|
-
# Roll each group and total up the returned value
|
74
|
-
total = nil
|
75
|
-
dice.each do |die|
|
76
|
-
total ||= 0
|
77
|
-
total += roll_die(die)
|
78
|
-
end
|
79
|
-
|
80
|
-
total
|
81
|
-
end
|
82
63
|
|
83
|
-
|
84
|
-
# @param [Array] dice Array of strings that correspond to valid die rolls.
|
85
|
-
# (i.e. ['4d6', '6d10']
|
86
|
-
# @return [Fixnum] The total from rolling all of the dice.
|
87
|
-
def roll_check?(dice)
|
88
|
-
# Check to make sure it's not a stupid large roll, they clog threads.
|
89
|
-
count = dice.map { |die| die[/(\d+)d\d+/, 1].to_i || 1 }.inject(0, :+)
|
90
|
-
return 'I don\'t have that many dice in my bag!' unless count <= 10_000
|
91
|
-
false
|
92
|
-
end
|
93
|
-
|
94
|
-
# Rolls an n-sided die a given amount of times and returns the total
|
95
|
-
# @param [Fixn] count Number of times to roll the die.
|
96
|
-
# @return [Fixnum] The total from rolling the die.
|
97
|
-
def roll_die(die)
|
98
|
-
modifier = die[/[\-\+]\d+/]
|
99
|
-
|
100
|
-
count = (die[/(\d+)d\d+/, 1] || 1).to_i
|
101
|
-
sides = die[/\d?d(\d+)/, 1].to_i
|
102
|
-
|
103
|
-
return 0 if count.nil? || sides.nil? || sides < 1 || count < 1
|
104
|
-
|
105
|
-
total = 0
|
106
|
-
count.times { total += rand(sides) + 1 }
|
107
|
-
|
108
|
-
return total += parse_modifier(modifier) unless modifier.nil?
|
109
|
-
|
110
|
-
total
|
64
|
+
m.reply result
|
111
65
|
end
|
112
66
|
|
113
|
-
|
114
|
-
operator = modifier[/\A[\+\-]/]
|
115
|
-
int = modifier[/\d+\z/].to_i
|
116
|
-
0.send(operator, int)
|
117
|
-
end
|
67
|
+
private
|
118
68
|
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
def get_bag_size(size)
|
124
|
-
case size
|
125
|
-
when 0..100 then 'tiny'
|
126
|
-
when 101..500 then 'small'
|
127
|
-
when 501..1000 then 'medium'
|
128
|
-
when 1001..1500 then 'large'
|
129
|
-
when 1501..2000 then 'hefty'
|
130
|
-
else 'huge'
|
131
|
-
end
|
69
|
+
def top_ten_rolls(channel)
|
70
|
+
scores = @storage.data[channel].dup
|
71
|
+
scores.sort { |a, b| b[1][:score] <=> a[1][:score] }
|
72
|
+
.map { |s| [s.first, s.last[:score]] }[0..9]
|
132
73
|
end
|
133
74
|
|
134
75
|
# Score checker for Dicebag rolls. Checks a given user/channel/score
|
@@ -0,0 +1,48 @@
|
|
1
|
+
module Cinch::Plugins
|
2
|
+
class Dicebag
|
3
|
+
class Bag
|
4
|
+
attr_accessor :count, :dice, :score
|
5
|
+
def initialize(dice_hash)
|
6
|
+
fail unless good_hash?(dice_hash)
|
7
|
+
@dice = dice_hash
|
8
|
+
@count = 0
|
9
|
+
@score = 0
|
10
|
+
end
|
11
|
+
|
12
|
+
def roll
|
13
|
+
dice = die_array
|
14
|
+
@score = Die.roll(dice)
|
15
|
+
@count = dice.map { |d| d[/(\d+)d\d+/, 1].to_i || 1 }.inject(0, :+)
|
16
|
+
end
|
17
|
+
|
18
|
+
def good_hash?(dice_hash)
|
19
|
+
dice_hash.keys { |k| return false unless k.is_a?(Integer) }
|
20
|
+
dice_hash.values { |k| return false unless k.is_a?(Integer) }
|
21
|
+
true
|
22
|
+
end
|
23
|
+
|
24
|
+
# Simple method to return a flavor text 'size' description based on
|
25
|
+
# how many dice you happened to get in your dicebag roll.
|
26
|
+
# @param [Fixnum] size The number of dice in the dicebag.
|
27
|
+
# @return [String] Description of the size of the bag.
|
28
|
+
def size
|
29
|
+
case count
|
30
|
+
when 0..100 then 'tiny'
|
31
|
+
when 101..500 then 'small'
|
32
|
+
when 501..1000 then 'medium'
|
33
|
+
when 1001..1500 then 'large'
|
34
|
+
when 1501..2000 then 'hefty'
|
35
|
+
else 'huge'
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
private
|
40
|
+
|
41
|
+
def die_array
|
42
|
+
@dice.keys.map do |sides|
|
43
|
+
"#{sides}d#{@dice[sides]}"
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,78 @@
|
|
1
|
+
module Cinch::Plugins
|
2
|
+
class Dicebag
|
3
|
+
module Die
|
4
|
+
MOD_REGEX = /[\-\+]\d+/
|
5
|
+
ROLLS_REGEX = /(\d+)d\d+/
|
6
|
+
SIDES_REGEX = /\d?d(\d+)/
|
7
|
+
|
8
|
+
# Takes a dice roll string or Array of dice rolls, sanitizes them, parses
|
9
|
+
# them, and dispatches their calculation to `Die.cast`.
|
10
|
+
# @param [Array] dice Array of strings that correspond to valid die rolls.
|
11
|
+
# (i.e. ['4d6', '6d10']
|
12
|
+
# @return [Fixnum] The total from rolling all of the dice.
|
13
|
+
def self.roll(dice)
|
14
|
+
# Convert to an array if it's a single die roll
|
15
|
+
dice = [dice] if dice.is_a?(String)
|
16
|
+
|
17
|
+
# Clean out anything invalid
|
18
|
+
dice = clean_roll(dice)
|
19
|
+
|
20
|
+
total = nil
|
21
|
+
|
22
|
+
# Return if the sanity fails
|
23
|
+
return 'I don\'t have that many dice in my bag!' unless die_check?(dice)
|
24
|
+
|
25
|
+
# Roll each group and total up the returned value
|
26
|
+
dice.each do |die|
|
27
|
+
total ||= 0
|
28
|
+
total += cast(die)
|
29
|
+
end
|
30
|
+
|
31
|
+
total
|
32
|
+
end
|
33
|
+
|
34
|
+
private
|
35
|
+
|
36
|
+
# Rolls an n-sided die a given amount of times and returns the total
|
37
|
+
# @param [String] count Number of times to roll the die.
|
38
|
+
# @return [Fixnum] The total from rolling the die.
|
39
|
+
def self.cast(die)
|
40
|
+
modifier = die[MOD_REGEX]
|
41
|
+
|
42
|
+
count = (die[ROLLS_REGEX, 1] || 1).to_i
|
43
|
+
sides = die[SIDES_REGEX, 1].to_i
|
44
|
+
|
45
|
+
return 0 if count.nil? || sides.nil? || sides < 1 || count < 1
|
46
|
+
|
47
|
+
total = 0
|
48
|
+
count.times { total += rand(sides) + 1 }
|
49
|
+
|
50
|
+
return total += parse_modifier(modifier) unless modifier.nil?
|
51
|
+
|
52
|
+
total
|
53
|
+
end
|
54
|
+
|
55
|
+
def self.clean_roll(dice)
|
56
|
+
dice.delete_if { |d| d.match(/\d*d\d+([\-\+]\d+)?/).nil? }
|
57
|
+
dice
|
58
|
+
end
|
59
|
+
|
60
|
+
# Takes an array of rolls and does sanity on it.
|
61
|
+
# @param [Array] dice Array of strings that correspond to valid die rolls.
|
62
|
+
# (i.e. ['4d6', '6d10']
|
63
|
+
# @return [Boolean] Result of sanity check.
|
64
|
+
def self.die_check?(dice_list)
|
65
|
+
# Check to make sure it's not a stupid large roll, they clog threads.
|
66
|
+
count = dice_list.map { |d| d[/(\d+)d\d+/, 1].to_i || 1 }.inject(0, :+)
|
67
|
+
return false if count >= 10_000
|
68
|
+
true
|
69
|
+
end
|
70
|
+
|
71
|
+
def self.parse_modifier(modifier)
|
72
|
+
operator = modifier[/\A[\+\-]/]
|
73
|
+
int = modifier[/\d+\z/].to_i
|
74
|
+
0.send(operator, int)
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
data/spec/cinch-dicebag_spec.rb
CHANGED
@@ -77,101 +77,185 @@ describe Cinch::Plugins::Dicebag do
|
|
77
77
|
|
78
78
|
it 'should return an error if the user is not in a channel' do
|
79
79
|
get_replies(make_message(@bot, '!dicebag' , { nick: 'ted' })).first.text.
|
80
|
-
should
|
80
|
+
should == 'You must use that command in the main channel.'
|
81
81
|
end
|
82
82
|
|
83
83
|
it 'should return a string describing the user\'s bag roll' do
|
84
84
|
get_replies(make_message(@bot, '!dicebag' , { nick: 'ted', channel: '#bar' })).first.text.
|
85
85
|
should match(/ted rolls a [a-z]+ bag of dice totalling \d+/)
|
86
86
|
end
|
87
|
+
end
|
88
|
+
|
89
|
+
describe 'scores' do
|
90
|
+
before(:each) do
|
91
|
+
@bot.plugins.first.storage.data['#foo'] = { 'brian' => { score: 1, time: Time.now },
|
92
|
+
'braad' => { score: 2, time: Time.now },
|
93
|
+
'billy' => { score: 3, time: Time.now },
|
94
|
+
'britt' => { score: 4, time: Time.now },
|
95
|
+
'brett' => { score: 5, time: Time.now },
|
96
|
+
'paulv' => { score: 6, time: Time.now },
|
97
|
+
'stacy' => { score: 7, time: Time.now },
|
98
|
+
'calrs' => { score: 8, time: Time.now },
|
99
|
+
'susie' => { score: 9, time: Time.now },
|
100
|
+
'enton' => { score: 10, time: Time.now },
|
101
|
+
'grill' => { score: 11, time: Time.now },
|
102
|
+
'evilg' => { score: 12, time: Time.now },
|
103
|
+
'mobiu' => { score: 13, time: Time.now },
|
104
|
+
'gamma' => { score: 14, time: Time.now },
|
105
|
+
'omega' => { score: 15, time: Time.now } }
|
106
|
+
end
|
87
107
|
|
88
108
|
it 'should announce a high score if the old score is higher' do
|
89
|
-
get_replies(make_message(@bot, '!dicebag' , { nick: 'brian', channel: '#foo' }))
|
90
|
-
@bot.plugins.first.storage.data['#foo']['brian'] = { score: 1, time: Time.now }
|
91
109
|
text = get_replies(make_message(@bot, '!dicebag' , { nick: 'brian', channel: '#foo' })).first.text
|
92
110
|
text.should match(/A new high score/)
|
93
111
|
text.should match(/Their old high roll was \d+/)
|
94
112
|
end
|
113
|
+
|
114
|
+
it 'should allow users to get a copy of the high scores' do
|
115
|
+
replies = get_replies(make_message(@bot, '!dicebag stats' , { nick: 'brian', channel: '#foo' }))
|
116
|
+
replies[1].text.should == '1 - omega [15]'
|
117
|
+
replies[5].text.should == '5 - grill [11]'
|
118
|
+
end
|
119
|
+
|
120
|
+
it 'should only show the first 10 scores' do
|
121
|
+
replies = get_replies(make_message(@bot, '!dicebag stats' , { nick: 'brian', channel: '#foo' }))
|
122
|
+
replies.length.should == 11
|
123
|
+
end
|
95
124
|
end
|
96
125
|
|
97
126
|
describe 'roll_dice' do
|
98
127
|
it 'should return nil if the dice list is empty' do
|
99
|
-
|
128
|
+
Cinch::Plugins::Dicebag::Die.roll([]).should be_nil
|
100
129
|
end
|
101
130
|
|
102
131
|
it 'should return a non zero total on a normal dice list' do
|
103
|
-
|
132
|
+
Cinch::Plugins::Dicebag::Die.roll(['3d3', '4d5']).should_not be_zero
|
104
133
|
end
|
105
134
|
|
106
135
|
it 'should clear out any invalid dice rolls' do
|
107
|
-
|
136
|
+
Cinch::Plugins::Dicebag::Die.roll(['33']).should be_nil
|
108
137
|
end
|
109
138
|
|
110
139
|
it 'should allow modifiers' do
|
111
|
-
|
140
|
+
Cinch::Plugins::Dicebag::Die.roll(['1d1+1', '1d1-4']).should == -1
|
112
141
|
end
|
113
142
|
end
|
114
143
|
|
115
|
-
describe '
|
144
|
+
describe 'Die.roll' do
|
116
145
|
it 'should return an acceptable value for a given roll' do
|
117
|
-
|
118
|
-
(3..15).should include(
|
146
|
+
Cinch::Plugins::Dicebag::Die.roll('1d1').should == 1
|
147
|
+
(3..15).should include(Cinch::Plugins::Dicebag::Die.roll('3d5'))
|
119
148
|
end
|
120
149
|
|
121
|
-
it 'should return
|
122
|
-
|
123
|
-
|
150
|
+
it 'should return nil for any negetive values' do
|
151
|
+
Cinch::Plugins::Dicebag::Die.roll('1d-1').should == nil
|
152
|
+
Cinch::Plugins::Dicebag::Die.roll('-1d-1').should == nil
|
124
153
|
end
|
125
154
|
|
126
155
|
it 'should add modifiers to the total' do
|
127
|
-
|
128
|
-
|
156
|
+
Cinch::Plugins::Dicebag::Die.roll('1d1+2').should == 3
|
157
|
+
Cinch::Plugins::Dicebag::Die.roll('3d1-2').should == 1
|
129
158
|
end
|
130
159
|
|
131
160
|
it 'should allow modifiers to take the total below zero' do
|
132
|
-
|
133
|
-
|
161
|
+
Cinch::Plugins::Dicebag::Die.roll('1d1-1').should == 0
|
162
|
+
Cinch::Plugins::Dicebag::Die.roll('1d1-2').should == -1
|
134
163
|
end
|
135
164
|
end
|
136
165
|
|
137
166
|
describe 'get_bag_size' do
|
167
|
+
before(:each) do
|
168
|
+
@bag = Cinch::Plugins::Dicebag::Bag.new({})
|
169
|
+
end
|
170
|
+
|
138
171
|
it 'should return \'huge\' for out of bounds queries' do
|
139
|
-
@
|
172
|
+
@bag.count = 50000
|
173
|
+
@bag.size.should == 'huge'
|
140
174
|
end
|
141
175
|
|
142
176
|
it 'should return the proper size for tiny range' do
|
143
|
-
@
|
144
|
-
@
|
145
|
-
|
177
|
+
@bag.count = 0
|
178
|
+
@bag.size.should == 'tiny'
|
179
|
+
end
|
180
|
+
|
181
|
+
it 'should return the proper size for small range' do
|
182
|
+
@bag.count = rand(100)
|
183
|
+
@bag.size.should == 'tiny'
|
184
|
+
end
|
185
|
+
|
186
|
+
it 'should return the proper size for small range' do
|
187
|
+
@bag.count = 100
|
188
|
+
@bag.size.should == 'tiny'
|
189
|
+
end
|
190
|
+
|
191
|
+
it 'should return the proper size for small range' do
|
192
|
+
@bag.count = 101
|
193
|
+
@bag.size.should == 'small'
|
194
|
+
end
|
195
|
+
|
196
|
+
it 'should return the proper size for small range' do
|
197
|
+
@bag.count = rand(399) + 101
|
198
|
+
@bag.size.should == 'small'
|
146
199
|
end
|
147
200
|
|
148
201
|
it 'should return the proper size for small range' do
|
149
|
-
@
|
150
|
-
@
|
151
|
-
@bot.plugins.first.get_bag_size(500).should == 'small'
|
202
|
+
@bag.count = 500
|
203
|
+
@bag.size.should == 'small'
|
152
204
|
end
|
153
205
|
|
154
206
|
it 'should return the proper size for medium range' do
|
155
|
-
@
|
156
|
-
@
|
157
|
-
|
207
|
+
@bag.count = 501
|
208
|
+
@bag.size.should == 'medium'
|
209
|
+
end
|
210
|
+
|
211
|
+
it 'should return the proper size for medium range' do
|
212
|
+
@bag.count = rand(499) + 501
|
213
|
+
@bag.size.should == 'medium'
|
214
|
+
end
|
215
|
+
|
216
|
+
it 'should return the proper size for medium range' do
|
217
|
+
@bag.count = 1000
|
218
|
+
@bag.size.should == 'medium'
|
158
219
|
end
|
159
220
|
|
160
221
|
it 'should return the proper size for large range' do
|
161
|
-
@
|
162
|
-
@
|
163
|
-
|
222
|
+
@bag.count = 1001
|
223
|
+
@bag.size.should == 'large'
|
224
|
+
end
|
225
|
+
|
226
|
+
it 'should return the proper size for large range' do
|
227
|
+
@bag.count = rand(499) + 1001
|
228
|
+
@bag.size.should == 'large'
|
229
|
+
end
|
230
|
+
|
231
|
+
it 'should return the proper size for large range' do
|
232
|
+
@bag.count = 1500
|
233
|
+
@bag.size.should == 'large'
|
234
|
+
end
|
235
|
+
|
236
|
+
it 'should return the proper size for hefty range' do
|
237
|
+
@bag.count = 1501
|
238
|
+
@bag.size.should == 'hefty'
|
239
|
+
end
|
240
|
+
|
241
|
+
it 'should return the proper size for hefty range' do
|
242
|
+
@bag.count = rand(499) + 1501
|
243
|
+
@bag.size.should == 'hefty'
|
164
244
|
end
|
165
245
|
|
166
246
|
it 'should return the proper size for hefty range' do
|
167
|
-
@
|
168
|
-
@
|
169
|
-
|
247
|
+
@bag.count = 2000
|
248
|
+
@bag.size.should == 'hefty'
|
249
|
+
end
|
250
|
+
|
251
|
+
it 'should return the proper size for huge range' do
|
252
|
+
@bag.count = 2001
|
253
|
+
@bag.size.should == 'huge'
|
170
254
|
end
|
171
255
|
|
172
256
|
it 'should return the proper size for huge range' do
|
173
|
-
@
|
174
|
-
@
|
257
|
+
@bag.count = 20001
|
258
|
+
@bag.size.should == 'huge'
|
175
259
|
end
|
176
260
|
end
|
177
261
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cinch-dicebag
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brian Haberer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-07-
|
11
|
+
date: 2014-07-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -153,6 +153,8 @@ files:
|
|
153
153
|
- cinch-dicebag.gemspec
|
154
154
|
- lib/cinch-dicebag.rb
|
155
155
|
- lib/cinch/plugins/dicebag.rb
|
156
|
+
- lib/cinch/plugins/dicebag/bag.rb
|
157
|
+
- lib/cinch/plugins/dicebag/die.rb
|
156
158
|
- lib/cinch/plugins/dicebag/version.rb
|
157
159
|
- spec/cinch-dicebag_spec.rb
|
158
160
|
- spec/spec_helper.rb
|