clever-ruby 0.9.0 → 0.10.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 +13 -5
- data/CHANGELOG.md +8 -0
- data/lib/clever-ruby.rb +27 -1
- data/lib/clever-ruby/version.rb +1 -1
- data/test/unit/clever_test.rb +38 -0
- metadata +8 -7
checksums.yaml
CHANGED
@@ -1,7 +1,15 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
OTYwZWI0M2M2MzkzNDU4NjI5NTFkZjFhMmFkYTQ1OWViYjcyZjg5Yg==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
ZWEwMzk3OWMyYmM0NGE4N2UzMWYyNWVmNTk2YmFiOTA1NzllZGNhNw==
|
5
7
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
MGEzMjk4YzU1YzkzYTY0YjNmNGUwNjdhZWRjMGU5OGE1NDkwOTVkZDYxY2Nh
|
10
|
+
ZjQ5OGZiNGQyN2E4NWZiYTVhZGZhNGVlYzVhM2NkMWFmN2IyN2Q4M2E4Mzll
|
11
|
+
NmM3OTE3NWY4ZWI0NTA1N2U5OTljOGRhM2ZmZThlOWExNDMyOGU=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
NGE1MDRmNGNjMzI3YzIxM2Y3MTQ3NTlhYWVjNDJmYzQzNjQxMjA5NWJkZjYz
|
14
|
+
MDhlZjA1OTYyYWUzYTZmYTNlNDljZWNiMGRjNTllNmExYjM1NzgyN2JhZTdi
|
15
|
+
ZTJjYTlhODM0YTY0ODEyZmYyYTJlYTY2MDgwNWQ4MDBiYWZiNWM=
|
data/CHANGELOG.md
CHANGED
data/lib/clever-ruby.rb
CHANGED
@@ -6,6 +6,7 @@ require 'open-uri'
|
|
6
6
|
require 'set'
|
7
7
|
require 'uri'
|
8
8
|
require 'cgi'
|
9
|
+
require 'json'
|
9
10
|
|
10
11
|
require 'clever-ruby/version'
|
11
12
|
|
@@ -120,6 +121,29 @@ module Clever
|
|
120
121
|
[url, payload]
|
121
122
|
end
|
122
123
|
|
124
|
+
# Headers hash for user-agent tracking
|
125
|
+
# @api private
|
126
|
+
# @return [Hash] headers to add to request
|
127
|
+
def self.tracking_headers
|
128
|
+
{
|
129
|
+
bindings_version: Clever::VERSION,
|
130
|
+
lang: 'ruby',
|
131
|
+
lang_version: RUBY_VERSION.to_s + ' p' + RUBY_PATCHLEVEL.to_s,
|
132
|
+
platform: RUBY_PLATFORM.to_s,
|
133
|
+
publisher: 'clever',
|
134
|
+
uname: uname
|
135
|
+
}
|
136
|
+
end
|
137
|
+
|
138
|
+
# Retrieves system's uname
|
139
|
+
# @api private
|
140
|
+
# @return [String] uname with the system's uname
|
141
|
+
def self.uname
|
142
|
+
`uname -a 2>/dev/null`.strip if RUBY_PLATFORM =~ /linux|darwin/i
|
143
|
+
rescue SystemCallError
|
144
|
+
'cannot get uname'
|
145
|
+
end
|
146
|
+
|
123
147
|
# Create options hash that specifies an HTTP request from request data
|
124
148
|
# @api private
|
125
149
|
# @return [Hash] parameters for executing a request
|
@@ -128,7 +152,9 @@ module Clever
|
|
128
152
|
url = api_url url
|
129
153
|
url, payload = create_payload method, url, params
|
130
154
|
|
131
|
-
headers[:
|
155
|
+
headers[:authorization] = 'Bearer ' + Clever.token if Clever.token
|
156
|
+
headers[:user_agent] = 'Clever/RubyBindings/' + Clever::VERSION
|
157
|
+
headers[:x_clever_client_user_agent] = tracking_headers.to_json
|
132
158
|
|
133
159
|
opts = {
|
134
160
|
method: method,
|
data/lib/clever-ruby/version.rb
CHANGED
data/test/unit/clever_test.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'test_helper'
|
2
|
+
require 'json'
|
2
3
|
|
3
4
|
# basic clever-ruby tests
|
4
5
|
# TODO: organize better
|
@@ -22,4 +23,41 @@ describe Clever do
|
|
22
23
|
query_string = Clever.convert_to_query_string created_at: '2013-02-15T 2:30:42Z'
|
23
24
|
query_string.must_equal 'created_at=2013-02-15T%202:30:42Z'
|
24
25
|
end
|
26
|
+
|
27
|
+
describe '.create_request_opts' do
|
28
|
+
before do
|
29
|
+
method, url = 'get', 'quotes'
|
30
|
+
params = { education: 'powerful weapon' }
|
31
|
+
headers = { author: 'Nelson Mandela' }
|
32
|
+
@options = Clever.create_request_opts method, url, params, headers
|
33
|
+
end
|
34
|
+
it 'sets method and url' do
|
35
|
+
assert_equal 'get', @options[:method], 'Method not set properly'
|
36
|
+
assert_equal(
|
37
|
+
'https://api.clever.com/quotes?education=powerful%20weapon',
|
38
|
+
@options[:url],
|
39
|
+
'URL not formed properly with params')
|
40
|
+
end
|
41
|
+
it 'adds tracking headers' do
|
42
|
+
headers = @options[:headers]
|
43
|
+
assert headers.key?(:authorization), 'Did not set authorization header'
|
44
|
+
assert_match(/Bearer/, headers[:authorization])
|
45
|
+
assert headers.key?(:user_agent), 'Did not set User Agent header'
|
46
|
+
assert_match %r{Clever/RubyBindings/}, headers[:user_agent]
|
47
|
+
assert(
|
48
|
+
headers.key?(:x_clever_client_user_agent),
|
49
|
+
'Did not set Clever Client User Agent header')
|
50
|
+
assert headers.key?(:author), 'Did not keep original header'
|
51
|
+
|
52
|
+
custom_ua = JSON.parse(headers[:x_clever_client_user_agent], symbolize_names: true)
|
53
|
+
assert custom_ua.key?(:lang), 'Did not set lang in custom user agent header'
|
54
|
+
assert_equal custom_ua[:lang], 'ruby', 'Lang is not set to ruby'
|
55
|
+
assert custom_ua.key?(:lang_version), 'Did not set lang_version in custom user agent header'
|
56
|
+
assert custom_ua.key?(:platform), 'Did not set platform in custom user agent header'
|
57
|
+
assert custom_ua.key?(:uname), 'Did not set uname in custom user agent header'
|
58
|
+
assert custom_ua.key?(:publisher), 'Did not set publisher in custom user agent header'
|
59
|
+
assert_equal custom_ua[:publisher], 'clever', 'Did not set publisher to clever'
|
60
|
+
assert custom_ua.key?(:bindings_version), 'Did not set bindings_version'
|
61
|
+
end
|
62
|
+
end
|
25
63
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: clever-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.10.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Clever Dev
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-10-
|
11
|
+
date: 2014-10-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: multi_json
|
@@ -56,14 +56,14 @@ dependencies:
|
|
56
56
|
name: rake
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - '>='
|
59
|
+
- - ! '>='
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - '>='
|
66
|
+
- - ! '>='
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
@@ -316,17 +316,17 @@ require_paths:
|
|
316
316
|
- lib
|
317
317
|
required_ruby_version: !ruby/object:Gem::Requirement
|
318
318
|
requirements:
|
319
|
-
- - '>='
|
319
|
+
- - ! '>='
|
320
320
|
- !ruby/object:Gem::Version
|
321
321
|
version: 1.9.3
|
322
322
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
323
323
|
requirements:
|
324
|
-
- - '>='
|
324
|
+
- - ! '>='
|
325
325
|
- !ruby/object:Gem::Version
|
326
326
|
version: '0'
|
327
327
|
requirements: []
|
328
328
|
rubyforge_project:
|
329
|
-
rubygems_version: 2.
|
329
|
+
rubygems_version: 2.2.2
|
330
330
|
signing_key:
|
331
331
|
specification_version: 4
|
332
332
|
summary: Ruby bindings to the Clever API.
|
@@ -417,3 +417,4 @@ test_files:
|
|
417
417
|
- test/unit/configuration_test.rb
|
418
418
|
- test/unit/event_test.rb
|
419
419
|
- test/unit/optional_attributes_test.rb
|
420
|
+
has_rdoc:
|