datasift 2.1.0.beta → 2.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 +7 -7
- data/README.md +15 -6
- data/VERSION +1 -1
- data/datasift.gemspec +1 -1
- data/lib/DataSift/historic.rb +1 -1
- data/lib/DataSift/managed_source.rb +46 -14
- data/lib/DataSift/user.rb +13 -2
- metadata +74 -70
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
|
-
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
5
|
-
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 92e4872a74f6f245bb7d0e9f900d246901746555
|
4
|
+
data.tar.gz: 6eb965a516cee414a520efcdabc3f91d8fab1bd0
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 9c1b83f22e600973684d2dd5066c140c78c8157e3c78ad3323286917a27b771140624e37f889c45d593a7ac409e5210e3c2743567eacc589b0c6727a6f47ad1a
|
7
|
+
data.tar.gz: 8347b926ec9f2b6045578bd69c0b9eaa844459de7a59d635ceefc83d4932d254de7907358dd2c4e83640cc23b36ae8251c7e37a768f53b98f8abb3e85b7ef9c9
|
data/README.md
CHANGED
@@ -55,12 +55,21 @@ more details.
|
|
55
55
|
|
56
56
|
Changelog
|
57
57
|
---------
|
58
|
+
* v.2.1.0 Final fixes for v.2.1.0 (2013-09-13)
|
59
|
+
|
60
|
+
- Adds /source/log call
|
61
|
+
- Updated /source/create call to comply with latest version of the API
|
62
|
+
- Removed JSON gem - now dependant on Yajl-Ruby for JSON parsing
|
63
|
+
- Added license info to gemspec
|
64
|
+
- Fixed edge case when passing refresh token to authentication with G+ API
|
65
|
+
- Fixed /source/get call
|
66
|
+
|
58
67
|
* v.2.1.0.beta Adding Managed Sources support. Thanks to [giovannelli](https://github.com/giovannelli) for the contribution (2013-08-05)
|
59
68
|
|
60
69
|
* v.2.0.4 Bug fix to handle HTTP 202 response codes (2013-03-18)
|
61
70
|
|
62
71
|
* v.2.0.3 Stability improvement and bug fix (2013-03-04)
|
63
|
-
|
72
|
+
|
64
73
|
Removed references to deprecated Historic output field 'volume_info'.
|
65
74
|
Added 65s timeout on live streaming to handle 'silent' server disconnects.
|
66
75
|
Minor changes to ensure Ruby 2.0 compatibility.
|
@@ -77,7 +86,7 @@ Changelog
|
|
77
86
|
|
78
87
|
* v.1.4.0 Added SSL support (2012-05-15)
|
79
88
|
|
80
|
-
This is enabled by default and can be disabled by passing false as the third
|
89
|
+
- This is enabled by default and can be disabled by passing false as the third
|
81
90
|
parameter to the User constructor, or calling enableSSL(false) on the User
|
82
91
|
object.
|
83
92
|
|
@@ -85,18 +94,18 @@ Changelog
|
|
85
94
|
|
86
95
|
* v.1.3.0 Improved error handling (2012-03-08)
|
87
96
|
|
88
|
-
Added onError and onWarning events - see examples/consume-stream.rb for an
|
97
|
+
- Added onError and onWarning events - see examples/consume-stream.rb for an
|
89
98
|
example.
|
90
99
|
|
91
|
-
Stopped the HTTP consumer from attempting to reconnect when it receives a
|
100
|
+
- Stopped the HTTP consumer from attempting to reconnect when it receives a
|
92
101
|
4xx response from the server.
|
93
102
|
|
94
103
|
* v.1.2.0 Twitter Compliance (2012-02-28)
|
95
104
|
|
96
|
-
The consumer now has an onDeleted method to which you can assign a block
|
105
|
+
- The consumer now has an onDeleted method to which you can assign a block
|
97
106
|
that will be called to handle DELETE requests from Twitter. See delete.rb
|
98
107
|
in the examples folder for a sample implementation.
|
99
108
|
(@see http://dev.datasift.com/docs/twitter-deletes)
|
100
109
|
|
101
|
-
NB: if you are storing tweets you must implement this method in your code
|
110
|
+
- NB: if you are storing tweets you must implement this method in your code
|
102
111
|
and take appropriate action to maintain compliance with the Twitter license.
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.1.0
|
1
|
+
2.1.0
|
data/datasift.gemspec
CHANGED
@@ -10,6 +10,7 @@ Gem::Specification.new do |s|
|
|
10
10
|
s.description = %q{The official Ruby library for accessing the DataSift API. See http://datasift.com/ for full details and to sign up for an account.}
|
11
11
|
s.summary = %q{DataSift is a simple wrapper for the DataSift API.}
|
12
12
|
s.homepage = 'http://github.com/datasift/datasift-ruby'
|
13
|
+
s.license = 'BSD'
|
13
14
|
|
14
15
|
s.platform = Gem::Platform::RUBY
|
15
16
|
s.rubygems_version = %q{1.3.6}
|
@@ -17,7 +18,6 @@ Gem::Specification.new do |s|
|
|
17
18
|
|
18
19
|
s.add_runtime_dependency('rest-client', '~> 1.6.3')
|
19
20
|
s.add_runtime_dependency('yajl-ruby', '~> 1.1.0')
|
20
|
-
s.add_runtime_dependency('json', '~> 1.5.4')
|
21
21
|
s.add_development_dependency('rdoc', '> 0')
|
22
22
|
s.add_development_dependency('shoulda', '~> 2.11.3')
|
23
23
|
s.add_development_dependency('rspec', '~> 2.6.0')
|
data/lib/DataSift/historic.rb
CHANGED
@@ -93,7 +93,7 @@ module DataSift
|
|
93
93
|
|
94
94
|
# Convert and validate the parameters as required
|
95
95
|
hash = hash.hash if hash.is_a? DataSift::Definition
|
96
|
-
start_date = DateTime.
|
96
|
+
start_date = DateTime.strptime(start_date, '%s') unless start_date.is_a? Date
|
97
97
|
end_date = DateTime.strptime(end_date, '%s') unless end_date.is_a? Date
|
98
98
|
raise InvalidDataError, 'Please supply an array of sources' unless sources.kind_of?(Array)
|
99
99
|
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require '
|
1
|
+
require 'yajl/json_gem'
|
2
2
|
### Usage ###
|
3
3
|
# user = DataSift::User.new(config['username'], config['api_key'])
|
4
4
|
# user.createManagedSource(:token => "CAAIUKbXn8xsBAILlxGCZADEZAM87tRqJXo9OqWskCs6jej3wfQ1LRRZAgHJQEZCHU0ABBXDwiq9o7D4uytC5LpsAcx7oiDusagsJiKtmPaZBeMkuGh4jYt1zsXo4EQuZCWPcZAIdQQLZBtjTpQlbbAZCTuJ4SSrlmOPQZD", :source_type => "facebook_page", :name => "test", :parameters=> {:likes => true, :posts_by_others => true, :comments => true}, :resources => [{ :url => "http://www.facebook.com/theguardian", :title => "The Guardian", :id => 10513336322 } ] )
|
@@ -28,7 +28,7 @@ module DataSift
|
|
28
28
|
attr_reader :auth
|
29
29
|
#Api raw response
|
30
30
|
attr_reader :raw_attributes
|
31
|
-
|
31
|
+
|
32
32
|
#Constructor. Pass all parameters to create a new Managed Source, or provide a User object and a managed_source_id to load an existing Managed Source from the API.
|
33
33
|
#=== Parameters
|
34
34
|
#* +user+ - The DataSift::User object.
|
@@ -44,9 +44,9 @@ module DataSift
|
|
44
44
|
else
|
45
45
|
@source_type = hash[:source_type]
|
46
46
|
@name = hash[:name]
|
47
|
-
@token = hash[:token]
|
48
47
|
@parameters = hash[:parameters]
|
49
48
|
@resources = hash[:resources]
|
49
|
+
@auth = hash[:auth]
|
50
50
|
end
|
51
51
|
else
|
52
52
|
# Fetching from the API
|
@@ -54,7 +54,7 @@ module DataSift
|
|
54
54
|
reloadData()
|
55
55
|
end
|
56
56
|
end
|
57
|
-
|
57
|
+
|
58
58
|
#Get a single Managed Source by ID.
|
59
59
|
#=== Parameters
|
60
60
|
#* +id+ - The Managed Source ID.
|
@@ -63,13 +63,14 @@ module DataSift
|
|
63
63
|
def self.get(user, managed_source_id)
|
64
64
|
return new(user, user.callAPI('source/get', { 'id' => managed_source_id }))
|
65
65
|
end
|
66
|
-
|
67
|
-
def self.list(user, page = 1, per_page = 20)
|
66
|
+
|
67
|
+
def self.list(user, page = 1, per_page = 20, source_type = '')
|
68
68
|
begin
|
69
69
|
res = user.callAPI(
|
70
70
|
'source/get', {
|
71
71
|
'page' => page,
|
72
|
-
'
|
72
|
+
'per_page' => per_page,
|
73
|
+
'source_type' => source_type
|
73
74
|
})
|
74
75
|
retval = { 'count' => res['count'], 'managed_sources' => [] }
|
75
76
|
for source in res['sources']
|
@@ -86,7 +87,7 @@ module DataSift
|
|
86
87
|
end
|
87
88
|
end
|
88
89
|
end
|
89
|
-
|
90
|
+
|
90
91
|
#Call the DataSift API to create the Managed Source
|
91
92
|
def create()
|
92
93
|
raise InvalidDataError, 'This Managed Source has already been created' unless not @managed_source_id
|
@@ -98,7 +99,7 @@ module DataSift
|
|
98
99
|
'name' => @name,
|
99
100
|
'parameters' => @parameters.to_json,
|
100
101
|
'resources' => @resources.to_json,
|
101
|
-
'auth' =>
|
102
|
+
'auth' => @auth.to_json
|
102
103
|
})
|
103
104
|
raise InvalidDataError, 'Prepared successfully but no managed_source_id ID in the response' unless res.has_key?('id')
|
104
105
|
@managed_source_id = res['id']
|
@@ -132,7 +133,7 @@ module DataSift
|
|
132
133
|
end
|
133
134
|
end
|
134
135
|
end
|
135
|
-
|
136
|
+
|
136
137
|
#Initialise this object from the data in a Hash.
|
137
138
|
#=== Parameters
|
138
139
|
#* +data+ - The Hash containing the data.
|
@@ -158,15 +159,15 @@ module DataSift
|
|
158
159
|
|
159
160
|
raise APIError, 'No parameters in the response' unless data.has_key?('parameters')
|
160
161
|
@parameters = data['parameters']
|
161
|
-
|
162
|
+
|
162
163
|
raise APIError, 'No resources in the response' unless data.has_key?('resources')
|
163
164
|
@resources = data['resources']
|
164
|
-
|
165
|
+
|
165
166
|
@raw_attributes = data
|
166
|
-
|
167
|
+
|
167
168
|
return true
|
168
169
|
end
|
169
|
-
|
170
|
+
|
170
171
|
#Start this Managed Source query.
|
171
172
|
def start()
|
172
173
|
raise InvalidDataError, 'Cannot start a Managed souce query that hasn\'t been created' unless @managed_source_id
|
@@ -227,5 +228,36 @@ module DataSift
|
|
227
228
|
end
|
228
229
|
end
|
229
230
|
|
231
|
+
#Page through recent Managed Sources log entries
|
232
|
+
#=== Parameters
|
233
|
+
#* +page+ - The page number to get.
|
234
|
+
#* +per_page+ - The number of items per page.
|
235
|
+
#=== Returns
|
236
|
+
#A Hash containing...
|
237
|
+
#* +count+ - The total number of matching log entries.
|
238
|
+
#* +log_entries+ - An array of Hashes where each Hash is a log entry.
|
239
|
+
def getLogs(page = 1, per_page = 20)
|
240
|
+
begin
|
241
|
+
raise InvalidDataError, 'The specified page number is invalid' unless page >= 1
|
242
|
+
raise InvalidDataError, 'The specified per_page value is invalid' unless per_page >= 1
|
243
|
+
|
244
|
+
params = {
|
245
|
+
'id' => @managed_source_id,
|
246
|
+
'page' => page,
|
247
|
+
'per_page' => per_page
|
248
|
+
}
|
249
|
+
|
250
|
+
return @user.callAPI('source/log', params)
|
251
|
+
rescue APIError => err
|
252
|
+
case err.http_code
|
253
|
+
when 400
|
254
|
+
# Missing or invalid parameters
|
255
|
+
raise InvalidDataError, err
|
256
|
+
else
|
257
|
+
raise APIError.new(err.http_code), 'Unexpected APIError code: ' + err.http_code.to_s + ' [' + err.message + ']'
|
258
|
+
end
|
259
|
+
end
|
260
|
+
end
|
261
|
+
|
230
262
|
end
|
231
263
|
end
|
data/lib/DataSift/user.rb
CHANGED
@@ -117,8 +117,19 @@ module DataSift
|
|
117
117
|
#A Hash containing...
|
118
118
|
#* +count+ - The total number of Managed Sources in your account.
|
119
119
|
#* +managed_sources+ - An array of Hashes where each Hash is a managed source.
|
120
|
-
def listManagedSources(page = 1, per_page = 20)
|
121
|
-
return ManagedSource::list(self, page, per_page)
|
120
|
+
def listManagedSources(page = 1, per_page = 20, source_type = '')
|
121
|
+
return ManagedSource::list(self, page, per_page, source_type)
|
122
|
+
end
|
123
|
+
|
124
|
+
#Get the log entries for all Managed Sources or the given Managed Source.
|
125
|
+
#=== Parameters
|
126
|
+
#* +managed_source_id+ - Optional Managed Source ID.
|
127
|
+
#=== Returns
|
128
|
+
#A Hash containing...
|
129
|
+
#* +count+ - The total number of matching log entries.
|
130
|
+
#* +log_entries+ - An array of Hashes where each Hash is a log entry.
|
131
|
+
def getManagedSourcesLog(managed_source_id, page = 1, per_page = 20)
|
132
|
+
return getManagedSource(managed_source_id).getLogs(page = 1, per_page = 20)
|
122
133
|
end
|
123
134
|
|
124
135
|
#Create a new PushDefinition object for this user.
|
metadata
CHANGED
@@ -1,86 +1,93 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: datasift
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.1.0
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 2.1.0
|
5
5
|
platform: ruby
|
6
|
-
authors:
|
6
|
+
authors:
|
7
7
|
- DataSift
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
- !ruby/object:Gem::Dependency
|
11
|
+
date: 2013-09-13 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
15
14
|
name: rest-client
|
16
|
-
|
17
|
-
|
18
|
-
requirements:
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
19
17
|
- - ~>
|
20
|
-
- !ruby/object:Gem::Version
|
18
|
+
- !ruby/object:Gem::Version
|
21
19
|
version: 1.6.3
|
22
20
|
type: :runtime
|
23
|
-
version_requirements: *id001
|
24
|
-
- !ruby/object:Gem::Dependency
|
25
|
-
name: yajl-ruby
|
26
21
|
prerelease: false
|
27
|
-
|
28
|
-
requirements:
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 1.6.3
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: yajl-ruby
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
29
31
|
- - ~>
|
30
|
-
- !ruby/object:Gem::Version
|
32
|
+
- !ruby/object:Gem::Version
|
31
33
|
version: 1.1.0
|
32
34
|
type: :runtime
|
33
|
-
version_requirements: *id002
|
34
|
-
- !ruby/object:Gem::Dependency
|
35
|
-
name: json
|
36
35
|
prerelease: false
|
37
|
-
|
38
|
-
requirements:
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
39
38
|
- - ~>
|
40
|
-
- !ruby/object:Gem::Version
|
41
|
-
version: 1.
|
42
|
-
|
43
|
-
version_requirements: *id003
|
44
|
-
- !ruby/object:Gem::Dependency
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 1.1.0
|
41
|
+
- !ruby/object:Gem::Dependency
|
45
42
|
name: rdoc
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
version: "0"
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - '>'
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
52
48
|
type: :development
|
53
|
-
version_requirements: *id004
|
54
|
-
- !ruby/object:Gem::Dependency
|
55
|
-
name: shoulda
|
56
49
|
prerelease: false
|
57
|
-
|
58
|
-
requirements:
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '>'
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: shoulda
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
59
|
- - ~>
|
60
|
-
- !ruby/object:Gem::Version
|
60
|
+
- !ruby/object:Gem::Version
|
61
61
|
version: 2.11.3
|
62
62
|
type: :development
|
63
|
-
version_requirements: *id005
|
64
|
-
- !ruby/object:Gem::Dependency
|
65
|
-
name: rspec
|
66
63
|
prerelease: false
|
67
|
-
|
68
|
-
requirements:
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ~>
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 2.11.3
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rspec
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
69
73
|
- - ~>
|
70
|
-
- !ruby/object:Gem::Version
|
74
|
+
- !ruby/object:Gem::Version
|
71
75
|
version: 2.6.0
|
72
76
|
type: :development
|
73
|
-
|
74
|
-
|
75
|
-
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ~>
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 2.6.0
|
83
|
+
description: The official Ruby library for accessing the DataSift API. See http://datasift.com/
|
84
|
+
for full details and to sign up for an account.
|
85
|
+
email:
|
76
86
|
- support@datasift.com
|
77
87
|
executables: []
|
78
|
-
|
79
88
|
extensions: []
|
80
|
-
|
81
89
|
extra_rdoc_files: []
|
82
|
-
|
83
|
-
files:
|
90
|
+
files:
|
84
91
|
- .gitignore
|
85
92
|
- Gemfile
|
86
93
|
- LICENSE
|
@@ -136,33 +143,30 @@ files:
|
|
136
143
|
- test/test_user.rb
|
137
144
|
- test/testdata.yml
|
138
145
|
homepage: http://github.com/datasift/datasift-ruby
|
139
|
-
licenses:
|
140
|
-
|
146
|
+
licenses:
|
147
|
+
- BSD
|
141
148
|
metadata: {}
|
142
|
-
|
143
149
|
post_install_message:
|
144
150
|
rdoc_options: []
|
145
|
-
|
146
|
-
require_paths:
|
151
|
+
require_paths:
|
147
152
|
- lib
|
148
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
149
|
-
requirements:
|
150
|
-
- -
|
151
|
-
- !ruby/object:Gem::Version
|
152
|
-
version:
|
153
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
154
|
-
requirements:
|
155
|
-
- -
|
156
|
-
- !ruby/object:Gem::Version
|
153
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
154
|
+
requirements:
|
155
|
+
- - '>='
|
156
|
+
- !ruby/object:Gem::Version
|
157
|
+
version: '0'
|
158
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
159
|
+
requirements:
|
160
|
+
- - '>='
|
161
|
+
- !ruby/object:Gem::Version
|
157
162
|
version: 1.3.6
|
158
163
|
requirements: []
|
159
|
-
|
160
164
|
rubyforge_project:
|
161
|
-
rubygems_version: 2.
|
165
|
+
rubygems_version: 2.1.2
|
162
166
|
signing_key:
|
163
167
|
specification_version: 4
|
164
168
|
summary: DataSift is a simple wrapper for the DataSift API.
|
165
|
-
test_files:
|
169
|
+
test_files:
|
166
170
|
- test/helper.rb
|
167
171
|
- test/test_definition.rb
|
168
172
|
- test/test_historics.rb
|