cinch-yaml-keywords 1.1.0 → 1.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.
- data/lib/cinch/plugins/yamlkeywords.rb +29 -17
- metadata +3 -3
|
@@ -8,15 +8,15 @@ module Cinch
|
|
|
8
8
|
def initialize(*args)
|
|
9
9
|
super
|
|
10
10
|
if File.exist?('keywords.yaml')
|
|
11
|
-
|
|
12
|
-
else
|
|
13
|
-
@keywords = {}
|
|
11
|
+
then @keywords = YAML.load_file('keywords.yaml')
|
|
12
|
+
else @keywords = {}
|
|
14
13
|
end
|
|
15
14
|
end
|
|
16
15
|
|
|
17
|
-
match(/keywords/, method: :keywords)
|
|
18
16
|
def keywords(m)
|
|
19
|
-
if
|
|
17
|
+
if
|
|
18
|
+
@keywords.size > 0
|
|
19
|
+
then
|
|
20
20
|
m.reply "Keywords start:"
|
|
21
21
|
@keywords.each{|k,v| m.reply "'#{k}': '#{v}'." }
|
|
22
22
|
m.reply "Keywords end."
|
|
@@ -25,20 +25,15 @@ module Cinch
|
|
|
25
25
|
end
|
|
26
26
|
end
|
|
27
27
|
|
|
28
|
-
match(/keyword '(.*)' (.+)$/, group: :define, method: :keyword_define)
|
|
29
|
-
match(/keyword "(.*)" (.+)$/, group: :define, method: :keyword_define)
|
|
30
|
-
match(/keyword (\S+) (.+)$/, group: :define, method: :keyword_define)
|
|
31
28
|
def keyword_define(m, keyword, definition)
|
|
32
29
|
if @keywords[keyword]
|
|
33
|
-
|
|
34
|
-
else
|
|
35
|
-
m.reply "Defining '#{keyword}' with: '#{definition}'."
|
|
30
|
+
then m.reply "Redefining '#{keyword}' from: '#{@keywords[keyword]}' to: '#{definition}'."
|
|
31
|
+
else m.reply "Defining '#{keyword}' with: '#{definition}'."
|
|
36
32
|
end
|
|
37
33
|
@keywords[keyword] = definition
|
|
38
34
|
update_store
|
|
39
35
|
end
|
|
40
36
|
|
|
41
|
-
match(/keyword (\S+)$/, method: :keyword_check)
|
|
42
37
|
def keyword_check(m, keyword)
|
|
43
38
|
if @keywords[keyword]
|
|
44
39
|
m.reply "'#{keyword}' is defined as: '#{@keywords[keyword]}'."
|
|
@@ -47,9 +42,10 @@ module Cinch
|
|
|
47
42
|
end
|
|
48
43
|
end
|
|
49
44
|
|
|
50
|
-
match(/forget (\S+)$/, method: :keyword_forget)
|
|
51
45
|
def keyword_forget(m, keyword)
|
|
52
|
-
if
|
|
46
|
+
if
|
|
47
|
+
@keywords[keyword]
|
|
48
|
+
then
|
|
53
49
|
m.reply "'#{keyword}' was defined as: '#{@keywords[keyword]}'."
|
|
54
50
|
@keywords.delete(keyword)
|
|
55
51
|
update_store
|
|
@@ -58,11 +54,26 @@ module Cinch
|
|
|
58
54
|
end
|
|
59
55
|
end
|
|
60
56
|
|
|
57
|
+
def find_keyword(m)
|
|
58
|
+
if keyword = @keywords.keys.find{|k| Regexp.new(k).match(m.message) }
|
|
59
|
+
then m.reply @keywords[keyword]
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
|
|
61
63
|
listen_to :channel
|
|
62
64
|
def listen(m)
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
65
|
+
case
|
|
66
|
+
m.message
|
|
67
|
+
when /^!keywords/
|
|
68
|
+
keywords(m)
|
|
69
|
+
when /keyword '(.*)' (.+)$/, /keyword "(.*)" (.+)$/, /keyword (\S+) (.+)$/
|
|
70
|
+
keyword_define(m, $1, $2)
|
|
71
|
+
when /keyword (\S+)$/, /keyword\? (\S+)$/
|
|
72
|
+
keyword_check(m, $1)
|
|
73
|
+
when /forget (\S+)$/
|
|
74
|
+
keyword_forget(m, $1)
|
|
75
|
+
else
|
|
76
|
+
find_keyword(m)
|
|
66
77
|
end
|
|
67
78
|
end
|
|
68
79
|
|
|
@@ -73,6 +84,7 @@ module Cinch
|
|
|
73
84
|
end
|
|
74
85
|
end
|
|
75
86
|
end
|
|
87
|
+
|
|
76
88
|
end
|
|
77
89
|
end
|
|
78
90
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: cinch-yaml-keywords
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.2.0
|
|
5
5
|
prerelease:
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -9,7 +9,7 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date:
|
|
12
|
+
date: 2013-12-20 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: cinch
|
|
@@ -58,7 +58,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
58
58
|
version: '0'
|
|
59
59
|
requirements: []
|
|
60
60
|
rubyforge_project:
|
|
61
|
-
rubygems_version: 1.8.
|
|
61
|
+
rubygems_version: 1.8.23
|
|
62
62
|
signing_key:
|
|
63
63
|
specification_version: 3
|
|
64
64
|
summary: A Cinch plugin to define keywords and display description when keyword matches,
|