Skip to content

Commit fd43044

Browse files
committed
Merge branch 'develop'
2 parents f9fb19f + 4902dcf commit fd43044

File tree

14 files changed

+103
-62
lines changed

14 files changed

+103
-62
lines changed

.travis.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
language: ruby
22
rvm:
3-
- 2.3.0
3+
- 2.4.0
44
notifications:
55
recipients:
6-
- ContentEnablementProductTeam@careerbuilder.com
6+
- EmployerSiteContentProducts@cb.com

CHANGELOG.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,14 @@
11
Version History
22
====
3-
* All Version bumps are required to update this file as well!!
3+
* All Version bumps are required to update this file as well!
44
----
55

6+
* 0.10.0:
7+
* Utilize `Addressable::URI` as Faraday's default URI parser so that resourceful URI fragments are escaped and parsed properly
8+
* Utilize `Faraday::Middleware` for `Hashie::Mash`ing & OAuth2 Token insertion
9+
* Update dependencies
10+
* No major breaking changes anticipated, but please *test* your use cases!
11+
* 0.9.0 - Add total pages, next page, and prev page to result object
612
* 0.8.0 - Revert ETag caching flow implementation
713
* 0.7.0 - Implement ability to specify OAuth scopes
814
* 0.6.1 - Update various dependencies

README.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,17 @@ Alternatively, cortex-client will handle OAuth2 authentication for you:
2222
```ruby
2323
require 'cortex-client'
2424

25-
client = Cortex::Client.new(key: 'my-app-id', secret: 'secrey-key-ssh', base_url: 'base_url', scopes: 'view:posts view:media')
25+
client = Cortex::Client.new(key: 'my-app-id', secret: 'my-app-secret', base_url: 'base_url', scopes: 'view:posts view:media')
2626

2727
client.posts.query().each do |post|
2828
puts post
2929
end
3030
```
3131

32+
## Authorization
33+
34+
For more information about `scopes` and how to obtain an application `key` and `secret`, check [Cortex's authorization documentation](https://github.com/cbdr/cortex#authorization).
35+
3236
## Result object
3337

3438
Cortex::Client will return a Cortex::Result object. The following methods are available:

cortex-client.gemspec

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,21 +6,22 @@ Gem::Specification.new do |s|
66
s.version = Cortex::VERSION
77
s.summary = 'Cortex API Client'
88
s.homepage = 'https://github.com/cortex-cms/cortex-client-ruby'
9-
s.authors = ['CB Content Enablement']
10-
s.email = 'ContentEnablementProductTeam@careerbuilder.com'
9+
s.authors = ['CareerBuilder Employer Site & Content Products']
10+
s.email = ['EmployerSiteContentProducts@cb.com']
1111
s.license = 'Apache-2.0'
1212

1313
s.files = `git ls-files`.split($/).reject { |f| f == '.gitignore' }
1414
s.test_files = s.files.grep(%r{^(test|spec|features)/})
1515
s.require_paths = ['lib']
1616

17-
s.add_development_dependency 'rake', '~> 11.1'
18-
s.add_development_dependency 'rspec', '~> 3.4'
19-
s.add_development_dependency 'mocha', '~> 1.1'
17+
s.add_development_dependency 'rake', '~> 12.0'
18+
s.add_development_dependency 'rspec', '~> 3.5'
19+
s.add_development_dependency 'mocha', '~> 1.2'
2020

21+
s.add_dependency 'oauth2', '~> 1.1.0'
2122
s.add_dependency 'faraday', '~> 0.9'
2223
s.add_dependency 'faraday_middleware', '~> 0.10'
23-
s.add_dependency 'oauth2', '~> 1.1.0'
24-
s.add_dependency 'cortex-exceptions', '~> 0.0.4'
24+
s.add_dependency 'addressable', '~> 2.5'
2525
s.add_dependency 'hashie', '~> 3.4'
26+
s.add_dependency 'cortex-exceptions', '~> 0.0.4'
2627
end

lib/cortex/client.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1+
require 'oauth2'
2+
13
require 'cortex/connection'
24
require 'cortex/request'
35
require 'cortex/resource'
46
require 'cortex/posts'
57
require 'cortex/users'
68
require 'cortex/webpages'
79
require 'cortex/result'
8-
require 'oauth2'
9-
require 'cortex/exceptions'
1010

1111
module Cortex
1212
class Client
@@ -20,7 +20,7 @@ class Client
2020
include Cortex::Request
2121

2222
def initialize(hasharg)
23-
@base_url = hasharg[:base_url] || 'https://cbcortex.com/api/v1/'
23+
@base_url = hasharg[:base_url] || 'https://cbcortex.com/api/v1'
2424
if hasharg.has_key? :access_token
2525
@access_token = hasharg[:access_token]
2626
else

lib/cortex/connection.rb

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
require 'faraday'
22
require 'faraday_middleware'
3-
require 'cortex/faraday_middleware'
3+
require 'addressable/uri'
4+
require 'hashie/mash'
5+
6+
require 'cortex/faraday_middleware/response_failures'
47

58
module Cortex
69
module Connection
@@ -16,11 +19,19 @@ def connection
1619
@access_token = get_cc_token
1720
end
1821

22+
Faraday::Utils.default_uri_parser = Addressable::URI
1923
Faraday.new options do |conn|
20-
conn.use Cortex::FaradayMiddleware
21-
conn.request :oauth2, access_token.is_a?(OAuth2::AccessToken) ? access_token.token : access_token
24+
## Request middleware first:
25+
conn.use ::FaradayMiddleware::OAuth2, access_token.is_a?(OAuth2::AccessToken) ? access_token.token : access_token
26+
27+
## Response middleware second:
28+
conn.use ::FaradayMiddleware::Mashify
29+
conn.use Cortex::FaradayMiddleware::ResponseFailures
30+
2231
conn.request :json
2332
conn.response :json, :content_type => /\bjson$/
33+
34+
## Adapter always last:
2435
conn.adapter Faraday.default_adapter
2536
end
2637
end

lib/cortex/faraday_middleware.rb

Lines changed: 0 additions & 14 deletions
This file was deleted.
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
require 'faraday'
2+
3+
require 'cortex/exceptions'
4+
5+
module Cortex
6+
module FaradayMiddleware
7+
class ResponseFailures < Faraday::Middleware
8+
def call(env)
9+
begin
10+
@app.call(env)
11+
rescue Faraday::ConnectionFailed
12+
raise Cortex::Exceptions::ConnectionFailed.new(base_url: env[:url])
13+
end
14+
end
15+
end
16+
end
17+
end

lib/cortex/request.rb

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
require 'ostruct'
2-
31
module Cortex
42
module Request
53
def get(path, params = {})

lib/cortex/resource.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,4 @@ def initialize(client)
77
protected
88
attr_accessor :client
99
end
10-
end
10+
end

0 commit comments

Comments
 (0)