optimizely 1.0.0 → 1.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/README.md +17 -1
- data/lib/optimizely/engine.rb +52 -3
- data/lib/optimizely/exceptions.rb +2 -0
- 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: ab34ef7520c79ccfce8f1df5f5547f44cece9866
|
4
|
+
data.tar.gz: 6fa648252e54eb29fdbe58fda3cbfef64d8e3d65
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b48ab34f7bdc479b9d2ea5105dc3d29a92da7b1ec2def893c44e68ff563941c2b86c9ca3be2ad1b451de55e07580bc320a4b7069c51abfaf65f016b2dabf811b
|
7
|
+
data.tar.gz: b5a027217a0bd5ea375b18e229a460ced92443d23d590de10192ec66f433f93e52f2f3e55adbff89c4454f3bdbd629474fe24b320df0564b12383f124d7a8866
|
data/README.md
CHANGED
@@ -29,27 +29,43 @@ Don't forget to bundle install:
|
|
29
29
|
Retrieve all projects:
|
30
30
|
projects = optimizely.projects
|
31
31
|
|
32
|
+
Retrieve a specific project:
|
33
|
+
project = optimizely.project(12345)
|
34
|
+
|
32
35
|
## Experiments
|
33
36
|
|
34
37
|
Retrieve all experiments for a project:
|
35
38
|
experiments = optimizely.experiments(12345)
|
36
39
|
|
40
|
+
Retrieve a specific experiment:
|
41
|
+
experiment = optimizely.experiment(12345)
|
42
|
+
|
37
43
|
## Variations
|
38
44
|
|
39
45
|
Retrieve all variations for an experiment:
|
40
46
|
variations = optimizely.variations(12345)
|
41
47
|
|
48
|
+
Retrieve a specific variation:
|
49
|
+
variation = optimizely.variation(12345)
|
50
|
+
|
42
51
|
## Audiences
|
43
52
|
|
44
53
|
Retrieve all audiences for an project:
|
45
54
|
audiences = optimizely.audiences(12345)
|
46
55
|
|
56
|
+
Retrieve a specific audience:
|
57
|
+
audience = optimizely.audience(12345)
|
58
|
+
|
47
59
|
# Information
|
48
60
|
|
49
61
|
### Changelog
|
50
62
|
|
63
|
+
#### 1.1
|
64
|
+
* Fix some typos in the errors for having no variable in a function and added extra documentation.
|
65
|
+
* Add support for reading specific projects, experiments, variations and audiences.
|
66
|
+
|
51
67
|
#### 1.0
|
52
|
-
* Add all basic features for the Optimizely Experiment API.
|
68
|
+
* Add all basic features for the Optimizely Experiment API for listing projects, experiments, variations and audiences.
|
53
69
|
|
54
70
|
### Bug reports
|
55
71
|
|
data/lib/optimizely/engine.rb
CHANGED
@@ -32,6 +32,18 @@ module Optimizely
|
|
32
32
|
@projects
|
33
33
|
end
|
34
34
|
|
35
|
+
# Returns the details for a specific project.
|
36
|
+
#
|
37
|
+
# == Usage
|
38
|
+
# optimizely = Optimizely.new({ api_token: 'oauth2_token' })
|
39
|
+
# project = optimizely.project(12345) # Look up the project.
|
40
|
+
#
|
41
|
+
def project(id)
|
42
|
+
raise OptimizelyError::NoProjectID, "A Project ID is required to retrieve the project." if id.nil?
|
43
|
+
@project = self.get("projects/#{id}")
|
44
|
+
@project
|
45
|
+
end
|
46
|
+
|
35
47
|
# Returns the list of experiments for a specified project.
|
36
48
|
#
|
37
49
|
# == Usage
|
@@ -39,11 +51,23 @@ module Optimizely
|
|
39
51
|
# experiments = optimizely.experiments(12345) # Look up all experiments for a project.
|
40
52
|
#
|
41
53
|
def experiments(project_id)
|
42
|
-
raise OptimizelyError::NoProjectID, "A Project ID required to retrieve experiments." if project_id.nil?
|
54
|
+
raise OptimizelyError::NoProjectID, "A Project ID is required to retrieve experiments." if project_id.nil?
|
43
55
|
@experiments = self.get("projects/#{project_id}/experiments") if @experiments.nil?
|
44
56
|
@experiments
|
45
57
|
end
|
46
58
|
|
59
|
+
# Returns the details for a specific experiment.
|
60
|
+
#
|
61
|
+
# == Usage
|
62
|
+
# optimizely = Optimizely.new({ api_token: 'oauth2_token' })
|
63
|
+
# experiment = optimizely.experiment(12345) # Look up the experiment.
|
64
|
+
#
|
65
|
+
def experiment(id)
|
66
|
+
raise OptimizelyError::NoExperimentID, "An Experiment ID is required to retrieve the experiment." if id.nil?
|
67
|
+
@experiment = self.get("experiments/#{id}")
|
68
|
+
@experiment
|
69
|
+
end
|
70
|
+
|
47
71
|
# Returns the list of variations for a specified experiment.
|
48
72
|
#
|
49
73
|
# == Usage
|
@@ -51,11 +75,23 @@ module Optimizely
|
|
51
75
|
# variations = optimizely.variations(12345) # Look up all variations for an experiment.
|
52
76
|
#
|
53
77
|
def variations(experiment_id)
|
54
|
-
raise OptimizelyError::NoExperimentID, "An Experiment ID required to retrieve variations." if experiment_id.nil?
|
78
|
+
raise OptimizelyError::NoExperimentID, "An Experiment ID is required to retrieve variations." if experiment_id.nil?
|
55
79
|
@variations = self.get("projects/#{experiment_id}/variations") if @variations.nil?
|
56
80
|
@experiments
|
57
81
|
end
|
58
82
|
|
83
|
+
# Returns the details for a specific variation.
|
84
|
+
#
|
85
|
+
# == Usage
|
86
|
+
# optimizely = Optimizely.new({ api_token: 'oauth2_token' })
|
87
|
+
# variation = optimizely.variation(12345) # Look up the variation.
|
88
|
+
#
|
89
|
+
def variation(id)
|
90
|
+
raise OptimizelyError::NoVariationID, "A Variation ID is required to retrieve the variation." if id.nil?
|
91
|
+
@variation = self.get("variations/#{id}")
|
92
|
+
@variation
|
93
|
+
end
|
94
|
+
|
59
95
|
# Returns the list of audiences for a specified project.
|
60
96
|
#
|
61
97
|
# == Usage
|
@@ -63,11 +99,24 @@ module Optimizely
|
|
63
99
|
# audiences = optimizely.audiences(12345) # Look up all audiences for a project.
|
64
100
|
#
|
65
101
|
def audiences(project_id)
|
66
|
-
raise OptimizelyError::NoProjectID, "A Project ID required to retrieve audiences." if project_id.nil?
|
102
|
+
raise OptimizelyError::NoProjectID, "A Project ID is required to retrieve audiences." if project_id.nil?
|
67
103
|
@audiences = self.get("projects/#{project_id}/audiences") if @audiences.nil?
|
68
104
|
@audiences
|
69
105
|
end
|
70
106
|
|
107
|
+
# Returns the details for a specific audience.
|
108
|
+
#
|
109
|
+
# == Usage
|
110
|
+
# optimizely = Optimizely.new({ api_token: 'oauth2_token' })
|
111
|
+
# audience = optimizely.audience(12345) # Look up the audience.
|
112
|
+
#
|
113
|
+
def audience(id)
|
114
|
+
raise OptimizelyError::NoAudienceID, "An Audience ID is required to retrieve the audience." if id.nil?
|
115
|
+
@audience = self.get("audiences/#{id}")
|
116
|
+
@audience
|
117
|
+
end
|
118
|
+
|
119
|
+
# Return the parsed JSON data for a request that is done to the Optimizely REST API.
|
71
120
|
def get(url)
|
72
121
|
uri = URI.parse("#{BASE_URL}#{url}/")
|
73
122
|
https = Net::HTTP.new(uri.host, uri.port)
|
data/lib/optimizely/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: optimizely
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Martijn Scheijbeler
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-05-05 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: A Ruby gem to communicate with the Optimizely Experiments API, it lets
|
14
14
|
you create and manage Optimizely projects and the experiments inside of them.
|