lita-google-images 0.0.2 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 59e837926f13c2f72258cadd4d8d470245d1fde9
4
- data.tar.gz: c9eac5032a52ec69a82e31a714dbbd7bac2ddd6f
3
+ metadata.gz: 4fac06aeba1ac09047a0c7307451dc796ea991eb
4
+ data.tar.gz: 98f0683b9b18b2586c0309bf6f085522d1112848
5
5
  SHA512:
6
- metadata.gz: 1a06cda07b0d9d71380d8f9c996d92f3318f86fd7fcd089c344f260c343608d9c850a1f0ac2ef810220caaf9eefbdf252e8eae9575b807458f988d6cab53e4c5
7
- data.tar.gz: 613ae9819e9ce3bf14bde247297e2eaa6ef34bca57d18d8c66685c6f84b9de3bdab8366dee8dca8c15ba5421d447a8b48ebfae137b5bdbcd5359d9a1dc61e6cb
6
+ metadata.gz: a898432e90044e6129411b7fcb79ccc1f36c78cd73ab8a4085d43793e4fee0755d8d84ac4e013804ae0085f43ab5251bedb445e7fe99e7a5f57229b7b661bcfc
7
+ data.tar.gz: 65eec2f6975e994aac9e9b71efb8b576e9da7f00cca265efb052faab5308aa38d6e02b908f3e3d3676e89def03ed2a3538ed53ac8066186c44daf9693c38f429
data/README.md CHANGED
@@ -16,11 +16,15 @@ gem "lita-google-images"
16
16
 
17
17
  ## Configuration
18
18
 
19
- Set `safe_search` to `false` if you want to allow explicit images. (Default is `true`.)
19
+ ### Optional attributes
20
+
21
+ * `safe_search` (String, Symbol) - The safe search setting to use when querying for images. Possible values are `:active`, `:moderate`, and `:off`. Default: `:active`.
22
+
23
+ ### Example
20
24
 
21
25
  ```
22
26
  Lita.configure do |config|
23
- config.handlers.google_images.safe_search = false
27
+ config.handlers.google_images.safe_search = :off
24
28
  end
25
29
  ```
26
30
 
@@ -1,27 +1,22 @@
1
1
  require "lita"
2
2
 
3
- require "multi_json"
4
- require "faraday"
5
-
6
3
  module Lita
7
4
  module Handlers
8
5
  class GoogleImages < Handler
9
- def self.help
10
- name = Lita.config.robot.mention_name || Lita.config.robot.name
11
-
12
- {
13
- "#{name}: image QUERY" => "Displays a random image from Google Images matching the query."
14
- }
15
- end
16
-
17
6
  URL = "https://ajax.googleapis.com/ajax/services/search/images"
18
7
 
19
- route(/(?:image|img)(?:\s+me)? (.+)/, to: :fetch)
8
+ route(/(?:image|img)(?:\s+me)? (.+)/, :fetch, command: true, help: {
9
+ "image QUERY" => "Displays a random image from Google Images matching the query."
10
+ })
11
+
12
+ def self.default_config(handler_config)
13
+ handler_config.safe_search = :active
14
+ end
20
15
 
21
- def fetch(matches)
22
- query = matches[0][0]
16
+ def fetch(response)
17
+ query = response.matches[0][0]
23
18
 
24
- response = Faraday.get(
19
+ http_response = http.get(
25
20
  URL,
26
21
  v: "1.0",
27
22
  q: query,
@@ -29,11 +24,11 @@ module Lita
29
24
  rsz: 8
30
25
  )
31
26
 
32
- data = MultiJson.load(response.body)
27
+ data = MultiJson.load(http_response.body)
33
28
 
34
29
  if data["responseStatus"] == 200
35
30
  choice = data["responseData"]["results"].sample
36
- reply "#{choice["unescapedUrl"]}#.png"
31
+ response.reply "#{choice["unescapedUrl"]}#.png"
37
32
  else
38
33
  reason = data["responseDetails"] || "unknown error"
39
34
  Lita.logger.warn(
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |spec|
2
2
  spec.name = "lita-google-images"
3
- spec.version = "0.0.2"
3
+ spec.version = "1.0.0"
4
4
  spec.authors = ["Jimmy Cuadra"]
5
5
  spec.email = ["jimmy@jimmycuadra.com"]
6
6
  spec.description = %q{A Lita handler for fetching images from Google.}
@@ -13,9 +13,7 @@ Gem::Specification.new do |spec|
13
13
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
14
14
  spec.require_paths = ["lib"]
15
15
 
16
- spec.add_runtime_dependency "lita", "~> 1.0"
17
- spec.add_runtime_dependency "multi_json", "~> 1.7"
18
- spec.add_runtime_dependency "faraday", "~> 0.8"
16
+ spec.add_runtime_dependency "lita", "~> 2.0"
19
17
 
20
18
  spec.add_development_dependency "bundler", "~> 1.3"
21
19
  spec.add_development_dependency "rake"
@@ -1,21 +1,19 @@
1
1
  require "spec_helper"
2
2
 
3
- describe Lita::Handlers::GoogleImages, lita: true do
4
- it { routes("#{robot.name}: image me foo").to(:fetch) }
5
- it { routes("#{robot.name}: image foo").to(:fetch) }
6
- it { routes("#{robot.name}: img foo").to(:fetch) }
7
- it { routes("#{robot.name}: img me foo").to(:fetch) }
8
-
9
- describe ".help" do
10
- it "returns a hash of command help" do
11
- expect(described_class.help).to be_a(Hash)
12
- end
13
- end
3
+ describe Lita::Handlers::GoogleImages, lita_handler: true do
4
+ it { routes_command("image me foo").to(:fetch) }
5
+ it { routes_command("image foo").to(:fetch) }
6
+ it { routes_command("img foo").to(:fetch) }
7
+ it { routes_command("img me foo").to(:fetch) }
14
8
 
15
9
  describe "#foo" do
16
10
  let(:response) { double("Faraday::Response") }
17
11
 
18
- before { allow(Faraday).to receive(:get).and_return(response) }
12
+ before do
13
+ allow_any_instance_of(
14
+ Faraday::Connection
15
+ ).to receive(:get).and_return(response)
16
+ end
19
17
 
20
18
  it "replies with a matching image URL on success" do
21
19
  allow(response).to receive(:body).and_return(<<-JSON.chomp
@@ -31,8 +29,10 @@ describe Lita::Handlers::GoogleImages, lita: true do
31
29
  }
32
30
  JSON
33
31
  )
34
- expect_reply("http://www.example.com/path/to/an/image.jpg#.png")
35
- send_test_message("Lita: image carl")
32
+ send_command("image carl")
33
+ expect(replies.last).to eq(
34
+ "http://www.example.com/path/to/an/image.jpg#.png"
35
+ )
36
36
  end
37
37
 
38
38
  it "logs a warning on failure" do
@@ -43,9 +43,9 @@ JSON
43
43
  }
44
44
  JSON
45
45
  )
46
- expect_no_reply
47
46
  expect(Lita.logger).to receive(:warn).with(/google fail/)
48
- send_test_message("Lita: image carl")
47
+ send_command("image carl")
48
+ expect(replies).to be_empty
49
49
  end
50
50
  end
51
51
  end
@@ -4,7 +4,7 @@ SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
4
4
  SimpleCov::Formatter::HTMLFormatter,
5
5
  Coveralls::SimpleCov::Formatter
6
6
  ]
7
- SimpleCov.start
7
+ SimpleCov.start { add_filter "/spec/" }
8
8
 
9
9
  require "lita-google-images"
10
10
  require "lita/rspec"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lita-google-images
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jimmy Cuadra
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-06-24 00:00:00.000000000 Z
11
+ date: 2013-07-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: lita
@@ -16,42 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ~>
18
18
  - !ruby/object:Gem::Version
19
- version: '1.0'
19
+ version: '2.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ~>
25
25
  - !ruby/object:Gem::Version
26
- version: '1.0'
27
- - !ruby/object:Gem::Dependency
28
- name: multi_json
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ~>
32
- - !ruby/object:Gem::Version
33
- version: '1.7'
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ~>
39
- - !ruby/object:Gem::Version
40
- version: '1.7'
41
- - !ruby/object:Gem::Dependency
42
- name: faraday
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ~>
46
- - !ruby/object:Gem::Version
47
- version: '0.8'
48
- type: :runtime
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - ~>
53
- - !ruby/object:Gem::Version
54
- version: '0.8'
26
+ version: '2.0'
55
27
  - !ruby/object:Gem::Dependency
56
28
  name: bundler
57
29
  requirement: !ruby/object:Gem::Requirement
@@ -131,7 +103,6 @@ extra_rdoc_files: []
131
103
  files:
132
104
  - .gitignore
133
105
  - .travis.yml
134
- - CHANGELOG.md
135
106
  - Gemfile
136
107
  - README.md
137
108
  - Rakefile
@@ -1,9 +0,0 @@
1
- # Changelog
2
-
3
- ## 0.0.2 (June 23, 2013)
4
-
5
- * Added command help.
6
-
7
- ## 0.0.1 (June 22, 2013)
8
-
9
- Initial release.