cinch-wikipedia 1.0.3 → 1.0.4

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: 305cbd144f78bb303fc80ea0799cb7f99bf3e617
4
+ data.tar.gz: c459148d6bf723416685399c1bb81ef55ff9353d
5
+ SHA512:
6
+ metadata.gz: d67acf315089000afc197817fc3f721244be777ce70ce680940b342c8d235bb571b293ac4429c16cb9bb59293166f3907fe7b98b41ed63680a39032124e1e504
7
+ data.tar.gz: d7610b6e57932623fd3798ed99ee9a1f86ca07d5335a8cb7dcf88e31fcecf84fb4b246bad31e4e556f63ca42dded00985e90e5c7283c81f9a8c910d7ad5245d2
@@ -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
@@ -18,12 +18,11 @@ Gem::Specification.new do |gem|
18
18
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
19
19
  gem.require_paths = ['lib']
20
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-toolbox', '~> 1.1.0'
28
- gem.add_dependency 'cinch-cooldown', '~> 1.1.1'
21
+ gem.add_development_dependency 'rake', '~> 10'
22
+ gem.add_development_dependency 'rspec', '~> 3'
23
+ gem.add_development_dependency 'coveralls', '~> 0.7'
24
+ gem.add_development_dependency 'cinch-test', '~> 0.1', '>= 0.1.0'
25
+ gem.add_dependency 'cinch', '~> 2'
26
+ gem.add_dependency 'cinch-cooldown', '~> 1.1', '>= 1.1.1'
27
+ gem.add_dependency 'cinch-toolbox', '~> 1.1'
29
28
  end
@@ -3,64 +3,65 @@ require 'cinch'
3
3
  require 'cinch/toolbox'
4
4
  require 'cinch/cooldown'
5
5
 
6
- module Cinch::Plugins
7
- # Plugin to allow users to search wikipedia.
8
- class Wikipedia
9
- include Cinch::Plugin
6
+ module Cinch
7
+ module Plugins
8
+ # Plugin to allow users to search wikipedia.
9
+ class Wikipedia
10
+ include Cinch::Plugin
10
11
 
11
- enforce_cooldown
12
+ enforce_cooldown
12
13
 
13
- self.help = 'Use .wiki <term> to see the Wikipedia info for that term.'
14
+ self.help = 'Use .wiki <term> to see the Wikipedia info for that term.'
14
15
 
15
- match /wiki (.*)/
16
- match /wikipedia (.*)/
16
+ match(/wiki(?:pedia)? (.*)/)
17
17
 
18
- def initialize(*args)
19
- super
20
- @max_length = config[:max_length] || 300
21
- end
18
+ def initialize(*args)
19
+ super
20
+ @max_length = config[:max_length] || 300
21
+ end
22
22
 
23
- def execute(m, term)
24
- m.reply wiki(term)
25
- end
23
+ def execute(m, term)
24
+ m.reply wiki(term)
25
+ end
26
26
 
27
- private
27
+ private
28
28
 
29
- def wiki(term)
30
- # URI Encode
31
- term = URI.escape(term, Regexp.new("[^#{URI::PATTERN::UNRESERVED}]"))
32
- url = "http://en.wikipedia.org/w/index.php?search=#{term}"
29
+ def wiki(term)
30
+ # URI Encode
31
+ term = URI.escape(term, Regexp.new("[^#{URI::PATTERN::UNRESERVED}]"))
32
+ url = "http://en.wikipedia.org/w/index.php?search=#{term}"
33
33
 
34
- # Truncate text and url if they are too long
35
- text = Cinch::Toolbox.truncate(get_def(term, url), @max_length)
36
- url = Cinch::Toolbox.shorten(url)
34
+ # Truncate text and url if they are too long
35
+ text = Cinch::Toolbox.truncate(get_def(term, url), @max_length)
36
+ url = Cinch::Toolbox.shorten(url)
37
37
 
38
- "Wikipedia ∴ #{text} [#{url}]"
39
- end
38
+ "Wikipedia ∴ #{text} [#{url}]"
39
+ end
40
40
 
41
- def get_def(term, url)
42
- cats = Cinch::Toolbox.get_html_element(url, '#mw-normal-catlinks')
43
- if cats && cats.include?('Disambiguation')
44
- wiki_text = "'#{term} is too vague and lead to a disambiguation page."
45
- else
46
- wiki_text = Cinch::Toolbox.get_html_element(url, '#mw-content-text p')
47
- if wiki_text.nil? || wiki_text.include?('Help:Searching')
48
- return not_found(wiki_text, url)
41
+ def get_def(term, url)
42
+ cats = Cinch::Toolbox.get_html_element(url, '#mw-normal-catlinks')
43
+ if cats && cats.include?('Disambiguation')
44
+ wiki_text = "'#{term} is too vague and lead to a disambiguation page."
45
+ else
46
+ wiki_text = Cinch::Toolbox.get_html_element(url, '#mw-content-text p')
47
+ if wiki_text.nil? || wiki_text.include?('Help:Searching')
48
+ return not_found(url)
49
+ end
49
50
  end
51
+ wiki_text
50
52
  end
51
- wiki_text
52
- end
53
53
 
54
- def not_found(wiki_text, url)
55
- msg = "I couldn't find anything for that search, "
56
- alt_term_text = Cinch::Toolbox.get_html_element(url, '.searchdidyoumean')
57
- if alt_term_text
58
- alt_term = alt_term_text[/\ADid you mean: (\w+)\z/, 1]
59
- msg << "did you mean '#{alt_term}'?"
60
- else
61
- msg << 'sorry!'
54
+ def not_found(url)
55
+ msg = "I couldn't find anything for that search, "
56
+ alt_term = Cinch::Toolbox.get_html_element(url, '.searchdidyoumean')
57
+ if alt_term
58
+ alt_term = alt_term[/\ADid you mean: (\w+)\z/, 1]
59
+ msg << "did you mean '#{alt_term}'?"
60
+ else
61
+ msg << 'sorry!'
62
+ end
63
+ msg
62
64
  end
63
- msg
64
65
  end
65
66
  end
66
67
  end
@@ -3,7 +3,7 @@ module Cinch
3
3
  module Plugins
4
4
  # Versioning information
5
5
  class Wikipedia
6
- VERSION = '1.0.3'
6
+ VERSION = '1.0.4'
7
7
  end
8
8
  end
9
9
  end
@@ -9,34 +9,41 @@ describe Cinch::Plugins::Wikipedia do
9
9
 
10
10
  # normal queries
11
11
  it 'should return a definition of a term' do
12
- get_replies(make_message(@bot, '!wiki computer')).first.text.
13
- should include("A computer is a general purpose device")
12
+ expect(get_replies(make_message(@bot, '!wiki computer')).first.text)
13
+ .to include("A computer is a general purpose device")
14
+ end
15
+
16
+ it 'should return a definition of a term for each version of cmd' do
17
+ msg1 = get_replies(make_message(@bot, '!wiki computer')).first.text
18
+ msg2 = get_replies(make_message(@bot, '!wikipedia computer')).first.text
19
+ expect(msg1).to eq(msg2)
14
20
  end
15
21
 
16
22
  it 'should not return multiple lined definitions' do
17
- get_replies(make_message(@bot, '!wiki Teenager')).first.text.
18
- should_not include("\n")
23
+ expect(get_replies(make_message(@bot, '!wiki Teenager')).first.text)
24
+ .to_not include("\n")
19
25
  end
20
26
 
21
27
  it 'should not return definitions that are longer than 250 chars' do
22
- get_replies(make_message(@bot, '!wiki Teenager')).first.text.length.
23
- should == 334
28
+ expect(get_replies(make_message(@bot, '!wiki Teenager')).first.text.length)
29
+ .to eq 334
24
30
  end
25
31
 
26
32
  # Not found
27
33
  it 'should return an error message when a term is not found' do
28
- get_replies(make_message(@bot, '!wiki dasdafasfasfasfasafsdfsdfsadf')).first.text.
29
- should include("I couldn't find anything for that search, sorry!")
34
+ msg = make_message(@bot, '!wiki dasdafasfasfasfasafsdfsdfsadf')
35
+ expect(get_replies(msg).first.text)
36
+ .to include("I couldn't find anything for that search, sorry!")
30
37
  end
31
38
 
32
39
  it 'should provide suggestions if one is listed on the page' do
33
- get_replies(make_message(@bot, '!wiki smegama')).first.text.
34
- should include("I couldn't find anything for that search, did you mean 'smegma'?")
40
+ expect(get_replies(make_message(@bot, '!wiki smegama')).first.text)
41
+ .to include("I couldn't find anything for that search, did you mean 'smegma'?")
35
42
  end
36
43
 
37
44
  # disambiguation
38
45
  it 'should return helful information when a disambuation page' do
39
- get_replies(make_message(@bot, '!wiki hacker')).first.text.
40
- should include('is too vague and lead to a disambiguation page')
46
+ expect(get_replies(make_message(@bot, '!wiki hacker')).first.text)
47
+ .to include('is too vague and lead to a disambiguation page')
41
48
  end
42
49
  end
metadata CHANGED
@@ -1,128 +1,125 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cinch-wikipedia
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
5
- prerelease:
4
+ version: 1.0.4
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-20 00:00:00.000000000 Z
11
+ date: 2014-08-04 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.0
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.0
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
- name: cinch-toolbox
90
+ name: cinch-cooldown
96
91
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
92
  requirements:
99
93
  - - ~>
100
94
  - !ruby/object:Gem::Version
101
- version: 1.1.0
95
+ version: '1.1'
96
+ - - ! '>='
97
+ - !ruby/object:Gem::Version
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
  - - ~>
108
104
  - !ruby/object:Gem::Version
109
- version: 1.1.0
105
+ version: '1.1'
106
+ - - ! '>='
107
+ - !ruby/object:Gem::Version
108
+ version: 1.1.1
110
109
  - !ruby/object:Gem::Dependency
111
- name: cinch-cooldown
110
+ name: cinch-toolbox
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.1
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.1
122
+ version: '1.1'
126
123
  description: Cinch plugin that fetches a truncated blurb from the head of a wikipedia
127
124
  page.
128
125
  email:
@@ -146,29 +143,27 @@ files:
146
143
  homepage: https://github.com/bhaberer/cinch-wikipedia
147
144
  licenses:
148
145
  - MIT
146
+ metadata: {}
149
147
  post_install_message:
150
148
  rdoc_options: []
151
149
  require_paths:
152
150
  - lib
153
151
  required_ruby_version: !ruby/object:Gem::Requirement
154
- none: false
155
152
  requirements:
156
153
  - - ! '>='
157
154
  - !ruby/object:Gem::Version
158
155
  version: '0'
159
156
  required_rubygems_version: !ruby/object:Gem::Requirement
160
- none: false
161
157
  requirements:
162
158
  - - ! '>='
163
159
  - !ruby/object:Gem::Version
164
160
  version: '0'
165
161
  requirements: []
166
162
  rubyforge_project:
167
- rubygems_version: 1.8.25
163
+ rubygems_version: 2.2.2
168
164
  signing_key:
169
- specification_version: 3
165
+ specification_version: 4
170
166
  summary: Cinch Wikipedia Plugin
171
167
  test_files:
172
168
  - spec/cinch-wikipedia_spec.rb
173
169
  - spec/spec_helper.rb
174
- has_rdoc: