webpurify 0.7.0 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (31) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +60 -5
  3. data/lib/web_purify/client.rb +14 -3
  4. data/lib/web_purify/constants.rb +17 -6
  5. data/lib/web_purify/methods/blacklist.rb +3 -3
  6. data/lib/web_purify/methods/image_filters.rb +50 -0
  7. data/lib/web_purify/methods/{filters.rb → text_filters.rb} +8 -8
  8. data/lib/web_purify/methods/whitelist.rb +3 -3
  9. data/lib/web_purify/version.rb +1 -1
  10. data/spec/fixtures/vcr/WebPurify_ImageFilters/imgaccount/returns_the_number_of_image_submissions_remaining.yml +38 -0
  11. data/spec/fixtures/vcr/WebPurify_ImageFilters/imgcheck/returns_an_image_ID.yml +38 -0
  12. data/spec/fixtures/vcr/WebPurify_ImageFilters/imgstatus/returns_the_status_of_image_moderation.yml +74 -0
  13. data/spec/fixtures/vcr/{WebPurify_Filters → WebPurify_TextFilters}/check/safe_text_returns_false.yml +0 -0
  14. data/spec/fixtures/vcr/{WebPurify_Filters → WebPurify_TextFilters}/check/text_with_a_URL_returns_false_by_default.yml +0 -0
  15. data/spec/fixtures/vcr/{WebPurify_Filters → WebPurify_TextFilters}/check/text_with_a_URL_when_URLs_are_prohibited_returns_true.yml +0 -0
  16. data/spec/fixtures/vcr/{WebPurify_Filters → WebPurify_TextFilters}/check/text_with_a_phone_number_returns_false_by_default.yml +0 -0
  17. data/spec/fixtures/vcr/{WebPurify_Filters → WebPurify_TextFilters}/check/text_with_a_phone_number_when_phone_numbers_are_prohibited_returns_true.yml +0 -0
  18. data/spec/fixtures/vcr/{WebPurify_Filters → WebPurify_TextFilters}/check/text_with_an_email_returns_false_by_default.yml +0 -0
  19. data/spec/fixtures/vcr/{WebPurify_Filters → WebPurify_TextFilters}/check/text_with_an_email_when_emails_are_prohibited_returns_true.yml +0 -0
  20. data/spec/fixtures/vcr/{WebPurify_Filters → WebPurify_TextFilters}/check/text_with_profanity_returns_true.yml +0 -0
  21. data/spec/fixtures/vcr/{WebPurify_Filters → WebPurify_TextFilters}/check_count/no_profanities_returns_0.yml +0 -0
  22. data/spec/fixtures/vcr/{WebPurify_Filters → WebPurify_TextFilters}/check_count/one_profanity_returns_1.yml +0 -0
  23. data/spec/fixtures/vcr/{WebPurify_Filters → WebPurify_TextFilters}/check_count/two_profanities_returns_2.yml +0 -0
  24. data/spec/fixtures/vcr/{WebPurify_Filters → WebPurify_TextFilters}/replace/safe_text_returns_the_text_with_no_changes.yml +0 -0
  25. data/spec/fixtures/vcr/{WebPurify_Filters → WebPurify_TextFilters}/replace/text_with_profanity_returns_the_text_with_profanities_replaced_by_symbols.yml +0 -0
  26. data/spec/fixtures/vcr/{WebPurify_Filters → WebPurify_TextFilters}/return/no_profanities_returns_an_empty_array.yml +0 -0
  27. data/spec/fixtures/vcr/{WebPurify_Filters → WebPurify_TextFilters}/return/one_profanity_returns_an_array_with_one_profanity.yml +0 -0
  28. data/spec/fixtures/vcr/{WebPurify_Filters → WebPurify_TextFilters}/return/two_profanities_returns_an_array_with_two_profanities.yml +0 -0
  29. data/spec/web_purify/methods/image_filters_spec.rb +34 -0
  30. data/spec/web_purify/methods/{filters_spec.rb → text_filters_spec.rb} +4 -4
  31. metadata +45 -36
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f44313e4a832d95a9949fb6545dfdcaa23039353
4
- data.tar.gz: 229427f973bfe390c5da33d5f17a2097a180c09c
3
+ metadata.gz: 2fd086c28b2e5acdf35f54cb703a2b2bb453ab10
4
+ data.tar.gz: 2008c40dcc8288ce9e068bbd0d85e6d704549374
5
5
  SHA512:
6
- metadata.gz: 8e1cbe1fd09fbd8f6f2a912530ae2b47b67de9dea20f0d3e6a941234abc2d9577e659ffe5c6ff79be22488bddb3f0f1f059b3a67edf279244480e6eb96652864
7
- data.tar.gz: cbb20a28de8a62527cb99b9d23db16c6173f8ca4075a8c7f6b5fb19d134759e3909366ad93d3f9eeb49e9fecc4261e416ce3e2fc34e6e05a6b700f1e0cb6872f
6
+ metadata.gz: af01d847c4111e7c689ac36e28eb9f6aa0b39d63818902efe76f795c27cb5f0658954a7252c4989cd89e3076c1aaf561ca88ec64811ab3dbf837dd7b06f4c5dc
7
+ data.tar.gz: 811034a673516c955ee8db32fa3ae0742536be98378ef4b4d4f97f87dd94c6e14e340c67cad6c71c36636e73b883c5bb93e669c7dc2ff80344e0f1da5d74c61d
data/README.md CHANGED
@@ -6,7 +6,7 @@ This gem allows simple interaction with the WebPurify API using Ruby. For more i
6
6
 
7
7
  ### Commands
8
8
 
9
- ##### Filters
9
+ ##### Text Filters
10
10
  * [check](#check)
11
11
  * [check_count](#check_count)
12
12
  * [replace](#replace)
@@ -22,6 +22,11 @@ This gem allows simple interaction with the WebPurify API using Ruby. For more i
22
22
  * [remove_from_whitelist](#remove_from_whitelist)
23
23
  * [get_whitelist](#get_whitelist)
24
24
 
25
+ ##### Image Filters
26
+ * [imgcheck](#imgcheck)
27
+ * [imgstatus](#imgstatus)
28
+ * [imgaccount](#imgaccount)
29
+
25
30
 
26
31
  Install & Initialize
27
32
  --------------------
@@ -55,7 +60,6 @@ Commands
55
60
 
56
61
  <a name="check" />
57
62
  ### check
58
-
59
63
  Check a string of text for profanity. Returns true if profanity found, false if none.
60
64
 
61
65
  ```rb
@@ -65,7 +69,6 @@ puts @wp.check('some profane text')
65
69
 
66
70
  <a name="check_count" />
67
71
  ### check_count
68
-
69
72
  Check a string of text for profanity. Returns number of words if profanity found, 0 if none.
70
73
 
71
74
  ```rb
@@ -91,8 +94,8 @@ p @wp.return('profane text')
91
94
  ```
92
95
 
93
96
 
94
- ### Options
95
- All filter commands can take an additional options object, just before the callback. The available options are:
97
+ ### Text Filter Options
98
+ All text filter commands can take an additional options object, just before the callback. The available options are:
96
99
 
97
100
  ```rb
98
101
  options = {
@@ -165,6 +168,58 @@ Get the whitelist as an array of words.
165
168
  p @wp.get_whitelist
166
169
  ```
167
170
 
171
+
172
+ <a name="imgcheck" />
173
+ ### imgcheck
174
+ Submit an image to the moderation service. Returns an image ID that is used to return the results of the moderation to a callback function.
175
+
176
+ ```rb
177
+ puts @wp.imgcheck(imgurl)
178
+ ```
179
+
180
+
181
+ ### imgcheck Options
182
+ imgcheck can take an additional options object. The available options are:
183
+
184
+ ```rb
185
+ options = {
186
+ customimgid: 1 # Custom ID that will be associated with the image
187
+ callback: url # Callback URL that will receive a GET request once the image has been moderated
188
+ }
189
+
190
+ puts @wp.imgcheck(imgurl, options)
191
+ ```
192
+
193
+
194
+ <a name="imgstatus" />
195
+ ### imgstatus
196
+ Check the moderation status of an image. Returns one of the following strings: pending, approved, declined.
197
+
198
+ ```rb
199
+ puts @wp.imgstatus(imgid)
200
+ ```
201
+
202
+
203
+ ### imgstatus Options
204
+ imgstatus can take an additional options object. The available options are:
205
+
206
+ ```rb
207
+ options = {
208
+ customimgid: 1 # Custom ID that is associated with the image
209
+ }
210
+
211
+ puts @wp.imgstatus(imgid, options)
212
+ ```
213
+
214
+
215
+ <a name="imgaccount" />
216
+ ### imgaccount
217
+ Check the number of image submissions remaining on your license. Returns an integer.
218
+
219
+ ```rb
220
+ p @wp.imgaccount
221
+ ```
222
+
168
223
  ## To-do:
169
224
  * Handle error responses
170
225
  * Tests
@@ -1,15 +1,17 @@
1
- require_relative 'methods/filters'
1
+ require_relative 'methods/text_filters'
2
2
  require_relative 'methods/blacklist'
3
3
  require_relative 'methods/whitelist'
4
+ require_relative 'methods/image_filters'
4
5
 
5
6
  # WebPurify::Client
6
7
  #
7
8
  # The WebPurify::Client class maintains state of the request parameters like api_key, endpoint, etc.,
8
9
  # and provides easy methods for accessing WebPurify
9
10
  class WebPurify::Client
10
- include WebPurify::Filters
11
+ include WebPurify::TextFilters
11
12
  include WebPurify::Blacklist
12
13
  include WebPurify::Whitelist
14
+ include WebPurify::ImageFilters
13
15
 
14
16
  # Initialize the class
15
17
  #
@@ -26,7 +28,7 @@ class WebPurify::Client
26
28
  end
27
29
 
28
30
  @request_base = {
29
- :host => WebPurify::Constants.endpoints[@endpoint],
31
+ :host => WebPurify::Constants.text_endpoints.fetch(@endpoint),
30
32
  :path => WebPurify::Constants.rest_path,
31
33
  :scheme => WebPurify::Constants.scheme(@enterprise)
32
34
  }
@@ -36,4 +38,13 @@ class WebPurify::Client
36
38
  :format => WebPurify::Constants.format
37
39
  }
38
40
  end
41
+
42
+ def text_request_base
43
+ @request_base
44
+ end
45
+
46
+ def image_request_base
47
+ @request_base.merge(:host => WebPurify::Constants.image_endpoint)
48
+ end
49
+
39
50
  end
@@ -5,18 +5,26 @@ module WebPurify
5
5
  # WebPurify::Constants holds all the static variables used to access the API.
6
6
  module Constants
7
7
 
8
- # The various endpoints to access the API
8
+ # The endpoints for the text moderation service
9
9
  #
10
- # @return [Hash] A hash of the endpoints
11
- def self.endpoints
10
+ # @return [Hash] A hash of endpoints
11
+ def self.text_endpoints
12
12
  return {
13
13
  :us => 'api1.webpurify.com',
14
14
  :eu => 'api1-eu.webpurify.com',
15
15
  :ap => 'api1-ap.webpurify.com'
16
16
  }
17
17
  end
18
-
19
-
18
+
19
+
20
+ # The endpoint for the image moderation service
21
+ #
22
+ # @return [String] The endpoint
23
+ def self.image_endpoint
24
+ return 'im-api1.webpurify.com'
25
+ end
26
+
27
+
20
28
  # Path appended to the endpoint URI
21
29
  #
22
30
  # @return [String] The rest path
@@ -57,7 +65,10 @@ module WebPurify
57
65
  :remove_from_blacklist => 'webpurify.live.removefromblacklist',
58
66
  :remove_from_whitelist => 'webpurify.live.removefromwhitelist',
59
67
  :get_blacklist => 'webpurify.live.getblacklist',
60
- :get_whitelist => 'webpurify.live.getwhitelist'
68
+ :get_whitelist => 'webpurify.live.getwhitelist',
69
+ :imgcheck => 'webpurify.live.imgcheck',
70
+ :imgstatus => 'webpurify.live.imgstatus',
71
+ :imgaccount => 'webpurify.live.imgaccount'
61
72
  }
62
73
  end
63
74
 
@@ -16,7 +16,7 @@ module WebPurify
16
16
  :word => word,
17
17
  :ds => deep_search
18
18
  }
19
- parsed = WebPurify::Request.query(@request_base, @query_base, params)
19
+ parsed = WebPurify::Request.query(text_request_base, @query_base, params)
20
20
  return parsed[:success]=='1'
21
21
  end
22
22
 
@@ -30,7 +30,7 @@ module WebPurify
30
30
  :method => WebPurify::Constants.methods[:remove_from_blacklist],
31
31
  :word => word
32
32
  }
33
- parsed = WebPurify::Request.query(@request_base, @query_base, params)
33
+ parsed = WebPurify::Request.query(text_request_base, @query_base, params)
34
34
  return parsed[:success]=='1'
35
35
  end
36
36
 
@@ -42,7 +42,7 @@ module WebPurify
42
42
  params = {
43
43
  :method => WebPurify::Constants.methods[:get_blacklist]
44
44
  }
45
- parsed = WebPurify::Request.query(@request_base, @query_base, params)
45
+ parsed = WebPurify::Request.query(text_request_base, @query_base, params)
46
46
  if parsed[:word]
47
47
  return [] << parsed[:word]
48
48
  else
@@ -0,0 +1,50 @@
1
+ module WebPurify
2
+
3
+ # WebPurify::ImageFilters
4
+ #
5
+ # Handles methods related to determining/filtering prohibited image content
6
+ module ImageFilters
7
+
8
+ # Check for existence of prohibited image content
9
+ #
10
+ # @param imgurl [String] URL of the image to be moderated
11
+ # @param options [Hash] Options hash, used to set additional parameters
12
+ # @return [String] Image ID that is used to return results to the callback function
13
+ def imgcheck(imgurl, options={})
14
+ params = {
15
+ :method => WebPurify::Constants.methods[:imgcheck],
16
+ :imgurl => imgurl
17
+ }
18
+ parsed = WebPurify::Request.query(image_request_base, @query_base, params.merge(options))
19
+ return parsed[:imgid]
20
+ end
21
+
22
+
23
+ # Return status of image moderation
24
+ #
25
+ # @param imgid [String] ID of the image being moderated
26
+ # @param options [Hash] Options hash, used to set additional parameters
27
+ # @return [String] Status of image moderation
28
+ def imgstatus(imgid, options={})
29
+ params = {
30
+ :method => WebPurify::Constants.methods[:imgstatus],
31
+ :imgid => imgid
32
+ }
33
+ parsed = WebPurify::Request.query(image_request_base, @query_base, params.merge(options))
34
+ return parsed[:status]
35
+ end
36
+
37
+
38
+ # Return number of image submissions remaining on license
39
+ #
40
+ # @return [Integer] Number of image submissions remaining
41
+ def imgaccount
42
+ params = {
43
+ :method => WebPurify::Constants.methods[:imgaccount]
44
+ }
45
+ parsed = WebPurify::Request.query(image_request_base, @query_base, params)
46
+ return parsed[:remaining].to_i
47
+ end
48
+
49
+ end
50
+ end
@@ -1,9 +1,9 @@
1
1
  module WebPurify
2
2
 
3
- # WebPurify::Filters
3
+ # WebPurify::TextFilters
4
4
  #
5
5
  # Handles methods related to determining/filtering profane text
6
- module Filters
6
+ module TextFilters
7
7
 
8
8
  # Check for existence of profanity
9
9
  #
@@ -15,7 +15,7 @@ module WebPurify
15
15
  :method => WebPurify::Constants.methods[:check],
16
16
  :text => text
17
17
  }
18
- parsed = WebPurify::Request.query(@request_base, @query_base, params.merge(options))
18
+ parsed = WebPurify::Request.query(text_request_base, @query_base, params.merge(options))
19
19
  return parsed[:found]=='1'
20
20
  end
21
21
 
@@ -30,7 +30,7 @@ module WebPurify
30
30
  :method => WebPurify::Constants.methods[:check_count],
31
31
  :text => text
32
32
  }
33
- parsed = WebPurify::Request.query(@request_base, @query_base, params.merge(options))
33
+ parsed = WebPurify::Request.query(text_request_base, @query_base, params.merge(options))
34
34
  return parsed[:found].to_i
35
35
  end
36
36
 
@@ -43,11 +43,11 @@ module WebPurify
43
43
  # @return [String] The original text, replaced with the provided symbol
44
44
  def replace(text, symbol, options={})
45
45
  params = {
46
- :method => WebPurify::Constants.methods[:replace],
47
- :text => text,
46
+ :method => WebPurify::Constants.methods[:replace],
47
+ :text => text,
48
48
  :replacesymbol => symbol
49
49
  }
50
- parsed = WebPurify::Request.query(@request_base, @query_base, params.merge(options))
50
+ parsed = WebPurify::Request.query(text_request_base, @query_base, params.merge(options))
51
51
  return parsed[:text]
52
52
  end
53
53
 
@@ -62,7 +62,7 @@ module WebPurify
62
62
  :method => WebPurify::Constants.methods[:return],
63
63
  :text => text
64
64
  }
65
- parsed = WebPurify::Request.query(@request_base, @query_base, params.merge(options))
65
+ parsed = WebPurify::Request.query(text_request_base, @query_base, params.merge(options))
66
66
  if parsed[:expletive].is_a?(String)
67
67
  return [] << parsed[:expletive]
68
68
  else
@@ -14,7 +14,7 @@ module WebPurify
14
14
  :method => WebPurify::Constants.methods[:add_to_whitelist],
15
15
  :word => word
16
16
  }
17
- parsed = WebPurify::Request.query(@request_base, @query_base, params)
17
+ parsed = WebPurify::Request.query(text_request_base, @query_base, params)
18
18
  return parsed[:success]=='1'
19
19
  end
20
20
 
@@ -28,7 +28,7 @@ module WebPurify
28
28
  :method => WebPurify::Constants.methods[:remove_from_whitelist],
29
29
  :word => word
30
30
  }
31
- parsed = WebPurify::Request.query(@request_base, @query_base, params)
31
+ parsed = WebPurify::Request.query(text_request_base, @query_base, params)
32
32
  return parsed[:success]=='1'
33
33
  end
34
34
 
@@ -40,7 +40,7 @@ module WebPurify
40
40
  params = {
41
41
  :method => WebPurify::Constants.methods[:get_whitelist]
42
42
  }
43
- parsed = WebPurify::Request.query(@request_base, @query_base, params)
43
+ parsed = WebPurify::Request.query(text_request_base, @query_base, params)
44
44
  if parsed[:word]
45
45
  return [] << parsed[:word]
46
46
  else
@@ -1,3 +1,3 @@
1
1
  module WebPurify
2
- VERSION = "0.7.0"
2
+ VERSION = "0.8.0"
3
3
  end
@@ -0,0 +1,38 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://im-api1.webpurify.com/services/rest/?api_key=<WEBPURIFY_API_KEY>&format=json&method=webpurify.live.imgaccount
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept-Encoding:
11
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
+ Accept:
13
+ - "*/*"
14
+ User-Agent:
15
+ - Ruby
16
+ Host:
17
+ - im-api1.webpurify.com
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Server:
24
+ - nginx
25
+ Date:
26
+ - Tue, 28 Apr 2015 21:55:34 GMT
27
+ Content-Type:
28
+ - 'application/json; charset: utf-8'
29
+ Transfer-Encoding:
30
+ - chunked
31
+ Connection:
32
+ - keep-alive
33
+ body:
34
+ encoding: UTF-8
35
+ string: '{"rsp":{"@attributes":{"stat":"ok"},"method":"webpurify.live.imgaccount","format":"rest","remaining":"96","api_key":"<WEBPURIFY_API_KEY>"}}'
36
+ http_version:
37
+ recorded_at: Tue, 28 Apr 2015 21:55:04 GMT
38
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,38 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://im-api1.webpurify.com/services/rest/?api_key=<WEBPURIFY_API_KEY>&format=json&imgurl=http://www.example.com/test.jpg&method=webpurify.live.imgcheck
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept-Encoding:
11
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
+ Accept:
13
+ - "*/*"
14
+ User-Agent:
15
+ - Ruby
16
+ Host:
17
+ - im-api1.webpurify.com
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Server:
24
+ - nginx
25
+ Date:
26
+ - Tue, 28 Apr 2015 20:13:38 GMT
27
+ Content-Type:
28
+ - 'application/json; charset: utf-8'
29
+ Transfer-Encoding:
30
+ - chunked
31
+ Connection:
32
+ - keep-alive
33
+ body:
34
+ encoding: UTF-8
35
+ string: '{"rsp":{"@attributes":{"stat":"ok"},"method":"webpurify.live.imgcheck","format":"rest","imgid":"a1c9800a4f4a27dd88055fa7529d5101","status":"pending","api_key":"<WEBPURIFY_API_KEY>"}}'
36
+ http_version:
37
+ recorded_at: Tue, 28 Apr 2015 20:13:08 GMT
38
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,74 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://im-api1.webpurify.com/services/rest/?api_key=<WEBPURIFY_API_KEY>&format=json&imgurl=http://www.example.com/test.jpg&method=webpurify.live.imgcheck
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept-Encoding:
11
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
+ Accept:
13
+ - "*/*"
14
+ User-Agent:
15
+ - Ruby
16
+ Host:
17
+ - im-api1.webpurify.com
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Server:
24
+ - nginx
25
+ Date:
26
+ - Tue, 28 Apr 2015 21:46:03 GMT
27
+ Content-Type:
28
+ - 'application/json; charset: utf-8'
29
+ Transfer-Encoding:
30
+ - chunked
31
+ Connection:
32
+ - keep-alive
33
+ body:
34
+ encoding: UTF-8
35
+ string: '{"rsp":{"@attributes":{"stat":"ok"},"method":"webpurify.live.imgcheck","format":"rest","imgid":"d334790fbc44e4b1d95a4fdbeb2f9d6f","status":"pending","api_key":"<WEBPURIFY_API_KEY>"}}'
36
+ http_version:
37
+ recorded_at: Tue, 28 Apr 2015 21:45:33 GMT
38
+ - request:
39
+ method: get
40
+ uri: http://im-api1.webpurify.com/services/rest/?api_key=<WEBPURIFY_API_KEY>&format=json&imgid=d334790fbc44e4b1d95a4fdbeb2f9d6f&method=webpurify.live.imgstatus
41
+ body:
42
+ encoding: US-ASCII
43
+ string: ''
44
+ headers:
45
+ Accept-Encoding:
46
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
47
+ Accept:
48
+ - "*/*"
49
+ User-Agent:
50
+ - Ruby
51
+ Host:
52
+ - im-api1.webpurify.com
53
+ response:
54
+ status:
55
+ code: 200
56
+ message: OK
57
+ headers:
58
+ Server:
59
+ - nginx
60
+ Date:
61
+ - Tue, 28 Apr 2015 21:46:03 GMT
62
+ Content-Type:
63
+ - 'application/json; charset: utf-8'
64
+ Transfer-Encoding:
65
+ - chunked
66
+ Connection:
67
+ - keep-alive
68
+ body:
69
+ encoding: UTF-8
70
+ string: '{"rsp":{"@attributes":{"stat":"ok"},"method":"webpurify.live.imgstatus","format":"rest","imgid":"d334790fbc44e4b1d95a4fdbeb2f9d6f","sdate":"2015-04-28
71
+ 14:46:27","mdate":"","status":"pending","api_key":"<WEBPURIFY_API_KEY>"}}'
72
+ http_version:
73
+ recorded_at: Tue, 28 Apr 2015 21:45:33 GMT
74
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,34 @@
1
+ require 'spec_helper'
2
+
3
+ describe WebPurify::ImageFilters, "#imgcheck", vcr: true do
4
+ let(:client) { WebPurify::Client.new(api_key: ENV["WEBPURIFY_API_KEY"], service: :image) }
5
+ let(:imgurl) { "http://www.example.com/test.jpg" }
6
+ subject { client.imgcheck(imgurl) }
7
+
8
+ it "returns an image ID" do
9
+ expect(subject).to be_instance_of(String)
10
+ end
11
+
12
+ end
13
+
14
+ describe WebPurify::ImageFilters, "#imgstatus", vcr: true do
15
+ let(:client) { WebPurify::Client.new(api_key: ENV["WEBPURIFY_API_KEY"], service: :image) }
16
+ let(:imgurl) { "http://www.example.com/test.jpg" }
17
+ let(:imgid) { client.imgcheck(imgurl) }
18
+ subject { client.imgstatus(imgid) }
19
+
20
+ it "returns the status of image moderation" do
21
+ expect(subject).to eq("pending")
22
+ end
23
+
24
+ end
25
+
26
+ describe WebPurify::ImageFilters, "#imgaccount", vcr: true do
27
+ let(:client) { WebPurify::Client.new(api_key: ENV["WEBPURIFY_API_KEY"], service: :image) }
28
+ subject { client.imgaccount }
29
+
30
+ it "returns the number of image submissions remaining" do
31
+ expect(subject).to be_kind_of(Integer)
32
+ end
33
+
34
+ end
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe WebPurify::Filters, "#check", vcr: true do
3
+ describe WebPurify::TextFilters, "#check", vcr: true do
4
4
  let(:client) { WebPurify::Client.new(ENV["WEBPURIFY_API_KEY"]) }
5
5
  let(:options) { {} }
6
6
  subject { client.check(text, options) }
@@ -71,7 +71,7 @@ describe WebPurify::Filters, "#check", vcr: true do
71
71
 
72
72
  end
73
73
 
74
- describe WebPurify::Filters, "#check_count", vcr: true do
74
+ describe WebPurify::TextFilters, "#check_count", vcr: true do
75
75
  let(:client) { WebPurify::Client.new(ENV["WEBPURIFY_API_KEY"]) }
76
76
  subject { client.check_count(text) }
77
77
 
@@ -101,7 +101,7 @@ describe WebPurify::Filters, "#check_count", vcr: true do
101
101
 
102
102
  end
103
103
 
104
- describe WebPurify::Filters, "#replace", vcr: true do
104
+ describe WebPurify::TextFilters, "#replace", vcr: true do
105
105
  let(:client) { WebPurify::Client.new(ENV["WEBPURIFY_API_KEY"]) }
106
106
  subject { client.replace(text, "*") }
107
107
 
@@ -123,7 +123,7 @@ describe WebPurify::Filters, "#replace", vcr: true do
123
123
 
124
124
  end
125
125
 
126
- describe WebPurify::Filters, "#return", vcr: true do
126
+ describe WebPurify::TextFilters, "#return", vcr: true do
127
127
  let(:client) { WebPurify::Client.new(ENV["WEBPURIFY_API_KEY"]) }
128
128
  subject { client.return(text) }
129
129
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: webpurify
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Miles Zimmerman
@@ -80,29 +80,34 @@ files:
80
80
  - lib/web_purify/client.rb
81
81
  - lib/web_purify/constants.rb
82
82
  - lib/web_purify/methods/blacklist.rb
83
- - lib/web_purify/methods/filters.rb
83
+ - lib/web_purify/methods/image_filters.rb
84
+ - lib/web_purify/methods/text_filters.rb
84
85
  - lib/web_purify/methods/whitelist.rb
85
86
  - lib/web_purify/request.rb
86
87
  - lib/web_purify/version.rb
87
- - spec/fixtures/vcr/WebPurify_Filters/check/safe_text_returns_false.yml
88
- - spec/fixtures/vcr/WebPurify_Filters/check/text_with_a_URL_returns_false_by_default.yml
89
- - spec/fixtures/vcr/WebPurify_Filters/check/text_with_a_URL_when_URLs_are_prohibited_returns_true.yml
90
- - spec/fixtures/vcr/WebPurify_Filters/check/text_with_a_phone_number_returns_false_by_default.yml
91
- - spec/fixtures/vcr/WebPurify_Filters/check/text_with_a_phone_number_when_phone_numbers_are_prohibited_returns_true.yml
92
- - spec/fixtures/vcr/WebPurify_Filters/check/text_with_an_email_returns_false_by_default.yml
93
- - spec/fixtures/vcr/WebPurify_Filters/check/text_with_an_email_when_emails_are_prohibited_returns_true.yml
94
- - spec/fixtures/vcr/WebPurify_Filters/check/text_with_profanity_returns_true.yml
95
- - spec/fixtures/vcr/WebPurify_Filters/check_count/no_profanities_returns_0.yml
96
- - spec/fixtures/vcr/WebPurify_Filters/check_count/one_profanity_returns_1.yml
97
- - spec/fixtures/vcr/WebPurify_Filters/check_count/two_profanities_returns_2.yml
98
- - spec/fixtures/vcr/WebPurify_Filters/replace/safe_text_returns_the_text_with_no_changes.yml
99
- - spec/fixtures/vcr/WebPurify_Filters/replace/text_with_profanity_returns_the_text_with_profanities_replaced_by_symbols.yml
100
- - spec/fixtures/vcr/WebPurify_Filters/return/no_profanities_returns_an_empty_array.yml
101
- - spec/fixtures/vcr/WebPurify_Filters/return/one_profanity_returns_an_array_with_one_profanity.yml
102
- - spec/fixtures/vcr/WebPurify_Filters/return/two_profanities_returns_an_array_with_two_profanities.yml
88
+ - spec/fixtures/vcr/WebPurify_ImageFilters/imgaccount/returns_the_number_of_image_submissions_remaining.yml
89
+ - spec/fixtures/vcr/WebPurify_ImageFilters/imgcheck/returns_an_image_ID.yml
90
+ - spec/fixtures/vcr/WebPurify_ImageFilters/imgstatus/returns_the_status_of_image_moderation.yml
91
+ - spec/fixtures/vcr/WebPurify_TextFilters/check/safe_text_returns_false.yml
92
+ - spec/fixtures/vcr/WebPurify_TextFilters/check/text_with_a_URL_returns_false_by_default.yml
93
+ - spec/fixtures/vcr/WebPurify_TextFilters/check/text_with_a_URL_when_URLs_are_prohibited_returns_true.yml
94
+ - spec/fixtures/vcr/WebPurify_TextFilters/check/text_with_a_phone_number_returns_false_by_default.yml
95
+ - spec/fixtures/vcr/WebPurify_TextFilters/check/text_with_a_phone_number_when_phone_numbers_are_prohibited_returns_true.yml
96
+ - spec/fixtures/vcr/WebPurify_TextFilters/check/text_with_an_email_returns_false_by_default.yml
97
+ - spec/fixtures/vcr/WebPurify_TextFilters/check/text_with_an_email_when_emails_are_prohibited_returns_true.yml
98
+ - spec/fixtures/vcr/WebPurify_TextFilters/check/text_with_profanity_returns_true.yml
99
+ - spec/fixtures/vcr/WebPurify_TextFilters/check_count/no_profanities_returns_0.yml
100
+ - spec/fixtures/vcr/WebPurify_TextFilters/check_count/one_profanity_returns_1.yml
101
+ - spec/fixtures/vcr/WebPurify_TextFilters/check_count/two_profanities_returns_2.yml
102
+ - spec/fixtures/vcr/WebPurify_TextFilters/replace/safe_text_returns_the_text_with_no_changes.yml
103
+ - spec/fixtures/vcr/WebPurify_TextFilters/replace/text_with_profanity_returns_the_text_with_profanities_replaced_by_symbols.yml
104
+ - spec/fixtures/vcr/WebPurify_TextFilters/return/no_profanities_returns_an_empty_array.yml
105
+ - spec/fixtures/vcr/WebPurify_TextFilters/return/one_profanity_returns_an_array_with_one_profanity.yml
106
+ - spec/fixtures/vcr/WebPurify_TextFilters/return/two_profanities_returns_an_array_with_two_profanities.yml
103
107
  - spec/spec_helper.rb
104
108
  - spec/support/vcr.rb
105
- - spec/web_purify/methods/filters_spec.rb
109
+ - spec/web_purify/methods/image_filters_spec.rb
110
+ - spec/web_purify/methods/text_filters_spec.rb
106
111
  - web_purify.gemspec
107
112
  homepage: https://github.com/mileszim/webpurify-gem
108
113
  licenses: []
@@ -128,22 +133,26 @@ signing_key:
128
133
  specification_version: 4
129
134
  summary: A RubyGem for interfacing with the WebPurify API.
130
135
  test_files:
131
- - spec/fixtures/vcr/WebPurify_Filters/check/safe_text_returns_false.yml
132
- - spec/fixtures/vcr/WebPurify_Filters/check/text_with_a_URL_returns_false_by_default.yml
133
- - spec/fixtures/vcr/WebPurify_Filters/check/text_with_a_URL_when_URLs_are_prohibited_returns_true.yml
134
- - spec/fixtures/vcr/WebPurify_Filters/check/text_with_a_phone_number_returns_false_by_default.yml
135
- - spec/fixtures/vcr/WebPurify_Filters/check/text_with_a_phone_number_when_phone_numbers_are_prohibited_returns_true.yml
136
- - spec/fixtures/vcr/WebPurify_Filters/check/text_with_an_email_returns_false_by_default.yml
137
- - spec/fixtures/vcr/WebPurify_Filters/check/text_with_an_email_when_emails_are_prohibited_returns_true.yml
138
- - spec/fixtures/vcr/WebPurify_Filters/check/text_with_profanity_returns_true.yml
139
- - spec/fixtures/vcr/WebPurify_Filters/check_count/no_profanities_returns_0.yml
140
- - spec/fixtures/vcr/WebPurify_Filters/check_count/one_profanity_returns_1.yml
141
- - spec/fixtures/vcr/WebPurify_Filters/check_count/two_profanities_returns_2.yml
142
- - spec/fixtures/vcr/WebPurify_Filters/replace/safe_text_returns_the_text_with_no_changes.yml
143
- - spec/fixtures/vcr/WebPurify_Filters/replace/text_with_profanity_returns_the_text_with_profanities_replaced_by_symbols.yml
144
- - spec/fixtures/vcr/WebPurify_Filters/return/no_profanities_returns_an_empty_array.yml
145
- - spec/fixtures/vcr/WebPurify_Filters/return/one_profanity_returns_an_array_with_one_profanity.yml
146
- - spec/fixtures/vcr/WebPurify_Filters/return/two_profanities_returns_an_array_with_two_profanities.yml
136
+ - spec/fixtures/vcr/WebPurify_ImageFilters/imgaccount/returns_the_number_of_image_submissions_remaining.yml
137
+ - spec/fixtures/vcr/WebPurify_ImageFilters/imgcheck/returns_an_image_ID.yml
138
+ - spec/fixtures/vcr/WebPurify_ImageFilters/imgstatus/returns_the_status_of_image_moderation.yml
139
+ - spec/fixtures/vcr/WebPurify_TextFilters/check/safe_text_returns_false.yml
140
+ - spec/fixtures/vcr/WebPurify_TextFilters/check/text_with_a_URL_returns_false_by_default.yml
141
+ - spec/fixtures/vcr/WebPurify_TextFilters/check/text_with_a_URL_when_URLs_are_prohibited_returns_true.yml
142
+ - spec/fixtures/vcr/WebPurify_TextFilters/check/text_with_a_phone_number_returns_false_by_default.yml
143
+ - spec/fixtures/vcr/WebPurify_TextFilters/check/text_with_a_phone_number_when_phone_numbers_are_prohibited_returns_true.yml
144
+ - spec/fixtures/vcr/WebPurify_TextFilters/check/text_with_an_email_returns_false_by_default.yml
145
+ - spec/fixtures/vcr/WebPurify_TextFilters/check/text_with_an_email_when_emails_are_prohibited_returns_true.yml
146
+ - spec/fixtures/vcr/WebPurify_TextFilters/check/text_with_profanity_returns_true.yml
147
+ - spec/fixtures/vcr/WebPurify_TextFilters/check_count/no_profanities_returns_0.yml
148
+ - spec/fixtures/vcr/WebPurify_TextFilters/check_count/one_profanity_returns_1.yml
149
+ - spec/fixtures/vcr/WebPurify_TextFilters/check_count/two_profanities_returns_2.yml
150
+ - spec/fixtures/vcr/WebPurify_TextFilters/replace/safe_text_returns_the_text_with_no_changes.yml
151
+ - spec/fixtures/vcr/WebPurify_TextFilters/replace/text_with_profanity_returns_the_text_with_profanities_replaced_by_symbols.yml
152
+ - spec/fixtures/vcr/WebPurify_TextFilters/return/no_profanities_returns_an_empty_array.yml
153
+ - spec/fixtures/vcr/WebPurify_TextFilters/return/one_profanity_returns_an_array_with_one_profanity.yml
154
+ - spec/fixtures/vcr/WebPurify_TextFilters/return/two_profanities_returns_an_array_with_two_profanities.yml
147
155
  - spec/spec_helper.rb
148
156
  - spec/support/vcr.rb
149
- - spec/web_purify/methods/filters_spec.rb
157
+ - spec/web_purify/methods/image_filters_spec.rb
158
+ - spec/web_purify/methods/text_filters_spec.rb