right_api_client 1.5.15 → 1.5.16

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 2af6588a889b4481d483cab397c80441d8604792
4
+ data.tar.gz: 33d1712937a923cadcfbf6a5b92e112b85d273a0
5
+ SHA512:
6
+ metadata.gz: bf2fbd1a63a0a699a1e5a52522088ceb9d31b54eb3bc08a670ab1d89c5ffd4fbcadfc28214284b6ae339c125affb5df05f441e84f5114f9c731bfda5ba090534
7
+ data.tar.gz: 1175def15b5720a226d0097f9a27517216e5fb597a169e15bfc2e41d56869caef16aeafded911017b38704363607b6379a627dddca5fe0df6e6fce77b7ec2789
data/.rspec ADDED
@@ -0,0 +1,4 @@
1
+ --colour
2
+ --format=nested
3
+ --backtrace
4
+ --debugger
@@ -1,5 +1,8 @@
1
1
  # CHANGELOG.md
2
2
 
3
+ ## 1.5.16
4
+ - \#57 Sapphire added optional support for querying a (detailed) resource with params, example: client.resource(href, :view => 'full')
5
+
3
6
  ## 1.5.15
4
7
  - \#50 Ivory 14 02 acu148161 Harden client against spotty networks
5
8
 
data/Gemfile CHANGED
@@ -1,3 +1,8 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- gemspec
3
+ gemspec
4
+
5
+ gem 'ruby-debug',
6
+ :platforms => [:ruby_18]
7
+ gem 'debugger',
8
+ :platforms => [:ruby_19, :ruby_20, :ruby_21]
@@ -1,18 +1,29 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- right_api_client (1.5.15)
5
- json
4
+ right_api_client (1.5.16)
5
+ json (~> 1.0)
6
+ mime-types (~> 1.0)
6
7
  rest-client (~> 1.6)
7
8
 
8
9
  GEM
9
10
  remote: https://rubygems.org/
10
11
  specs:
12
+ columnize (0.3.6)
13
+ debugger (1.6.6)
14
+ columnize (>= 0.3.1)
15
+ debugger-linecache (~> 1.2.0)
16
+ debugger-ruby_core_source (~> 1.3.2)
17
+ debugger-linecache (1.2.0)
18
+ debugger-ruby_core_source (1.3.2)
11
19
  diff-lcs (1.1.3)
12
20
  flexmock (0.8.7)
13
21
  json (1.8.1)
22
+ linecache (0.46)
23
+ rbx-require-relative (> 0.0.4)
14
24
  mime-types (1.25.1)
15
25
  rake (0.8.7)
26
+ rbx-require-relative (0.0.9)
16
27
  rest-client (1.6.7)
17
28
  mime-types (>= 1.16)
18
29
  rspec (2.9.0)
@@ -23,6 +34,11 @@ GEM
23
34
  rspec-expectations (2.9.1)
24
35
  diff-lcs (~> 1.1.3)
25
36
  rspec-mocks (2.9.0)
37
+ ruby-debug (0.10.4)
38
+ columnize (>= 0.1)
39
+ ruby-debug-base (~> 0.10.4.0)
40
+ ruby-debug-base (0.10.4)
41
+ linecache (>= 0.3)
26
42
  simplecov (0.4.2)
27
43
  simplecov-html (~> 0.4.4)
28
44
  simplecov-html (0.4.5)
@@ -31,9 +47,11 @@ PLATFORMS
31
47
  ruby
32
48
 
33
49
  DEPENDENCIES
34
- bundler
50
+ bundler (~> 1.0)
51
+ debugger
35
52
  flexmock (= 0.8.7)
36
53
  rake (= 0.8.7)
37
54
  right_api_client!
38
55
  rspec (= 2.9.0)
56
+ ruby-debug
39
57
  simplecov (= 0.4.2)
@@ -1,4 +1,4 @@
1
- Copyright (c) 2009-2012 RightScale, Inc.
1
+ Copyright (c) 2009-2014 RightScale, Inc.
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
@@ -6,7 +6,7 @@
6
6
  # The account number is at the end of the browser address bar.
7
7
  :account_id: my_account_id
8
8
 
9
- # There are four login mechanisms:
9
+ # There are five login mechanisms:
10
10
 
11
11
  # 0. Use the following parameters to login with your email and base64-encoded password:
12
12
  # To encode your plaintext password, use 'base64' command or similar.
@@ -22,9 +22,14 @@
22
22
  # User Data box, you will see RS_API_TOKEN = your_account_id:the_instance_token
23
23
  :instance_token: my_instance_token
24
24
 
25
- # 3. Use the following parameter to login with pre-authenticated cookies:
25
+ # 3. Use the following parameter to send a pre-authenticated cookie with every request:
26
26
  :cookies: my_cookie_string
27
27
 
28
+ # 4. Use the following parameter to send an existing OAuth access token with every request:
29
+ # To learn more about OAuth and how to obtain an access token, see
30
+ # http://support.rightscale.com/12-Guides/03-Rightscale_API/OAuth
31
+ :access_token: my_token_string
32
+
28
33
  # The following are optional parameters:
29
34
  :api_url: (this defaults to https://my.rightscale.com)
30
35
  :api_version: (this defaults to 1.5)
@@ -27,10 +27,10 @@ module RightApi
27
27
  # permitted parameters for initializing
28
28
  AUTH_PARAMS = %w[
29
29
  email password_base64 password account_id api_url api_version
30
- cookies instance_token timeout open_timeout max_attempts enable_retry
30
+ cookies instance_token access_token timeout open_timeout max_attempts enable_retry
31
31
  ]
32
32
 
33
- attr_reader :cookies, :instance_token, :last_request, :timeout, :open_timeout, :max_attempts, :enable_retry
33
+ attr_reader :cookies, :instance_token, :access_token, :last_request, :timeout, :open_timeout, :max_attempts, :enable_retry
34
34
  attr_accessor :account_id, :api_url
35
35
 
36
36
  def initialize(args)
@@ -51,10 +51,15 @@ module RightApi
51
51
  @rest_client = RestClient::Resource.new(@api_url, :open_timeout => @open_timeout, :timeout => @timeout)
52
52
  @last_request = {}
53
53
 
54
- # There are three options for login: credentials, instance token,
55
- # or if the user already has the cookies they can just use those.
54
+ # There are four options for login:
55
+ # - credentials
56
+ # - instance API token
57
+ # - existing user-supplied cookies
58
+ # - existing user-supplied OAuth access token
59
+ #
60
+ # The latter two options are not really login; they imply that the user logged in out of band.
56
61
  # See config/login.yml.example for more info.
57
- login() unless @cookies
62
+ login() unless @cookies || @access_token
58
63
 
59
64
  timestamp_cookies
60
65
 
@@ -104,9 +109,9 @@ module RightApi
104
109
 
105
110
  # Given a path returns a RightApiClient::Resource instance.
106
111
  #
107
- def resource(path)
112
+ def resource(path, params={})
108
113
 
109
- r = Resource.process(self, *do_get(path))
114
+ r = Resource.process(self, *do_get(path, params))
110
115
 
111
116
  r.respond_to?(:show) ? r.show : r
112
117
  end
@@ -175,7 +180,7 @@ module RightApi
175
180
  response = nil
176
181
  attempts = 0
177
182
  begin
178
- response = @rest_client[path].post(params, 'X_API_VERSION' => @api_version) do |response, request, result, &block|
183
+ response = @rest_client[path].post(params, 'X-Api-Version' => @api_version) do |response, request, result, &block|
179
184
  if response.code == 302
180
185
  update_api_url(response)
181
186
  response.follow_redirection(request, result, &block)
@@ -195,7 +200,19 @@ module RightApi
195
200
 
196
201
  # Returns the request headers
197
202
  def headers
198
- {'X_API_VERSION' => @api_version, 'X_ACCOUNT' => @account_id, :cookies => @cookies, :accept => :json}
203
+ h = {
204
+ 'X-Api-Version' => @api_version,
205
+ 'X-Account' => @account_id,
206
+ :accept => :json,
207
+ }
208
+
209
+ if @access_token
210
+ h['Authorization'] = "Bearer #{@access_token}"
211
+ elsif @cookies
212
+ h[:cookies] = @cookies
213
+ end
214
+
215
+ h
199
216
  end
200
217
 
201
218
  def update_last_request(request, response)
@@ -373,6 +390,9 @@ module RightApi
373
390
  end
374
391
 
375
392
  def re_login?(e)
393
+ # cannot successfully re-login with only an access token; we want the
394
+ # expiration error to be raised.
395
+ return false if @access_token
376
396
  e.message.index('403') && e.message =~ %r(.*Session cookie is expired or invalid)
377
397
  end
378
398
 
@@ -3,7 +3,7 @@ module RightApi
3
3
  # This class dynamically adds methods and properties to instances depending on what type of resource they are.
4
4
  class Resource
5
5
  include Helper
6
- attr_reader :client, :href
6
+ attr_reader :client, :href, :resource_type
7
7
 
8
8
  # Will create a (or an array of) new Resource object(s)
9
9
  # All parameters are treated as read only
@@ -77,7 +77,10 @@ module RightApi
77
77
  # future we might like to extract resource_type from child_href
78
78
  # and not hard-code it.
79
79
  if child_href.index('instance')
80
- define_instance_method(k) { RightApi::Resource.process(client, 'instance', child_href, v) }
80
+ define_instance_method(k) do |*args|
81
+ path = add_id_and_params_to_path(child_href, *args)
82
+ RightApi::Resource.process(client, 'instance', path, v)
83
+ end
81
84
  end
82
85
  end
83
86
  end
@@ -6,7 +6,7 @@ module RightApi
6
6
  class Resources
7
7
  include Helper
8
8
 
9
- attr_reader :client, :path
9
+ attr_reader :client, :path, :resource_type
10
10
  def inspect
11
11
  "#<#{self.class.name} " +
12
12
  "resource_type=\"#{@resource_type}\">"
@@ -2,7 +2,7 @@
2
2
  module RightApi
3
3
  class Client
4
4
  API_VERSION = '1.5'
5
- CLIENT_VERSION = '15'
5
+ CLIENT_VERSION = '16'
6
6
  VERSION = "#{API_VERSION}.#{CLIENT_VERSION}"
7
7
  end
8
8
  end
@@ -10,6 +10,7 @@ Gem::Specification.new do |s|
10
10
  s.email = [ 'rubygems@rightscale.com' ]
11
11
  s.homepage = 'https://github.com/rightscale/right_api_client'
12
12
  s.summary = 'RightScale MultiCloud API HTTP Client'
13
+ s.license = 'MIT'
13
14
  s.description = %{
14
15
  The right_api_client gem simplifies the use of RightScale's MultiCloud API.
15
16
  It provides a simple object model of the API resources, and handles all of the
@@ -19,12 +20,13 @@ fine details involved in making HTTP calls and translating their responses.
19
20
  s.test_files = `git ls-files spec config`.split(' ')
20
21
  s.rubygems_version = '1.3.7'
21
22
 
22
- s.add_runtime_dependency 'json'
23
+ s.add_runtime_dependency 'json', '~> 1.0'
24
+ s.add_runtime_dependency 'mime-types', '~> 1.0'
23
25
  s.add_runtime_dependency 'rest-client', '~> 1.6'
24
26
 
25
27
  s.add_development_dependency 'rake', '0.8.7'
26
28
  s.add_development_dependency 'rspec', '2.9.0'
27
29
  s.add_development_dependency 'flexmock', '0.8.7'
28
30
  s.add_development_dependency 'simplecov', '0.4.2'
29
- s.add_development_dependency 'bundler'
31
+ s.add_development_dependency 'bundler', '~> 1.0'
30
32
  end
@@ -3,7 +3,7 @@ ruby do
3
3
  gemset 'right_api_client'
4
4
  end
5
5
  bundler do
6
- version '1.3.5'
6
+ version '1.5.3'
7
7
  exclusions 'deployment'
8
8
  bundle_path File.join(ENV["HOME"], '.rightscale_bundle', 'right_api_client')
9
9
  end
@@ -13,6 +13,9 @@ describe RightApi::Client do
13
13
  puts e.message
14
14
  puts e.backtrace
15
15
  end
16
+
17
+ # Don't bother to run tests if the client didn't initialize
18
+ @client.should_not be_nil
16
19
  end
17
20
 
18
21
  it "logs in" do
@@ -37,6 +40,20 @@ describe RightApi::Client do
37
40
  client1.cookies.should == @client.cookies
38
41
  end
39
42
 
43
+ it "accepts an access_token argument when creating a new client" do
44
+ my_hash = YAML.load_file(File.expand_path(@creds, __FILE__))
45
+ my_hash.delete(:email)
46
+ my_hash.delete(:password)
47
+ my_hash.delete(:cookies)
48
+
49
+ access_token = @client.cookies.detect { |k, _| k =~ /^rs_gbl/ }.last
50
+ access_token.should_not be_nil
51
+ my_hash[:access_token] = access_token
52
+
53
+ client1 = RightApi::Client.new(my_hash)
54
+ client1.access_token.should == access_token
55
+ end
56
+
40
57
  it "timestamps cookies" do
41
58
 
42
59
  @client.cookies.timestamp.should_not == nil
@@ -6,14 +6,14 @@ module MockSpecHelper
6
6
  @rest_client = RestClient::Resource.new(RightApi::Client::DEFAULT_API_URL)
7
7
  flexmock(RestClient::Resource).should_receive(:new).and_return(@rest_client)
8
8
  @session = flexmock(:cookies => {})
9
- @header = {'X_API_VERSION' => @api_version, 'X_ACCOUNT' => @test_account_id, :cookies => {}, :accept => :json}
9
+ @header = {'X-Api-Version' => @api_version, 'X-Account' => @test_account_id, :cookies => {}, :accept => :json}
10
10
  end
11
11
 
12
12
  def given_user_facing_client
13
13
  mock_rest_client
14
14
  flexmock(@rest_client).should_receive(:post).with(
15
15
  {'email' => 'email', 'password' => 'password', 'account_href' => '/api/accounts/1'},
16
- {'X_API_VERSION' => @api_version}, Proc).and_return(@session)
16
+ {'X-Api-Version' => @api_version}, Proc).and_return(@session)
17
17
  flexmock(@rest_client).should_receive(:get).with(@header, Proc).and_return(['', '{}'])
18
18
  @client = RightApi::Client.new(:email => 'email', :password => 'password', :account_id => @test_account_id)
19
19
  end
@@ -22,7 +22,7 @@ module MockSpecHelper
22
22
  mock_rest_client
23
23
  flexmock(@rest_client).should_receive(:post).with(
24
24
  {'instance_token' => 'instance_token', 'account_href' => '/api/accounts/1'},
25
- {'X_API_VERSION' => @api_version}, Proc).and_return(@session)
25
+ {'X-Api-Version' => @api_version}, Proc).and_return(@session)
26
26
  flexmock(@rest_client).should_receive(:get).with(@header, Proc).and_return(['', '{"links": [
27
27
  {
28
28
  "href": "/api/clouds/1/instances/1",
metadata CHANGED
@@ -1,143 +1,139 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: right_api_client
3
- version: !ruby/object:Gem::Version
4
- hash: 29
5
- prerelease:
6
- segments:
7
- - 1
8
- - 5
9
- - 15
10
- version: 1.5.15
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.5.16
11
5
  platform: ruby
12
- authors:
6
+ authors:
13
7
  - RightScale, Inc.
14
8
  autorequire:
15
9
  bindir: bin
16
10
  cert_chain: []
17
-
18
- date: 2014-01-30 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
21
- requirement: &id001 !ruby/object:Gem::Requirement
22
- none: false
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- hash: 3
27
- segments:
28
- - 0
29
- version: "0"
30
- type: :runtime
11
+ date: 2014-03-26 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
31
14
  name: json
32
- version_requirements: *id001
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.0'
20
+ type: :runtime
33
21
  prerelease: false
34
- - !ruby/object:Gem::Dependency
35
- requirement: &id002 !ruby/object:Gem::Requirement
36
- none: false
37
- requirements:
38
- - - ~>
39
- - !ruby/object:Gem::Version
40
- hash: 3
41
- segments:
42
- - 1
43
- - 6
44
- version: "1.6"
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: mime-types
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.0'
45
34
  type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.0'
41
+ - !ruby/object:Gem::Dependency
46
42
  name: rest-client
47
- version_requirements: *id002
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.6'
48
+ type: :runtime
48
49
  prerelease: false
49
- - !ruby/object:Gem::Dependency
50
- requirement: &id003 !ruby/object:Gem::Requirement
51
- none: false
52
- requirements:
53
- - - "="
54
- - !ruby/object:Gem::Version
55
- hash: 49
56
- segments:
57
- - 0
58
- - 8
59
- - 7
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.6'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '='
60
+ - !ruby/object:Gem::Version
60
61
  version: 0.8.7
61
62
  type: :development
62
- name: rake
63
- version_requirements: *id003
64
63
  prerelease: false
65
- - !ruby/object:Gem::Dependency
66
- requirement: &id004 !ruby/object:Gem::Requirement
67
- none: false
68
- requirements:
69
- - - "="
70
- - !ruby/object:Gem::Version
71
- hash: 43
72
- segments:
73
- - 2
74
- - 9
75
- - 0
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '='
67
+ - !ruby/object:Gem::Version
68
+ version: 0.8.7
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '='
74
+ - !ruby/object:Gem::Version
76
75
  version: 2.9.0
77
76
  type: :development
78
- name: rspec
79
- version_requirements: *id004
80
77
  prerelease: false
81
- - !ruby/object:Gem::Dependency
82
- requirement: &id005 !ruby/object:Gem::Requirement
83
- none: false
84
- requirements:
85
- - - "="
86
- - !ruby/object:Gem::Version
87
- hash: 49
88
- segments:
89
- - 0
90
- - 8
91
- - 7
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '='
81
+ - !ruby/object:Gem::Version
82
+ version: 2.9.0
83
+ - !ruby/object:Gem::Dependency
84
+ name: flexmock
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - '='
88
+ - !ruby/object:Gem::Version
92
89
  version: 0.8.7
93
90
  type: :development
94
- name: flexmock
95
- version_requirements: *id005
96
91
  prerelease: false
97
- - !ruby/object:Gem::Dependency
98
- requirement: &id006 !ruby/object:Gem::Requirement
99
- none: false
100
- requirements:
101
- - - "="
102
- - !ruby/object:Gem::Version
103
- hash: 11
104
- segments:
105
- - 0
106
- - 4
107
- - 2
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '='
95
+ - !ruby/object:Gem::Version
96
+ version: 0.8.7
97
+ - !ruby/object:Gem::Dependency
98
+ name: simplecov
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '='
102
+ - !ruby/object:Gem::Version
108
103
  version: 0.4.2
109
104
  type: :development
110
- name: simplecov
111
- version_requirements: *id006
112
105
  prerelease: false
113
- - !ruby/object:Gem::Dependency
114
- requirement: &id007 !ruby/object:Gem::Requirement
115
- none: false
116
- requirements:
117
- - - ">="
118
- - !ruby/object:Gem::Version
119
- hash: 3
120
- segments:
121
- - 0
122
- version: "0"
123
- type: :development
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - '='
109
+ - !ruby/object:Gem::Version
110
+ version: 0.4.2
111
+ - !ruby/object:Gem::Dependency
124
112
  name: bundler
125
- version_requirements: *id007
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '1.0'
118
+ type: :development
126
119
  prerelease: false
127
- description: "\n\
128
- The right_api_client gem simplifies the use of RightScale's MultiCloud API.\n\
129
- It provides a simple object model of the API resources, and handles all of the\n\
130
- fine details involved in making HTTP calls and translating their responses.\n "
131
- email:
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '1.0'
125
+ description: "\nThe right_api_client gem simplifies the use of RightScale's MultiCloud
126
+ API.\nIt provides a simple object model of the API resources, and handles all of
127
+ the\nfine details involved in making HTTP calls and translating their responses.\n
128
+ \ "
129
+ email:
132
130
  - rubygems@rightscale.com
133
131
  executables: []
134
-
135
132
  extensions: []
136
-
137
133
  extra_rdoc_files: []
138
-
139
- files:
140
- - .gitignore
134
+ files:
135
+ - ".gitignore"
136
+ - ".rspec"
141
137
  - CHANGELOG.md
142
138
  - Gemfile
143
139
  - Gemfile.lock
@@ -167,39 +163,30 @@ files:
167
163
  - spec/unit/resource_spec.rb
168
164
  - spec/unit/resources_spec.rb
169
165
  homepage: https://github.com/rightscale/right_api_client
170
- licenses: []
171
-
166
+ licenses:
167
+ - MIT
168
+ metadata: {}
172
169
  post_install_message:
173
170
  rdoc_options: []
174
-
175
- require_paths:
171
+ require_paths:
176
172
  - lib
177
- required_ruby_version: !ruby/object:Gem::Requirement
178
- none: false
179
- requirements:
173
+ required_ruby_version: !ruby/object:Gem::Requirement
174
+ requirements:
180
175
  - - ">="
181
- - !ruby/object:Gem::Version
182
- hash: 3
183
- segments:
184
- - 0
185
- version: "0"
186
- required_rubygems_version: !ruby/object:Gem::Requirement
187
- none: false
188
- requirements:
176
+ - !ruby/object:Gem::Version
177
+ version: '0'
178
+ required_rubygems_version: !ruby/object:Gem::Requirement
179
+ requirements:
189
180
  - - ">="
190
- - !ruby/object:Gem::Version
191
- hash: 3
192
- segments:
193
- - 0
194
- version: "0"
181
+ - !ruby/object:Gem::Version
182
+ version: '0'
195
183
  requirements: []
196
-
197
184
  rubyforge_project:
198
- rubygems_version: 1.8.28
185
+ rubygems_version: 2.2.2
199
186
  signing_key:
200
- specification_version: 3
187
+ specification_version: 4
201
188
  summary: RightScale MultiCloud API HTTP Client
202
- test_files:
189
+ test_files:
203
190
  - config/login.yml.example
204
191
  - spec/functional/audit_entries_spec.rb
205
192
  - spec/functional/client_spec.rb