cinch-links-logger 1.0.2 → 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: c02e926f20377bff962dc603021d8425fc2f4ba6
4
+ data.tar.gz: 686d30c2e22c1679a8ac6880753377c073e0b5a2
5
+ SHA512:
6
+ metadata.gz: 1b695695a40d6620654a1114bd72dc5be65e9e1ec0debe8d9a9dde6aad00a896c180c58f93f39cb1eb90b23baeca125e7836d0dad23c66399b48b9a5496362d5
7
+ data.tar.gz: 237c2426b0dea2476ad535b7356fb213c4c5f25ca5052b32a5f75b767230c0d43c38285878f01593740561ae70cef11c24ede3901f8bc7cc99b17183da8c7e27
data/.travis.yml CHANGED
@@ -1,4 +1,23 @@
1
1
  language: ruby
2
+ env:
3
+ global:
4
+ - "JRUBY_OPTS=-Xcext.enabled=true"
2
5
  rvm:
3
- - 1.9.2
6
+ - 2.1.0
7
+ - 2.0.0
4
8
  - 1.9.3
9
+ - 1.9.2
10
+ - 1.8.7
11
+ - jruby-18mode
12
+ - jruby-19mode
13
+ - ruby-head
14
+ - jruby-head
15
+ - ree
16
+ matrix:
17
+ allow_failures:
18
+ - rvm: 1.8.7
19
+ - rvm: ree
20
+ - rvm: jruby-18mode
21
+ - rvm: jruby-19mode
22
+ - rvm: jruby-head
23
+ fast_finish: true
@@ -8,24 +8,20 @@ Gem::Specification.new do |gem|
8
8
  gem.version = Cinch::Plugins::LinksLogger::VERSION
9
9
  gem.authors = ['Brian Haberer']
10
10
  gem.email = ['bhaberer@gmail.com']
11
- gem.description = %q{Cinch Plugin to track links in the channel}
12
- gem.summary = %q{Cinch Plugin for links logging}
11
+ gem.description = %q(Cinch Plugin to track links in the channel)
12
+ gem.summary = %q(Cinch Plugin for links logging)
13
13
  gem.homepage = 'https://github.com/bhaberer/cinch-links-logger'
14
14
  gem.license = 'MIT'
15
-
16
15
  gem.files = `git ls-files`.split($/)
17
- gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
18
- gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
16
+ gem.executables = gem.files.grep(/^bin\//).map { |f| File.basename(f) }
17
+ gem.test_files = gem.files.grep(/^(test|spec|features)\//)
19
18
  gem.require_paths = ['lib']
20
-
21
- gem.add_development_dependency 'rake'
22
- gem.add_development_dependency 'rspec'
23
- gem.add_development_dependency 'coveralls'
24
- gem.add_development_dependency 'cinch-test'
25
-
26
- gem.add_dependency 'cinch', '~> 2.0.12'
27
- gem.add_dependency 'cinch-cooldown', '~> 1.1.1'
28
- gem.add_dependency 'cinch-storage', '~> 1.1.0'
29
- gem.add_dependency 'cinch-toolbox', '~> 1.1.0'
30
- gem.add_dependency 'time-lord', '~> 1.0.1'
19
+ gem.add_development_dependency 'rake', '~> 10'
20
+ gem.add_development_dependency 'rspec', '~> 3'
21
+ gem.add_development_dependency 'coveralls', '~> 0.7'
22
+ gem.add_development_dependency 'cinch-test', '~> 0.1', '>= 0.1.1'
23
+ gem.add_dependency 'cinch', '~> 2'
24
+ gem.add_dependency 'cinch-cooldown', '~> 1.1', '>= 1.1.1'
25
+ gem.add_dependency 'cinch-storage', '~> 1.1'
26
+ gem.add_dependency 'cinch-toolbox', '~> 1.1'
31
27
  end
@@ -4,60 +4,62 @@ require 'cinch'
4
4
  require 'cinch/toolbox'
5
5
  require 'cinch/storage'
6
6
 
7
- module Cinch::Plugins
8
- # Cinch Plugin to track links
9
- class LinksLogger
10
- include Cinch::Plugin
11
- attr_reader :storage
7
+ module Cinch
8
+ module Plugins
9
+ # Cinch Plugin to track links
10
+ class LinksLogger
11
+ include Cinch::Plugin
12
+ attr_reader :storage
12
13
 
13
- listen_to :channel
14
+ listen_to :channel
14
15
 
15
- self.help = 'Use .links to see the last links posted to the channel.'
16
+ self.help = 'Use .links to see the last links posted to the channel.'
16
17
 
17
- match /links/
18
+ match(/links/)
18
19
 
19
- def initialize(*args)
20
- super
21
- @storage = Cinch::Storage.new(config[:filename] || 'yaml/links.yaml')
22
- @storage.data ||= {}
23
- end
20
+ def initialize(*args)
21
+ super
22
+ @storage = Cinch::Storage.new(config[:filename] || 'yaml/links.yaml')
23
+ @storage.data ||= {}
24
+ end
24
25
 
25
- def execute(m)
26
- return if Cinch::Toolbox.sent_via_private_message?(m)
27
- get_recent_links(m.channel.name).each { |line| m.user.send line }
28
- end
26
+ def execute(m)
27
+ return if Cinch::Toolbox.sent_via_private_message?(m)
28
+ get_recent_links(m.channel.name).each { |line| m.user.send line }
29
+ end
29
30
 
30
- def listen(m)
31
- urls = URI.extract(m.message, %w(http https))
32
- urls.each do |url|
33
- # Ensure we have a Channel Object in the History to dump links into.
34
- @storage.data[m.channel.name] ||= Hash.new
35
- @link = get_or_create_link(m, url)
31
+ def listen(m)
32
+ urls = URI.extract(m.message, %w(http https))
33
+ urls.each do |url|
34
+ # Ensure we have a Channel Object in the History to dump links into.
35
+ @storage.data[m.channel.name] ||= Hash.new
36
+ @link = get_or_create_link(m, url)
37
+ end
36
38
  end
37
- end
38
39
 
39
- private
40
+ private
40
41
 
41
- def get_or_create_link(m, url)
42
- channel = m.channel.name
43
- # If the link was posted already, get the old info instead of getting new
44
- @storage.data[channel][url] ||= Link.new(m.user.nick, url)
45
- @storage.data[channel][url].inc_count
46
- @storage.synced_save(@bot)
47
- @storage.data[channel][url]
48
- end
42
+ def get_or_create_link(m, url)
43
+ channel = m.channel.name
44
+ # If the link was posted already, get the old info
45
+ @storage.data[channel][url] ||= Link.new(m.user.nick, url)
46
+ @storage.data[channel][url].inc_count
47
+ @storage.synced_save(@bot)
48
+ @storage.data[channel][url]
49
+ end
49
50
 
50
- def get_recent_links(channel)
51
- message = ["Recent Links in #{channel}"]
52
- links = @storage.data[channel].values.reverse[0..9]
53
- links.each_with_index do |link|
54
- message << if link.title.nil?
55
- Cinch::Toolbox.expand(link.short_url)
56
- else
57
- "#{link.short_url} - #{link.title}"
58
- end
51
+ def get_recent_links(channel)
52
+ message = ["Recent Links in #{channel}"]
53
+ links = @storage.data[channel].values.reverse[0..9]
54
+ links.each_with_index do |link|
55
+ message << if link.title.nil?
56
+ Cinch::Toolbox.expand(link.short_url)
57
+ else
58
+ "#{link.short_url} - #{link.title}"
59
+ end
60
+ end
61
+ message
59
62
  end
60
- message
61
63
  end
62
64
  end
63
65
  end
@@ -3,7 +3,7 @@ module Cinch
3
3
  module Plugins
4
4
  # Versioning info
5
5
  class LinksLogger
6
- VERSION = '1.0.2'
6
+ VERSION = '1.0.3'
7
7
  end
8
8
  end
9
9
  end
@@ -10,29 +10,29 @@ describe Cinch::Plugins::LinksLogger do
10
10
 
11
11
  it 'should capture links' do
12
12
  get_replies(make_message(@bot, 'http://github.com', { channel: '#foo', nick: 'bar' }))
13
- @bot.plugins.first.storage.data['#foo'].keys.first.
14
- should == 'http://github.com'
13
+ expect(@bot.plugins.first.storage.data['#foo'].keys.first)
14
+ .to eq('http://github.com')
15
15
  end
16
16
 
17
17
  it 'should capture links count' do
18
18
  15.times { get_replies(make_message(@bot, 'http://github.com', { channel: '#foo' })) }
19
19
  links = @bot.plugins.first.storage.data['#foo']
20
- puts "\n\n#{links}\n\n"
21
- links.length.should == 1
22
- links.values.first.count.should == 15
20
+ expect(links.length).to eq(1)
21
+ expect(links.values.first.count).to eq(15)
23
22
  end
24
23
 
25
24
  it 'should not capture malformed URLS' do
26
25
  get_replies(make_message(@bot, 'htp://github.com', { channel: '#foo', nick: 'bar' }))
27
26
  get_replies(make_message(@bot, 'http/github.com', { channel: '#foo', nick: 'bar' }))
28
- @bot.plugins.first.storage.data['#foo'].
29
- should be_nil
27
+ expect(@bot.plugins.first.storage.data['#foo'])
28
+ .to be_nil
30
29
  end
31
30
 
32
31
  it 'should allow users to get a list of recently linked URLS' do
33
32
  get_replies(make_message(@bot, 'http://github.com', { channel: '#foo', nick: 'bar' }))
34
33
  replies = get_replies(make_message(@bot, '!links', { channel: '#foo', nick: 'test' }))
35
- replies.first.text.should == 'Recent Links in #foo'
36
- replies.last.text.should == 'http://github.com - GitHub · Build software better, together.'
34
+ expect(replies.first.text).to eq('Recent Links in #foo')
35
+ expect(replies.last.text)
36
+ .to eq('http://github.com - GitHub · Build software better, together.')
37
37
  end
38
38
  end
data/spec/spec_helper.rb CHANGED
@@ -1,4 +1,11 @@
1
1
  require 'coveralls'
2
- Coveralls.wear!
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-links-logger'
4
11
  require 'cinch/test'
metadata CHANGED
@@ -1,160 +1,139 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cinch-links-logger
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
5
- prerelease:
4
+ version: 1.0.3
6
5
  platform: ruby
7
6
  authors:
8
7
  - Brian Haberer
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2014-02-19 00:00:00.000000000 Z
11
+ date: 2014-07-31 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rake
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - ~>
20
18
  - !ruby/object:Gem::Version
21
- version: '0'
19
+ version: '10'
22
20
  type: :development
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - ~>
28
25
  - !ruby/object:Gem::Version
29
- version: '0'
26
+ version: '10'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rspec
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - ~>
36
32
  - !ruby/object:Gem::Version
37
- version: '0'
33
+ version: '3'
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - ~>
44
39
  - !ruby/object:Gem::Version
45
- version: '0'
40
+ version: '3'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: coveralls
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - ~>
52
46
  - !ruby/object:Gem::Version
53
- version: '0'
47
+ version: '0.7'
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - ~>
60
53
  - !ruby/object:Gem::Version
61
- version: '0'
54
+ version: '0.7'
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: cinch-test
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: '0.1'
67
62
  - - ! '>='
68
63
  - !ruby/object:Gem::Version
69
- version: '0'
64
+ version: 0.1.1
70
65
  type: :development
71
66
  prerelease: false
72
67
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
68
  requirements:
69
+ - - ~>
70
+ - !ruby/object:Gem::Version
71
+ version: '0.1'
75
72
  - - ! '>='
76
73
  - !ruby/object:Gem::Version
77
- version: '0'
74
+ version: 0.1.1
78
75
  - !ruby/object:Gem::Dependency
79
76
  name: cinch
80
77
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
78
  requirements:
83
79
  - - ~>
84
80
  - !ruby/object:Gem::Version
85
- version: 2.0.12
81
+ version: '2'
86
82
  type: :runtime
87
83
  prerelease: false
88
84
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
85
  requirements:
91
86
  - - ~>
92
87
  - !ruby/object:Gem::Version
93
- version: 2.0.12
88
+ version: '2'
94
89
  - !ruby/object:Gem::Dependency
95
90
  name: cinch-cooldown
96
91
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
92
  requirements:
99
93
  - - ~>
94
+ - !ruby/object:Gem::Version
95
+ version: '1.1'
96
+ - - ! '>='
100
97
  - !ruby/object:Gem::Version
101
98
  version: 1.1.1
102
99
  type: :runtime
103
100
  prerelease: false
104
101
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
102
  requirements:
107
103
  - - ~>
104
+ - !ruby/object:Gem::Version
105
+ version: '1.1'
106
+ - - ! '>='
108
107
  - !ruby/object:Gem::Version
109
108
  version: 1.1.1
110
109
  - !ruby/object:Gem::Dependency
111
110
  name: cinch-storage
112
111
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
112
  requirements:
115
113
  - - ~>
116
114
  - !ruby/object:Gem::Version
117
- version: 1.1.0
115
+ version: '1.1'
118
116
  type: :runtime
119
117
  prerelease: false
120
118
  version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
119
  requirements:
123
120
  - - ~>
124
121
  - !ruby/object:Gem::Version
125
- version: 1.1.0
122
+ version: '1.1'
126
123
  - !ruby/object:Gem::Dependency
127
124
  name: cinch-toolbox
128
125
  requirement: !ruby/object:Gem::Requirement
129
- none: false
130
- requirements:
131
- - - ~>
132
- - !ruby/object:Gem::Version
133
- version: 1.1.0
134
- type: :runtime
135
- prerelease: false
136
- version_requirements: !ruby/object:Gem::Requirement
137
- none: false
138
- requirements:
139
- - - ~>
140
- - !ruby/object:Gem::Version
141
- version: 1.1.0
142
- - !ruby/object:Gem::Dependency
143
- name: time-lord
144
- requirement: !ruby/object:Gem::Requirement
145
- none: false
146
126
  requirements:
147
127
  - - ~>
148
128
  - !ruby/object:Gem::Version
149
- version: 1.0.1
129
+ version: '1.1'
150
130
  type: :runtime
151
131
  prerelease: false
152
132
  version_requirements: !ruby/object:Gem::Requirement
153
- none: false
154
133
  requirements:
155
134
  - - ~>
156
135
  - !ruby/object:Gem::Version
157
- version: 1.0.1
136
+ version: '1.1'
158
137
  description: Cinch Plugin to track links in the channel
159
138
  email:
160
139
  - bhaberer@gmail.com
@@ -178,29 +157,27 @@ files:
178
157
  homepage: https://github.com/bhaberer/cinch-links-logger
179
158
  licenses:
180
159
  - MIT
160
+ metadata: {}
181
161
  post_install_message:
182
162
  rdoc_options: []
183
163
  require_paths:
184
164
  - lib
185
165
  required_ruby_version: !ruby/object:Gem::Requirement
186
- none: false
187
166
  requirements:
188
167
  - - ! '>='
189
168
  - !ruby/object:Gem::Version
190
169
  version: '0'
191
170
  required_rubygems_version: !ruby/object:Gem::Requirement
192
- none: false
193
171
  requirements:
194
172
  - - ! '>='
195
173
  - !ruby/object:Gem::Version
196
174
  version: '0'
197
175
  requirements: []
198
176
  rubyforge_project:
199
- rubygems_version: 1.8.25
177
+ rubygems_version: 2.2.2
200
178
  signing_key:
201
- specification_version: 3
179
+ specification_version: 4
202
180
  summary: Cinch Plugin for links logging
203
181
  test_files:
204
182
  - spec/cinch-links-logger_spec.rb
205
183
  - spec/spec_helper.rb
206
- has_rdoc: