mortar-api-ruby 0.7.0 → 0.7.1

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.
data/.rvmrc CHANGED
@@ -1 +1 @@
1
- rvm use 1.8.7@mortar --create
1
+ rvm use 1.9.3@mortar --create
data/lib/mortar/api.rb CHANGED
@@ -44,6 +44,7 @@ require "mortar/api/login"
44
44
  require "mortar/api/projects"
45
45
  require "mortar/api/user"
46
46
  require "mortar/api/tasks"
47
+ require "mortar/api/config"
47
48
 
48
49
  srand
49
50
 
@@ -0,0 +1,53 @@
1
+ #
2
+ # Copyright 2012 Mortar Data Inc.
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ #
16
+ # Portions of this code from heroku (https://github.com/heroku/heroku/) Copyright Heroku 2008 - 2013,
17
+ # used under an MIT license (https://github.com/heroku/heroku/blob/master/LICENSE).
18
+ #
19
+
20
+ module Mortar
21
+ class API
22
+
23
+ # PUT /vX/config/:project_name
24
+ def put_config_vars(project_name, config_vars)
25
+ request(
26
+ :expects => 200,
27
+ :method => :put,
28
+ :path => versioned_path("/config/#{escape(project_name)}"),
29
+ :body => json_encode(config_vars)
30
+ )
31
+ end
32
+
33
+ # GET /vX/config/:project_name
34
+ def get_config_vars(project_name)
35
+ request(
36
+ :expects => 200,
37
+ :method => :get,
38
+ :path => versioned_path("/config/#{escape(project_name)}")
39
+ )
40
+ end
41
+
42
+ # DELETE /vX/config/:project_name
43
+ def delete_config_var(project_name, config_var)
44
+ body = {'key' => config_var}
45
+ request(
46
+ :expects => 200,
47
+ :method => :delete,
48
+ :path => versioned_path("/config/#{escape(project_name)}"),
49
+ :body => json_encode(body)
50
+ )
51
+ end
52
+ end
53
+ end
@@ -18,7 +18,7 @@ module Mortar
18
18
  class API
19
19
  # client version
20
20
  # see http://semver.org/
21
- VERSION = "0.7.0"
21
+ VERSION = "0.7.1"
22
22
 
23
23
  SERVER_API_VERSION = "2"
24
24
  end
@@ -0,0 +1,69 @@
1
+ #
2
+ # Copyright 2012 Mortar Data Inc.
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ #
16
+
17
+ require "base64"
18
+ require "spec_helper"
19
+ require "mortar/api"
20
+
21
+
22
+ describe Mortar::API do
23
+
24
+ before(:each) do
25
+ @api = Mortar::API.new
26
+ end
27
+
28
+ after(:each) do
29
+ Excon.stubs.clear
30
+ end
31
+
32
+ context "config" do
33
+ it "puts config vars" do
34
+ project_name = "my_project needs escaping"
35
+ config_vars = {"a" => "foo", "B" => "BAR"}
36
+ body = Mortar::API::OkJson.encode(config_vars)
37
+ Excon.stub({:method => :put, :path => "/v2/config/my_project+needs+escaping", :body => body}) do |params|
38
+ {:body => "", :status => 200}
39
+ end
40
+ response = @api.put_config_vars(project_name, config_vars)
41
+ response.body.should == ''
42
+ end
43
+
44
+ it "gets config vars" do
45
+ project_name = "my_project needs escaping"
46
+ Excon.stub({:method => :get, :path => "/v2/config/my_project+needs+escaping"}) do |params|
47
+ {:body => Mortar::API::OkJson.encode({"config" => {"a" => "foo", "B" => "BAR"}}),
48
+ :status => 200}
49
+ end
50
+ response = @api.get_config_vars(project_name)
51
+ config_vars = response.body["config"]
52
+ config_vars["a"].should == "foo"
53
+ config_vars["B"].should == "BAR"
54
+ end
55
+
56
+ it "unset a config var" do
57
+ project_name = "my_project needs escaping"
58
+ var_name = "MY_VAR"
59
+ Excon.stub({:method => :delete,
60
+ :path => "/v2/config/my_project+needs+escaping",
61
+ :body => Mortar::API::OkJson.encode({'key' => var_name})}) do |params|
62
+ {:body => "", :status => 200}
63
+ end
64
+ response = @api.delete_config_var(project_name, var_name)
65
+ config_vars = response.body.should == ""
66
+ end
67
+ end
68
+
69
+ end
metadata CHANGED
@@ -1,109 +1,108 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: mortar-api-ruby
3
- version: !ruby/object:Gem::Version
4
- hash: 3
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.7.1
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 7
9
- - 0
10
- version: 0.7.0
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Mortar Data
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2013-10-22 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
12
+ date: 2013-11-06 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
21
15
  name: excon
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
24
17
  none: false
25
- requirements:
18
+ requirements:
26
19
  - - ~>
27
- - !ruby/object:Gem::Version
28
- hash: 21
29
- segments:
30
- - 0
31
- - 15
32
- version: "0.15"
20
+ - !ruby/object:Gem::Version
21
+ version: '0.15'
33
22
  - - <
34
- - !ruby/object:Gem::Version
35
- hash: 41
36
- segments:
37
- - 0
38
- - 17
39
- version: "0.17"
23
+ - !ruby/object:Gem::Version
24
+ version: '0.17'
40
25
  type: :runtime
41
- version_requirements: *id001
42
- - !ruby/object:Gem::Dependency
43
- name: gem-release
44
26
  prerelease: false
45
- requirement: &id002 !ruby/object:Gem::Requirement
27
+ version_requirements: !ruby/object:Gem::Requirement
46
28
  none: false
47
- requirements:
48
- - - ">="
49
- - !ruby/object:Gem::Version
50
- hash: 3
51
- segments:
52
- - 0
53
- version: "0"
29
+ requirements:
30
+ - - ~>
31
+ - !ruby/object:Gem::Version
32
+ version: '0.15'
33
+ - - <
34
+ - !ruby/object:Gem::Version
35
+ version: '0.17'
36
+ - !ruby/object:Gem::Dependency
37
+ name: gem-release
38
+ requirement: !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
54
44
  type: :development
55
- version_requirements: *id002
56
- - !ruby/object:Gem::Dependency
57
- name: rake
58
45
  prerelease: false
59
- requirement: &id003 !ruby/object:Gem::Requirement
46
+ version_requirements: !ruby/object:Gem::Requirement
47
+ none: false
48
+ requirements:
49
+ - - ! '>='
50
+ - !ruby/object:Gem::Version
51
+ version: '0'
52
+ - !ruby/object:Gem::Dependency
53
+ name: rake
54
+ requirement: !ruby/object:Gem::Requirement
60
55
  none: false
61
- requirements:
62
- - - ">="
63
- - !ruby/object:Gem::Version
64
- hash: 3
65
- segments:
66
- - 0
67
- version: "0"
56
+ requirements:
57
+ - - ! '>='
58
+ - !ruby/object:Gem::Version
59
+ version: '0'
68
60
  type: :development
69
- version_requirements: *id003
70
- - !ruby/object:Gem::Dependency
71
- name: rr
72
61
  prerelease: false
73
- requirement: &id004 !ruby/object:Gem::Requirement
62
+ version_requirements: !ruby/object:Gem::Requirement
63
+ none: false
64
+ requirements:
65
+ - - ! '>='
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ - !ruby/object:Gem::Dependency
69
+ name: rr
70
+ requirement: !ruby/object:Gem::Requirement
74
71
  none: false
75
- requirements:
76
- - - ">="
77
- - !ruby/object:Gem::Version
78
- hash: 3
79
- segments:
80
- - 0
81
- version: "0"
72
+ requirements:
73
+ - - ! '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
82
76
  type: :development
83
- version_requirements: *id004
84
- - !ruby/object:Gem::Dependency
85
- name: rspec
86
77
  prerelease: false
87
- requirement: &id005 !ruby/object:Gem::Requirement
78
+ version_requirements: !ruby/object:Gem::Requirement
88
79
  none: false
89
- requirements:
90
- - - ">="
91
- - !ruby/object:Gem::Version
92
- hash: 3
93
- segments:
94
- - 0
95
- version: "0"
80
+ requirements:
81
+ - - ! '>='
82
+ - !ruby/object:Gem::Version
83
+ version: '0'
84
+ - !ruby/object:Gem::Dependency
85
+ name: rspec
86
+ requirement: !ruby/object:Gem::Requirement
87
+ none: false
88
+ requirements:
89
+ - - ! '>='
90
+ - !ruby/object:Gem::Version
91
+ version: '0'
96
92
  type: :development
97
- version_requirements: *id005
93
+ prerelease: false
94
+ version_requirements: !ruby/object:Gem::Requirement
95
+ none: false
96
+ requirements:
97
+ - - ! '>='
98
+ - !ruby/object:Gem::Version
99
+ version: '0'
98
100
  description: Client for Mortar API.
99
101
  email: support@mortardata.com
100
102
  executables: []
101
-
102
103
  extensions: []
103
-
104
104
  extra_rdoc_files: []
105
-
106
- files:
105
+ files:
107
106
  - .gitignore
108
107
  - .rvmrc
109
108
  - .travis.yml
@@ -116,6 +115,7 @@ files:
116
115
  - lib/mortar/api.rb
117
116
  - lib/mortar/api/basicauth.rb
118
117
  - lib/mortar/api/clusters.rb
118
+ - lib/mortar/api/config.rb
119
119
  - lib/mortar/api/describe.rb
120
120
  - lib/mortar/api/errors.rb
121
121
  - lib/mortar/api/fixtures.rb
@@ -131,6 +131,7 @@ files:
131
131
  - mortar-api-ruby.gemspec
132
132
  - spec/mortar/api/basicauth_spec.rb
133
133
  - spec/mortar/api/clusters_spec.rb
134
+ - spec/mortar/api/config_spec.rb
134
135
  - spec/mortar/api/describe_spec.rb
135
136
  - spec/mortar/api/errors_spec.rb
136
137
  - spec/mortar/api/fixtures_spec.rb
@@ -146,42 +147,32 @@ files:
146
147
  - spec/spec_helper.rb
147
148
  homepage: http://mortardata.com/
148
149
  licenses: []
149
-
150
150
  post_install_message:
151
151
  rdoc_options: []
152
-
153
- require_paths:
152
+ require_paths:
154
153
  - lib
155
- required_ruby_version: !ruby/object:Gem::Requirement
154
+ required_ruby_version: !ruby/object:Gem::Requirement
156
155
  none: false
157
- requirements:
158
- - - ">="
159
- - !ruby/object:Gem::Version
160
- hash: 57
161
- segments:
162
- - 1
163
- - 8
164
- - 7
156
+ requirements:
157
+ - - ! '>='
158
+ - !ruby/object:Gem::Version
165
159
  version: 1.8.7
166
- required_rubygems_version: !ruby/object:Gem::Requirement
160
+ required_rubygems_version: !ruby/object:Gem::Requirement
167
161
  none: false
168
- requirements:
169
- - - ">="
170
- - !ruby/object:Gem::Version
171
- hash: 3
172
- segments:
173
- - 0
174
- version: "0"
162
+ requirements:
163
+ - - ! '>='
164
+ - !ruby/object:Gem::Version
165
+ version: '0'
175
166
  requirements: []
176
-
177
167
  rubyforge_project:
178
- rubygems_version: 1.8.24
168
+ rubygems_version: 1.8.23
179
169
  signing_key:
180
170
  specification_version: 3
181
171
  summary: Client for Mortar API
182
- test_files:
172
+ test_files:
183
173
  - spec/mortar/api/basicauth_spec.rb
184
174
  - spec/mortar/api/clusters_spec.rb
175
+ - spec/mortar/api/config_spec.rb
185
176
  - spec/mortar/api/describe_spec.rb
186
177
  - spec/mortar/api/errors_spec.rb
187
178
  - spec/mortar/api/fixtures_spec.rb