optimizely 1.1.3 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +7 -0
- data/lib/optimizely/engine.rb +18 -14
- data/lib/optimizely/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8b66e79d51fa50c9646d90e3dfdce45969256c33
|
4
|
+
data.tar.gz: 7fa873506a686f2e4e691cb280ee35ac44c6c250
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f48dd35107452634ae87980421b0ca0a9bf645230fe8755f82e379a5738bb57fdd8f6cc37a3b3ecd3335dc41f71c3d770d5ee9009561ef4ed547e8a0bc33f80b
|
7
|
+
data.tar.gz: 8d484df17bffcd2adf824aa9840db07ef7e867d7f75329d39ea66c60d1890aabecd626038465c65b410cffd698dc124023a0b138d389f06134b6a525669a0ee1
|
data/README.md
CHANGED
@@ -68,6 +68,13 @@ The fields that are available for an audience: id, name, project_id and descript
|
|
68
68
|
|
69
69
|
### Changelog
|
70
70
|
|
71
|
+
#### 1.2.0
|
72
|
+
* Provide users with a method to delete audiences, experiments, variations and projects.
|
73
|
+
|
74
|
+
#### 1.1.3
|
75
|
+
* Add methods for put, post and delete requests.
|
76
|
+
* Refactor the way we check response codes to make it available to the put, post and delete methods.
|
77
|
+
|
71
78
|
#### 1.1.2
|
72
79
|
* Write tests to check what happens if data is not available.
|
73
80
|
|
data/lib/optimizely/engine.rb
CHANGED
@@ -3,7 +3,7 @@ module Optimizely
|
|
3
3
|
|
4
4
|
BASE_URL = "https://www.optimizelyapis.com/experiment/v1/"
|
5
5
|
|
6
|
-
attr_accessor :
|
6
|
+
attr_accessor :url
|
7
7
|
|
8
8
|
# Initialize Optimizely using an API token.
|
9
9
|
#
|
@@ -44,10 +44,11 @@ module Optimizely
|
|
44
44
|
# project = optimizely.project(12345) # Look up the project.
|
45
45
|
#
|
46
46
|
def project(id)
|
47
|
+
@url = "projects/#{id}"
|
47
48
|
raise OptimizelyError::NoProjectID, "A Project ID is required to retrieve the project." if id.nil?
|
48
49
|
|
49
50
|
if @project.nil?
|
50
|
-
response = self.get(
|
51
|
+
response = self.get(@url)
|
51
52
|
@project = Project.new(response)
|
52
53
|
end
|
53
54
|
@project
|
@@ -76,10 +77,11 @@ module Optimizely
|
|
76
77
|
# experiment = optimizely.experiment(12345) # Look up the experiment.
|
77
78
|
#
|
78
79
|
def experiment(id)
|
80
|
+
@url = "experiments/#{id}"
|
79
81
|
raise OptimizelyError::NoExperimentID, "An Experiment ID is required to retrieve the experiment." if id.nil?
|
80
82
|
|
81
83
|
if @experiment.nil?
|
82
|
-
response = self.get(
|
84
|
+
response = self.get(@url)
|
83
85
|
@experiment = Experiment.new(response)
|
84
86
|
end
|
85
87
|
@experiment
|
@@ -108,10 +110,11 @@ module Optimizely
|
|
108
110
|
# variation = optimizely.variation(12345) # Look up the variation.
|
109
111
|
#
|
110
112
|
def variation(id)
|
113
|
+
@url = "variations/#{id}"
|
111
114
|
raise OptimizelyError::NoVariationID, "A Variation ID is required to retrieve the variation." if id.nil?
|
112
115
|
|
113
116
|
if @variation.nil?
|
114
|
-
response = self.get(
|
117
|
+
response = self.get(@url)
|
115
118
|
@variation = Variation.new(response)
|
116
119
|
end
|
117
120
|
@variation
|
@@ -140,10 +143,11 @@ module Optimizely
|
|
140
143
|
# audience = optimizely.audience(12345) # Look up the audience.
|
141
144
|
#
|
142
145
|
def audience(id)
|
146
|
+
@url = "audiences/#{id}"
|
143
147
|
raise OptimizelyError::NoAudienceID, "An Audience ID is required to retrieve the audience." if id.nil?
|
144
148
|
|
145
149
|
if @audience.nil?
|
146
|
-
response = self.get(
|
150
|
+
response = self.get(@url)
|
147
151
|
@audience = Audience.new(response)
|
148
152
|
end
|
149
153
|
@audience
|
@@ -161,13 +165,13 @@ module Optimizely
|
|
161
165
|
|
162
166
|
# Response code error checking
|
163
167
|
if response.code != '200'
|
164
|
-
check_response(response.code)
|
168
|
+
check_response(response.code, response.body)
|
165
169
|
else
|
166
170
|
parse_json(response.body)
|
167
171
|
end
|
168
172
|
end
|
169
173
|
|
170
|
-
def post
|
174
|
+
def post
|
171
175
|
uri = URI.parse("#{BASE_URL}#{url}/")
|
172
176
|
https = Net::HTTP.new(uri.host, uri.port)
|
173
177
|
https.read_timeout = @options[:timeout] if @options[:timeout]
|
@@ -177,10 +181,10 @@ module Optimizely
|
|
177
181
|
response = https.request(request)
|
178
182
|
|
179
183
|
# Response code error checking
|
180
|
-
check_response(response.code) if response.code != '201'
|
184
|
+
check_response(response.code, response.body) if response.code != '201'
|
181
185
|
end
|
182
186
|
|
183
|
-
def put
|
187
|
+
def put
|
184
188
|
uri = URI.parse("#{BASE_URL}#{url}/")
|
185
189
|
https = Net::HTTP.new(uri.host, uri.port)
|
186
190
|
https.read_timeout = @options[:timeout] if @options[:timeout]
|
@@ -190,11 +194,11 @@ module Optimizely
|
|
190
194
|
response = https.request(request)
|
191
195
|
|
192
196
|
# Response code error checking
|
193
|
-
check_response(response.code) if response.code != '202'
|
197
|
+
check_response(response.code, response.body) if response.code != '202'
|
194
198
|
end
|
195
199
|
|
196
|
-
def delete
|
197
|
-
uri = URI.parse("#{BASE_URL}#{url}
|
200
|
+
def delete
|
201
|
+
uri = URI.parse("#{BASE_URL}#{@url}")
|
198
202
|
https = Net::HTTP.new(uri.host, uri.port)
|
199
203
|
https.read_timeout = @options[:timeout] if @options[:timeout]
|
200
204
|
https.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
@@ -203,7 +207,7 @@ module Optimizely
|
|
203
207
|
response = https.request(request)
|
204
208
|
|
205
209
|
# Response code error checking
|
206
|
-
check_response(response.code, response.body) if response.code != '
|
210
|
+
check_response(response.code, response.body) if response.code != '204'
|
207
211
|
end
|
208
212
|
|
209
213
|
def check_response(code, body)
|
@@ -217,7 +221,7 @@ module Optimizely
|
|
217
221
|
when '404'
|
218
222
|
raise OptimizelyError::NotFound, body + "The id used in the request was inaccurate or you didn't have permission to view/edit it (status code: #{code})."
|
219
223
|
else
|
220
|
-
raise OptimizelyError::UnknownError, body + "(status code: #{code})."
|
224
|
+
raise OptimizelyError::UnknownError, body + " (status code: #{code})."
|
221
225
|
end
|
222
226
|
end
|
223
227
|
|
data/lib/optimizely/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: optimizely
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Martijn Scheijbeler
|
@@ -67,7 +67,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
67
67
|
version: '0'
|
68
68
|
requirements: []
|
69
69
|
rubyforge_project:
|
70
|
-
rubygems_version: 2.0.
|
70
|
+
rubygems_version: 2.0.3
|
71
71
|
signing_key:
|
72
72
|
specification_version: 4
|
73
73
|
summary: The Optimizely Experiment API lets you create and manage Optimizely projects
|