lita-key-value 0.1.0 → 0.2.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 +4 -4
- data/README.md +8 -1
- data/lib/lita/handlers/key_value.rb +17 -0
- data/lita-key-value.gemspec +1 -1
- data/spec/lita/handlers/key_value_spec.rb +18 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a43f1b3fe82b602f02b2c5fd9959cc344cc2018c
|
4
|
+
data.tar.gz: aa56665e4927ba12e2b48d5aecd53d14af705ff3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e6e6e7caf234a9a3eec575fd35fd7259f49121658a7ad8ba9b273ad2a2915cd0b0928d828aa6bebc5a3ffa2e4b68744000e4017fd42bba4605692a65ad4edceb
|
7
|
+
data.tar.gz: 55b0926c7e3742e0169366daca6420316ade6dee47b60534dc2aab916899fb024c37879d2074188c49fbf86bab0645c56e085420f3c9f3ea9062a69a09798f68
|
data/README.md
CHANGED
@@ -61,7 +61,14 @@ You: Lita, kv list
|
|
61
61
|
Lita: google, heart, something.else
|
62
62
|
```
|
63
63
|
|
64
|
-
|
64
|
+
Search for keys:
|
65
|
+
|
66
|
+
```
|
67
|
+
You: Lita, kv search amaninacan
|
68
|
+
Lita: amaninacan.amazon.recommendations, hello.amaninacan
|
69
|
+
```
|
70
|
+
|
71
|
+
By default, keys are restricted to alphanumeric characters, underscores, and periods. Values can contain character.
|
65
72
|
|
66
73
|
## License
|
67
74
|
|
@@ -27,6 +27,10 @@ module Lita
|
|
27
27
|
route(/^kv\s+list/i, :list, command: true, help: {
|
28
28
|
"kv list" => "List all keys."
|
29
29
|
})
|
30
|
+
|
31
|
+
route(/^kv\s+search\s+(#{pattern})/i, :search, command: true, help: {
|
32
|
+
"kv search KEY" => "Search for keys containing KEY."
|
33
|
+
})
|
30
34
|
end
|
31
35
|
|
32
36
|
on :loaded, :define_routes
|
@@ -74,6 +78,19 @@ module Lita
|
|
74
78
|
end
|
75
79
|
end
|
76
80
|
|
81
|
+
def search(response)
|
82
|
+
search_term = response.matches.first.first
|
83
|
+
keys = redis.hkeys(REDIS_KEY)
|
84
|
+
|
85
|
+
matching_keys = keys.select { |key| key.include?(search_term) }
|
86
|
+
|
87
|
+
if matching_keys.empty?
|
88
|
+
response.reply("No matching keys found.")
|
89
|
+
else
|
90
|
+
response.reply(matching_keys.sort.join(", "))
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
77
94
|
private
|
78
95
|
|
79
96
|
def config
|
data/lita-key-value.gemspec
CHANGED
@@ -5,6 +5,7 @@ describe Lita::Handlers::KeyValue, lita_handler: true do
|
|
5
5
|
it { routes_command("kv get foo").to(:get) }
|
6
6
|
it { routes_command("kv delete foo").to(:delete) }
|
7
7
|
it { routes_command("kv list").to(:list) }
|
8
|
+
it { routes_command("kv search foo").to(:search) }
|
8
9
|
|
9
10
|
it "sets and gets keys" do
|
10
11
|
send_command("kv set foo bar")
|
@@ -48,6 +49,23 @@ describe Lita::Handlers::KeyValue, lita_handler: true do
|
|
48
49
|
end
|
49
50
|
end
|
50
51
|
|
52
|
+
describe "#search" do
|
53
|
+
it "returns keys containing the search term" do
|
54
|
+
send_command("kv set foo bar")
|
55
|
+
send_command("kv set bazfoo bar")
|
56
|
+
send_command("kv set foobaz bar")
|
57
|
+
send_command("kv set blahfoobaz bar")
|
58
|
+
send_command("kv set hello.amaninacan lol")
|
59
|
+
send_command("kv search foo")
|
60
|
+
expect(replies.last).to eq("bazfoo, blahfoobaz, foo, foobaz")
|
61
|
+
end
|
62
|
+
|
63
|
+
it "replies with a warning if there are no matching keys" do
|
64
|
+
send_command("kv search foo")
|
65
|
+
expect(replies.last).to eq("No matching keys found.")
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
51
69
|
context "with a custom key handler and normalizer" do
|
52
70
|
before do
|
53
71
|
Lita.config.handlers.key_value.tap do |config|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lita-key-value
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jimmy Cuadra
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-04-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: lita
|