lita-onewheel-beer-wework 0.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.
- checksums.yaml +7 -0
- data/.gitignore +18 -0
- data/.travis.yml +9 -0
- data/Gemfile +3 -0
- data/README.md +28 -0
- data/Rakefile +6 -0
- data/lib/lita-onewheel-beer-wework.rb +12 -0
- data/lib/lita/handlers/onewheel_beer_wework.rb +66 -0
- data/lita-onewheel-beer-wework.gemspec +27 -0
- data/spec/lita/handlers/onewheel_beer_wework_spec.rb +24 -0
- data/spec/spec_helper.rb +14 -0
- metadata +155 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: b7458525108d874df189dfda5852e74d383cb540
|
4
|
+
data.tar.gz: af8c0349ea10191090d6c7905f42ab4ac123b765
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 2ae42ef32ed6a725bad8fd2d80b277c32718ba6e3c9445c560a32b293a9734b81271ee0fe52631aa72ab2b400a58d4f7cb83ec70759deab57fcc408291614d27
|
7
|
+
data.tar.gz: fa52024e24bd1b5bfd38187d21ae155ad1920676dbe43c7c1193eb951b10ad2d1f48c8c55a9f1bab68047f1b62354ef7074240bc4eec05f47c3a247c23e47132
|
data/.gitignore
ADDED
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/README.md
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
# lita-onewheel-beer-wework
|
2
|
+
|
3
|
+
[](https://travis-ci.org/onewheelskyward/lita-onewheel-beer-wework)
|
4
|
+
[](https://coveralls.io/r/onewheelskyward/lita-onewheel-beer-wework)
|
5
|
+
|
6
|
+
This plugin was designed to store WeWork's beer as sort of a shared beer locator for WeWork.
|
7
|
+
|
8
|
+
Thus, the plugin was born. It'll store, quite literally, anything you like.
|
9
|
+
|
10
|
+
## Installation
|
11
|
+
|
12
|
+
Add lita-onewheel-beer-wework to your Lita instance's Gemfile:
|
13
|
+
|
14
|
+
``` ruby
|
15
|
+
gem 'lita-onewheel-beer-wework'
|
16
|
+
```
|
17
|
+
|
18
|
+
## Configuration
|
19
|
+
|
20
|
+
Just needs redis which you have because you're already running Lita.
|
21
|
+
|
22
|
+
## Usage
|
23
|
+
Command | Description
|
24
|
+
------------------------- | -------------
|
25
|
+
`!wework floor beer` | Stores https://value under the key key. Note, web links are not enforced. You can store emoji if you like.
|
26
|
+
`!wework floor` | Display beer from a given floor.
|
27
|
+
`!wework` | list all beers.
|
28
|
+
|
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_beer_wework'
|
8
|
+
|
9
|
+
Lita::Handlers::OnewheelBeerWework.template_root File.expand_path(
|
10
|
+
File.join('..', '..', 'templates'),
|
11
|
+
__FILE__
|
12
|
+
)
|
@@ -0,0 +1,66 @@
|
|
1
|
+
module Lita
|
2
|
+
module Handlers
|
3
|
+
class OnewheelBeerWework < Handler
|
4
|
+
REDIS_KEY = 'onewheel-doc'
|
5
|
+
|
6
|
+
route /^wework\s+([\w\/+_-]+)\s+(.*)$/i,
|
7
|
+
:command_add_key,
|
8
|
+
command: true,
|
9
|
+
help: {'!wework 2fS Beer' => 'Add a beer to 2fS'}
|
10
|
+
route /^wework$/i,
|
11
|
+
:command_list_keys,
|
12
|
+
command: true,
|
13
|
+
help: {'!wework ' => 'list all beers'}
|
14
|
+
route /^wework\s+(\w+)$/i,
|
15
|
+
:command_fetch_key,
|
16
|
+
command: true,
|
17
|
+
help: {'!wework 2fS ' => 'fetch the beer for 2fS'}
|
18
|
+
|
19
|
+
def command_add_key(response)
|
20
|
+
key = response.matches[0][0].downcase
|
21
|
+
unless %w(1fs 1fn 2fs 2fn 3fn).include? key
|
22
|
+
Lita.logger.info "#{key} was not found in the floors array."
|
23
|
+
return
|
24
|
+
end
|
25
|
+
key = key[0..1] + key[-1].upcase
|
26
|
+
value = response.matches[0][1]
|
27
|
+
redis.hset(REDIS_KEY, key, value)
|
28
|
+
response.reply "Logged #{value} at #{key}!"
|
29
|
+
end
|
30
|
+
|
31
|
+
def command_fetch_key(response)
|
32
|
+
key = response.matches[0][0]
|
33
|
+
|
34
|
+
reply = get_values_that_start_with_key(key)
|
35
|
+
response.reply reply
|
36
|
+
end
|
37
|
+
|
38
|
+
def command_list_keys(response)
|
39
|
+
replies = []
|
40
|
+
|
41
|
+
all = redis.hgetall(REDIS_KEY)
|
42
|
+
all.each do |key, val|
|
43
|
+
replies.push format_key_val_response(key, val)
|
44
|
+
end
|
45
|
+
response.reply replies.join ", "
|
46
|
+
end
|
47
|
+
|
48
|
+
def get_values_that_start_with_key(key)
|
49
|
+
values = []
|
50
|
+
all = redis.hgetall(REDIS_KEY)
|
51
|
+
all.each do |all_key, all_val|
|
52
|
+
if all_key =~ /^#{key}/i
|
53
|
+
values.push format_key_val_response(all_key, all_val)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
reply = values.join ", "
|
57
|
+
end
|
58
|
+
|
59
|
+
def format_key_val_response(all_key, all_val)
|
60
|
+
"#{all_key}: #{all_val}"
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
Lita.register_handler(OnewheelBeerWework)
|
65
|
+
end
|
66
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
Gem::Specification.new do |spec|
|
2
|
+
spec.name = 'lita-onewheel-beer-wework'
|
3
|
+
spec.version = '0.0.0'
|
4
|
+
spec.authors = ['Andrew Kreps']
|
5
|
+
spec.email = ['andrew.kreps@gmail.com']
|
6
|
+
spec.description = 'Basic key/value store for wework beers.'
|
7
|
+
spec.summary = 'Will do it\'s best to store urls under the key specified.'
|
8
|
+
spec.homepage = 'https://github.com/onewheelskyward/lita-onewheel-beer-wework'
|
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', '~> 3.1'
|
21
|
+
spec.add_development_dependency 'rake', '~> 10.4'
|
22
|
+
spec.add_development_dependency 'rack-test', '~> 0.6'
|
23
|
+
spec.add_development_dependency 'rspec', '~> 3.0'
|
24
|
+
|
25
|
+
spec.add_development_dependency 'simplecov', '~> 0.10'
|
26
|
+
spec.add_development_dependency 'coveralls', '~> 0.8'
|
27
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Lita::Handlers::OnewheelBeerWework, lita_handler: true do
|
4
|
+
it { is_expected.to route_command('wework') }
|
5
|
+
it { is_expected.to route_command('wework 2fS Breakfast Stout') }
|
6
|
+
|
7
|
+
it 'sets a beer' do
|
8
|
+
send_command 'wework 2fs Breakfast Stout'
|
9
|
+
expect(replies.last).to eq('Logged Breakfast Stout at 2fS!')
|
10
|
+
end
|
11
|
+
|
12
|
+
it 'gets a beer' do
|
13
|
+
send_command 'wework 2fs Breakfast Stout'
|
14
|
+
send_command 'wework 2fs'
|
15
|
+
expect(replies.last).to eq('2fS: Breakfast Stout')
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'lists documents' do
|
19
|
+
send_command 'wework 2fs one'
|
20
|
+
send_command 'wework 2fN two'
|
21
|
+
send_command 'wework'
|
22
|
+
expect(replies.last).to eq("2fS: one, 2fN: two")
|
23
|
+
end
|
24
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'simplecov'
|
2
|
+
require 'coveralls'
|
3
|
+
SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
|
4
|
+
SimpleCov::Formatter::HTMLFormatter,
|
5
|
+
Coveralls::SimpleCov::Formatter
|
6
|
+
]
|
7
|
+
SimpleCov.start { add_filter '/spec/' }
|
8
|
+
|
9
|
+
require 'lita-onewheel-beer-wework'
|
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,155 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: lita-onewheel-beer-wework
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Andrew Kreps
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-06-22 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.0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '3.0'
|
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.10'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0.10'
|
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: Basic key/value store for wework beers.
|
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-beer-wework.rb
|
124
|
+
- lib/lita/handlers/onewheel_beer_wework.rb
|
125
|
+
- lita-onewheel-beer-wework.gemspec
|
126
|
+
- spec/lita/handlers/onewheel_beer_wework_spec.rb
|
127
|
+
- spec/spec_helper.rb
|
128
|
+
homepage: https://github.com/onewheelskyward/lita-onewheel-beer-wework
|
129
|
+
licenses:
|
130
|
+
- MIT
|
131
|
+
metadata:
|
132
|
+
lita_plugin_type: handler
|
133
|
+
post_install_message:
|
134
|
+
rdoc_options: []
|
135
|
+
require_paths:
|
136
|
+
- lib
|
137
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
138
|
+
requirements:
|
139
|
+
- - ">="
|
140
|
+
- !ruby/object:Gem::Version
|
141
|
+
version: '0'
|
142
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
143
|
+
requirements:
|
144
|
+
- - ">="
|
145
|
+
- !ruby/object:Gem::Version
|
146
|
+
version: '0'
|
147
|
+
requirements: []
|
148
|
+
rubyforge_project:
|
149
|
+
rubygems_version: 2.5.1
|
150
|
+
signing_key:
|
151
|
+
specification_version: 4
|
152
|
+
summary: Will do it's best to store urls under the key specified.
|
153
|
+
test_files:
|
154
|
+
- spec/lita/handlers/onewheel_beer_wework_spec.rb
|
155
|
+
- spec/spec_helper.rb
|