gnip_api 1.0.6 → 1.1.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: 3587d0f204a4f0fb76ac8caf03d5553b75e70c46
4
- data.tar.gz: fbf2a2624f6f42c9528716c8464482c3eddd88ea
3
+ metadata.gz: e1a03c01f8a95a5621c8f373ad4c5f2067e17ee3
4
+ data.tar.gz: d9e4ad8ec4efdf87050a69df72ade7463da1064c
5
5
  SHA512:
6
- metadata.gz: 4646757255c9fadfc5a4d3826c3b8b96c5a91a2c486f808cf111dbf47dd6fa2d2abe5953c64412488c6637e8b550bbc9f09099ec8f46bdc44af4ba8d75de18f1
7
- data.tar.gz: c73642ac1fa937500568c518ee187701c3f724444852b8108d243c5041434efea6571ef57286a1e49b1cb07d82709758934203b9457a6bf176aa85b7ecce3bfa
6
+ metadata.gz: 3b4ea27632b292fb770554048fda192e39105c6b2eb4126132317792304ae9ee69637216325167a04b953cb6c10f29a1370bb0f513bcb374778239dafc3cfa14
7
+ data.tar.gz: 96e048454f85a96147052f24ba442343b4113630725154d84db567b02453cb6b68112820bc1ce974383ed1b9eddde31b142f460ed9f20599b5486a7522b4bb61
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- gnip_api (1.0.6)
4
+ gnip_api (1.1.0)
5
5
  addressable
6
6
  httparty
7
7
  yajl-ruby
@@ -1,9 +1,13 @@
1
1
  module Gnip
2
2
  class Message
3
3
  SYSTEM_MESSAGE_TYPES = ['error', 'warn', 'info']
4
+ TWITTER_COMPLIANCE_MESSAGES = ['delete', 'user_delete', 'user_undelete', 'scrub_geo',
5
+ 'user_protect', 'user_unprotect', 'user_suspend', 'user_unsuspend',
6
+ 'user_withheld', 'status_withheld']
4
7
 
5
8
  def self.build params
6
9
  return build_system_message(params) if (SYSTEM_MESSAGE_TYPES & params.keys).any?
10
+ return build_twitter_compliance_message(params) if TWITTER_COMPLIANCE_MESSAGES.include? params['verb']
7
11
  return build_activity(params) if params['objectType'] && params['objectType'] == 'activity'
8
12
  raise Gnip::UndefinedMessage
9
13
  end
@@ -37,6 +41,10 @@ module Gnip
37
41
  Gnip::SystemMessage.new params
38
42
  end
39
43
 
44
+ def self.build_twitter_compliance_message params
45
+ Gnip::TwitterComplianceMessage.new params
46
+ end
47
+
40
48
  def self.build_activity params
41
49
  Gnip::Activity.new params
42
50
  end
@@ -0,0 +1,27 @@
1
+ module Gnip
2
+ class TwitterComplianceMessage < Gnip::Message
3
+ attr_reader :raw, :object_type, :verb, :object, :actor, :timestamp_ms, :target, :withheld_in_countries
4
+
5
+ def initialize params = {}
6
+ @raw = params
7
+ @object_type = params['objectType']
8
+ @actor = params['actor']
9
+ @verb = params['verb']
10
+ @timestamp_ms = params['timestampMs']
11
+ @object = params['object']
12
+ end
13
+
14
+ def to_h
15
+ @raw
16
+ end
17
+
18
+ def timestamp_ms
19
+ DateTime.parse(@timestamp_ms)
20
+ end
21
+
22
+ def to_json
23
+ @raw.to_json
24
+ end
25
+ end
26
+ end
27
+
@@ -1,3 +1,3 @@
1
1
  module GnipApi
2
- VERSION = "1.0.6"
2
+ VERSION = "1.1.0"
3
3
  end
data/lib/gnip_api.rb CHANGED
@@ -16,6 +16,7 @@ require "gnip_api/apis/power_track/rule"
16
16
  require "gnip_api/apis/search"
17
17
  require "gnip_api/gnip/message"
18
18
  require "gnip_api/gnip/system_message"
19
+ require "gnip_api/gnip/twitter_compliance_message"
19
20
  require "gnip_api/gnip/actor"
20
21
  require "gnip_api/gnip/activity"
21
22
  require "gnip_api/gnip/gnip_data"
@@ -1,4 +1,4 @@
1
-
1
+ {
2
2
  "verb": "user_protect",
3
3
  "object": {
4
4
  "id": "tag:search.twitter.com,2012:user\/930913333"
@@ -22,6 +22,68 @@ describe Gnip::Message do
22
22
  expect(Gnip::Message.build(@activity).class).to eq(Gnip::Activity)
23
23
  end
24
24
  end
25
+
26
+ context 'twitter compliance message' do
27
+ it 'parses status delete as twitter compliance message' do
28
+ data = JSON.parse File.read(fixture_path.join('twitter_messages', 'status_delete.json'))
29
+ message = Gnip::Message.build(data)
30
+ expect(message.class).to eq(Gnip::TwitterComplianceMessage)
31
+ end
32
+
33
+ it 'parses user delete as twitter compliance message' do
34
+ data = JSON.parse File.read(fixture_path.join('twitter_messages', 'user_delete.json'))
35
+ message = Gnip::Message.build(data)
36
+ expect(message.class).to eq(Gnip::TwitterComplianceMessage)
37
+ end
38
+
39
+ it 'parses user undelete as twitter compliance message' do
40
+ data = JSON.parse File.read(fixture_path.join('twitter_messages', 'user_undelete.json'))
41
+ message = Gnip::Message.build(data)
42
+ expect(message.class).to eq(Gnip::TwitterComplianceMessage)
43
+ end
44
+
45
+ it 'parses scrub geo as twitter compliance message' do
46
+ data = JSON.parse File.read(fixture_path.join('twitter_messages', 'scrub_geo.json'))
47
+ message = Gnip::Message.build(data)
48
+ expect(message.class).to eq(Gnip::TwitterComplianceMessage)
49
+ end
50
+
51
+ it 'parses user protect as twitter compliance message' do
52
+ data = JSON.parse File.read(fixture_path.join('twitter_messages', 'user_protect.json'))
53
+ message = Gnip::Message.build(data)
54
+ expect(message.class).to eq(Gnip::TwitterComplianceMessage)
55
+ end
56
+
57
+ it 'parses user unprotect as twitter compliance message' do
58
+ data = JSON.parse File.read(fixture_path.join('twitter_messages', 'user_unprotect.json'))
59
+ message = Gnip::Message.build(data)
60
+ expect(message.class).to eq(Gnip::TwitterComplianceMessage)
61
+ end
62
+
63
+ it 'parses user suspend as twitter compliance message' do
64
+ data = JSON.parse File.read(fixture_path.join('twitter_messages', 'user_suspend.json'))
65
+ message = Gnip::Message.build(data)
66
+ expect(message.class).to eq(Gnip::TwitterComplianceMessage)
67
+ end
68
+
69
+ it 'parses user unsuspend as twitter compliance message' do
70
+ data = JSON.parse File.read(fixture_path.join('twitter_messages', 'user_unsuspend.json'))
71
+ message = Gnip::Message.build(data)
72
+ expect(message.class).to eq(Gnip::TwitterComplianceMessage)
73
+ end
74
+
75
+ it 'parses user withheld as twitter compliance message' do
76
+ data = JSON.parse File.read(fixture_path.join('twitter_messages', 'user_withheld.json'))
77
+ message = Gnip::Message.build(data)
78
+ expect(message.class).to eq(Gnip::TwitterComplianceMessage)
79
+ end
80
+
81
+ it 'parses status withheld as twitter compliance message' do
82
+ data = JSON.parse File.read(fixture_path.join('twitter_messages', 'status_withheld.json'))
83
+ message = Gnip::Message.build(data)
84
+ expect(message.class).to eq(Gnip::TwitterComplianceMessage)
85
+ end
86
+ end
25
87
 
26
88
  context 'system_message' do
27
89
  before do
@@ -0,0 +1,56 @@
1
+ require 'spec_helper'
2
+
3
+ describe Gnip::TwitterComplianceMessage do
4
+ describe '.new' do
5
+ it 'parses status delete message' do
6
+ data = JSON.parse File.read(fixture_path.join('twitter_messages', 'status_delete.json'))
7
+ expect(Proc.new{Gnip::TwitterComplianceMessage.new(data)}).not_to raise_error
8
+ end
9
+
10
+ it 'parses user delete message' do
11
+ data = JSON.parse File.read(fixture_path.join('twitter_messages', 'user_delete.json'))
12
+ expect(Proc.new{Gnip::TwitterComplianceMessage.new(data)}).not_to raise_error
13
+ end
14
+
15
+ it 'parses user undelete message' do
16
+ data = JSON.parse File.read(fixture_path.join('twitter_messages', 'user_undelete.json'))
17
+ expect(Proc.new{Gnip::TwitterComplianceMessage.new(data)}).not_to raise_error
18
+ end
19
+
20
+ it 'parses scrub geo message' do
21
+ data = JSON.parse File.read(fixture_path.join('twitter_messages', 'scrub_geo.json'))
22
+ expect(Proc.new{Gnip::TwitterComplianceMessage.new(data)}).not_to raise_error
23
+ end
24
+
25
+ it 'parses user protect message' do
26
+ data = JSON.parse File.read(fixture_path.join('twitter_messages', 'user_protect.json'))
27
+ expect(Proc.new{Gnip::TwitterComplianceMessage.new(data)}).not_to raise_error
28
+ end
29
+
30
+ it 'parses user unprotect message' do
31
+ data = JSON.parse File.read(fixture_path.join('twitter_messages', 'user_unprotect.json'))
32
+ expect(Proc.new{Gnip::TwitterComplianceMessage.new(data)}).not_to raise_error
33
+ end
34
+
35
+ it 'parses user suspend message' do
36
+ data = JSON.parse File.read(fixture_path.join('twitter_messages', 'user_suspend.json'))
37
+ expect(Proc.new{Gnip::TwitterComplianceMessage.new(data)}).not_to raise_error
38
+ end
39
+
40
+ it 'parses user unsuspend message' do
41
+ data = JSON.parse File.read(fixture_path.join('twitter_messages', 'user_unsuspend.json'))
42
+ expect(Proc.new{Gnip::TwitterComplianceMessage.new(data)}).not_to raise_error
43
+ end
44
+
45
+ it 'parses user withheld message' do
46
+ data = JSON.parse File.read(fixture_path.join('twitter_messages', 'user_withheld.json'))
47
+ expect(Proc.new{Gnip::TwitterComplianceMessage.new(data)}).not_to raise_error
48
+ end
49
+
50
+ it 'parses status withheld message' do
51
+ data = JSON.parse File.read(fixture_path.join('twitter_messages', 'status_withheld.json'))
52
+ expect(Proc.new{Gnip::TwitterComplianceMessage.new(data)}).not_to raise_error
53
+ end
54
+
55
+ end
56
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gnip_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.6
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rayko
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-02-06 00:00:00.000000000 Z
11
+ date: 2017-02-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -185,6 +185,7 @@ files:
185
185
  - lib/gnip_api/gnip/gnip_data.rb
186
186
  - lib/gnip_api/gnip/message.rb
187
187
  - lib/gnip_api/gnip/system_message.rb
188
+ - lib/gnip_api/gnip/twitter_compliance_message.rb
188
189
  - lib/gnip_api/gnip/url.rb
189
190
  - lib/gnip_api/json_parser.rb
190
191
  - lib/gnip_api/request.rb
@@ -228,6 +229,7 @@ files:
228
229
  - spec/gnip_api/gnip/activity_spec.rb
229
230
  - spec/gnip_api/gnip/gnip_data_spec.rb
230
231
  - spec/gnip_api/gnip/message_spec.rb
232
+ - spec/gnip_api/gnip/twitter_compliance_message_spec.rb
231
233
  - spec/gnip_api/gnip/url_spec.rb
232
234
  - spec/gnip_api/json_parser_spec.rb
233
235
  - spec/gnip_api/request_spec.rb
@@ -298,6 +300,7 @@ test_files:
298
300
  - spec/gnip_api/gnip/activity_spec.rb
299
301
  - spec/gnip_api/gnip/gnip_data_spec.rb
300
302
  - spec/gnip_api/gnip/message_spec.rb
303
+ - spec/gnip_api/gnip/twitter_compliance_message_spec.rb
301
304
  - spec/gnip_api/gnip/url_spec.rb
302
305
  - spec/gnip_api/json_parser_spec.rb
303
306
  - spec/gnip_api/request_spec.rb