snapstats 0.0.10 → 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 (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>