lita-google-images 0.0.2 → 1.0.0

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