trafficlogger 1.1.0 → 2.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.
- data/README.md +5 -7
- data/app/assets/javascripts/trafficlogger/application.js +1 -1
- data/app/assets/stylesheets/trafficlogger/application.css +136 -0
- data/app/controllers/trafficlogger/traffic_analytics_controller.rb +1 -1
- data/app/models/trafficlogger/analytic.rb +69 -20
- data/app/views/trafficlogger/traffic_analytics/_listings.html.erb +4 -2
- data/app/views/trafficlogger/traffic_analytics/index.html.erb +27 -15
- data/lib/trafficlogger/version.rb +1 -1
- data/test/dummy/db/schema.rb +39 -1
- data/test/dummy/log/development.log +29 -0
- metadata +17 -3
data/README.md
CHANGED
@@ -53,10 +53,8 @@ Once integrated with your App you can see the log entries in DB Table and also t
|
|
53
53
|
|
54
54
|
## Dependencies
|
55
55
|
|
56
|
-
- Ruby 1.9.
|
57
|
-
- Rails 3.2.
|
58
|
-
- will_paginate
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
Porting this for Rails 2.x is not difficult as only few scope conditions at model level needs to changed ; which are for Rails 3 but does not work for Rails 2, feel free to fork it and contribute for Rails 2.x platforms, also it should work on Ruby 1.8.7+
|
56
|
+
- Ruby 1.9.2+ possibly 1.8.7(you will need to fork it and modiy to test on 1.8.7)
|
57
|
+
- Rails 3.2.x
|
58
|
+
- will_paginate 3.0.x
|
59
|
+
- jquery-ui-rails 4.0.x
|
60
|
+
- jQuery 1.10 is included as part of assets in Trafficlogger, so if your app uses .live function anywhere kindly replace .live function which has been deprecated since jQuery 1.7+
|
@@ -9,5 +9,141 @@
|
|
9
9
|
* compiled file, but it's generally better to create a new file per style scope.
|
10
10
|
*
|
11
11
|
*= require_self
|
12
|
+
*= require jquery.ui.datepicker
|
12
13
|
*= require_tree .
|
13
14
|
*/
|
15
|
+
|
16
|
+
/* Pagination Style for will_paginate */
|
17
|
+
.r_pagination {
|
18
|
+
background: #fff;
|
19
|
+
text-align: center;
|
20
|
+
padding: 1em;
|
21
|
+
cursor: default; }
|
22
|
+
|
23
|
+
.r_pagination a, .r_pagination span {
|
24
|
+
padding: 0.2em 0.3em; }
|
25
|
+
|
26
|
+
.r_pagination .disabled {
|
27
|
+
color: #aaaaaa; }
|
28
|
+
|
29
|
+
.r_pagination .current {
|
30
|
+
font-style: normal;
|
31
|
+
font-weight: bold;
|
32
|
+
background-color: #0080C1;
|
33
|
+
color: white;
|
34
|
+
display: inline-block;
|
35
|
+
width: 1.4em;
|
36
|
+
height: 1.4em;
|
37
|
+
line-height: 1.5;
|
38
|
+
-moz-border-radius: 1em;
|
39
|
+
-webkit-border-radius: 1em;
|
40
|
+
border-radius: 1em;
|
41
|
+
text-shadow: rgba(255, 255, 255, 0.1) 1px 1px 1px; }
|
42
|
+
.r_pagination a {
|
43
|
+
text-decoration: none;
|
44
|
+
color: black; }
|
45
|
+
|
46
|
+
.r_pagination a:hover, .r_pagination a:focus {
|
47
|
+
text-decoration: underline; }
|
48
|
+
|
49
|
+
/* Search Form Styles */
|
50
|
+
.trafficlogger-form-container {
|
51
|
+
border: 1px solid #CCC;
|
52
|
+
background: #ffffff;
|
53
|
+
background: -webkit-gradient(linear, left top, left bottom, from(#fcfcfc), to(#ffffff));
|
54
|
+
background: -webkit-linear-gradient(top, #fcfcfc, #ffffff);
|
55
|
+
background: -moz-linear-gradient(top, #fcfcfc, #ffffff);
|
56
|
+
background: -ms-linear-gradient(top, #fcfcfc, #ffffff);
|
57
|
+
background: -o-linear-gradient(top, #fcfcfc, #ffffff);
|
58
|
+
background-image: -ms-linear-gradient(top, #fcfcfc 0%, #ffffff 100%);
|
59
|
+
-webkit-border-radius: 0px;
|
60
|
+
-moz-border-radius: 0px;
|
61
|
+
border-radius: 0px;
|
62
|
+
-webkit-box-shadow: rgba(000,000,000,0.9) 0 0px 2px, inset rgba(255,255,255,0.4) 0 0px 0;
|
63
|
+
-moz-box-shadow: rgba(000,000,000,0.9) 0 0px 2px, inset rgba(255,255,255,0.4) 0 0px 0;
|
64
|
+
box-shadow: rgba(000,000,000,0.9) 0 0px 2px, inset rgba(255,255,255,0.4) 0 0px 0;
|
65
|
+
font-family: 'Helvetica Neue',Helvetica,sans-serif;
|
66
|
+
text-decoration: none;
|
67
|
+
vertical-align: middle;
|
68
|
+
padding:20px;
|
69
|
+
width:auto;
|
70
|
+
}
|
71
|
+
.trafficlogger-form-field {
|
72
|
+
border: 0px solid #c2c1c0;
|
73
|
+
background: #f0f0f0;
|
74
|
+
-webkit-border-radius: 15px;
|
75
|
+
-moz-border-radius: 15px;
|
76
|
+
border-radius: 15px;
|
77
|
+
color: #5c5854;
|
78
|
+
-webkit-box-shadow: rgba(255,255,255,0.4) 0 0px 0, inset rgba(000,000,000,0.7) 0 0px 0px;
|
79
|
+
-moz-box-shadow: rgba(255,255,255,0.4) 0 0px 0, inset rgba(000,000,000,0.7) 0 0px 0px;
|
80
|
+
box-shadow: rgba(255,255,255,0.4) 0 0px 0, inset rgba(000,000,000,0.7) 0 0px 0px;
|
81
|
+
padding:8px;
|
82
|
+
margin-bottom:20px;
|
83
|
+
width:280px;
|
84
|
+
}
|
85
|
+
.trafficlogger-form-field:focus {
|
86
|
+
background: #fff;
|
87
|
+
color: #474747;
|
88
|
+
}
|
89
|
+
.trafficlogger-form-container h2 {
|
90
|
+
text-shadow: #c7c7c9 0 1px 0;
|
91
|
+
font-size:18px;
|
92
|
+
margin: 0 0 10px 0;
|
93
|
+
font-weight:bold;
|
94
|
+
}
|
95
|
+
.trafficlogger-form-elements {
|
96
|
+
margin-bottom:2px;
|
97
|
+
color: #8c8c8c;
|
98
|
+
text-shadow: #c7c7c9 0 1px 0;
|
99
|
+
}
|
100
|
+
.trafficlogger-submit-container {
|
101
|
+
margin:8px 0;
|
102
|
+
}
|
103
|
+
.trafficlogger-submit-button {
|
104
|
+
border: 0px solid #003869;
|
105
|
+
background: #23a1cf;
|
106
|
+
background: -webkit-gradient(linear, left top, left bottom, from(#3289d6), to(#23a1cf));
|
107
|
+
background: -webkit-linear-gradient(top, #3289d6, #23a1cf);
|
108
|
+
background: -moz-linear-gradient(top, #3289d6, #23a1cf);
|
109
|
+
background: -ms-linear-gradient(top, #3289d6, #23a1cf);
|
110
|
+
background: -o-linear-gradient(top, #3289d6, #23a1cf);
|
111
|
+
background-image: -ms-linear-gradient(top, #3289d6 0%, #23a1cf 100%);
|
112
|
+
-webkit-border-radius: 29px;
|
113
|
+
-moz-border-radius: 29px;
|
114
|
+
border-radius: 29px;
|
115
|
+
-webkit-box-shadow: rgba(255,255,255,0.4) 0 0px 0, inset rgba(255,255,255,0.4) 0 0px 0;
|
116
|
+
-moz-box-shadow: rgba(255,255,255,0.4) 0 0px 0, inset rgba(255,255,255,0.4) 0 0px 0;
|
117
|
+
box-shadow: rgba(255,255,255,0.4) 0 0px 0, inset rgba(255,255,255,0.4) 0 0px 0;
|
118
|
+
text-shadow: #addc7e 0 1px 0;
|
119
|
+
color: #ffffff;
|
120
|
+
font-family: helvetica, serif;
|
121
|
+
padding: 8.5px 18px;
|
122
|
+
font-size: 14px;
|
123
|
+
text-decoration: none;
|
124
|
+
vertical-align: middle;
|
125
|
+
}
|
126
|
+
.trafficlogger-submit-button:hover {
|
127
|
+
border: 0px solid #447314;
|
128
|
+
text-shadow: #31540c 0 1px 0;
|
129
|
+
background: #6aa436;
|
130
|
+
background: -webkit-gradient(linear, left top, left bottom, from(#8dc059), to(#6aa436));
|
131
|
+
background: -webkit-linear-gradient(top, #8dc059, #6aa436);
|
132
|
+
background: -moz-linear-gradient(top, #8dc059, #6aa436);
|
133
|
+
background: -ms-linear-gradient(top, #8dc059, #6aa436);
|
134
|
+
background: -o-linear-gradient(top, #8dc059, #6aa436);
|
135
|
+
background-image: -ms-linear-gradient(top, #8dc059 0%, #6aa436 100%);
|
136
|
+
color: #fff;
|
137
|
+
}
|
138
|
+
.trafficlogger-submit-button:active {
|
139
|
+
text-shadow: #31540c 0 1px 0;
|
140
|
+
border: 0px solid #447314;
|
141
|
+
background: #8dc059;
|
142
|
+
background: -webkit-gradient(linear, left top, left bottom, from(#6aa436), to(#6aa436));
|
143
|
+
background: -webkit-linear-gradient(top, #6aa436, #8dc059);
|
144
|
+
background: -moz-linear-gradient(top, #6aa436, #8dc059);
|
145
|
+
background: -ms-linear-gradient(top, #6aa436, #8dc059);
|
146
|
+
background: -o-linear-gradient(top, #6aa436, #8dc059);
|
147
|
+
background-image: -ms-linear-gradient(top, #6aa436 0%, #8dc059 100%);
|
148
|
+
color: #fff;
|
149
|
+
}
|
@@ -3,7 +3,7 @@ require_dependency "trafficlogger/application_controller"
|
|
3
3
|
module Trafficlogger
|
4
4
|
class TrafficAnalyticsController < ApplicationController
|
5
5
|
def index
|
6
|
-
@records = Analytic.
|
6
|
+
@records = Analytic.find_listings(params).paginate(:page => params[:page],:per_page => 10)
|
7
7
|
end
|
8
8
|
end
|
9
9
|
end
|
@@ -42,28 +42,77 @@ module Trafficlogger
|
|
42
42
|
Analytic.create(log_data)
|
43
43
|
end
|
44
44
|
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
45
|
+
attr_accessor :data
|
46
|
+
def find_listings params
|
47
|
+
@data = params
|
48
|
+
Rails.logger.info "Search Parameters passed for Trafficlogger Analytic ----> #{params.inspect}"
|
49
|
+
@records_listing = find_records
|
50
|
+
@records_listing
|
51
|
+
end
|
52
|
+
|
53
|
+
def find_records
|
54
|
+
Analytic.where(conditions).order("created_at DESC")
|
55
|
+
end
|
56
|
+
|
57
|
+
def path_info_inline_search_clause
|
58
|
+
unless data['path_info_inline_search'].blank?
|
59
|
+
["trafficlogger_analytics.path_info LIKE ?", "%#{data['path_info_inline_search'][0]}%"]
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
def path_info_clause
|
64
|
+
["trafficlogger_analytics.path_info = ?", "#{data['path_info_search']}"] unless data['path_info_search'].blank?
|
65
|
+
end
|
66
|
+
|
67
|
+
def request_uri_clause
|
68
|
+
["trafficlogger_analytics.request_uri = ?", "#{data['request_uri_search']}"] unless data['request_uri_search'].blank?
|
69
|
+
end
|
70
|
+
|
71
|
+
def request_method_clause
|
72
|
+
["trafficlogger_analytics.request_method = ?", "#{data['request_method_search']}"] unless data['request_method_search'].blank?
|
73
|
+
end
|
74
|
+
|
75
|
+
def operating_system_clause
|
76
|
+
["trafficlogger_analytics.operating_system = ?", "#{data['operating_system_search']}"] unless data['operating_system_search'].blank?
|
77
|
+
end
|
78
|
+
|
79
|
+
def device_clause
|
80
|
+
["trafficlogger_analytics.device = ?", "#{data['device_search']}"] unless data['device_search'].blank?
|
81
|
+
end
|
82
|
+
|
83
|
+
def platform_clause
|
84
|
+
["trafficlogger_analytics.platform = ?", "#{data['platform_search']}"] unless data['platform_search'].blank?
|
85
|
+
end
|
86
|
+
|
87
|
+
def minimum_created_at_clause
|
88
|
+
unless data['minimum_created_at_search'].blank?
|
89
|
+
minimum_created_at_search = data['minimum_created_at_search'].to_date.strftime("%Y-%m-%d")
|
90
|
+
["DATE(trafficlogger_analytics.created_at) >= DATE(?)", "#{minimum_created_at_search}"]
|
65
91
|
end
|
66
92
|
end
|
93
|
+
|
94
|
+
def maximum_created_at_clause
|
95
|
+
unless data['maximum_created_at_search'].blank?
|
96
|
+
maximum_created_at_search = data['maximum_created_at_search'].to_date.strftime("%Y-%m-%d")
|
97
|
+
["DATE(trafficlogger_analytics.created_at) <= DATE(?)", "#{maximum_created_at_search}"]
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
def conditions
|
102
|
+
[conditions_clauses.join(' AND '), *conditions_options]
|
103
|
+
end
|
104
|
+
|
105
|
+
def conditions_clauses
|
106
|
+
conditions_parts.map { |condition| condition.first }
|
107
|
+
end
|
108
|
+
|
109
|
+
def conditions_options
|
110
|
+
conditions_parts.map { |condition| condition[1..-1] }.flatten
|
111
|
+
end
|
112
|
+
|
113
|
+
def conditions_parts
|
114
|
+
singleton_methods.grep(/_clause$/).map { |m| send(m) }.compact
|
115
|
+
end
|
67
116
|
end
|
68
117
|
end
|
69
118
|
end
|
@@ -12,7 +12,9 @@
|
|
12
12
|
<thead>
|
13
13
|
<tr>
|
14
14
|
<th>ID</th>
|
15
|
-
<th>
|
15
|
+
<th>
|
16
|
+
Request URI <%= text_field(:path_info_inline_search,'',:size=>20,:placeholder=>' alteast 5 letters') %>
|
17
|
+
</th>
|
16
18
|
<th>Full URI</th>
|
17
19
|
<th>Server</th>
|
18
20
|
<th>Method</th>
|
@@ -33,9 +35,9 @@
|
|
33
35
|
<td><%= rec.server_name %></td>
|
34
36
|
<td><%= rec.request_method %></td>
|
35
37
|
<td><%= rec.http_referer %></td>
|
38
|
+
<td><%= rec.platform %></td>
|
36
39
|
<td><%= rec.operating_system %></td>
|
37
40
|
<td><%= rec.device %></td>
|
38
|
-
<td><%= rec.platform %></td>
|
39
41
|
<td>
|
40
42
|
<button class="r_button complete_record_details" data="<%= rec.id %>">More</button>
|
41
43
|
</td>
|
@@ -1,16 +1,23 @@
|
|
1
1
|
<div style="padding: 1em">
|
2
2
|
<div class="search">
|
3
|
-
<%= form_tag traffic_analytics_index_path, :method => 'get', :id => "records_search" do %>
|
4
|
-
<
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
3
|
+
<%= form_tag traffic_analytics_index_path, :method => 'get', :id => "records_search", :class=>"trafficlogger-form-container" do %>
|
4
|
+
<div class="trafficlogger-form-elements"><h2>LookUp</h2></div>
|
5
|
+
<div class="trafficlogger-form-elements">
|
6
|
+
Request URI <%= text_field_tag :path_info_search, params[:path_info_search],:placeholder=>"e.g /pages/index_3" ,:class=>"trafficlogger-form-field" %>
|
7
|
+
Full URI <%= text_field_tag :request_uri_search, params[:request_uri_search],:placeholder=>"e.g /pages/index_3?q=1" ,:class=>"trafficlogger-form-field" %>
|
8
|
+
Method <%= text_field_tag :request_method_search, params[:request_method_search],:placeholder=>"e.g GET,POST.." ,:class=>"trafficlogger-form-field" %>
|
9
|
+
</div>
|
10
|
+
<div class="trafficlogger-form-elements">
|
11
|
+
User OS <%= text_field_tag :operating_system_search, params[:operating_system_search],:placeholder=>"e.g Linux,Windows.." ,:class=>"trafficlogger-form-field" %>
|
12
|
+
User Device <%= text_field_tag :device_search, params[:device_search],:placeholder=>"e.g Samsung,iPhone.." ,:class=>"trafficlogger-form-field" %>
|
13
|
+
User Platform <%= text_field_tag :platform_search, params[:platform_search],:placeholder=>"e.g Chrome,IE..." ,:class=>"trafficlogger-form-field" %>
|
14
|
+
</div>
|
15
|
+
<div class="trafficlogger-form-elements">
|
16
|
+
Date Range <%= text_field_tag :minimum_created_at_search, params[:minimum_created_at_search],:placeholder=>"> Date" ,:class=>"trafficlogger-form-field minimum_created_at_date" %> <%= text_field_tag :maximum_created_at_search, params[:maximum_created_at_search],:placeholder=>"< Date" ,:class=>"trafficlogger-form-field maximum_created_at_date" %>
|
17
|
+
</div>
|
18
|
+
<div class="trafficlogger-submit-container">
|
19
|
+
<%= submit_tag "Search", :name => nil, :class=>"trafficlogger-submit-button" %> - <%= link_to "Reset", traffic_analytics_index_path,:class=>"trafficlogger-submit-button",:style=>"text-decoration:none" %>
|
20
|
+
</div>
|
14
21
|
<% end %>
|
15
22
|
</div>
|
16
23
|
</br>
|
@@ -20,9 +27,14 @@
|
|
20
27
|
</div>
|
21
28
|
<script>
|
22
29
|
$(document).ready(function(){
|
23
|
-
$("#
|
24
|
-
|
25
|
-
|
26
|
-
|
30
|
+
$("#path_info_inline_search_").keyup(function() {
|
31
|
+
if ($(this).val().length >=5)
|
32
|
+
{
|
33
|
+
$.get($("#records_search").attr("action"), $(this).serialize(), null, "script");
|
34
|
+
}
|
35
|
+
return false;
|
36
|
+
});
|
37
|
+
$('.minimum_created_at_date').datepicker({ dateFormat: 'dd/mm/yy' });
|
38
|
+
$('.maximum_created_at_date').datepicker({ dateFormat: 'dd/mm/yy' });
|
27
39
|
});
|
28
40
|
</script>
|
data/test/dummy/db/schema.rb
CHANGED
@@ -11,6 +11,44 @@
|
|
11
11
|
#
|
12
12
|
# It's strongly recommended to check this file into your version control system.
|
13
13
|
|
14
|
-
ActiveRecord::Schema.define(:version =>
|
14
|
+
ActiveRecord::Schema.define(:version => 20140319104457) do
|
15
|
+
|
16
|
+
create_table "trafficlogger_analytics", :force => true do |t|
|
17
|
+
t.string "server_name"
|
18
|
+
t.string "server_port"
|
19
|
+
t.text "server_software"
|
20
|
+
t.string "gateway_interface"
|
21
|
+
t.string "path_info"
|
22
|
+
t.string "original_full_path"
|
23
|
+
t.string "request_uri"
|
24
|
+
t.string "query_string"
|
25
|
+
t.string "remote_host"
|
26
|
+
t.text "http_accept_encoding"
|
27
|
+
t.string "server_protocol"
|
28
|
+
t.string "http_accept_language"
|
29
|
+
t.string "http_host"
|
30
|
+
t.string "remote_addr"
|
31
|
+
t.text "http_referer"
|
32
|
+
t.string "http_cookie"
|
33
|
+
t.text "http_accept"
|
34
|
+
t.string "request_method"
|
35
|
+
t.string "http_connection"
|
36
|
+
t.string "http_version"
|
37
|
+
t.text "http_user_agent"
|
38
|
+
t.string "platform"
|
39
|
+
t.string "device"
|
40
|
+
t.string "operating_system"
|
41
|
+
t.datetime "created_at", :null => false
|
42
|
+
t.datetime "updated_at", :null => false
|
43
|
+
end
|
44
|
+
|
45
|
+
add_index "trafficlogger_analytics", ["device"], :name => "index_trafficlogger_analytics_on_device"
|
46
|
+
add_index "trafficlogger_analytics", ["operating_system"], :name => "index_trafficlogger_analytics_on_operating_system"
|
47
|
+
add_index "trafficlogger_analytics", ["original_full_path"], :name => "index_trafficlogger_analytics_on_original_full_path"
|
48
|
+
add_index "trafficlogger_analytics", ["path_info"], :name => "index_trafficlogger_analytics_on_path_info"
|
49
|
+
add_index "trafficlogger_analytics", ["platform"], :name => "index_trafficlogger_analytics_on_platform"
|
50
|
+
add_index "trafficlogger_analytics", ["request_method"], :name => "index_trafficlogger_analytics_on_request_method"
|
51
|
+
add_index "trafficlogger_analytics", ["request_uri"], :name => "index_trafficlogger_analytics_on_request_uri"
|
52
|
+
add_index "trafficlogger_analytics", ["server_name"], :name => "index_trafficlogger_analytics_on_server_name"
|
15
53
|
|
16
54
|
end
|
@@ -23,3 +23,32 @@ Connecting to database specified by database.yml
|
|
23
23
|
Connecting to database specified by database.yml
|
24
24
|
Connecting to database specified by database.yml
|
25
25
|
Connecting to database specified by database.yml
|
26
|
+
Connecting to database specified by database.yml
|
27
|
+
[1m[36m (0.1ms)[0m [1mSELECT `schema_migrations`.`version` FROM `schema_migrations` [0m
|
28
|
+
Connecting to database specified by database.yml
|
29
|
+
[1m[36m (0.3ms)[0m [1mSELECT `schema_migrations`.`version` FROM `schema_migrations` [0m
|
30
|
+
Connecting to database specified by database.yml
|
31
|
+
[1m[36m (0.1ms)[0m [1mSELECT `schema_migrations`.`version` FROM `schema_migrations` [0m
|
32
|
+
[1m[35m (146.0ms)[0m DROP DATABASE IF EXISTS `dummy_test`
|
33
|
+
[1m[36m (14.0ms)[0m [1mCREATE DATABASE `dummy_test` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`[0m
|
34
|
+
[1m[35m (179.2ms)[0m CREATE TABLE `schema_migrations` (`version` varchar(255) NOT NULL) ENGINE=InnoDB
|
35
|
+
[1m[36m (254.6ms)[0m [1mCREATE UNIQUE INDEX `unique_schema_migrations` ON `schema_migrations` (`version`)[0m
|
36
|
+
[1m[35m (0.4ms)[0m SELECT version FROM `schema_migrations`
|
37
|
+
[1m[36m (42.1ms)[0m [1mINSERT INTO `schema_migrations` (version) VALUES ('0')[0m
|
38
|
+
Connecting to database specified by database.yml
|
39
|
+
[1m[36m (0.1ms)[0m [1mSELECT `schema_migrations`.`version` FROM `schema_migrations` [0m
|
40
|
+
Migrating to CreateTrafficloggerAnalytics (20140319104457)
|
41
|
+
[1m[35m (156.7ms)[0m CREATE TABLE `trafficlogger_analytics` (`id` int(11) DEFAULT NULL auto_increment PRIMARY KEY, `server_name` varchar(255), `server_port` varchar(255), `server_software` text, `gateway_interface` varchar(255), `path_info` varchar(255), `original_full_path` varchar(255), `request_uri` varchar(255), `query_string` varchar(255), `remote_host` varchar(255), `http_accept_encoding` text, `server_protocol` varchar(255), `http_accept_language` varchar(255), `http_host` varchar(255), `remote_addr` varchar(255), `http_referer` text, `http_cookie` varchar(255), `http_accept` text, `request_method` varchar(255), `http_connection` varchar(255), `http_version` varchar(255), `http_user_agent` text, `platform` varchar(255), `device` varchar(255), `operating_system` varchar(255), `created_at` datetime NOT NULL, `updated_at` datetime NOT NULL) ENGINE=InnoDB
|
42
|
+
[1m[36m (198.7ms)[0m [1mCREATE INDEX `index_trafficlogger_analytics_on_server_name` ON `trafficlogger_analytics` (`server_name`)[0m
|
43
|
+
[1m[35m (188.0ms)[0m CREATE INDEX `index_trafficlogger_analytics_on_request_method` ON `trafficlogger_analytics` (`request_method`)
|
44
|
+
[1m[36m (177.0ms)[0m [1mCREATE INDEX `index_trafficlogger_analytics_on_request_uri` ON `trafficlogger_analytics` (`request_uri`)[0m
|
45
|
+
[1m[35m (210.0ms)[0m CREATE INDEX `index_trafficlogger_analytics_on_path_info` ON `trafficlogger_analytics` (`path_info`)
|
46
|
+
[1m[36m (211.4ms)[0m [1mCREATE INDEX `index_trafficlogger_analytics_on_original_full_path` ON `trafficlogger_analytics` (`original_full_path`)[0m
|
47
|
+
[1m[35m (210.0ms)[0m CREATE INDEX `index_trafficlogger_analytics_on_platform` ON `trafficlogger_analytics` (`platform`)
|
48
|
+
[1m[36m (188.0ms)[0m [1mCREATE INDEX `index_trafficlogger_analytics_on_device` ON `trafficlogger_analytics` (`device`)[0m
|
49
|
+
[1m[35m (165.7ms)[0m CREATE INDEX `index_trafficlogger_analytics_on_operating_system` ON `trafficlogger_analytics` (`operating_system`)
|
50
|
+
[1m[36m (43.1ms)[0m [1mINSERT INTO `schema_migrations` (`version`) VALUES ('20140319104457')[0m
|
51
|
+
[1m[35m (0.2ms)[0m SELECT `schema_migrations`.`version` FROM `schema_migrations`
|
52
|
+
Connecting to database specified by database.yml
|
53
|
+
Connecting to database specified by database.yml
|
54
|
+
Mysql2::Error: Table 'dummy_dev.trafficlogger_analytics' doesn't exist: SHOW FULL FIELDS FROM `trafficlogger_analytics`
|
metadata
CHANGED
@@ -3,10 +3,10 @@ name: trafficlogger
|
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease: false
|
5
5
|
segments:
|
6
|
-
-
|
7
|
-
- 1
|
6
|
+
- 2
|
8
7
|
- 0
|
9
|
-
|
8
|
+
- 0
|
9
|
+
version: 2.0.0
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Shuddhashil Ray
|
@@ -59,6 +59,20 @@ dependencies:
|
|
59
59
|
version: "3.0"
|
60
60
|
type: :runtime
|
61
61
|
version_requirements: *id003
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: jquery-ui-rails
|
64
|
+
prerelease: false
|
65
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
66
|
+
none: false
|
67
|
+
requirements:
|
68
|
+
- - ~>
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
segments:
|
71
|
+
- 4
|
72
|
+
- 0
|
73
|
+
version: "4.0"
|
74
|
+
type: :runtime
|
75
|
+
version_requirements: *id004
|
62
76
|
description: Trafficlogger is a Rails Engine with Rack Middleware to track incoming HTTP requests coming to your site and logs them with detailed information about the Request
|
63
77
|
email:
|
64
78
|
- rayshuddhashil@gmail.com
|