mountain-goat 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/mountain_goat/metric_tracking.rb +52 -43
- data/lib/mountain_goat/version.rb +1 -1
- data/lib/mountain_goat/views/mountain_goat/mountain_goat_metric_variants/.tmp__metric_variant_form.html.erb.87465~ +27 -0
- data/lib/mountain_goat/views/mountain_goat/mountain_goat_metric_variants/_metric_variant_form.html.erb +10 -0
- data/mountain-goat-0.0.2.gem +0 -0
- metadata +5 -3
@@ -32,8 +32,8 @@ module MetricTracking
|
|
32
32
|
block.call(SwitchVariant.new( logger, metric, convert, var ) )
|
33
33
|
end
|
34
34
|
|
35
|
-
def mv(metric_type, convert_type, default)
|
36
|
-
return get_metric_variant(metric_type, convert_type, default)
|
35
|
+
def mv(metric_type, convert_type, default, opts = {}, opt = nil)
|
36
|
+
return get_metric_variant(metric_type, convert_type, default, opts, opt)
|
37
37
|
end
|
38
38
|
|
39
39
|
#shorthand
|
@@ -76,47 +76,48 @@ module MetricTracking
|
|
76
76
|
#we need to see what meta information we should fill based on the conversion type
|
77
77
|
Rally.create!( { :convert_id => convert.id } ).set_meta_data(options)
|
78
78
|
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
79
|
+
if defined?(cookies)
|
80
|
+
#we just converted, let's tally each of our metrics (from cookies)
|
81
|
+
convert.metrics.each do |metric|
|
82
|
+
metric_sym = "metric_#{metric.metric_type}".to_sym
|
83
|
+
metric_variant_sym = "metric_#{metric.metric_type}_variant".to_sym
|
84
|
+
|
85
|
+
value = cookies[metric_sym]
|
86
|
+
variant_id = cookies[metric_variant_sym]
|
87
|
+
|
88
|
+
#logger.warn "Value: #{metric_sym} - #{value}"
|
89
|
+
#logger.warn "Value: #{metric_variant_sym} - #{variant_id}"
|
90
|
+
|
91
|
+
if variant_id.blank? #the user just doesn't have this set
|
92
|
+
next
|
93
|
+
end
|
94
|
+
|
95
|
+
variant = MetricVariant.first(:conditions => { :id => variant_id.to_i } )
|
96
|
+
|
97
|
+
if variant.nil?
|
98
|
+
logger.error "Variant #{variant_id} not in metric variants for #{metric.title}"
|
99
|
+
next
|
100
|
+
end
|
101
|
+
|
102
|
+
if variant.value != value
|
103
|
+
logger.warn "Variant #{variant.name} values differ for metric #{metric.title}. '#{variant.value}' != '#{value}'!"
|
104
|
+
end
|
105
|
+
|
106
|
+
logger.warn "Tallying conversion #{convert.name} for #{metric.title} - #{variant.name} (#{variant.value} - #{variant.id})"
|
107
|
+
variant.tally_convert
|
103
108
|
end
|
104
|
-
|
105
|
-
logger.warn "Tallying conversion #{convert.name} for #{metric.title} - #{variant.name} (#{variant.value} - #{variant.id})"
|
106
|
-
variant.tally_convert
|
107
109
|
end
|
108
110
|
end
|
109
111
|
|
110
112
|
private
|
111
113
|
|
112
|
-
def get_metric_variant(metric_type, convert_type, default)
|
113
|
-
metric_sym = "metric_#{metric_type}".to_sym
|
114
|
+
def get_metric_variant(metric_type, convert_type, default, opts = {}, opt = nil)
|
115
|
+
metric_sym = "metric_#{metric_type}#{ opt.nil? ? "" : '_' + opt.to_s }".to_sym
|
114
116
|
metric_variant_sym = "metric_#{metric_type}_variant".to_sym
|
115
117
|
|
116
118
|
#first, we'll check for a cookie value
|
117
|
-
if cookies[metric_sym] && !cookies[metric_sym].blank?
|
118
|
-
#we have the cookie
|
119
|
-
|
119
|
+
if defined?(cookies) && cookies[metric_sym] && !cookies[metric_sym].blank?
|
120
|
+
#we have the cookie
|
120
121
|
variant_id = cookies[metric_variant_sym]
|
121
122
|
variant = MetricVariant.first(:conditions => { :id => variant_id.to_i } )
|
122
123
|
if !variant.nil?
|
@@ -124,7 +125,7 @@ module MetricTracking
|
|
124
125
|
variant.tally_serve
|
125
126
|
end
|
126
127
|
else
|
127
|
-
logger.warn "Serving metric #{metric_type} without finding / tallying variant."
|
128
|
+
logger.warn "Serving metric #{metric_type} #{ opt.nil? ? "" : opt.to_s } without finding / tallying variant."
|
128
129
|
end
|
129
130
|
|
130
131
|
return cookies[metric_sym] #it's the best we can do
|
@@ -141,16 +142,20 @@ module MetricTracking
|
|
141
142
|
|
142
143
|
if metric_variant.nil?
|
143
144
|
logger.warn "Missing metric variants for #{metric_type}"
|
144
|
-
metric_variant = MetricVariant.create!( :metric_id => metric.id, :value => default, :name => default )
|
145
|
+
metric_variant = MetricVariant.create!( { :metric_id => metric.id, :value => default, :name => default }.merge(opts) )
|
145
146
|
end
|
146
147
|
|
147
148
|
metric_variant.tally_serve #donate we served this to a user
|
148
|
-
|
149
|
+
value = metric_variant.read_attribute( opt.nil? ? :value : opt )
|
150
|
+
logger.debug "Serving #{metric_variant.name} (#{value}) for #{metric_sym}"
|
149
151
|
#good, we have a variant, let's store it in session
|
150
|
-
cookies[metric_sym] = { :value => metric_variant.value } #, :domain => WILD_DOMAIN
|
151
|
-
cookies[metric_variant_sym] = { :value => metric_variant.id } #, :domain => WILD_DOMAIN
|
152
152
|
|
153
|
-
|
153
|
+
if defined?(cookies)
|
154
|
+
cookies[metric_sym] = { :value => value } #, :domain => WILD_DOMAIN
|
155
|
+
cookies[metric_variant_sym] = { :value => metric_variant.id } #, :domain => WILD_DOMAIN
|
156
|
+
end
|
157
|
+
|
158
|
+
return value
|
154
159
|
end
|
155
160
|
end
|
156
161
|
|
@@ -158,7 +163,7 @@ module MetricTracking
|
|
158
163
|
metric_variant_sym = "metric_#{metric_type}_variant".to_sym
|
159
164
|
|
160
165
|
#first, we'll check for a cookie selection
|
161
|
-
if cookies[metric_variant_sym] && !cookies[metric_variant_sym].blank?
|
166
|
+
if defined?(cookies) && cookies[metric_variant_sym] && !cookies[metric_variant_sym].blank?
|
162
167
|
#we have the cookie
|
163
168
|
|
164
169
|
variant_id = cookies[metric_variant_sym]
|
@@ -195,7 +200,9 @@ module MetricTracking
|
|
195
200
|
metric_variant.tally_serve #donate we served this to a user
|
196
201
|
logger.debug "Serving #{metric_variant.name} (#{metric_variant.switch_type}) for #{metric.title} (switch-type)"
|
197
202
|
#good, we have a variant, let's store it in session (not the value, just the selection)
|
198
|
-
cookies
|
203
|
+
if defined?(cookies)
|
204
|
+
cookies[metric_variant_sym] = { :value => metric_variant.id } #, :domain => WILD_DOMAIN
|
205
|
+
end
|
199
206
|
|
200
207
|
return metric_variant
|
201
208
|
end
|
@@ -238,4 +245,6 @@ class ActionView::Base
|
|
238
245
|
include MetricTracking::View
|
239
246
|
end
|
240
247
|
|
241
|
-
|
248
|
+
class ActionMailer::Base
|
249
|
+
include MetricTracking::Controller
|
250
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
<%# locals => f %>
|
2
|
+
|
3
|
+
<%= f.hidden_field :metric_id %>
|
4
|
+
|
5
|
+
<% if f.object.metric.is_switch %>
|
6
|
+
<span class="switch-type"><%=h f.object.switch_type %></span>
|
7
|
+
<% end %>
|
8
|
+
|
9
|
+
<div class="item name">
|
10
|
+
<%= f.label :name, 'Variant name' %><br />
|
11
|
+
<%= f.text_field :name %>
|
12
|
+
</div>
|
13
|
+
|
14
|
+
<% if !f.object.metric.is_switch %>
|
15
|
+
<div class="item value">
|
16
|
+
<%= f.label :value, 'Metric value' %><br />
|
17
|
+
<%= f.text_area :value %>
|
18
|
+
</div>
|
19
|
+
<% end %>
|
20
|
+
<div class="item priority">
|
21
|
+
<%= f.label :priority, 'Priority' %><br />
|
22
|
+
<%= f.text_field :priority %>
|
23
|
+
</div>
|
24
|
+
|
25
|
+
<div class="item submit">
|
26
|
+
<%= f.submit 'Submit' %>
|
27
|
+
</div>
|
@@ -16,6 +16,16 @@
|
|
16
16
|
<%= f.label :value, 'Metric value' %><br />
|
17
17
|
<%= f.text_area :value %>
|
18
18
|
</div>
|
19
|
+
|
20
|
+
<div class="item opt1">
|
21
|
+
<%= f.label :opt1, 'Option 1' %><br />
|
22
|
+
<%= f.text_area :opt1 %>
|
23
|
+
</div>
|
24
|
+
|
25
|
+
<div class="item opt2">
|
26
|
+
<%= f.label :opt2, 'Option 2' %><br />
|
27
|
+
<%= f.text_area :opt2 %>
|
28
|
+
</div>
|
19
29
|
<% end %>
|
20
30
|
<div class="item priority">
|
21
31
|
<%= f.label :priority, 'Priority' %><br />
|
Binary file
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mountain-goat
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 25
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 3
|
10
|
+
version: 0.0.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Geoffrey Hayes
|
@@ -93,6 +93,7 @@ files:
|
|
93
93
|
- lib/mountain_goat/views/mountain_goat/mountain_goat_converts/index.html.erb
|
94
94
|
- lib/mountain_goat/views/mountain_goat/mountain_goat_converts/new.html.erb
|
95
95
|
- lib/mountain_goat/views/mountain_goat/mountain_goat_converts/show.html.erb
|
96
|
+
- lib/mountain_goat/views/mountain_goat/mountain_goat_metric_variants/.tmp__metric_variant_form.html.erb.87465~
|
96
97
|
- lib/mountain_goat/views/mountain_goat/mountain_goat_metric_variants/_metric_variant_form.html.erb
|
97
98
|
- lib/mountain_goat/views/mountain_goat/mountain_goat_metric_variants/edit.html.erb
|
98
99
|
- lib/mountain_goat/views/mountain_goat/mountain_goat_metric_variants/index.html.erb
|
@@ -105,6 +106,7 @@ files:
|
|
105
106
|
- lib/mountain_goat/views/mountain_goat/mountain_goat_metrics/show.html.erb
|
106
107
|
- migrations/20090716093747_create_metric_tracking_tables.rb
|
107
108
|
- mountain-goat-0.0.1.gem
|
109
|
+
- mountain-goat-0.0.2.gem
|
108
110
|
- mountain-goat.gemspec
|
109
111
|
has_rdoc: true
|
110
112
|
homepage: http://github.com/hayesgm/mountain-goat
|