cinch-links-logger 1.0.2 → 1.0.3

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 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: