vanity 2.0.0.beta8 → 2.0.0.beta9
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/.travis.yml +4 -2
- data/Appraisals +1 -1
- data/Gemfile +2 -1
- data/Gemfile.lock +4 -1
- data/gemfiles/rails32.gemfile +3 -2
- data/gemfiles/rails32.gemfile.lock +4 -5
- data/gemfiles/rails4.gemfile +2 -1
- data/gemfiles/rails4.gemfile.lock +3 -1
- data/gemfiles/rails41.gemfile +2 -1
- data/gemfiles/rails41.gemfile.lock +3 -1
- data/gemfiles/rails42.gemfile +2 -1
- data/gemfiles/rails42.gemfile.lock +3 -1
- data/lib/vanity.rb +11 -5
- data/lib/vanity/adapters.rb +20 -0
- data/lib/vanity/adapters/abstract_adapter.rb +0 -18
- data/lib/vanity/autoconnect.rb +1 -0
- data/lib/vanity/configuration.rb +211 -0
- data/lib/vanity/connection.rb +100 -0
- data/lib/vanity/frameworks.rb +2 -0
- data/lib/vanity/frameworks/rails.rb +7 -5
- data/lib/vanity/helpers.rb +1 -0
- data/{config → lib/vanity}/locales/vanity.en.yml +0 -0
- data/{config → lib/vanity}/locales/vanity.pt-BR.yml +0 -0
- data/lib/vanity/playground.rb +138 -338
- data/lib/vanity/vanity.rb +166 -0
- data/lib/vanity/version.rb +1 -1
- data/test/configuration_test.rb +90 -0
- data/test/connection_test.rb +46 -0
- data/test/data/redis.yml.url +2 -0
- data/test/data/vanity.yml.activerecord +6 -0
- data/test/data/vanity.yml.mock +4 -0
- data/test/data/vanity.yml.redis +5 -0
- data/test/data/vanity.yml.redis-erb +3 -0
- data/test/experiment/ab_test.rb +1 -1
- data/test/experiment/base_test.rb +1 -1
- data/test/frameworks/rails/rails_test.rb +34 -30
- data/test/metric/remote_test.rb +8 -8
- data/test/playground_test.rb +1 -27
- data/test/templates_test.rb +3 -2
- data/test/test_helper.rb +24 -12
- data/test/vanity_test.rb +130 -0
- metadata +25 -5
data/test/metric/remote_test.rb
CHANGED
@@ -2,24 +2,24 @@ require "test_helper"
|
|
2
2
|
|
3
3
|
describe "Remote metrics" do
|
4
4
|
before do
|
5
|
-
|
6
|
-
File.open "tmp/config/vanity.yml", "w" do |f|
|
5
|
+
File.open "tmp/experiments/metrics/sandbox.rb", "w" do |f|
|
7
6
|
f.write <<-RUBY
|
8
|
-
|
9
|
-
|
7
|
+
metric "Sandbox" do
|
8
|
+
remote "http://api.vanitydash.com/metrics/sandbox"
|
9
|
+
end
|
10
10
|
RUBY
|
11
11
|
end
|
12
|
-
|
12
|
+
|
13
13
|
Dir.chdir "tmp" do
|
14
14
|
Vanity.playground.load!
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
18
|
-
it "loads from
|
19
|
-
assert Vanity.playground.
|
18
|
+
it "loads from metrics files" do
|
19
|
+
assert Vanity.playground.metric(:sandbox)
|
20
20
|
end
|
21
21
|
|
22
|
-
it "creates remote metric from
|
22
|
+
it "creates remote metric from metric file" do
|
23
23
|
stub_request :post, /vanitydash/
|
24
24
|
metric(:sandbox).track!
|
25
25
|
assert_requested :post, /api\.vanitydash\.com/
|
data/test/playground_test.rb
CHANGED
@@ -45,33 +45,7 @@ describe Vanity::Playground do
|
|
45
45
|
|
46
46
|
describe "#add_participant_path" do
|
47
47
|
it "sets a default add participant path" do
|
48
|
-
assert_equal Vanity.playground.add_participant_path, Vanity::
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
describe "reconnect!" do
|
53
|
-
it "reconnects with the same configuration" do
|
54
|
-
Vanity.playground.establish_connection "mock:/"
|
55
|
-
Vanity.playground.reconnect!
|
56
|
-
assert_equal Vanity.playground.connection.to_s, "mock:/"
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
|
-
describe "autoconnect" do
|
61
|
-
it "establishes connection by default with connection" do
|
62
|
-
instance = Vanity::Playground.new(:connection=>"mock:/")
|
63
|
-
assert instance.connected?
|
64
|
-
end
|
65
|
-
|
66
|
-
it "establishes connection by default" do
|
67
|
-
Vanity::Playground.any_instance.expects(:establish_connection)
|
68
|
-
Vanity::Playground.new
|
69
|
-
end
|
70
|
-
|
71
|
-
it "can skip connection" do
|
72
|
-
Vanity::Autoconnect.stubs(:playground_should_autoconnect?).returns(false)
|
73
|
-
instance = Vanity::Playground.new(:connection=>"mock:/")
|
74
|
-
assert !instance.connected?
|
48
|
+
assert_equal Vanity.playground.add_participant_path, Vanity::Configuration::DEFAULTS[:add_participant_route]
|
75
49
|
end
|
76
50
|
end
|
77
51
|
|
data/test/templates_test.rb
CHANGED
@@ -6,7 +6,7 @@ describe Vanity::Templates do
|
|
6
6
|
end
|
7
7
|
|
8
8
|
describe "template" do
|
9
|
-
it "resolves templates from the
|
9
|
+
it "resolves templates from the configured path" do
|
10
10
|
custom_view_path = File.expand_path(File.join(Rails.root, 'app', 'views', 'vanity'))
|
11
11
|
gem_view_path = File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib', 'vanity', 'templates'))
|
12
12
|
expected = File.join(gem_view_path, 'foo.html')
|
@@ -14,9 +14,10 @@ describe Vanity::Templates do
|
|
14
14
|
assert_equal expected, Vanity::Templates.new.path('foo.html')
|
15
15
|
end
|
16
16
|
|
17
|
-
it "resolves templates from
|
17
|
+
it "resolves templates from a Rails view directory when configured" do
|
18
18
|
begin
|
19
19
|
custom_view_path = File.expand_path(File.join(Rails.root, 'app', 'views', 'vanity'))
|
20
|
+
Vanity.configuration.templates_path = custom_view_path
|
20
21
|
|
21
22
|
expected = File.expand_path(File.join(custom_view_path, 'foo.html'))
|
22
23
|
|
data/test/test_helper.rb
CHANGED
@@ -21,11 +21,13 @@ require "rails/test_help"
|
|
21
21
|
require "vanity"
|
22
22
|
require "timecop"
|
23
23
|
require "mocha/mini_test"
|
24
|
+
require "fakefs/safe"
|
24
25
|
require "webmock/minitest"
|
25
26
|
|
26
27
|
# Due to load order differences in Rails boot and test requires we have to
|
27
28
|
# manually require these
|
28
29
|
|
30
|
+
# TODO wonder if we can load rails only for the rails tests...
|
29
31
|
require 'vanity/frameworks/rails'
|
30
32
|
Vanity::Rails.load!
|
31
33
|
|
@@ -42,30 +44,41 @@ module VanityTestHelpers
|
|
42
44
|
# don't use databases you care about. For Redis, we pick database 15
|
43
45
|
# (default is 0).
|
44
46
|
DATABASE = {
|
45
|
-
"redis"=>"redis://localhost/15",
|
46
|
-
"mongodb"=>"mongodb://localhost/vanity",
|
47
|
-
"active_record"=>
|
48
|
-
"mock"=>"mock:/"
|
47
|
+
"redis" => "redis://localhost/15",
|
48
|
+
"mongodb" => "mongodb://localhost/vanity",
|
49
|
+
"active_record" => { :adapter => "active_record", :active_record_adapter =>"default" },
|
50
|
+
"mock" => "mock:/"
|
49
51
|
}[ENV["DB"]] or raise "No support yet for #{ENV["DB"]}"
|
50
52
|
|
53
|
+
TEST_DATA_FILES = Dir[File.expand_path("../data/*", __FILE__)]
|
54
|
+
VANITY_CONFIGS = TEST_DATA_FILES.each.with_object({}) do |path, hash|
|
55
|
+
hash[File.basename(path)] = File.read(path)
|
56
|
+
end
|
57
|
+
|
51
58
|
def setup_after
|
52
59
|
FileUtils.mkpath "tmp/experiments/metrics"
|
53
|
-
|
60
|
+
vanity_reset
|
54
61
|
end
|
55
62
|
|
56
63
|
def teardown_after
|
57
64
|
Vanity.context = nil
|
58
65
|
FileUtils.rm_rf "tmp"
|
59
|
-
Vanity.
|
66
|
+
Vanity.connection.adapter.flushdb if Vanity.connection.connected?
|
60
67
|
WebMock.reset!
|
61
68
|
end
|
62
69
|
|
63
70
|
# Call this if you need a new playground, e.g. to re-define the same experiment,
|
64
71
|
# or reload an experiment (saved by the previous playground).
|
65
|
-
def
|
66
|
-
Vanity.
|
72
|
+
def vanity_reset
|
73
|
+
Vanity.reset!
|
74
|
+
Vanity.configuration.logger = $logger
|
75
|
+
Vanity.configuration.experiments_path = "tmp/experiments"
|
76
|
+
|
77
|
+
Vanity.disconnect!
|
67
78
|
ActiveRecord::Base.establish_connection
|
68
|
-
Vanity.
|
79
|
+
Vanity.connect!(DATABASE)
|
80
|
+
|
81
|
+
Vanity.unload!
|
69
82
|
end
|
70
83
|
|
71
84
|
# Defines the specified metrics (one or more names). Returns metric, or array
|
@@ -82,7 +95,7 @@ module VanityTestHelpers
|
|
82
95
|
def new_ab_test(name, &block)
|
83
96
|
id = name.to_s.downcase.gsub(/\W/, "_").to_sym
|
84
97
|
experiment = Vanity::Experiment::AbTest.new(Vanity.playground, id, name)
|
85
|
-
experiment.instance_eval
|
98
|
+
experiment.instance_eval(&block)
|
86
99
|
experiment.save
|
87
100
|
Vanity.playground.experiments[id] = experiment
|
88
101
|
end
|
@@ -97,8 +110,7 @@ module VanityTestHelpers
|
|
97
110
|
end
|
98
111
|
|
99
112
|
def not_collecting!
|
100
|
-
Vanity.
|
101
|
-
Vanity.playground.stubs(:connection).returns(stub(:flushdb=>nil))
|
113
|
+
Vanity.configuration.collecting = false
|
102
114
|
end
|
103
115
|
|
104
116
|
def dummy_request
|
data/test/vanity_test.rb
ADDED
@@ -0,0 +1,130 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
describe Vanity do
|
4
|
+
describe "#configuration" do
|
5
|
+
it "returns the same configuration" do
|
6
|
+
assert_same Vanity.configuration, Vanity.configuration
|
7
|
+
end
|
8
|
+
|
9
|
+
it "returns nil if if skipping bang" do
|
10
|
+
Vanity.configuration = nil
|
11
|
+
assert_nil Vanity.configuration(false)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
describe "#configure!" do
|
16
|
+
it "returns a configuration" do
|
17
|
+
assert_kind_of Vanity::Configuration, Vanity.configure!
|
18
|
+
end
|
19
|
+
|
20
|
+
it "returns a new configuration" do
|
21
|
+
refute_same Vanity.configure!, Vanity.configure!
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
describe "#reset!" do
|
26
|
+
it "creates a new configuration" do
|
27
|
+
original_configuration = Vanity.configuration
|
28
|
+
refute_same original_configuration, Vanity.reset!
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
describe "#configure" do
|
33
|
+
it "configures via a block" do
|
34
|
+
Vanity.configure do |config|
|
35
|
+
config.collecting = false
|
36
|
+
end
|
37
|
+
|
38
|
+
assert !Vanity.configuration.collecting
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
describe "#context" do
|
43
|
+
it "returns the context" do
|
44
|
+
Vanity.context = Object.new
|
45
|
+
assert_same Vanity.context, Vanity.context
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
describe "#connection" do
|
50
|
+
it "returns the same connection" do
|
51
|
+
assert_same Vanity.connection, Vanity.connection
|
52
|
+
end
|
53
|
+
|
54
|
+
it "returns nil if if skipping bang" do
|
55
|
+
Vanity.connection = nil
|
56
|
+
assert_nil Vanity.connection(false)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
describe "#connect!" do
|
61
|
+
it "returns a connection" do
|
62
|
+
assert_kind_of Vanity::Connection, Vanity.connect!
|
63
|
+
end
|
64
|
+
|
65
|
+
it "returns a new connection" do
|
66
|
+
refute_same Vanity.connect!, Vanity.connect!
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
describe "#disconnect!" do
|
71
|
+
it "sets the connection to nil" do
|
72
|
+
Vanity.disconnect!
|
73
|
+
assert_nil Vanity.connection(false)
|
74
|
+
end
|
75
|
+
|
76
|
+
it "handles nil connections" do
|
77
|
+
Vanity.connection = nil
|
78
|
+
assert_nil Vanity.disconnect!
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
describe "#reconnect!" do
|
83
|
+
it "reconnects with the same configuration" do
|
84
|
+
Vanity.disconnect!
|
85
|
+
original_specification = Vanity.connection.specification
|
86
|
+
Vanity.reconnect!
|
87
|
+
assert_equal original_specification, Vanity.connection.specification
|
88
|
+
end
|
89
|
+
|
90
|
+
it "creates a new connection" do
|
91
|
+
original_configuration = Vanity.connection
|
92
|
+
refute_same original_configuration, Vanity.reconnect!
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
describe "#playground" do
|
97
|
+
it "returns the same playground" do
|
98
|
+
assert_same Vanity.playground, Vanity.playground
|
99
|
+
end
|
100
|
+
|
101
|
+
it "returns nil if if skipping bang" do
|
102
|
+
Vanity.playground = nil
|
103
|
+
assert_nil Vanity.playground(false)
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
describe "#load!" do
|
108
|
+
it "returns a playground" do
|
109
|
+
assert_kind_of Vanity::Playground, Vanity.load!
|
110
|
+
end
|
111
|
+
|
112
|
+
it "returns a new playground" do
|
113
|
+
refute_same Vanity.load!, Vanity.load!
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
describe "#unload!" do
|
118
|
+
it "sets the playground to nil" do
|
119
|
+
Vanity.unload!
|
120
|
+
assert_nil Vanity.playground(false)
|
121
|
+
end
|
122
|
+
end
|
123
|
+
|
124
|
+
describe "#reload!" do
|
125
|
+
it "creates a new playground" do
|
126
|
+
original_configuration = Vanity.playground
|
127
|
+
refute_same original_configuration, Vanity.reload!
|
128
|
+
end
|
129
|
+
end
|
130
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vanity
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.0.
|
4
|
+
version: 2.0.0.beta9
|
5
5
|
prerelease: 6
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-
|
12
|
+
date: 2015-11-15 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: i18n
|
@@ -79,8 +79,6 @@ files:
|
|
79
79
|
- README.rdoc
|
80
80
|
- Rakefile
|
81
81
|
- bin/vanity
|
82
|
-
- config/locales/vanity.en.yml
|
83
|
-
- config/locales/vanity.pt-BR.yml
|
84
82
|
- doc/_config.yml
|
85
83
|
- doc/_layouts/_header.html
|
86
84
|
- doc/_layouts/page.html
|
@@ -118,6 +116,7 @@ files:
|
|
118
116
|
- lib/generators/vanity/views_generator.rb
|
119
117
|
- lib/generators/vanity_generator.rb
|
120
118
|
- lib/vanity.rb
|
119
|
+
- lib/vanity/adapters.rb
|
121
120
|
- lib/vanity/adapters/abstract_adapter.rb
|
122
121
|
- lib/vanity/adapters/active_record_adapter.rb
|
123
122
|
- lib/vanity/adapters/mock_adapter.rb
|
@@ -126,6 +125,8 @@ files:
|
|
126
125
|
- lib/vanity/autoconnect.rb
|
127
126
|
- lib/vanity/commands/list.rb
|
128
127
|
- lib/vanity/commands/report.rb
|
128
|
+
- lib/vanity/configuration.rb
|
129
|
+
- lib/vanity/connection.rb
|
129
130
|
- lib/vanity/experiment/ab_test.rb
|
130
131
|
- lib/vanity/experiment/alternative.rb
|
131
132
|
- lib/vanity/experiment/base.rb
|
@@ -135,6 +136,8 @@ files:
|
|
135
136
|
- lib/vanity/frameworks/rails.rb
|
136
137
|
- lib/vanity/helpers.rb
|
137
138
|
- lib/vanity/images/x.gif
|
139
|
+
- lib/vanity/locales/vanity.en.yml
|
140
|
+
- lib/vanity/locales/vanity.pt-BR.yml
|
138
141
|
- lib/vanity/metric/active_record.rb
|
139
142
|
- lib/vanity/metric/base.rb
|
140
143
|
- lib/vanity/metric/google_analytics.rb
|
@@ -153,11 +156,19 @@ files:
|
|
153
156
|
- lib/vanity/templates/jquery.min.js
|
154
157
|
- lib/vanity/templates/vanity.css
|
155
158
|
- lib/vanity/templates/vanity.js
|
159
|
+
- lib/vanity/vanity.rb
|
156
160
|
- lib/vanity/version.rb
|
157
161
|
- test/adapters/redis_adapter_test.rb
|
158
162
|
- test/autoconnect_test.rb
|
159
163
|
- test/cli_test.rb
|
160
164
|
- test/commands/report_test.rb
|
165
|
+
- test/configuration_test.rb
|
166
|
+
- test/connection_test.rb
|
167
|
+
- test/data/redis.yml.url
|
168
|
+
- test/data/vanity.yml.activerecord
|
169
|
+
- test/data/vanity.yml.mock
|
170
|
+
- test/data/vanity.yml.redis
|
171
|
+
- test/data/vanity.yml.redis-erb
|
161
172
|
- test/dummy/Rakefile
|
162
173
|
- test/dummy/app/controllers/application_controller.rb
|
163
174
|
- test/dummy/app/helpers/application_helper.rb
|
@@ -197,6 +208,7 @@ files:
|
|
197
208
|
- test/playground_test.rb
|
198
209
|
- test/templates_test.rb
|
199
210
|
- test/test_helper.rb
|
211
|
+
- test/vanity_test.rb
|
200
212
|
- test/web/rails/dashboard_test.rb
|
201
213
|
- vanity.gemspec
|
202
214
|
homepage: http://vanity.labnotes.org
|
@@ -205,7 +217,7 @@ licenses:
|
|
205
217
|
post_install_message: To get started run vanity --help
|
206
218
|
rdoc_options:
|
207
219
|
- --title
|
208
|
-
- Vanity 2.0.0.
|
220
|
+
- Vanity 2.0.0.beta9
|
209
221
|
- --main
|
210
222
|
- README.rdoc
|
211
223
|
- --webcvs
|
@@ -235,6 +247,13 @@ test_files:
|
|
235
247
|
- test/autoconnect_test.rb
|
236
248
|
- test/cli_test.rb
|
237
249
|
- test/commands/report_test.rb
|
250
|
+
- test/configuration_test.rb
|
251
|
+
- test/connection_test.rb
|
252
|
+
- test/data/redis.yml.url
|
253
|
+
- test/data/vanity.yml.activerecord
|
254
|
+
- test/data/vanity.yml.mock
|
255
|
+
- test/data/vanity.yml.redis
|
256
|
+
- test/data/vanity.yml.redis-erb
|
238
257
|
- test/dummy/Rakefile
|
239
258
|
- test/dummy/app/controllers/application_controller.rb
|
240
259
|
- test/dummy/app/helpers/application_helper.rb
|
@@ -274,5 +293,6 @@ test_files:
|
|
274
293
|
- test/playground_test.rb
|
275
294
|
- test/templates_test.rb
|
276
295
|
- test/test_helper.rb
|
296
|
+
- test/vanity_test.rb
|
277
297
|
- test/web/rails/dashboard_test.rb
|
278
298
|
has_rdoc:
|