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 CHANGED
@@ -1,7 +1,7 @@
1
- ---
2
- SHA512:
3
- metadata.gz: 02bf11099c9d26f748777eb250a2012e6ca492f03ea6463f15f0dacae1f6881452254ddd7b7e6328c8d4118b0f5ea6c4cf29d72db1d0cca83c6f373ff4248f2e
4
- data.tar.gz: a81b1b1f678cf752e7178954d805f8389e4ffd022cb080abc34c3d448ab6290e38493800265a809b9a75355f60d1812ff9d5b4e17ecabc5350fc73614c7df762
5
- SHA1:
6
- metadata.gz: bf41f27515af94fb037c2525301e1a731c5e2416
7
- data.tar.gz: 98567da3573cccd91e78618ef0ad65744c871016
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.beta
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')
@@ -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.strftime(start_date, '%s') unless start_date.is_a? Date
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 'json'
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
- 'max' => per_page
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' => [ 'parameters' => { 'value' => @token } ].to_json
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.beta
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
- date: 2013-08-05 00:00:00 Z
13
- dependencies:
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
- prerelease: false
17
- requirement: &id001 !ruby/object:Gem::Requirement
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
- requirement: &id002 !ruby/object:Gem::Requirement
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
- requirement: &id003 !ruby/object:Gem::Requirement
38
- requirements:
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
39
38
  - - ~>
40
- - !ruby/object:Gem::Version
41
- version: 1.5.4
42
- type: :runtime
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
- prerelease: false
47
- requirement: &id004 !ruby/object:Gem::Requirement
48
- requirements:
49
- - - ">"
50
- - !ruby/object:Gem::Version
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
- requirement: &id005 !ruby/object:Gem::Requirement
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
- requirement: &id006 !ruby/object:Gem::Requirement
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
- version_requirements: *id006
74
- description: The official Ruby library for accessing the DataSift API. See http://datasift.com/ for full details and to sign up for an account.
75
- email:
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: "0"
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.0.5
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