mountain-goat 0.1.8 → 1.0.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.
Files changed (135) hide show
  1. data/README.md +119 -48
  2. data/generators/mg/mg_generator.rb +17 -9
  3. data/generators/mg/templates/create_mountain_goat_tables.rb +61 -25
  4. data/generators/mg/templates/mg.rb +1 -0
  5. data/generators/mg/templates/mountain-goat.yml +22 -3
  6. data/generators/mg/templates/mountain_goat_reports.rake +17 -0
  7. data/generators/mg/templates/update_mountain_goat_tables.rb +104 -0
  8. data/lib/mountain-goat.rb +21 -12
  9. data/lib/mountain-goat/analytics.rb +134 -0
  10. data/lib/mountain-goat/controllers/{mountain_goat/mountain_goat_converts_controller.rb → mg/converts_controller.rb} +12 -11
  11. data/lib/mountain-goat/controllers/{mountain_goat/mountain_goat_metric_variants_controller.rb → mg/metric_variants_controller.rb} +6 -5
  12. data/lib/mountain-goat/controllers/{mountain_goat/mountain_goat_metrics_controller.rb → mg/metrics_controller.rb} +8 -6
  13. data/lib/mountain-goat/controllers/mg/mg.rb +47 -0
  14. data/lib/mountain-goat/controllers/{mountain_goat → mg}/mountain_goat_controller.rb +5 -42
  15. data/lib/mountain-goat/controllers/mg/playground_controller.rb +8 -0
  16. data/lib/mountain-goat/controllers/{mountain_goat/mountain_goat_rallies_controller.rb → mg/rallies_controller.rb} +4 -26
  17. data/lib/mountain-goat/controllers/mg/report_items_controller.rb +82 -0
  18. data/lib/mountain-goat/controllers/mg/reports_controller.rb +90 -0
  19. data/lib/mountain-goat/m_g.rb +64 -0
  20. data/lib/mountain-goat/metric_tracking.rb +192 -74
  21. data/lib/mountain-goat/models/mg/ci_meta.rb +10 -0
  22. data/lib/mountain-goat/models/mg/convert.rb +147 -0
  23. data/lib/mountain-goat/models/mg/convert_meta_type.rb +20 -0
  24. data/lib/mountain-goat/models/mg/cs_meta.rb +10 -0
  25. data/lib/mountain-goat/models/{metric.rb → mg/metric.rb} +3 -5
  26. data/lib/mountain-goat/models/mg/metric_variant.rb +25 -0
  27. data/lib/mountain-goat/models/mg/mountain_goat.rb +3 -0
  28. data/lib/mountain-goat/models/{rally.rb → mg/rally.rb} +4 -3
  29. data/lib/mountain-goat/models/mg/report.rb +11 -0
  30. data/lib/mountain-goat/models/mg/report_item.rb +24 -0
  31. data/lib/mountain-goat/models/mg/report_mailer.rb +18 -0
  32. data/lib/mountain-goat/public/g-bar-min.js +7 -0
  33. data/lib/mountain-goat/public/g-dot-min.js +7 -0
  34. data/lib/mountain-goat/public/g-line-min.js +7 -0
  35. data/lib/mountain-goat/public/g-pie-min.js +1 -0
  36. data/lib/mountain-goat/public/g-raphael-min.js +7 -0
  37. data/lib/mountain-goat/public/jqModel.css +41 -0
  38. data/lib/mountain-goat/public/jqModel.js +69 -0
  39. data/lib/mountain-goat/public/jquery.raphael.js +208 -0
  40. data/lib/mountain-goat/public/mg.css +135 -26
  41. data/lib/mountain-goat/public/mg.js +53 -1
  42. data/lib/mountain-goat/public/raphael-min.js +7 -0
  43. data/lib/mountain-goat/public/utils.js +520 -0
  44. data/lib/mountain-goat/switch_variant.rb +4 -4
  45. data/lib/mountain-goat/version.rb +1 -1
  46. data/lib/mountain-goat/views/mountain_goat/layouts/_pdf.html.erb +15 -0
  47. data/lib/mountain-goat/views/mountain_goat/layouts/mountain_goat.html.erb +17 -5
  48. data/lib/mountain-goat/views/mountain_goat/layouts/xhr.html.erb +2 -0
  49. data/lib/mountain-goat/views/mountain_goat/{mountain_goat_converts → mg/converts}/.tmp_show.html.erb.4433~ +0 -0
  50. data/lib/mountain-goat/views/mountain_goat/{mountain_goat_converts → mg/converts}/_convert_form.html.erb +0 -0
  51. data/lib/mountain-goat/views/mountain_goat/{mountain_goat_converts → mg/converts}/_convert_meta_type_form.html.erb +0 -0
  52. data/lib/mountain-goat/views/mountain_goat/mg/converts/edit.html.erb +13 -0
  53. data/lib/mountain-goat/views/mountain_goat/mg/converts/index.html.erb +25 -0
  54. data/lib/mountain-goat/views/mountain_goat/mg/converts/new.html.erb +13 -0
  55. data/lib/mountain-goat/views/mountain_goat/{mountain_goat_converts → mg/converts}/show.html.erb +3 -28
  56. data/lib/mountain-goat/views/mountain_goat/{mountain_goat_metric_variants → mg/metric_variants}/_metric_variant_form.html.erb +0 -4
  57. data/lib/mountain-goat/views/mountain_goat/mg/metric_variants/edit.html.erb +13 -0
  58. data/lib/mountain-goat/views/mountain_goat/{mountain_goat_metric_variants → mg/metric_variants}/index.html.erb +3 -3
  59. data/lib/mountain-goat/views/mountain_goat/mg/metric_variants/new.html.erb +15 -0
  60. data/lib/mountain-goat/views/mountain_goat/{mountain_goat_metric_variants → mg/metric_variants}/show.html.erb +4 -5
  61. data/lib/mountain-goat/views/mountain_goat/{mountain_goat_metrics → mg/metrics}/.tmp_show.html.erb.21270~ +0 -0
  62. data/lib/mountain-goat/views/mountain_goat/{mountain_goat_metrics → mg/metrics}/_metric_form.html.erb +0 -2
  63. data/lib/mountain-goat/views/mountain_goat/mg/metrics/edit.html.erb +13 -0
  64. data/lib/mountain-goat/views/mountain_goat/mg/metrics/index.html.erb +14 -0
  65. data/lib/mountain-goat/views/mountain_goat/mg/metrics/new.html.erb +14 -0
  66. data/lib/mountain-goat/views/mountain_goat/{mountain_goat_metrics → mg/metrics}/show.html.erb +7 -8
  67. data/lib/mountain-goat/views/mountain_goat/{mountain_goat → mg/mountain_goat}/login.html.erb +0 -0
  68. data/lib/mountain-goat/views/mountain_goat/mg/playground/test.html.erb +14 -0
  69. data/lib/mountain-goat/views/mountain_goat/{mountain_goat_rallies → mg/rallies}/.tmp__rally.html.erb.40484~ +0 -0
  70. data/lib/mountain-goat/views/mountain_goat/mg/rallies/_rallies.html.erb +5 -0
  71. data/lib/mountain-goat/views/mountain_goat/{mountain_goat_rallies → mg/rallies}/_rallies_form.html.erb +0 -0
  72. data/lib/mountain-goat/views/mountain_goat/{mountain_goat_rallies → mg/rallies}/_rally.html.erb +0 -0
  73. data/lib/mountain-goat/views/mountain_goat/mg/rallies/edit.html.erb +13 -0
  74. data/lib/mountain-goat/views/mountain_goat/{mountain_goat_rallies → mg/rallies}/index.html.erb +1 -1
  75. data/lib/mountain-goat/views/mountain_goat/mg/rallies/new.html.erb +13 -0
  76. data/lib/mountain-goat/views/mountain_goat/{mountain_goat_rallies → mg/rallies}/show.html.erb +1 -1
  77. data/lib/mountain-goat/views/mountain_goat/mg/report_items/_chart.html.erb +18 -0
  78. data/lib/mountain-goat/views/mountain_goat/mg/report_items/_report_item_form.html.erb +10 -0
  79. data/lib/mountain-goat/views/mountain_goat/mg/report_items/_report_item_pivot_form.html.erb +14 -0
  80. data/lib/mountain-goat/views/mountain_goat/mg/report_items/_show.html.erb +29 -0
  81. data/lib/mountain-goat/views/mountain_goat/mg/report_items/_svg_chart.html.erb +4 -0
  82. data/lib/mountain-goat/views/mountain_goat/mg/report_items/edit.html.erb +19 -0
  83. data/lib/mountain-goat/views/mountain_goat/mg/report_items/new.html.erb +17 -0
  84. data/lib/mountain-goat/views/mountain_goat/mg/report_mailer/report.html.erb +27 -0
  85. data/lib/mountain-goat/views/mountain_goat/mg/reports/_report.html.erb +22 -0
  86. data/lib/mountain-goat/views/mountain_goat/mg/reports/_report_form.html.erb +21 -0
  87. data/lib/mountain-goat/views/mountain_goat/mg/reports/_report_report_items.html.erb +5 -0
  88. data/lib/mountain-goat/views/mountain_goat/mg/reports/edit.html.erb +36 -0
  89. data/lib/mountain-goat/views/mountain_goat/mg/reports/index.html.erb +26 -0
  90. data/lib/mountain-goat/views/mountain_goat/mg/reports/new.html.erb +17 -0
  91. data/lib/mountain-goat/views/mountain_goat/mg/reports/show.html.erb +21 -0
  92. data/test/fixtures/{ci_metas.yml → mg_ci_metas.yml} +0 -0
  93. data/test/fixtures/{convert_meta_types.yml → mg_convert_meta_types.yml} +0 -0
  94. data/test/fixtures/{converts.yml → mg_converts.yml} +5 -0
  95. data/test/fixtures/{cs_metas.yml → mg_cs_metas.yml} +0 -0
  96. data/test/fixtures/mg_deliveries.yml +9 -0
  97. data/test/fixtures/{metric_variants.yml → mg_metric_variants.yml} +0 -0
  98. data/test/fixtures/{metrics.yml → mg_metrics.yml} +2 -3
  99. data/test/fixtures/{rallies.yml → mg_rallies.yml} +6 -2
  100. data/test/fixtures/mg_report_items.yml +13 -0
  101. data/test/fixtures/mg_reports.yml +15 -0
  102. data/test/mg_convert_test.rb +32 -0
  103. data/test/mg_converts_controller_test.rb +47 -0
  104. data/test/mg_metric_variants_controller_test.rb +46 -0
  105. data/test/mg_metrics_controller_test.rb +52 -0
  106. data/test/mg_mountain_goat_controller_test.rb +45 -0
  107. data/test/mg_mountain_goat_test.rb +392 -0
  108. data/test/mg_playground_controller_test.rb +11 -0
  109. data/test/mg_rallies_controller_test.rb +36 -0
  110. data/test/mg_report_item_test.rb +7 -0
  111. data/test/mg_report_items_controller_test.rb +31 -0
  112. data/test/mg_report_test.rb +18 -0
  113. data/test/mg_reports_controller_test.rb +50 -0
  114. data/test/test_helper.rb +203 -0
  115. metadata +108 -55
  116. data/lib/mountain-goat/models/ci_meta.rb +0 -9
  117. data/lib/mountain-goat/models/convert.rb +0 -70
  118. data/lib/mountain-goat/models/convert_meta_type.rb +0 -19
  119. data/lib/mountain-goat/models/cs_meta.rb +0 -9
  120. data/lib/mountain-goat/models/metric_variant.rb +0 -22
  121. data/lib/mountain-goat/views/mountain_goat/mountain_goat_converts/edit.html.erb +0 -13
  122. data/lib/mountain-goat/views/mountain_goat/mountain_goat_converts/index.html.erb +0 -48
  123. data/lib/mountain-goat/views/mountain_goat/mountain_goat_converts/new.html.erb +0 -13
  124. data/lib/mountain-goat/views/mountain_goat/mountain_goat_metric_variants/edit.html.erb +0 -13
  125. data/lib/mountain-goat/views/mountain_goat/mountain_goat_metric_variants/new.html.erb +0 -15
  126. data/lib/mountain-goat/views/mountain_goat/mountain_goat_metrics/edit.html.erb +0 -13
  127. data/lib/mountain-goat/views/mountain_goat/mountain_goat_metrics/index.html.erb +0 -14
  128. data/lib/mountain-goat/views/mountain_goat/mountain_goat_metrics/new.html.erb +0 -14
  129. data/lib/mountain-goat/views/mountain_goat/mountain_goat_rallies/_rallies.html.erb +0 -5
  130. data/lib/mountain-goat/views/mountain_goat/mountain_goat_rallies/edit.html.erb +0 -13
  131. data/lib/mountain-goat/views/mountain_goat/mountain_goat_rallies/new.html.erb +0 -13
  132. data/test/ocelot_converts_controller_test.rb +0 -45
  133. data/test/ocelot_metric_variants_controller_test.rb +0 -45
  134. data/test/ocelot_metrics_controller_test.rb +0 -45
  135. data/test/ocelot_rallies_controller_test.rb +0 -8
@@ -1,9 +0,0 @@
1
- class CiMeta < ActiveRecord::Base
2
-
3
- belongs_to :convert_meta_type
4
- belongs_to :rally
5
-
6
- validates_presence_of :convert_meta_type_id
7
- validates_presence_of :rally_id
8
-
9
- end
@@ -1,70 +0,0 @@
1
- class Convert < ActiveRecord::Base
2
-
3
- has_many :metrics
4
- has_many :rallies
5
- has_many :convert_meta_types
6
- has_many :ci_metas, :through => :convert_meta_types
7
- has_many :cs_metas, :through => :convert_meta_types
8
-
9
- validates_presence_of :name
10
- validates_format_of :convert_type, :with => /[a-z0-9_]{3,50}/i, :message => "must be between 3 and 30 characters, alphanumeric with underscores"
11
- validates_uniqueness_of :convert_type
12
-
13
- accepts_nested_attributes_for :convert_meta_types, :reject_if => lambda { |a| a[:name].blank? || a[:var].blank? || a[:meta_type].blank? }, :allow_destroy => true
14
-
15
- def self.by_type(s)
16
- Convert.find( :first, :conditions => { :convert_type => s.to_s } )
17
- end
18
-
19
- def rallies_for_meta(var)
20
- cmt = self.convert_meta_types.find_by_var( var.to_s )
21
- return {} if cmt.nil?
22
- cmt.meta.map { |m| { m.data => m.rally } }
23
- end
24
-
25
- def rallies_for_meta_val(var, data)
26
- cmt = self.convert_meta_types.find_by_var( var.to_s )
27
- return [] if cmt.nil?
28
- cmt.meta.find(:all, :conditions => { :data => data } ).map { |m| m.rally }
29
- end
30
-
31
- def rallies_for_meta_val_pivot(var, data, pivot)
32
- res = {}
33
- cmt = self.convert_meta_types.find_by_var( var.to_s )
34
- cmt_pivot = self.convert_meta_types.find_by_var( pivot.to_s )
35
- return {} if cmt.nil? || cmt_pivot.nil?
36
- cmt.meta.find(:all, :select => "`#{cmt.meta.table_name}`.created_at, cm.data AS pivot", :conditions => { :data => data }, :joins => "LEFT JOIN `#{cmt_pivot.meta.table_name}` cm ON cm.convert_meta_type_id = #{cmt_pivot.id} AND cm.rally_id = `#{cmt.meta.table_name}`.rally_id").each do |c|
37
- if !res.include?(c.pivot)
38
- res[c.pivot] = []
39
- end
40
-
41
- res[c.pivot].push c.created_at
42
- end
43
-
44
- res.each { |k,v| v.sort! }
45
- res
46
- end
47
-
48
- def rallies_for_meta_val_pivot_item(var, data, pivot, item)
49
- res = {}
50
- cmt = self.convert_meta_types.find_by_var( var.to_s )
51
- cmt_pivot = self.convert_meta_types.find_by_var( pivot.to_s )
52
- cmt_item = self.convert_meta_types.find_by_var( item.to_s )
53
- return {} if cmt.nil? || cmt_pivot.nil? || cmt_item.nil?
54
- cmt.meta.find(:all, :select => "`#{cmt.meta.table_name}`.created_at, cm.data AS pivot, ci.data as item", :conditions => { :data => data }, :joins => "LEFT JOIN `#{cmt_pivot.meta.table_name}` cm ON cm.convert_meta_type_id = #{cmt_pivot.id} AND cm.rally_id = `#{cmt.meta.table_name}`.rally_id LEFT JOIN `#{cmt_item.meta.table_name}` ci ON ci.convert_meta_type_id = #{cmt_item.id} AND ci.rally_id = `#{cmt.meta.table_name}`.rally_id").each do |c|
55
- if !res.include?(c.pivot)
56
- res[c.pivot] = []
57
- end
58
-
59
- if cmt_item.meta_type == 'ci_meta'
60
- c.item.to_i.times { res[c.pivot].push c.created_at }
61
- else
62
- res[c.pivot].push c.created_at if c.item == 'yes' #what else?
63
- end
64
- end
65
-
66
- res.each { |k,v| v.sort! }
67
- res.delete_if { |k,v| v.count == 0 }
68
- res
69
- end
70
- end
@@ -1,19 +0,0 @@
1
- class ConvertMetaType < ActiveRecord::Base
2
-
3
- belongs_to :convert
4
- has_many :ci_metas, :class_name => 'CiMeta', :dependent => :destroy
5
- has_many :cs_metas, :class_name => 'CsMeta', :dependent => :destroy
6
-
7
- validates_presence_of :name
8
- validates_presence_of :var
9
- validates_presence_of :meta_type
10
-
11
- def meta
12
- case self.meta_type
13
- when 'ci_meta'
14
- return self.ci_metas
15
- when 'cs_meta'
16
- return self.cs_metas
17
- end
18
- end
19
- end
@@ -1,9 +0,0 @@
1
- class CsMeta < ActiveRecord::Base
2
-
3
- belongs_to :convert_meta_type
4
- belongs_to :rally
5
-
6
- validates_presence_of :convert_meta_type_id
7
- validates_presence_of :rally_id
8
-
9
- end
@@ -1,22 +0,0 @@
1
- class MetricVariant < ActiveRecord::Base
2
-
3
- belongs_to :metric
4
-
5
- validates_presence_of :name
6
- validates_presence_of :metric_id
7
-
8
- def tally_serve(count = 1)
9
- MetricVariant.update_counters(self.id, :served => count)
10
- self.reload
11
- end
12
-
13
- def tally_convert(count = 1)
14
- MetricVariant.update_counters(self.id, :conversions => count)
15
- self.reload
16
- end
17
-
18
- def conversion_rate
19
- return nil if self.served == 0
20
- return self.conversions / self.served.to_f * 100
21
- end
22
- end
@@ -1,13 +0,0 @@
1
-
2
-
3
- <div id="container-main" class="mt-converts">
4
- <div class="mountain-goat-panel centered">
5
- <h1>Edit <%=h @convert.name %></h1>
6
-
7
- <% form_for :convert, @convert, :url => mountain_goat_convert_url(:id => @convert.id), :html => { :method => :put } do |f| %>
8
- <%= f.error_messages %>
9
-
10
- <%= render :partial => 'mountain_goat_converts/convert_form', :locals => { :f => f } %>
11
- <% end %>
12
- </div>
13
- </div>
@@ -1,48 +0,0 @@
1
-
2
- <div id="container-main" class="mt-converts">
3
- <div class="mountain-goat-panel centered">
4
-
5
- <h1>Conversion Goals</h1>
6
-
7
- <div class="conversions">
8
- <div class="explanation">
9
- <span class="inner">
10
- Below are a list of conversion goals. Each goal has a set of metrics designed to achieve that goal. For each metric, there is a list of variants, each coupled with its conversation rate.</span>
11
- </span>
12
- </div>
13
-
14
- <div class="converts">
15
- <% @converts.each do |convert| %>
16
- <h2><a href="<%= mountain_goat_convert_url :id => convert.id %>"><%=h convert.name %></a></h2>
17
- <% convert.metrics.each do |metric| %>
18
- <div class="metric-category">
19
- <span class="metric"><a href="<%= mountain_goat_metric_url :id => metric.id %>"><%= metric.title %></a></span>
20
- <% if metric.metric_variants.count == 0 %>
21
- <span class="none">No metric variants [<a href="<%= new_mountain_goat_metric_mountain_goat_metric_variant_url :mountain_goat_metric_id => metric.id %>">Add one</a>]</span>
22
- <% else %>
23
- <% metric.metric_variants.each do |mv| %>
24
- <div class="item rate">
25
- <span class="rate-holder">
26
- <span class="title"><a href="<%= mountain_goat_metric_variant_url mv %>"><%=h mv.name %></a></span>
27
- <span class="rates" style="width:<%= number_to_percentage(mv.conversion_rate, :precision => 0) %>"></span>
28
- </span>
29
-
30
- <span class="percent-holder">
31
- <span class="val"><%= number_to_percentage(mv.conversion_rate, :precision => 0) %></span>
32
- (<span class="conversions"><%= mv.conversions %></span> /
33
- <span class="served"><%= mv.served %></span>)
34
- </span>
35
- </div>
36
- <% end %>
37
- <% end %>
38
- </div>
39
- <% end %>
40
- <% end %>
41
- </div>
42
- </div>
43
-
44
- <div class="actions">
45
- <a class="button" href="<%= new_mountain_goat_convert_url %>">New Goal</a>
46
- </div>
47
- </div>
48
- </div>
@@ -1,13 +0,0 @@
1
-
2
-
3
- <div id="container-main" class="mt-converts">
4
- <div class="mountain-goat-panel centered">
5
- <h2>New convert</h2>
6
-
7
- <% form_for :convert, @convert, :url => mountain_goat_converts_url do |f| %>
8
- <%= f.error_messages %>
9
-
10
- <%= render :partial => 'mountain_goat_converts/convert_form', :locals => { :f => f } %>
11
- <% end %>
12
- </div>
13
- </div>
@@ -1,13 +0,0 @@
1
-
2
-
3
- <div id="container-main" class="mt-metric-variants">
4
- <div class="mountain-goat-panel centered">
5
- <h1>Edit <%=h @metric_variant.name %></h1>
6
-
7
- <% form_for :metric_variant, @metric_variant, :url => mountain_goat_metric_variant_url(:id => @metric_variant.id), :html => { :method => :put } do |f| %>
8
- <%= f.error_messages %>
9
-
10
- <%= render :partial => 'mountain_goat_metric_variants/metric_variant_form', :locals => { :f => f } %>
11
- <% end %>
12
- </div>
13
- </div>
@@ -1,15 +0,0 @@
1
-
2
-
3
- <div id="container-main" class="mt-metric-variants">
4
- <div class="mountain-goat-panel cenetered">
5
- <h1>New Variant for <%=h @metric.title %></h1>
6
-
7
- <% form_for :metric_variant, @metric_variant, :url => mountain_goat_metric_variants_url do |f| %>
8
- <%= f.error_messages %>
9
-
10
- <%= render :partial => 'mountain_goat_metric_variants/metric_variant_form', :locals => { :f => f } %>
11
- <% end %>
12
-
13
- <a href="<%= mountain_goat_metric_url :id => @metric.id %>">Back to <%=h @metric.title %></a>
14
- </div>
15
- </div>
@@ -1,13 +0,0 @@
1
-
2
-
3
- <div id="container-main" class="mt-metrics">
4
- <div class="mountain-goat-panel centered">
5
- <h1>Edit <%= @metric.title %></h1>
6
-
7
- <% form_for :metric, @metric, :url => mountain_goat_metric_url(:id => @metric.id), :html => { :method => :put } do |f| %>
8
- <%= f.error_messages %>
9
-
10
- <%= render :partial => 'mountain_goat_metrics/metric_form', :locals => { :f => f } %>
11
- <% end %>
12
- </div>
13
- </div>
@@ -1,14 +0,0 @@
1
-
2
- <div id="container-main" class="mt-metrics">
3
- <div class="mountain-goat-panel">
4
- <h1>All metrics</h1>
5
-
6
- <% @metrics.each do |metric| %>
7
- <h2><a href="<%= mountain_goat_metric_url metric %>"><%=h metric.title %> </a> for <%=h metric.convert.name %></h2>
8
- <% end %>
9
-
10
- <span class="actions">
11
- <a class="button" href="<%= new_mountain_goat_metric_url %>">New metric</a>
12
- </span>
13
- </div>
14
- </div>
@@ -1,14 +0,0 @@
1
-
2
-
3
- <div id="container-main" class="mt-metrics">
4
- <div class="mountain-goat-panel cenetered">
5
- <h2>New metric for <%=h @convert.name %></h2>
6
-
7
- <% form_for :metric, @metric, :url => mountain_goat_metrics_url do |f| %>
8
- <%= f.error_messages %>
9
-
10
- <%= render :partial => 'mountain_goat_metrics/metric_form', :locals => { :f => f } %>
11
- <% end %>
12
-
13
- </div>
14
- </div>
@@ -1,5 +0,0 @@
1
- <%# locals => rallies %>
2
-
3
- <% rallies.each do |rally| %>
4
- <%= render :partial => 'mountain_goat_rallies/rally', :locals => { :rally => rally } %>
5
- <% end %>
@@ -1,13 +0,0 @@
1
-
2
- <div id="container-main" class="mt-rallies">
3
- <div class="mountain-goat-panel cenetered">
4
- <h2>Edit rally</h2>
5
-
6
- <% form_for :rally, @rally, :url => mountain_goat_rallies_url do |f| %>
7
- <%= f.error_messages %>
8
-
9
- <%= render :partial => 'mountain_goat_rallies/rallies_form', :locals => { :f => f } %>
10
- <% end %>
11
-
12
- </div>
13
- </div>
@@ -1,13 +0,0 @@
1
-
2
- <div id="container-main" class="mt-rallies">
3
- <div class="mountain-goat-panel cenetered">
4
- <h2>New rally</h2>
5
-
6
- <% form_for :rally, @rally, :url => mountain_goat_rallies_url do |f| %>
7
- <%= f.error_messages %>
8
-
9
- <%= render :partial => 'mountain_goat_rallies/rallies_form', :locals => { :f => f } %>
10
- <% end %>
11
-
12
- </div>
13
- </div>
@@ -1,45 +0,0 @@
1
- require 'test_helper'
2
-
3
- class Ocelot::OcelotConvertsControllerTest < ActionController::TestCase
4
- test "should get index" do
5
- get :index, {}, admin_user
6
- assert_response :success
7
- assert_not_nil assigns(:converts)
8
- end
9
-
10
- test "should get new" do
11
- get :new, {}, admin_user
12
- assert_response :success
13
- end
14
-
15
- test "should create convert" do
16
- assert_difference('Convert.count') do
17
- post :create, { :convert => { :name => 'my next convert', :convert_type => 'convert_type_3' } }, admin_user
18
- end
19
-
20
- assert_redirected_to ocelot_ocelot_convert_url assigns(:convert)
21
- end
22
-
23
- test "should show convert" do
24
- get :show, { :id => converts(:one).to_param }, admin_user
25
- assert_response :success
26
- end
27
-
28
- test "should get edit" do
29
- get :edit, { :id => converts(:one).to_param }, admin_user
30
- assert_response :success
31
- end
32
-
33
- test "should update convert" do
34
- put :update, { :id => converts(:one).to_param, :convert => { } }, admin_user
35
- assert_redirected_to ocelot_ocelot_convert_url assigns(:convert)
36
- end
37
-
38
- test "should destroy convert" do
39
- assert_difference('Convert.count', -1) do
40
- delete :destroy, { :id => converts(:one).to_param }, admin_user
41
- end
42
-
43
- assert_redirected_to ocelot_ocelot_converts_url
44
- end
45
- end
@@ -1,45 +0,0 @@
1
- require 'test_helper'
2
-
3
- class Ocelot::OcelotMetricVariantsControllerTest < ActionController::TestCase
4
- test "should get index" do
5
- get :index, {}, admin_user
6
- assert_response :success
7
- assert_not_nil assigns(:metric_variants)
8
- end
9
-
10
- test "should get new" do
11
- get :new, { :ocelot_metric_id => metrics(:two).id }, admin_user
12
- assert_response :success
13
- end
14
-
15
- test "should create metric_variant" do
16
- assert_difference('MetricVariant.count') do
17
- post :create, { :metric_variant => { :metric_id => metrics(:two).id, :name => 'var', :value => 'cool' } }, admin_user
18
- end
19
-
20
- assert_redirected_to ocelot_ocelot_metric_url metrics(:two)
21
- end
22
-
23
- test "should show metric_variant" do
24
- get :show, { :id => metric_variants(:one).to_param }, admin_user
25
- assert_response :success
26
- end
27
-
28
- test "should get edit" do
29
- get :edit, { :id => metric_variants(:one).to_param }, admin_user
30
- assert_response :success
31
- end
32
-
33
- test "should update metric_variant" do
34
- put :update, { :id => metric_variants(:one).to_param, :metric_variant => { } }, admin_user
35
- assert_redirected_to ocelot_ocelot_metric_url assigns(:metric_variant).metric
36
- end
37
-
38
- test "should destroy metric_variant" do
39
- assert_difference('MetricVariant.count', -1) do
40
- delete :destroy, { :id => metric_variants(:one).to_param }, admin_user
41
- end
42
-
43
- assert_redirected_to ocelot_ocelot_metric_variants_url
44
- end
45
- end
@@ -1,45 +0,0 @@
1
- require 'test_helper'
2
-
3
- class Ocelot::OcelotMetricsControllerTest < ActionController::TestCase
4
- test "should get index" do
5
- get :index, {}, admin_user
6
- assert_response :success
7
- assert_not_nil assigns(:metrics)
8
- end
9
-
10
- test "should get new" do
11
- get :new, { :ocelot_convert_id => converts(:one).id }, admin_user
12
- assert_response :success
13
- end
14
-
15
- test "should create metric" do
16
- assert_difference('Metric.count') do
17
- post :create, { :metric => { :metric_type => 'geoff', :title => 'hayes', :convert_id => converts(:two).id } }, admin_user
18
- end
19
-
20
- assert_redirected_to ocelot_ocelot_metric_url :id => assigns(:metric).id
21
- end
22
-
23
- test "should show metric" do
24
- get :show, { :id => metrics(:one).to_param }, admin_user
25
- assert_response :success
26
- end
27
-
28
- test "should get edit" do
29
- get :edit, { :id => metrics(:one).to_param }, admin_user
30
- assert_response :success
31
- end
32
-
33
- test "should update metric" do
34
- put :update, { :id => metrics(:one).to_param, :metric => { } }, admin_user
35
- assert_redirected_to ocelot_ocelot_metric_url :id => assigns(:metric).id
36
- end
37
-
38
- test "should destroy metric" do
39
- assert_difference('Metric.count', -1) do
40
- delete :destroy, { :id => metrics(:one).to_param }, admin_user
41
- end
42
-
43
- assert_redirected_to ocelot_ocelot_metrics_url
44
- end
45
- end