Skip to content

Commit d3edb02

Browse files
committed
Merge branch 'develop'
2 parents fd43044 + d97f0f4 commit d3edb02

File tree

8 files changed

+46
-14
lines changed

8 files changed

+46
-14
lines changed

Diff for: .editorconfig

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
root = true
2+
3+
[*]
4+
indent_style = space
5+
indent_size = 2
6+
end_of_line = lf
7+
insert_final_newline = true
8+
charset = utf-8
9+
trim_trailing_whitespace = true

Diff for: cortex-client.gemspec

+2-1
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,9 @@ Gem::Specification.new do |s|
1717
s.add_development_dependency 'rake', '~> 12.0'
1818
s.add_development_dependency 'rspec', '~> 3.5'
1919
s.add_development_dependency 'mocha', '~> 1.2'
20+
s.add_development_dependency 'webmock', '~> 2.3'
2021

21-
s.add_dependency 'oauth2', '~> 1.1.0'
22+
s.add_dependency 'oauth2', '~> 1.1'
2223
s.add_dependency 'faraday', '~> 0.9'
2324
s.add_dependency 'faraday_middleware', '~> 0.10'
2425
s.add_dependency 'addressable', '~> 2.5'

Diff for: lib/cortex/client.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -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] || 'http://cortex.dev/api/v1'
2424
if hasharg.has_key? :access_token
2525
@access_token = hasharg[:access_token]
2626
else

Diff for: lib/cortex/connection.rb

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
require 'faraday'
22
require 'faraday_middleware'
3-
require 'addressable/uri'
43
require 'hashie/mash'
54

65
require 'cortex/faraday_middleware/response_failures'
6+
require 'cortex/faraday_middleware/normalize_uri_path'
77

88
module Cortex
99
module Connection
@@ -22,13 +22,13 @@ def connection
2222
Faraday::Utils.default_uri_parser = Addressable::URI
2323
Faraday.new options do |conn|
2424
## Request middleware first:
25-
conn.use ::FaradayMiddleware::OAuth2, access_token.is_a?(OAuth2::AccessToken) ? access_token.token : access_token
25+
conn.use Cortex::FaradayMiddleware::NormalizeURIPath
26+
conn.request :oauth2, access_token.is_a?(OAuth2::AccessToken) ? access_token.token : access_token
27+
conn.request :json
2628

2729
## Response middleware second:
28-
conn.use ::FaradayMiddleware::Mashify
30+
conn.response :mashify
2931
conn.use Cortex::FaradayMiddleware::ResponseFailures
30-
31-
conn.request :json
3232
conn.response :json, :content_type => /\bjson$/
3333

3434
## Adapter always last:

Diff for: lib/cortex/faraday_middleware/normalize_uri_path.rb

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
require 'faraday/middleware'
2+
require 'addressable/uri'
3+
4+
module Cortex
5+
module FaradayMiddleware
6+
class NormalizeURIPath < Faraday::Middleware
7+
def call(env)
8+
env[:url].path = Addressable::URI.normalize_component(env[:url].path)
9+
10+
@app.call env
11+
end
12+
end
13+
end
14+
end

Diff for: lib/cortex/version.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
module Cortex
2-
VERSION = '0.10.0'
2+
VERSION = '0.10.1'
33
end

Diff for: spec/posts_spec.rb

+11-4
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
require 'spec_helper'
22

33
RSpec.describe Cortex::Posts do
4-
5-
# TODO: Stub out Faraday somewhere. See: https://github.com/lostisland/faraday#using-faraday-for-testing
64
let(:client) { Cortex::Client.new(access_token: '123') }
75

86
describe :get do
@@ -18,8 +16,17 @@
1816
expect(client.posts.get_published(1)).to eq('response')
1917
end
2018

21-
it 'should work with special characters' do
22-
expect { client.posts.get_published('1 post') }.to_not raise_error(URI::InvalidURIError)
19+
context 'with special characters' do
20+
let!(:stubbed_request) { stub_request(:get, 'http://cortex.dev/api/v1/posts/feed/1%20post?access_token=123') }
21+
22+
it 'should correctly make the request' do
23+
client.posts.get_published('1 post')
24+
expect(stubbed_request).to have_been_made.once
25+
end
26+
27+
it 'should not be considered an invalid URI' do
28+
expect { client.posts.get_published('1 post') }.to_not raise_error(URI::InvalidURIError)
29+
end
2330
end
2431
end
2532

Diff for: spec/spec_helper.rb

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
require 'ostruct'
1+
require 'webmock/rspec'
2+
23
require_relative '../lib/cortex-client'
34

45
RSpec.configure do |config|
56
config.mock_framework = :mocha
6-
end
7+
end

0 commit comments

Comments
 (0)