cinch-seen 1.0.1 → 1.0.2
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/seen/version.rb +3 -1
- data/lib/cinch/plugins/{seen/seen.rb → seen.rb} +18 -8
- data/lib/cinch-seen.rb +2 -1
- data/spec/cinch-seen_spec.rb +8 -0
- data/spec/spec_helper.rb +8 -2
- metadata +4 -3
@@ -6,12 +6,19 @@ require 'cinch/cooldown'
|
|
6
6
|
require 'time-lord'
|
7
7
|
|
8
8
|
module Cinch::Plugins
|
9
|
+
# plugin to allow users to see when other users were last active
|
9
10
|
class Seen
|
10
11
|
include Cinch::Plugin
|
11
12
|
|
13
|
+
class Activity < Struct.new(:nick, :time, :message)
|
14
|
+
def to_yaml
|
15
|
+
{ nick: nick, time: time, message: message }
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
12
19
|
enforce_cooldown
|
13
20
|
|
14
|
-
self.help =
|
21
|
+
self.help = 'Use .seen <name> to see the last time that nick was active.'
|
15
22
|
|
16
23
|
listen_to :channel
|
17
24
|
|
@@ -25,8 +32,10 @@ module Cinch::Plugins
|
|
25
32
|
|
26
33
|
def listen(m)
|
27
34
|
channel = m.channel.name
|
28
|
-
|
29
|
-
@storage.data[channel]
|
35
|
+
nick = m.user.nick
|
36
|
+
@storage.data[channel] ||= {}
|
37
|
+
@storage.data[channel][nick.downcase] =
|
38
|
+
Activity.new(nick, Time.now, m.message)
|
30
39
|
@storage.synced_save(@bot)
|
31
40
|
end
|
32
41
|
|
@@ -40,19 +49,20 @@ module Cinch::Plugins
|
|
40
49
|
private
|
41
50
|
|
42
51
|
def last_seen(channel, nick)
|
43
|
-
@storage.data[channel] ||=
|
44
|
-
|
52
|
+
@storage.data[channel] ||= {}
|
53
|
+
activity = @storage.data[channel][nick.downcase]
|
45
54
|
|
46
|
-
if
|
55
|
+
if activity.nil?
|
47
56
|
"I've never seen #{nick} before, sorry!"
|
48
57
|
else
|
49
|
-
"I last saw #{nick} #{time.ago.to_words}"
|
58
|
+
"I last saw #{activity.nick} #{activity.time.ago.to_words} " +
|
59
|
+
"saying '#{activity.message}'"
|
50
60
|
end
|
51
61
|
end
|
52
62
|
|
53
63
|
def sent_via_pm?(m)
|
54
64
|
return false unless m.channel.nil?
|
55
|
-
m.reply
|
65
|
+
m.reply 'You must use that command in the main channel.'
|
56
66
|
true
|
57
67
|
end
|
58
68
|
end
|
data/lib/cinch-seen.rb
CHANGED
data/spec/cinch-seen_spec.rb
CHANGED
@@ -16,6 +16,14 @@ describe Cinch::Plugins::Seen do
|
|
16
16
|
should match(/baz: I last saw foo \d seconds? ago/)
|
17
17
|
end
|
18
18
|
|
19
|
+
it 'should allow show the last said thing' do
|
20
|
+
get_replies(make_message(@bot, 'hello, world!', { :nick => 'foo', :channel => '#bar' }))
|
21
|
+
sleep 1 # time-lord hack
|
22
|
+
msg = make_message(@bot, '!seen foo', { :nick => 'baz', :channel => '#bar' })
|
23
|
+
get_replies(msg).last.text.
|
24
|
+
should match(/saying 'hello, world!'/)
|
25
|
+
end
|
26
|
+
|
19
27
|
it 'should not respond to a users seen request for themselves' do
|
20
28
|
msg = make_message(@bot, '!seen foo', { :nick => 'foo', :channel => '#bar' })
|
21
29
|
get_replies(msg).
|
data/spec/spec_helper.rb
CHANGED
@@ -1,5 +1,11 @@
|
|
1
1
|
require 'coveralls'
|
2
|
-
|
2
|
+
require 'simplecov'
|
3
|
+
|
4
|
+
SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
|
5
|
+
SimpleCov::Formatter::HTMLFormatter,
|
6
|
+
Coveralls::SimpleCov::Formatter
|
7
|
+
]
|
8
|
+
SimpleCov.start
|
9
|
+
|
3
10
|
require 'cinch-seen'
|
4
11
|
require 'cinch/test'
|
5
|
-
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cinch-seen
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.2
|
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: 2014-01-17 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
@@ -171,7 +171,7 @@ files:
|
|
171
171
|
- Rakefile
|
172
172
|
- cinch-seen.gemspec
|
173
173
|
- lib/cinch-seen.rb
|
174
|
-
- lib/cinch/plugins/seen
|
174
|
+
- lib/cinch/plugins/seen.rb
|
175
175
|
- lib/cinch/plugins/seen/version.rb
|
176
176
|
- spec/cinch-seen_spec.rb
|
177
177
|
- spec/spec_helper.rb
|
@@ -202,3 +202,4 @@ summary: Cinch Plugin for Seen
|
|
202
202
|
test_files:
|
203
203
|
- spec/cinch-seen_spec.rb
|
204
204
|
- spec/spec_helper.rb
|
205
|
+
has_rdoc:
|