snapstats 0.0.10 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (68) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/snapstats/main/main_controller.js +3 -3
  3. data/app/assets/javascripts/snapstats/performances/performances_controller.js +2 -2
  4. data/app/assets/stylesheets/snapstats/app.css +103 -51
  5. data/app/controllers/snapstats/application_controller.rb +1 -1
  6. data/app/controllers/snapstats/mains_controller.rb +18 -15
  7. data/app/controllers/snapstats/performances_controller.rb +22 -16
  8. data/app/controllers/snapstats/users_controller.rb +33 -21
  9. data/app/views/layouts/snapstats/application.html.erb +3 -3
  10. data/app/views/snapstats/application/_main_menu.html.erb +37 -7
  11. data/app/views/snapstats/mains/show.html.erb +110 -81
  12. data/app/views/snapstats/performances/show.html.erb +3 -3
  13. data/app/views/snapstats/users/activity.html.erb +43 -43
  14. data/app/views/snapstats/users/show.html.erb +31 -31
  15. data/config/routes.rb +22 -22
  16. data/lib/snapstats.rb +42 -4
  17. data/lib/snapstats/engine.rb +1 -0
  18. data/lib/snapstats/helper/redis.rb +24 -0
  19. data/lib/snapstats/logger.rb +18 -0
  20. data/lib/snapstats/logger/ext.rb +65 -0
  21. data/lib/snapstats/logger/store.rb +126 -0
  22. data/lib/snapstats/redis.rb +15 -0
  23. data/lib/snapstats/reports/main.rb +46 -0
  24. data/lib/snapstats/reports/manager.rb +22 -0
  25. data/lib/snapstats/reports/performance.rb +45 -0
  26. data/lib/snapstats/reports/user.rb +44 -0
  27. data/lib/snapstats/version.rb +1 -1
  28. metadata +15 -80
  29. data/lib/event_logger/event_logger.rb +0 -45
  30. data/lib/event_logger/event_logger_static.rb +0 -74
  31. data/lib/event_logger/event_logger_store.rb +0 -91
  32. data/lib/event_reader/event_reader.rb +0 -184
  33. data/lib/event_reader/event_reader_helpers.rb +0 -7
  34. data/lib/ext/redis.rb +0 -23
  35. data/test/dummy/README.rdoc +0 -28
  36. data/test/dummy/Rakefile +0 -6
  37. data/test/dummy/app/assets/javascripts/application.js +0 -13
  38. data/test/dummy/app/assets/stylesheets/application.css +0 -13
  39. data/test/dummy/app/controllers/application_controller.rb +0 -5
  40. data/test/dummy/app/helpers/application_helper.rb +0 -2
  41. data/test/dummy/app/views/layouts/application.html.erb +0 -14
  42. data/test/dummy/bin/bundle +0 -3
  43. data/test/dummy/bin/rails +0 -4
  44. data/test/dummy/bin/rake +0 -4
  45. data/test/dummy/config.ru +0 -4
  46. data/test/dummy/config/application.rb +0 -23
  47. data/test/dummy/config/boot.rb +0 -5
  48. data/test/dummy/config/database.yml +0 -25
  49. data/test/dummy/config/environment.rb +0 -5
  50. data/test/dummy/config/environments/development.rb +0 -29
  51. data/test/dummy/config/environments/production.rb +0 -80
  52. data/test/dummy/config/environments/test.rb +0 -36
  53. data/test/dummy/config/initializers/backtrace_silencers.rb +0 -7
  54. data/test/dummy/config/initializers/filter_parameter_logging.rb +0 -4
  55. data/test/dummy/config/initializers/inflections.rb +0 -16
  56. data/test/dummy/config/initializers/mime_types.rb +0 -5
  57. data/test/dummy/config/initializers/secret_token.rb +0 -12
  58. data/test/dummy/config/initializers/session_store.rb +0 -3
  59. data/test/dummy/config/initializers/wrap_parameters.rb +0 -14
  60. data/test/dummy/config/locales/en.yml +0 -23
  61. data/test/dummy/config/routes.rb +0 -4
  62. data/test/dummy/public/404.html +0 -58
  63. data/test/dummy/public/422.html +0 -58
  64. data/test/dummy/public/500.html +0 -57
  65. data/test/dummy/public/favicon.ico +0 -0
  66. data/test/integration/navigation_test.rb +0 -10
  67. data/test/snapstats_test.rb +0 -7
  68. data/test/test_helper.rb +0 -15
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c97b023730b677411870842445c8ff7506d0fd8f
4
- data.tar.gz: ca1186c43f3e6aa929ac3d7d9ce793cc62f7bff9
3
+ metadata.gz: b62aef07b4a4f851fb3c7fd73e06dfa578f1e015
4
+ data.tar.gz: c0a1780ec7239f722efcb91a66bd1428897b886d
5
5
  SHA512:
6
- metadata.gz: 8ce1bd83b3435c9b6d079b88eb059552dd3bcaeeed66ed7000f40d1520179be7d0ee629b51eb754240b4658787d61f4d73c29948478d5bf054964e07fef06e91
7
- data.tar.gz: 09e16b22d6f0e19e5cd32e01cb142ec91d6acbbc9c834bdf90cda496c8e6be601605b0eca14df85cb5d84cc0a1ece3f9d9441a54425e7edba02aa9fec8df3139
6
+ metadata.gz: c356577b7be0bf1dbad682c7f664e1e638efa1ed85fb2e87d9928443fab8d2ce821086cf3fb49a3ab05cadf81ceac2129a0d66c21048b5dde1a26760fd9f3a5e
7
+ data.tar.gz: edb735a7e69b47804a206a09c9907e50fafd5d47b1641a867ade3d89c3f93de573ec7dd76f8a4cf6f7c7307b7a26ee4d89efe151612710e585ced7feb6259ec4
@@ -31,8 +31,8 @@ $(document).ready(function () {
31
31
  }
32
32
 
33
33
  MG.data_graphic({
34
-
35
- data: data,
34
+
35
+ data: data,
36
36
  full_width: true,
37
37
 
38
38
  height: self.torso.height * 3 / 2,
@@ -59,4 +59,4 @@ $(document).ready(function () {
59
59
 
60
60
 
61
61
 
62
-
62
+
@@ -2,8 +2,8 @@ $(document).ready(function () {
2
2
  ({
3
3
 
4
4
  when_cat : "li.section-performance",
5
- data_path : ($(location).attr('pathname') + '/chart').replace('//', '/'),
6
- flat_data_path : ($(location).attr('pathname') + '/flat_chart').replace('//', '/'),
5
+ data_path : ($(location).attr('pathname') + '/chart_complex').replace('//', '/'),
6
+ flat_data_path : ($(location).attr('pathname') + '/chart').replace('//', '/'),
7
7
 
8
8
  torso : { width : 375, height : 200, right : 20 },
9
9
 
@@ -1,106 +1,158 @@
1
1
  body{
2
- font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
3
- font-weight: lighter;
2
+ font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
3
+ /*font-weight: lighter;*/
4
+ font-weight: 300;
4
5
 
5
- color: #fff;
6
+ color: #fff;
6
7
 
7
- background-color: #171718;
8
- /*background: -webkit-gradient(linear, left top, left bottom, from(#171718), to(#1D1D24)) fixed;*/
9
- background: -webkit-gradient(linear, left top, left bottom, from(#171718), to(#2D2733)) fixed;
8
+ background-color: #171718;
9
+ /*background: -webkit-gradient(linear, left top, left bottom, from(#171718), to(#1D1D24)) fixed;*/
10
+ background: -webkit-gradient(linear, left top, left bottom, from(#171718), to(#2D2733)) fixed;
10
11
 
11
12
  }
12
13
 
13
14
  h1, h2, h3{ font-weight: lighter; }
14
15
 
16
+ .dropdown button, button:hover {
17
+ background-color: none;
18
+ background-image: none !important;
19
+ text-shadow: none;
20
+ }
21
+
22
+ .dropdown-menu{
23
+ /*background-color:rgba(58, 52, 74, 0.7);*/
24
+ /*border: 1px solid rgba(60, 54, 76, 1.0);*/
25
+ }
26
+
27
+
28
+ .table-round{
29
+ border-radius: 5px;
30
+ display: block;
31
+ border: 1px solid #3A344A;
32
+ /*border: 1px solid rgba(100, 88, 130, 0.5);*/
33
+ font-weight: 300;
34
+
35
+ background-color:rgba(58, 52, 74, 0.2);
36
+ }
37
+
38
+ .table-round td {
39
+ max-width: 100px;
40
+ text-overflow:ellipsis;
41
+ overflow:hidden;
42
+ white-space:nowrap;
43
+ }
44
+
45
+ .table-round th, .table-round td {
46
+ padding: 10px;
47
+ width: 100%;
48
+ }
49
+
50
+ .table-round th {
51
+ border-bottom: 1px solid #3A344A;
52
+ }
53
+
54
+ .table-round tr:hover {
55
+ background-color:rgba(58, 52, 74, 0.3);
56
+ }
57
+
15
58
  .table, .table th, .table td {
16
- border-top: none !important;
17
- border-bottom: 1px solid #3A344A;
59
+ border-top: none !important;
60
+ border-bottom: 1px solid #3A344A;
18
61
 
19
- font-weight: 200;
62
+ font-weight: 300;
20
63
 
21
- padding: 7px 0px !important;
64
+ padding: 7px 0px !important;
22
65
  }
23
66
 
24
67
  .table tr th {
25
- font-weight: 400;
68
+ font-weight: 400;
26
69
  }
27
70
 
28
71
  .clean-cell td {
29
- border: none;
72
+ border: none;
30
73
  }
31
74
 
32
75
  .page-header {
33
- border-bottom: 1px solid #949DA9;
34
- /*padding: 15px 0px !important;*/
76
+ border-bottom: 1px solid rgba(58, 52, 74, 0.0);
77
+ }
78
+
79
+ .page-header h1 {
80
+ margin-bottom: 0px;
81
+ margin-top: 0px;
82
+ font-weight: 200;
35
83
  }
36
84
 
37
85
  .app-container {
38
- padding: 50px 0px;
86
+ padding: 50px 0px;
39
87
  }
40
88
 
41
- ul.menu{ list-style-type: none; margin: 0px 0px 50px 0px; padding: 0px; font-weight: lighter;}
89
+ ul.menu{ list-style-type: none; margin: 0px 0px 50px 0px; padding: 0px; font-weight: 400;}
42
90
  ul.menu li { display: inline; margin-right: 15px;}
43
91
  ul.menu li a { text-decoration: none; color: #767F73; }
44
92
  ul.menu li.active a, ul.menu li a:hover { color: white; }
45
93
 
46
94
  .panel-wgt {
47
- background: none;
48
- border: 1px solid #3A344A;
95
+ background: none;
96
+ /*border: 1px solid #645882;*/
97
+ border: 1px solid rgba(100, 88, 130, 0.5);
98
+ }
99
+
100
+ .panel-title {
101
+ font-weight: 300;
49
102
  }
50
103
 
51
104
  .panel-wgt .panel-title {
52
- padding-top: 10px;
53
- text-align: center;
105
+ padding-top: 10px;
106
+ text-align: center;
54
107
  }
55
108
 
56
109
  .limit-cell {
57
- max-width: 400px;
58
- display: block;
59
- overflow: hidden;
60
- text-overflow: ellipsis;
61
- white-space: nowrap;
110
+ max-width: 400px;
111
+ display: block;
112
+ overflow: hidden;
113
+ text-overflow: ellipsis;
114
+ white-space: nowrap;
62
115
  }
63
116
 
64
117
  .btn-trigger {
65
- font-size: 10px;
66
-
67
- background: none;
68
- border:0px solid #3A344A;
69
-
70
- padding: 1px;
71
- margin: 0px 3px;
72
-
73
- color: #767F73;
118
+ font-size: 10px;
119
+
120
+ background: none;
121
+ border:0px solid #3A344A;
122
+
123
+ padding: 1px;
124
+ margin: 0px 3px;
125
+
126
+ color: #767F73;
74
127
  }
75
128
 
76
129
  .btn-trigger:hover {
77
- border: 0px solid #4A445A;
78
- color: #ccc;
130
+ border: 0px solid #4A445A;
131
+ color: #ccc;
79
132
  }
80
133
 
81
134
  .btn-trigger.active {
82
- border-bottom: 1px dashed #ccc;
83
- border-radius: 0;
84
- color: #ccc;
135
+ border-bottom: 1px dashed #ccc;
136
+ border-radius: 0;
137
+ color: #ccc;
85
138
  }
86
139
 
87
140
  .chart-corner-btns {
88
- margin-top: -20px;
141
+ margin-top: -20px;
89
142
  }
90
143
 
91
144
  .loader
92
145
  {
93
- width:200px;
94
- height:200px;
95
- border-radius:100px;
96
- font-size:14px;
146
+ width:200px;
147
+ height:200px;
148
+ border-radius:100px;
149
+ font-size:14px;
97
150
 
98
- color:#4A445A;
151
+ color:#4A445A;
99
152
 
100
- margin: 50px auto;
153
+ margin: 50px auto;
101
154
 
102
- line-height:200px;
103
- text-align:center;
104
- /*background:#000;*/
105
- border: 1px dashed #4A445A;
106
- }
155
+ line-height:200px;
156
+ text-align:center;
157
+ border: 1px dashed #4A445A;
158
+ }
@@ -2,7 +2,7 @@ module Snapstats
2
2
  class ApplicationController < ActionController::Base
3
3
 
4
4
  before_action except: [:unavailable] do |controller|
5
- redirect_to unavailable_main_path unless Snapstats.redis.present?
5
+ # redirect_to unavailable_main_path unless Snapstats.redis.present?
6
6
  end
7
7
 
8
8
  end
@@ -1,22 +1,25 @@
1
1
  module Snapstats
2
- class MainsController < ApplicationController
2
+ class MainsController < ApplicationController
3
3
 
4
- def show
5
- @uniqs = EventReader::Uniqs.fetch_uniqs
6
- @clicks = EventReader::Cpm.fetch_all_hash
7
- @platforms = EventReader::Browsers.fetch_platforms
8
- @browsers = EventReader::Browsers.fetch_browsers
9
- end
4
+ before_action :load_report
10
5
 
11
- def chart
12
- data = EventReader::Cpm.fetch_all_chart
13
- render json: data
14
- end
6
+ def show
7
+ @daily_report = @report.data
8
+ end
15
9
 
16
- def unavailable
17
-
18
- end
10
+ def chart
11
+ render json: @report.chart
12
+ end
19
13
 
20
- end
14
+ def unavailable
15
+ end
16
+
17
+ private
18
+
19
+ def load_report
20
+ @report = Snapstats::Report::Manager.new(:main).call
21
+ end
22
+
23
+ end
21
24
  end
22
25
 
@@ -1,22 +1,28 @@
1
1
  module Snapstats
2
- class PerformancesController < ApplicationController
2
+ class PerformancesController < ApplicationController
3
3
 
4
- def index
5
-
6
- end
4
+ before_action :load_report
7
5
 
8
- def show
9
- @controllers = Snapstats::EventReader::Performance.fetch_slowest_controllers
10
- end
6
+ def index
7
+ end
11
8
 
12
- def chart
13
- data = Snapstats::EventReader::Activity.fetch_all_chart_scale
14
- render json: {data: data.values, legend: data.keys}
15
- end
9
+ def show
10
+ @controllers = @report.slowest_controllers
11
+ end
16
12
 
17
- def flat_chart
18
- render json: Snapstats::EventReader::Activity.fetch_flat_chart
19
- end
13
+ def chart_complex
14
+ render json: @report.chart_complex
15
+ end
20
16
 
21
- end
22
- end
17
+ def chart
18
+ render json: @report.chart
19
+ end
20
+
21
+ private
22
+
23
+ def load_report
24
+ @report = Snapstats::Report::Manager.new(:performance).call
25
+ end
26
+
27
+ end
28
+ end
@@ -1,22 +1,34 @@
1
1
  module Snapstats
2
- class UsersController < ApplicationController
3
-
4
- def index
5
-
6
- end
7
-
8
- def show
9
- @users = EventReader::UserActivity.fetch_all
10
- end
11
-
12
- def activity
13
- @user_email = EventReader::UserActivity.fetch_email_by_uid params[:id]
14
- @activity = EventReader::UserActivity.fetch_for_user params[:id]
15
- end
16
-
17
- def chart
18
- render json: EventReader::UserActivity.fetch_chart_for_user(params[:id], 5)
19
- end
20
-
21
- end
22
- end
2
+ class UsersController < ApplicationController
3
+
4
+ before_action :load_report
5
+
6
+ def index
7
+
8
+ end
9
+
10
+ def show
11
+ # @users = EventReader::UserActivity.fetch_all
12
+ @users_activity = @report.data
13
+ end
14
+
15
+ def activity
16
+ # @user_email = EventReader::UserActivity.fetch_email_by_uid params[:id]
17
+ # @activity = EventReader::UserActivity.fetch_for_user params[:id]
18
+
19
+ @user_email = @report.fetch_user_email params[:id]
20
+ @activity = @report.user_data params[:id]
21
+ end
22
+
23
+ def chart
24
+ render json: @report.chart(params[:id])
25
+ end
26
+
27
+ private
28
+
29
+ def load_report
30
+ @report = Snapstats::Report::Manager.new(:user).call
31
+ end
32
+
33
+ end
34
+ end
@@ -9,9 +9,9 @@
9
9
  <body>
10
10
 
11
11
  <div class="app-container">
12
-
13
- <%= render 'main_menu' %>
14
- <%= yield %>
12
+
13
+ <%= render 'main_menu' %>
14
+ <%= yield %>
15
15
 
16
16
  </div>
17
17
 
@@ -1,8 +1,38 @@
1
1
  <div class="container">
2
- <ul class="menu pull-left">
3
- <li <%= active_cat? :main %>> <%= link_to 'Daily report', root_path %> </li>
4
- <li <%= active_cat? :user %>> <a href="#"><%= link_to 'Users', user_path %></a></li>
5
- <li <%= active_cat? :performance %>> <a href="#"><%= link_to 'Performance', performance_path %></li>
6
- <!-- <li <%= active_cat? :reports %>> <a href="#"><%= link_to 'Reports', performance_path %></li> -->
7
- </ul>
8
- </div>
2
+ <ul class="menu pull-left">
3
+ <li <%= active_cat? :main %>> <%= link_to 'Daily report', root_path %> </li>
4
+ <li <%= active_cat? :user %>> <a href="#"><%= link_to 'Users', user_path %></a></li>
5
+ <li <%= active_cat? :performance %>> <a href="#"><%= link_to 'Performance', performance_path %></li>
6
+ <!-- <li <%= active_cat? :reports %>> <a href="#"><%= link_to 'Reports', performance_path %></li> -->
7
+ </ul>
8
+
9
+ <div class="pull-right" style="font-weight: 400;">
10
+ Today <%= Date.current.strftime("%B %d") %>
11
+ </div>
12
+
13
+ <div class="pull-right" style="display:none;">
14
+ <div class="dropdown">
15
+ <button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
16
+ <%= Date.current %>
17
+ <span class="caret"></span>
18
+ </button>
19
+ <ul class="dropdown-menu dropdown-menu-right" aria-labelledby="dropdownMenu1">
20
+ <li><a href="#">Today</a></li>
21
+ <li><a href="#">Week</a></li>
22
+ <li><a href="#">Month</a></li>
23
+ <li class="dropdown-header">By months</li>
24
+ <li class="disabled"><a href="#">January</a></li>
25
+ <li class="disabled"><a href="#">March</a></li>
26
+ <li class="disabled"><a href="#">April</a></li>
27
+ <li class="disabled"><a href="#">May</a></li>
28
+ <li class="disabled"><a href="#">June</a></li>
29
+ <li><a href="#">July</a></li>
30
+ <li><a href="#">August</a></li>
31
+ <li><a href="#">September</a></li>
32
+ <li><a href="#">October</a></li>
33
+ <li class="disabled"><a href="#">November</a></li>
34
+ <li class="disabled"><a href="#">December</a></li>
35
+ </ul>
36
+ </div>
37
+ </div>
38
+ </div>