lita-onewheel-iou 1.0.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 +7 -0
- data/.gitignore +18 -0
- data/.travis.yml +8 -0
- data/Gemfile +3 -0
- data/README.md +27 -0
- data/Rakefile +6 -0
- data/lib/lita-onewheel-iou.rb +12 -0
- data/lib/lita/handlers/onewheel-iou.rb +66 -0
- data/locales/en.yml +4 -0
- data/onewheel-lita-iou.gemspec +26 -0
- data/spec/lita/handlers/onewhee_iou_spec.rb +4 -0
- data/spec/spec_helper.rb +14 -0
- metadata +156 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 48fecdb1f4d9dcba5f5211a69fa819e5adadb7d3
|
4
|
+
data.tar.gz: 66c54ba069ae24637781cbb7a5963281824d218e
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 60f48e186593eae22a682ae442b3af9b37be60841104dc34dd7ea8daa8a75565c2fb6961ade6c1c60ff3bf67c468cb190905a89aefec3927861708c0aac8b67f
|
7
|
+
data.tar.gz: aaa7f3edb45666b6b6124c1ecba3a0c5d64b7a043544affaf063a7f6dded98acf9cf5c27b16b989b423a941609b84fc536b8e99f0119c6b82fdbccd76b8ea2c0
|
data/.gitignore
ADDED
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/README.md
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
# lita-onewheel-iou
|
2
|
+
|
3
|
+
[](https://travis-ci.org/onewheelskyward/lita-onewheel-iou)
|
4
|
+
[](https://coveralls.io/r/onewheelskyward/lita-onewheel-iou)
|
5
|
+
|
6
|
+
TODO: Bot tracking of IOUs.
|
7
|
+
|
8
|
+
## Installation
|
9
|
+
|
10
|
+
Add lita-onewheel-iou to your Lita instance's Gemfile:
|
11
|
+
|
12
|
+
``` ruby
|
13
|
+
gem "lita-onewheel-iou"
|
14
|
+
```
|
15
|
+
|
16
|
+
## Configuration
|
17
|
+
|
18
|
+
Redis Req'd
|
19
|
+
|
20
|
+
## Usage
|
21
|
+
|
22
|
+
!iou buddy
|
23
|
+
|
24
|
+
!ious | !iou status | !iou stats
|
25
|
+
|
26
|
+
!iou clear buddy
|
27
|
+
|
data/Rakefile
ADDED
@@ -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/onewheel-iou'
|
8
|
+
|
9
|
+
Lita::Handlers::OnewheelIou.template_root File.expand_path(
|
10
|
+
File.join('..', '..', 'templates'),
|
11
|
+
__FILE__
|
12
|
+
)
|
@@ -0,0 +1,66 @@
|
|
1
|
+
module Lita
|
2
|
+
module Handlers
|
3
|
+
class OnewheelIou < Handler
|
4
|
+
REDIS_KEY = 'iou'
|
5
|
+
route(/^iou\s+([^\s]+)/i, :add_iou, help: { 'iou [nick]' => 'Owe [nick] one 🍺.'})
|
6
|
+
route(/^ioupaid\s+([^\s]+)/i, :remove_iou, help: { 'ioupaid [nick]' => 'Pay back [nick]\'s iou.'})
|
7
|
+
route(/^iou(s?)$/i, :show_ious, help: { 'ious' => 'List your outstanding 🍺 ious.'})
|
8
|
+
|
9
|
+
def add_iou(response)
|
10
|
+
ower = response.user.name
|
11
|
+
owee = response.matches[0][0]
|
12
|
+
key = REDIS_KEY + ".#{ower}"
|
13
|
+
iou_count = redis.hget(key, owee).to_i
|
14
|
+
iou_count += 1
|
15
|
+
redis.hset(key, owee, iou_count)
|
16
|
+
response.reply "#{ower} now owes #{owee} #{iou_count} #{beer_icons iou_count.to_i }."
|
17
|
+
end
|
18
|
+
|
19
|
+
def remove_iou(response)
|
20
|
+
ower = response.user.name
|
21
|
+
owee = response.matches[0][0]
|
22
|
+
key = REDIS_KEY + ".#{ower}"
|
23
|
+
iou_count = redis.hget(key, owee).to_i
|
24
|
+
|
25
|
+
if iou_count > 0
|
26
|
+
iou_count -= 1
|
27
|
+
if iou_count == 0
|
28
|
+
redis.hdel(key, owee)
|
29
|
+
response.reply "#{ower} has fully paid back #{owee}."
|
30
|
+
else
|
31
|
+
redis.hset(key, owee, iou_count)
|
32
|
+
response.reply "#{ower} now owes #{owee} #{iou_count} #{beer_icons iou_count.to_i }."
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def show_ious(response)
|
38
|
+
ower = response.user.name
|
39
|
+
key = REDIS_KEY + ".#{ower}"
|
40
|
+
ious = redis.hgetall(key)
|
41
|
+
|
42
|
+
if ious.length == 0
|
43
|
+
response.reply "#{ower} owes nothing."
|
44
|
+
else
|
45
|
+
reply_str = "#{ower} owes"
|
46
|
+
data_str = ''
|
47
|
+
ious.each do |nick, num|
|
48
|
+
data_str += " #{nick} #{beer_icons num.to_i}," #beer#{(num.to_i > 1)? 's' : ''},
|
49
|
+
end
|
50
|
+
data_str.sub! /,$/, ''
|
51
|
+
response.reply reply_str + data_str
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
def beer_icons(count)
|
56
|
+
str = ''
|
57
|
+
0..count.times do
|
58
|
+
str += "🍺"
|
59
|
+
end
|
60
|
+
str
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
Lita.register_handler(OnewheelIou)
|
65
|
+
end
|
66
|
+
end
|
data/locales/en.yml
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
Gem::Specification.new do |spec|
|
2
|
+
spec.name = 'lita-onewheel-iou'
|
3
|
+
spec.version = '1.0.1'
|
4
|
+
spec.authors = ['Andrew Kreps']
|
5
|
+
spec.email = ['andrew.kreps@gmail.com']
|
6
|
+
spec.description = 'Handles beer IOUs.'
|
7
|
+
spec.summary = 'Use !iou to make a note of a friend to whom you owe a beer.'
|
8
|
+
spec.homepage = 'https://github.com/onewheelskyward/lita-onewheel-iou'
|
9
|
+
spec.license = 'MIT'
|
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'
|
18
|
+
|
19
|
+
spec.add_development_dependency 'bundler', '~> 1.3'
|
20
|
+
# spec.add_development_dependency 'pry-byebug'
|
21
|
+
spec.add_development_dependency 'rake', '~> 10.4'
|
22
|
+
spec.add_development_dependency 'rack-test', '~> 0.6'
|
23
|
+
spec.add_development_dependency 'rspec', '~> 3.4'
|
24
|
+
spec.add_development_dependency 'simplecov', '~> 0.11'
|
25
|
+
spec.add_development_dependency 'coveralls', '~> 0.8'
|
26
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'simplecov'
|
2
|
+
require 'coveralls'
|
3
|
+
SimpleCov.formatters = [
|
4
|
+
SimpleCov::Formatter::HTMLFormatter,
|
5
|
+
Coveralls::SimpleCov::Formatter
|
6
|
+
]
|
7
|
+
SimpleCov.start { add_filter '/spec/' }
|
8
|
+
|
9
|
+
require 'lita-onewheel-iou'
|
10
|
+
require 'lita/rspec'
|
11
|
+
|
12
|
+
# A compatibility mode is provided for older plugins upgrading from Lita 3. Since this plugin
|
13
|
+
# was generated with Lita 4, the compatibility mode should be left disabled.
|
14
|
+
Lita.version_3_compatibility_mode = false
|
metadata
ADDED
@@ -0,0 +1,156 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: lita-onewheel-iou
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Andrew Kreps
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-08-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'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '4'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: bundler
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.3'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.3'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rake
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '10.4'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '10.4'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rack-test
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0.6'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0.6'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rspec
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '3.4'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '3.4'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: simplecov
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0.11'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0.11'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: coveralls
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0.8'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0.8'
|
111
|
+
description: Handles beer IOUs.
|
112
|
+
email:
|
113
|
+
- andrew.kreps@gmail.com
|
114
|
+
executables: []
|
115
|
+
extensions: []
|
116
|
+
extra_rdoc_files: []
|
117
|
+
files:
|
118
|
+
- ".gitignore"
|
119
|
+
- ".travis.yml"
|
120
|
+
- Gemfile
|
121
|
+
- README.md
|
122
|
+
- Rakefile
|
123
|
+
- lib/lita-onewheel-iou.rb
|
124
|
+
- lib/lita/handlers/onewheel-iou.rb
|
125
|
+
- locales/en.yml
|
126
|
+
- onewheel-lita-iou.gemspec
|
127
|
+
- spec/lita/handlers/onewhee_iou_spec.rb
|
128
|
+
- spec/spec_helper.rb
|
129
|
+
homepage: https://github.com/onewheelskyward/lita-onewheel-iou
|
130
|
+
licenses:
|
131
|
+
- MIT
|
132
|
+
metadata:
|
133
|
+
lita_plugin_type: handler
|
134
|
+
post_install_message:
|
135
|
+
rdoc_options: []
|
136
|
+
require_paths:
|
137
|
+
- lib
|
138
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
139
|
+
requirements:
|
140
|
+
- - ">="
|
141
|
+
- !ruby/object:Gem::Version
|
142
|
+
version: '0'
|
143
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
144
|
+
requirements:
|
145
|
+
- - ">="
|
146
|
+
- !ruby/object:Gem::Version
|
147
|
+
version: '0'
|
148
|
+
requirements: []
|
149
|
+
rubyforge_project:
|
150
|
+
rubygems_version: 2.5.1
|
151
|
+
signing_key:
|
152
|
+
specification_version: 4
|
153
|
+
summary: Use !iou to make a note of a friend to whom you owe a beer.
|
154
|
+
test_files:
|
155
|
+
- spec/lita/handlers/onewhee_iou_spec.rb
|
156
|
+
- spec/spec_helper.rb
|