gxapi_rails 0.0.4 → 0.0.5

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.
@@ -19,6 +19,10 @@ describe Gxapi::Base do
19
19
  "Untitled experiment"
20
20
  end
21
21
 
22
+ let(:test_experiment_id) do
23
+ "lj5s_ZvWSJSZLphnkpP-Xw"
24
+ end
25
+
22
26
  context "#env" do
23
27
  it "should delegate to its class" do
24
28
  subject.env.should eql Gxapi.env
@@ -27,7 +31,7 @@ describe Gxapi::Base do
27
31
 
28
32
  context "#get_variant" do
29
33
 
30
- it "should make a call to myna and return a future" do
34
+ it "should make a call to Google Analytics and return a future" do
31
35
  variant = subject.get_variant(test_experiment_name)
32
36
  valid_variants.should include variant.value.name
33
37
  [0, 1].should include variant.value.index
@@ -44,6 +48,13 @@ describe Gxapi::Base do
44
48
 
45
49
  end
46
50
 
51
+ it "lets us search by experiment id" do
52
+
53
+ variant = subject.get_variant(id: test_experiment_id)
54
+ expect(variant.value.experiment_id).to eql(test_experiment_id)
55
+
56
+ end
57
+
47
58
  it "should time out after 2 seconds and return the default value" do
48
59
 
49
60
  Gxapi.cache.stubs(:fetch).yields{sleep(3)}
@@ -0,0 +1,87 @@
1
+ require 'spec_helper'
2
+
3
+ module GxApi
4
+
5
+ describe ExperimentIdentifier do
6
+
7
+ subject {
8
+ ExperimentIdentifier.new("Test Test")
9
+ }
10
+
11
+ context "Generic Methods" do
12
+
13
+ context "#to_key" do
14
+
15
+ it "turns its value into a string for a cache key" do
16
+ expect(subject.to_key).to eql("test_test")
17
+ end
18
+
19
+ end
20
+
21
+ end
22
+
23
+
24
+ context "IdIdentifier" do
25
+
26
+ subject {
27
+ ExperimentIdentifier.new(id: id)
28
+ }
29
+
30
+ let(:id) {
31
+ "123"
32
+ }
33
+
34
+ context '#matches_experiment?' do
35
+
36
+ it 'matches by id' do
37
+ experiment = stub(id: id)
38
+ expect(subject.matches_experiment?(experiment)).to be_true
39
+ end
40
+
41
+ end
42
+
43
+ context '#value' do
44
+
45
+ it 'returns the id as its value' do
46
+ expect(subject.value).to eq(id)
47
+ end
48
+
49
+ end
50
+
51
+
52
+
53
+ end
54
+
55
+
56
+ context "NameIdentifier" do
57
+
58
+ subject {
59
+ ExperimentIdentifier.new(name)
60
+ }
61
+
62
+ let(:name) {
63
+ "123"
64
+ }
65
+
66
+ context '#matches_experiment?' do
67
+
68
+ it 'matches by name' do
69
+ experiment = stub(name: name)
70
+ expect(subject.matches_experiment?(experiment)).to be_true
71
+ end
72
+
73
+ end
74
+
75
+ context '#value' do
76
+
77
+ it 'returns the id as its value' do
78
+ expect(subject.value).to eq(name)
79
+ end
80
+
81
+ end
82
+
83
+ end
84
+
85
+ end
86
+
87
+ end
@@ -21,7 +21,8 @@ module Gxapi
21
21
 
22
22
  it "should filter by name" do
23
23
  experiment = subject.get_experiments.first
24
- subject.get_experiment(experiment.name).should eql(experiment)
24
+ identifier = GxApi::ExperimentIdentifier.new(experiment.name)
25
+ subject.get_experiment(identifier).should eql(experiment)
25
26
  end
26
27
 
27
28
  end
@@ -4,6 +4,8 @@ $LOAD_PATH.unshift(File.dirname(__FILE__))
4
4
  ENV["RAILS_ENV"] ||= 'test'
5
5
  require File.expand_path("../../spec/dummy/config/environment", __FILE__)
6
6
 
7
+ require 'debugger'
8
+
7
9
  require 'gxapi'
8
10
 
9
11
  require 'rspec/rails'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gxapi_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dan Langevin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-11-03 00:00:00.000000000 Z
11
+ date: 2014-03-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -80,6 +80,118 @@ dependencies:
80
80
  - - '>='
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rails
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ~>
88
+ - !ruby/object:Gem::Version
89
+ version: '3.2'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ~>
95
+ - !ruby/object:Gem::Version
96
+ version: '3.2'
97
+ - !ruby/object:Gem::Dependency
98
+ name: capybara
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: coffee-rails
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - '>='
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: debugger
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - '>='
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - '>='
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: mocha
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - '>='
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - '>='
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: rspec-rails
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - '>='
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - '>='
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ - !ruby/object:Gem::Dependency
168
+ name: sass-rails
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - '>='
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - '>='
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ - !ruby/object:Gem::Dependency
182
+ name: sqlite3
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - '>='
186
+ - !ruby/object:Gem::Version
187
+ version: '0'
188
+ type: :development
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - '>='
193
+ - !ruby/object:Gem::Version
194
+ version: '0'
83
195
  description: Google Analytics and integration
84
196
  email: dan.langevin@lifebooker.com
85
197
  executables: []
@@ -92,10 +204,13 @@ files:
92
204
  - lib/gxapi/base.rb
93
205
  - lib/gxapi/controller_methods.rb
94
206
  - lib/gxapi/engine.rb
207
+ - lib/gxapi/experiment_identifier.rb
95
208
  - lib/gxapi/google_analytics.rb
96
209
  - lib/gxapi/ostruct.rb
97
210
  - lib/gxapi/version.rb
211
+ - lib/gxapi-rails.rb
98
212
  - lib/gxapi.rb
213
+ - lib/gxapi_rails.rb
99
214
  - lib/tasks/gxapi.rake
100
215
  - LICENSE.txt
101
216
  - Rakefile
@@ -153,6 +268,7 @@ files:
153
268
  - spec/features/display_variant_js_spec.rb
154
269
  - spec/helpers/gxapi_helper_spec.rb
155
270
  - spec/lib/gxapi/base_spec.rb
271
+ - spec/lib/gxapi/experiment_identifier_spec.rb
156
272
  - spec/lib/gxapi/google_analytics_spec.rb
157
273
  - spec/lib/gxapi_spec.rb
158
274
  - spec/spec_helper.rb
@@ -233,6 +349,7 @@ test_files:
233
349
  - spec/features/display_variant_js_spec.rb
234
350
  - spec/helpers/gxapi_helper_spec.rb
235
351
  - spec/lib/gxapi/base_spec.rb
352
+ - spec/lib/gxapi/experiment_identifier_spec.rb
236
353
  - spec/lib/gxapi/google_analytics_spec.rb
237
354
  - spec/lib/gxapi_spec.rb
238
355
  - spec/spec_helper.rb