gnip-rules 2.1.0 → 2.2.1

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: 76ed77a083a74831fc31654bb2ffc4f286cb58e2
4
- data.tar.gz: d36cccea30ab321a08a8e2beca47019e4c1b898f
3
+ metadata.gz: 05d1349e67e552fe8e5e994cbe20ef3e510b56d6
4
+ data.tar.gz: 48e073490fc7862d60985b33c6579e329584d144
5
5
  SHA512:
6
- metadata.gz: 082fc5014ed9c1f901902634fa4b46eabe1fbf8dde7f02d39143333f2f2ed87006c33a16a9279eb0ed20e42a02c3dbb818ac526fc76a51d927c9200004283ebb
7
- data.tar.gz: 2e14033b0096088442baa4eff5cc1adaaf8f4c90279112536cf8e846ce334dc03d5da01c82e9737521782b758b1f4c85783701e47413a5ddbd8e7187c24ba8b6
6
+ metadata.gz: 64312248df0219686725682352ae5b262f0b8ed53a5de64e6d26b8b453e7149105cd8207a608dda67ef4725bd89ed36340a84307d321f122dd5c9cd139986b04
7
+ data.tar.gz: 00df795f662a168d51d84f0ee73599218dcbc1df600d3db4585a3a397a3e8300a16e31a434b293b238dc6db2f618aee0ab756c8209ceb875b83ebbfbe1ad0875
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.1.0
1
+ 2.2.1
data/lib/gnip-rules.rb CHANGED
@@ -6,6 +6,7 @@ require 'gnip-rules/api'
6
6
  require 'gnip-rules/response'
7
7
  require 'gnip-rules/rule'
8
8
  require 'gnip-rules/validation'
9
+ require 'gnip-rules/historical/powertrack'
9
10
 
10
11
  module Gnip
11
12
  class Rules
@@ -0,0 +1,110 @@
1
+ require 'active_support'
2
+ require 'httparty'
3
+ require 'json'
4
+
5
+ require 'gnip-rules/api'
6
+ require 'gnip-rules/validation_response'
7
+ require 'gnip-rules/rule'
8
+
9
+ module Gnip
10
+ module Historical
11
+ class Powertrack
12
+ include HTTParty
13
+
14
+ headers 'Accept' => 'application/json', 'Content-Type' => 'application/json'
15
+ format :json
16
+
17
+ #debug_output $stdout
18
+
19
+ JOB_URL_PATH = "/jobs"
20
+ JOBS_URL_PATH = "/jobs"
21
+
22
+ def initialize( configuration = nil, username = nil, password = nil, uri = nil, timeout = 60 )
23
+ @configuration_file = configuration
24
+ unless username && password && uri
25
+ load_credentials!
26
+ username = @config["username"]
27
+ password = @config["password"]
28
+ uri = uri || @config["historical_powertrack_url"]
29
+ end
30
+
31
+ self.class.basic_auth username , password
32
+ self.class.base_uri uri
33
+ self.class.default_timeout timeout
34
+ end
35
+
36
+ def default_timeout(timeout)
37
+ self.class.default_timeout timeout
38
+ self.class.default_options
39
+ end
40
+
41
+ def job(uuid)
42
+ self.class.get "#{JOB_URL_PATH}/#{uuid}"
43
+ end
44
+
45
+ def create(opts)
46
+ #dataFormat: 'original'
47
+ #fromDate: 201808280000
48
+ #toDate: 201808290000
49
+ #title: 'Spencer Test DO NOT RUN'
50
+ #rules: []
51
+ job_opts = ActiveSupport::JSON.encode( opts.merge!({publisher: 'twitter', streamType: 'track_v2', dataFormat: 'activity_streams'}) )
52
+ self.class.post(JOBS_URL_PATH, body: job_opts)
53
+ end
54
+
55
+ def jobs
56
+ self.class.get JOBS_URL_PATH
57
+ end
58
+
59
+ def accept(uuid)
60
+ opts = ActiveSupport::JSON.encode( {status: 'accept'} )
61
+ self.class.put "#{JOB_URL_PATH}/#{uuid}", body: opts
62
+ end
63
+
64
+ def reject(uuid)
65
+ opts = ActiveSupport::JSON.encode( {status: 'reject'} )
66
+ self.class.put "#{JOB_URL_PATH}/#{uuid}", body: opts
67
+ end
68
+
69
+ def get_results(uuid)
70
+ self.class.get "#{JOB_URL_PATH}/#{uuid}/results"
71
+ end
72
+
73
+
74
+ private
75
+
76
+ def load_credentials!
77
+ if File.exists?( @configuration_file )
78
+ @config = YAML.load_file( @configuration_file )[environment.to_s]
79
+ else
80
+ raise Exception.new( <<-RUBY
81
+ You must provide a configuration file at config/gnip.yml
82
+
83
+ development: &development
84
+ username: omg@omg.com
85
+ password: your_password
86
+ account: your_account
87
+ streaming_url: 'https://gnip-stream.twitter.com/stream/powertrack/accounts/YOUR_ACCOUNT/publishers/twitter/Sandbox.json'
88
+ rules_api: 'https://gnip-api.twitter.com/rules/powertrack/accounts/YOUR_ACCOUNT/publishers/twitter/Sandbox.json'
89
+ validation_url: 'https://gnip-api.twitter.com/rules/powertrack/accounts/<accountName>/<streamLabel>/validation.json'
90
+
91
+ RUBY
92
+ )
93
+ end
94
+ end
95
+
96
+ def environment
97
+ if defined?(Rails)
98
+ Rails.env
99
+ elsif defined?(RAILS_ENV)
100
+ RAILS_ENV
101
+ elsif defined?(RACK_ENV)
102
+ RACK_ENV
103
+ else
104
+ :development
105
+ end
106
+ end
107
+
108
+ end
109
+ end
110
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gnip-rules
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0
4
+ version: 2.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Spencer Markowski
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-11-02 00:00:00.000000000 Z
12
+ date: 2018-10-23 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -85,6 +85,7 @@ files:
85
85
  - gnip-rules.gemspec
86
86
  - lib/gnip-rules.rb
87
87
  - lib/gnip-rules/api.rb
88
+ - lib/gnip-rules/historical/powertrack.rb
88
89
  - lib/gnip-rules/response.rb
89
90
  - lib/gnip-rules/rule.rb
90
91
  - lib/gnip-rules/validation.rb
@@ -113,7 +114,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
113
114
  version: '0'
114
115
  requirements: []
115
116
  rubyforge_project:
116
- rubygems_version: 2.5.1
117
+ rubygems_version: 2.6.11
117
118
  signing_key:
118
119
  specification_version: 4
119
120
  summary: A simple wrapper for the Gnip Rules API