tijuana_client 0.0.1 → 0.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 +4 -4
- data/Gemfile +1 -1
- data/Gemfile.lock +13 -9
- data/VERSION +1 -1
- data/lib/tijuana_client/base.rb +2 -55
- data/lib/tijuana_client/client.rb +61 -2
- data/lib/tijuana_client/user.rb +1 -1
- data/lib/tijuana_client.rb +0 -2
- data/spec/client_spec.rb +3 -9
- data/spec/spec_helper.rb +1 -7
- data/spec/user_spec.rb +13 -12
- data/tijuana_client.gemspec +74 -0
- metadata +3 -3
- data/lib/tijuana_client/configuration.rb +0 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 406351a1eca01ee917597abfb197a746505e7fd1
|
4
|
+
data.tar.gz: 2116912d9146a74d053443291b820f8f7074f6c2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5354d9376642e2d6c81164769404a6e472f5a22533f266aa923f7604e43652d6731a1a1d62ebb1c2a296a5c50b713fcf7206d7bdcc3e6fb79c54833951b98ffd
|
7
|
+
data.tar.gz: c33b56c80fed8af168a131138e626336bc909129dc33a943173cd2f96ec949c6f214ec4686fcd78f99937bfd197ee892b1eff9f165bc9b55fa33d39590d2b6cb
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
PATH
|
2
|
+
remote: /work/vertebrae
|
3
|
+
specs:
|
4
|
+
vertebrae (0.2.0)
|
5
|
+
activesupport
|
6
|
+
faraday
|
7
|
+
faraday_middleware
|
8
|
+
hashie
|
9
|
+
|
1
10
|
GEM
|
2
11
|
remote: http://rubygems.org/
|
3
12
|
specs:
|
@@ -21,8 +30,8 @@ GEM
|
|
21
30
|
debugger-linecache (1.2.0)
|
22
31
|
debugger-ruby_core_source (1.2.3)
|
23
32
|
diff-lcs (1.2.4)
|
24
|
-
faraday (0.8.
|
25
|
-
multipart-post (~> 1.
|
33
|
+
faraday (0.8.8)
|
34
|
+
multipart-post (~> 1.2.0)
|
26
35
|
faraday_middleware (0.9.0)
|
27
36
|
faraday (>= 0.7.4, < 0.9)
|
28
37
|
git (1.2.5)
|
@@ -83,14 +92,9 @@ GEM
|
|
83
92
|
rspec-mocks (2.14.1)
|
84
93
|
safe_yaml (0.9.4)
|
85
94
|
slop (3.4.5)
|
86
|
-
thread_safe (0.1.
|
95
|
+
thread_safe (0.1.2)
|
87
96
|
atomic
|
88
97
|
tzinfo (0.3.37)
|
89
|
-
vertebrae (0.1.6)
|
90
|
-
activesupport
|
91
|
-
faraday
|
92
|
-
faraday_middleware
|
93
|
-
hashie
|
94
98
|
webmock (1.13.0)
|
95
99
|
addressable (>= 2.2.7)
|
96
100
|
crack (>= 0.3.2)
|
@@ -104,5 +108,5 @@ DEPENDENCIES
|
|
104
108
|
pry
|
105
109
|
pry-debugger
|
106
110
|
rspec
|
107
|
-
vertebrae
|
111
|
+
vertebrae!
|
108
112
|
webmock
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0
|
1
|
+
0.1.0
|
data/lib/tijuana_client/base.rb
CHANGED
@@ -1,60 +1,7 @@
|
|
1
1
|
module TijuanaClient
|
2
|
-
class Base < Vertebrae::
|
2
|
+
class Base < Vertebrae::Model
|
3
3
|
def normalized_base_path
|
4
|
-
"
|
4
|
+
"api/#{base_path}/"
|
5
5
|
end
|
6
|
-
|
7
|
-
def post_json_request(path, params)
|
8
|
-
p = {}
|
9
|
-
p['data'] = params.to_json
|
10
|
-
post_request(path, p)
|
11
|
-
end
|
12
|
-
|
13
|
-
def request(method, path, params, options) # :nodoc:
|
14
|
-
if !::Vertebrae::Request::METHODS.include?(method)
|
15
|
-
raise ArgumentError, "unknown http method: #{method}"
|
16
|
-
end
|
17
|
-
|
18
|
-
conn = connection(options.merge(current_options))
|
19
|
-
path = conn.path_prefix + '/' + path
|
20
|
-
|
21
|
-
::Vertebrae::Base.logger.debug "EXECUTED: #{method} - #{path} with #{params} and #{options}"
|
22
|
-
|
23
|
-
conn.send(method) do |request|
|
24
|
-
|
25
|
-
case method.to_sym
|
26
|
-
when *(::Vertebrae::Request::METHODS - ::Vertebrae::Request::METHODS_WITH_BODIES)
|
27
|
-
request.body = params.delete('data') if params.has_key?('data')
|
28
|
-
request.url(path, params)
|
29
|
-
when *::Vertebrae::Request::METHODS_WITH_BODIES
|
30
|
-
request.path = path
|
31
|
-
request.body = extract_data_from_params(params) unless params.empty?
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
def default_middleware(options={})
|
37
|
-
Proc.new do |builder|
|
38
|
-
builder.use Faraday::Request::Multipart
|
39
|
-
builder.use Faraday::Request::UrlEncoded
|
40
|
-
builder.use Vertebrae::Request::BasicAuth, authentication if authenticated?
|
41
|
-
|
42
|
-
builder.use Faraday::Response::Logger if ENV['DEBUG']
|
43
|
-
|
44
|
-
builder.use Vertebrae::Response::RaiseError
|
45
|
-
builder.adapter adapter
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
private
|
50
|
-
|
51
|
-
def extract_data_from_params(params)
|
52
|
-
if params.has_key?('data') && params['data'].present?
|
53
|
-
return "data=#{params['data']}"
|
54
|
-
else
|
55
|
-
return params
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
6
|
end
|
60
7
|
end
|
@@ -1,7 +1,66 @@
|
|
1
1
|
module TijuanaClient
|
2
2
|
class Client < Vertebrae::API
|
3
|
-
def user
|
4
|
-
@user ||= TijuanaClient::User.new(
|
3
|
+
def user
|
4
|
+
@user ||= TijuanaClient::User.new(client: self)
|
5
|
+
end
|
6
|
+
|
7
|
+
def post_json_request(path, params)
|
8
|
+
p = {}
|
9
|
+
p['data'] = params.to_json
|
10
|
+
post_request(path, p)
|
11
|
+
end
|
12
|
+
|
13
|
+
def default_options
|
14
|
+
{
|
15
|
+
user_agent: 'TijuanaClient',
|
16
|
+
prefix: '',
|
17
|
+
content_type: 'application/x-www-form-urlencoded'
|
18
|
+
}
|
19
|
+
end
|
20
|
+
|
21
|
+
def request(method, path, params, options) # :nodoc:
|
22
|
+
if !::Vertebrae::Request::METHODS.include?(method)
|
23
|
+
raise ArgumentError, "unknown http method: #{method}"
|
24
|
+
end
|
25
|
+
|
26
|
+
path = connection.configuration.prefix + '/' + path
|
27
|
+
|
28
|
+
::Vertebrae::Base.logger.debug "EXECUTED: #{method} - #{path} with #{params} and #{options}"
|
29
|
+
|
30
|
+
connection.connection.send(method) do |request|
|
31
|
+
|
32
|
+
case method.to_sym
|
33
|
+
when *(::Vertebrae::Request::METHODS - ::Vertebrae::Request::METHODS_WITH_BODIES)
|
34
|
+
request.body = params.delete('data') if params.has_key?('data')
|
35
|
+
request.url(path, params)
|
36
|
+
when *::Vertebrae::Request::METHODS_WITH_BODIES
|
37
|
+
request.path = path
|
38
|
+
request.body = extract_data_from_params(params) unless params.empty?
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def setup
|
44
|
+
connection.stack do |builder|
|
45
|
+
builder.use Faraday::Request::Multipart
|
46
|
+
builder.use Faraday::Request::UrlEncoded
|
47
|
+
builder.use Vertebrae::Request::BasicAuth, connection.configuration.authentication if connection.configuration.authenticated?
|
48
|
+
|
49
|
+
builder.use Faraday::Response::Logger if ENV['DEBUG']
|
50
|
+
|
51
|
+
builder.use Vertebrae::Response::RaiseError
|
52
|
+
builder.adapter connection.configuration.adapter
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
private
|
57
|
+
|
58
|
+
def extract_data_from_params(params)
|
59
|
+
if params.has_key?('data') && params['data'].present?
|
60
|
+
return "data=#{params['data']}"
|
61
|
+
else
|
62
|
+
return params
|
63
|
+
end
|
5
64
|
end
|
6
65
|
end
|
7
66
|
end
|
data/lib/tijuana_client/user.rb
CHANGED
data/lib/tijuana_client.rb
CHANGED
@@ -1,12 +1,10 @@
|
|
1
1
|
require 'vertebrae'
|
2
|
-
require 'tijuana_client/configuration'
|
3
2
|
require 'tijuana_client/base'
|
4
3
|
require 'tijuana_client/user'
|
5
4
|
require 'tijuana_client/client'
|
6
5
|
|
7
6
|
module TijuanaClient
|
8
7
|
extend Vertebrae::Base
|
9
|
-
include TijuanaClient::Configuration
|
10
8
|
|
11
9
|
class << self
|
12
10
|
def new(options = {}, &block)
|
data/spec/client_spec.rb
CHANGED
@@ -8,16 +8,10 @@ describe TijuanaClient::Client do
|
|
8
8
|
|
9
9
|
context 'process_basic_auth' do
|
10
10
|
let(:options) { { :basic_auth => 'login:password' } }
|
11
|
-
|
12
|
-
|
13
|
-
|
11
|
+
let(:config) { subject.connection.configuration }
|
12
|
+
specify { config.username.should eq 'login' }
|
13
|
+
specify { config.password.should eq 'password' }
|
14
14
|
end
|
15
15
|
|
16
|
-
context "process username & password" do
|
17
|
-
let(:options) { { :username => 'login', password: 'password' } }
|
18
|
-
its(:username) { should eq 'login' }
|
19
|
-
its(:password) { should eq 'password' }
|
20
|
-
its(:basic_auth) { should eq 'login:password' }
|
21
|
-
end
|
22
16
|
end
|
23
17
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -36,16 +36,10 @@ def stub_post(path)
|
|
36
36
|
end
|
37
37
|
|
38
38
|
def stub_tijuana_request(method, path)
|
39
|
-
prefix = TijuanaClient.prefix.to_s
|
39
|
+
prefix = TijuanaClient.new.connection.configuration.prefix.to_s
|
40
40
|
stub_request(method, "https://test.com" + prefix + path)
|
41
41
|
end
|
42
42
|
|
43
|
-
def reset_authentication_for(object)
|
44
|
-
[ 'username', 'password' ].each do |item|
|
45
|
-
TijuanaClient.send("#{item}=", nil)
|
46
|
-
object.send("#{item}=", nil)
|
47
|
-
end
|
48
|
-
end
|
49
43
|
|
50
44
|
|
51
45
|
def fixture_path
|
data/spec/user_spec.rb
CHANGED
@@ -4,24 +4,25 @@ describe TijuanaClient::User do
|
|
4
4
|
subject { TijuanaClient.new(host: 'test.com') }
|
5
5
|
|
6
6
|
describe 'configuration' do
|
7
|
-
it 'should propagate the host
|
8
|
-
subject.user.host.should == 'test.com'
|
7
|
+
it 'should propagate the host' do
|
8
|
+
subject.user.client.connection.configuration.host.should == 'test.com'
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
12
12
|
describe '.post_json_request' do
|
13
|
-
|
13
|
+
let(:client) { TijuanaClient::Client.new }
|
14
|
+
subject { TijuanaClient::User.new({client: client }) }
|
14
15
|
let(:path) { '/foo' }
|
15
16
|
let(:params) { {first_name: 'Nathan'} }
|
16
17
|
|
17
|
-
it
|
18
|
-
|
19
|
-
|
18
|
+
it 'should jsonify params' do
|
19
|
+
client.should_receive(:post_request).with('/foo', {'data' => JSON.generate({ first_name: 'Nathan'}) } )
|
20
|
+
client.post_json_request(path, params)
|
20
21
|
end
|
21
22
|
end
|
22
23
|
|
23
|
-
describe
|
24
|
-
let(:body) {
|
24
|
+
describe 'create' do
|
25
|
+
let(:body) { '' }
|
25
26
|
let(:request_body) { "data=#{ JSON.generate({ first_name: 'Nathan'})}" }
|
26
27
|
let(:request_path) { '/api/users/' }
|
27
28
|
|
@@ -30,18 +31,18 @@ describe TijuanaClient::User do
|
|
30
31
|
:headers => { content_type: "application/json; charset=utf-8"})
|
31
32
|
end
|
32
33
|
|
33
|
-
describe
|
34
|
+
describe 'success' do
|
34
35
|
let(:status) { 200 }
|
35
36
|
|
36
|
-
it
|
37
|
+
it 'should create a user' do
|
37
38
|
subject.user.create(first_name: 'Nathan')
|
38
39
|
end
|
39
40
|
end
|
40
41
|
|
41
|
-
describe
|
42
|
+
describe 'an error' do
|
42
43
|
let(:status) { 500 }
|
43
44
|
|
44
|
-
it
|
45
|
+
it 'should return nil' do
|
45
46
|
lambda { subject.user.create(first_name: 'Nathan') }.should raise_exception
|
46
47
|
end
|
47
48
|
end
|
@@ -0,0 +1,74 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = "tijuana_client"
|
8
|
+
s.version = "0.1.0"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["Nathan Woodhull"]
|
12
|
+
s.date = "2013-07-30"
|
13
|
+
s.description = "An API client for the code that runs Getup.org.au"
|
14
|
+
s.email = "nathan@controlshiftlabs.com"
|
15
|
+
s.extra_rdoc_files = [
|
16
|
+
"LICENSE.txt",
|
17
|
+
"README.md"
|
18
|
+
]
|
19
|
+
s.files = [
|
20
|
+
".ruby-gemset",
|
21
|
+
".ruby-version",
|
22
|
+
"Gemfile",
|
23
|
+
"Gemfile.lock",
|
24
|
+
"LICENSE.txt",
|
25
|
+
"README.md",
|
26
|
+
"Rakefile",
|
27
|
+
"VERSION",
|
28
|
+
"lib/tijuana_client.rb",
|
29
|
+
"lib/tijuana_client/base.rb",
|
30
|
+
"lib/tijuana_client/client.rb",
|
31
|
+
"lib/tijuana_client/user.rb",
|
32
|
+
"spec/client_spec.rb",
|
33
|
+
"spec/spec_helper.rb",
|
34
|
+
"spec/tijuana_spec.rb",
|
35
|
+
"spec/user_spec.rb",
|
36
|
+
"tijuana_client.gemspec"
|
37
|
+
]
|
38
|
+
s.homepage = "http://github.com/controlshift/tijuana_client"
|
39
|
+
s.licenses = ["MIT"]
|
40
|
+
s.require_paths = ["lib"]
|
41
|
+
s.rubygems_version = "2.0.4"
|
42
|
+
s.summary = "API client for Tijuana"
|
43
|
+
|
44
|
+
if s.respond_to? :specification_version then
|
45
|
+
s.specification_version = 4
|
46
|
+
|
47
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
48
|
+
s.add_runtime_dependency(%q<vertebrae>, [">= 0"])
|
49
|
+
s.add_development_dependency(%q<rspec>, [">= 0"])
|
50
|
+
s.add_development_dependency(%q<webmock>, [">= 0"])
|
51
|
+
s.add_development_dependency(%q<pry>, [">= 0"])
|
52
|
+
s.add_development_dependency(%q<pry-debugger>, [">= 0"])
|
53
|
+
s.add_development_dependency(%q<bundler>, [">= 0"])
|
54
|
+
s.add_development_dependency(%q<jeweler>, ["~> 1.8.4"])
|
55
|
+
else
|
56
|
+
s.add_dependency(%q<vertebrae>, [">= 0"])
|
57
|
+
s.add_dependency(%q<rspec>, [">= 0"])
|
58
|
+
s.add_dependency(%q<webmock>, [">= 0"])
|
59
|
+
s.add_dependency(%q<pry>, [">= 0"])
|
60
|
+
s.add_dependency(%q<pry-debugger>, [">= 0"])
|
61
|
+
s.add_dependency(%q<bundler>, [">= 0"])
|
62
|
+
s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
|
63
|
+
end
|
64
|
+
else
|
65
|
+
s.add_dependency(%q<vertebrae>, [">= 0"])
|
66
|
+
s.add_dependency(%q<rspec>, [">= 0"])
|
67
|
+
s.add_dependency(%q<webmock>, [">= 0"])
|
68
|
+
s.add_dependency(%q<pry>, [">= 0"])
|
69
|
+
s.add_dependency(%q<pry-debugger>, [">= 0"])
|
70
|
+
s.add_dependency(%q<bundler>, [">= 0"])
|
71
|
+
s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tijuana_client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nathan Woodhull
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-07-
|
11
|
+
date: 2013-07-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: vertebrae
|
@@ -127,12 +127,12 @@ files:
|
|
127
127
|
- lib/tijuana_client.rb
|
128
128
|
- lib/tijuana_client/base.rb
|
129
129
|
- lib/tijuana_client/client.rb
|
130
|
-
- lib/tijuana_client/configuration.rb
|
131
130
|
- lib/tijuana_client/user.rb
|
132
131
|
- spec/client_spec.rb
|
133
132
|
- spec/spec_helper.rb
|
134
133
|
- spec/tijuana_spec.rb
|
135
134
|
- spec/user_spec.rb
|
135
|
+
- tijuana_client.gemspec
|
136
136
|
homepage: http://github.com/controlshift/tijuana_client
|
137
137
|
licenses:
|
138
138
|
- MIT
|