File tree Expand file tree Collapse file tree 8 files changed +46
-14
lines changed
Expand file tree Collapse file tree 8 files changed +46
-14
lines changed Original file line number Diff line number Diff line change 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
Original file line number Diff line number Diff 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'
Original file line number Diff line number Diff 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
Original file line number Diff line number Diff line change 11require 'faraday'
22require 'faraday_middleware'
3- require 'addressable/uri'
43require 'hashie/mash'
54
65require 'cortex/faraday_middleware/response_failures'
6+ require 'cortex/faraday_middleware/normalize_uri_path'
77
88module 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 => /\b json$/
3333
3434 ## Adapter always last:
Original file line number Diff line number Diff line change 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
Original file line number Diff line number Diff line change 11module Cortex
2- VERSION = '0.10.0 '
2+ VERSION = '0.10.1 '
33end
Original file line number Diff line number Diff line change 11require 'spec_helper'
22
33RSpec . 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
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
Original file line number Diff line number Diff line change 1- require 'ostruct'
1+ require 'webmock/rspec'
2+
23require_relative '../lib/cortex-client'
34
45RSpec . configure do |config |
56 config . mock_framework = :mocha
6- end
7+ end
You can’t perform that action at this time.
0 commit comments