lita-dicebag 0.1.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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 3234b74045eca233812109b3544c686156ba8e03
4
+ data.tar.gz: d5c330597e575f0de189b02c911f460cd2b47103
5
+ SHA512:
6
+ metadata.gz: 2dfee74fa12729b2578423d1ef6e96f2ff196b785134cdb6cf8abd6d8ec0cb0c33a4a39399595353deb9eb0aaee0e486ee2fbe879560e680b8c3fdb83b0f2fbb
7
+ data.tar.gz: b4f29b6d084e407b155ec64d821f3a1729e6965d3daa960d12795f8c1230f8522954b876888740c0f0d0047cb94009f8c830692277372736a751e9c3eed4b92c
data/.gitignore ADDED
@@ -0,0 +1,17 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "https://rubygems.org"
2
+
3
+ gemspec
4
+ gem "dicebag"
data/README.md ADDED
@@ -0,0 +1,23 @@
1
+ # lita-dicebag
2
+
3
+ Add a dice roller to Lita
4
+
5
+ ## Installation
6
+
7
+ Add lita-dicebag to your Lita instance's Gemfile:
8
+
9
+ ``` ruby
10
+ gem "lita-dicebag"
11
+ ```
12
+
13
+
14
+ ## Usage
15
+
16
+ ```
17
+ !roll 4d6 r2
18
+ !roll 4d6 d1
19
+ !roll 4d6 k1
20
+ !roll 1d20 e20
21
+ !roll 4d10 t8
22
+ !roll 2d6 + 5 * 3 - 6
23
+ ```
data/Rakefile ADDED
@@ -0,0 +1,6 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task default: :spec
@@ -0,0 +1,12 @@
1
+ require "lita"
2
+
3
+ Lita.load_locales Dir[File.expand_path(
4
+ File.join("..", "..", "locales", "*.yml"), __FILE__
5
+ )]
6
+
7
+ require "lita/handlers/dicebag"
8
+
9
+ Lita::Handlers::Dice_bag.template_root File.expand_path(
10
+ File.join("..", "..", "templates"),
11
+ __FILE__
12
+ )
@@ -0,0 +1,43 @@
1
+ require 'dicebag'
2
+
3
+ module Lita
4
+ module Handlers
5
+ class Dice_bag < Handler
6
+ route(/^!roll\s+?(.*)/i, :diceroll, help: {
7
+ 'roll 4d6 r2' => 'Roll 4d6 reroll 1\'s & 2\'s',
8
+ 'roll 4d6 d1' => 'Roll 4d6 drop lowest 1 die',
9
+ 'roll 4d6 k1' => 'Roll 4d6 keep highest 1 die',
10
+ 'roll 1d20 e20' => 'Roll 1d20 if 20 expode and roll, adding the two rolls together',
11
+ 'roll 4d10 t8' => 'Roll 4d10 and result of each die must be above 8 to count as a success',
12
+ 'roll 2d6 + 5 * 3 - 6' => 'Roll the 2d6 for the total, then add 5 to it, then multiply that total by 3, and finally subtract 6',
13
+ # '' => '',
14
+ })
15
+
16
+ def diceroll(response)
17
+ dstr, _ = response.matches.first
18
+ log.info "Dice Roll #{dstr}"
19
+ if dstr.nil? then return end
20
+ dice = DiceBag::Roll.new(dstr)
21
+ result = dice.result()
22
+ output_a = [result, '||']
23
+ result.each do |section|
24
+ if output_a.length > 2
25
+ output_a << '#'
26
+ end
27
+ case section
28
+ when DiceBag::RollPart
29
+ output_a << "#{section.total}(#{section.tally.join(',')})"
30
+ when DiceBag::StaticPart
31
+ output_a << "#{section}(#{section.total})"
32
+ else
33
+ log.info "Encountered unhandled option #{section.class}"
34
+ end
35
+ end
36
+ response.reply "#{response.user.name} rolled #{output_a.join(' ')}"
37
+ end
38
+
39
+ Lita.register_handler(self)
40
+ end
41
+ end
42
+ end
43
+
@@ -0,0 +1,22 @@
1
+ Gem::Specification.new do |spec|
2
+ spec.name = "lita-dicebag"
3
+ spec.version = "0.1.0"
4
+ spec.authors = ["Craig Davis"]
5
+ spec.email = ["cdavis@stoneydavis.com"]
6
+ spec.description = "Add a dice roller to Lita"
7
+ spec.summary = "Use DiceBag to make dice rolls"
8
+ spec.homepage = "https://github.com/syntruth/Dice-Bag"
9
+ spec.license = "GPLv3"
10
+ spec.metadata = { "lita_plugin_type" => "handler" }
11
+
12
+ spec.files = `git ls-files`.split($/)
13
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
14
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
15
+ spec.require_paths = ["lib"]
16
+
17
+ spec.add_runtime_dependency "lita", "~> 4.0"
18
+ spec.add_runtime_dependency "dicebag", "~> 3.0"
19
+
20
+ spec.add_development_dependency "bundler", "~> 1.3"
21
+ spec.add_development_dependency "rspec", ">= 3.0.0"
22
+ end
data/locales/en.yml ADDED
@@ -0,0 +1,4 @@
1
+ en:
2
+ lita:
3
+ handlers:
4
+ dicebag:
@@ -0,0 +1,4 @@
1
+ require "spec_helper"
2
+
3
+ describe Lita::Handlers::Dicebag, lita_handler: true do
4
+ end
@@ -0,0 +1,6 @@
1
+ require "lita-dicebag"
2
+ require "lita/rspec"
3
+
4
+ # A compatibility mode is provided for older plugins upgrading from Lita 3. Since this plugin
5
+ # was generated with Lita 4, the compatibility mode should be left disabled.
6
+ Lita.version_3_compatibility_mode = false
File without changes
metadata ADDED
@@ -0,0 +1,114 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: lita-dicebag
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Craig Davis
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-09-28 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: lita
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '4.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '4.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: dicebag
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '3.0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '3.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: bundler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.3'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.3'
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.0.0
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: 3.0.0
69
+ description: Add a dice roller to Lita
70
+ email:
71
+ - cdavis@stoneydavis.com
72
+ executables: []
73
+ extensions: []
74
+ extra_rdoc_files: []
75
+ files:
76
+ - ".gitignore"
77
+ - Gemfile
78
+ - README.md
79
+ - Rakefile
80
+ - lib/lita-dicebag.rb
81
+ - lib/lita/handlers/dicebag.rb
82
+ - lita-dicebag.gemspec
83
+ - locales/en.yml
84
+ - spec/lita/handlers/dicebag_spec.rb
85
+ - spec/spec_helper.rb
86
+ - templates/.gitkeep
87
+ homepage: https://github.com/syntruth/Dice-Bag
88
+ licenses:
89
+ - GPLv3
90
+ metadata:
91
+ lita_plugin_type: handler
92
+ post_install_message:
93
+ rdoc_options: []
94
+ require_paths:
95
+ - lib
96
+ required_ruby_version: !ruby/object:Gem::Requirement
97
+ requirements:
98
+ - - ">="
99
+ - !ruby/object:Gem::Version
100
+ version: '0'
101
+ required_rubygems_version: !ruby/object:Gem::Requirement
102
+ requirements:
103
+ - - ">="
104
+ - !ruby/object:Gem::Version
105
+ version: '0'
106
+ requirements: []
107
+ rubyforge_project:
108
+ rubygems_version: 2.5.1
109
+ signing_key:
110
+ specification_version: 4
111
+ summary: Use DiceBag to make dice rolls
112
+ test_files:
113
+ - spec/lita/handlers/dicebag_spec.rb
114
+ - spec/spec_helper.rb