trafficlogger 1.1.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
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.3+
57
- - Rails 3.2.13
58
- - will_paginate
59
-
60
- ### ToDo
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+
@@ -10,5 +10,5 @@
10
10
  // WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT'S TO BE PROCESSED, ANY BLANK LINE SHOULD
11
11
  // GO AFTER THE REQUIRES BELOW.
12
12
  //
13
- //= require jquery
14
13
  //= require_tree .
14
+ //= require jquery.ui.datepicker
@@ -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.search(params[:searchterm],params[:searchtype]).paginate(:page => params[:page],:per_page => 10)
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
- def search(searchterm,searchtype)
46
- if !searchterm.blank? and !searchtype.blank?
47
- case searchtype
48
- when "path_info"
49
- where("path_info = ?",searchterm).order("created_at desc")
50
- when "request_uri"
51
- where("request_uri = ?",searchterm).order("created_at desc")
52
- when "request_method"
53
- where("request_method = ?",searchterm).order("created_at desc")
54
- when "operating_system"
55
- where("operating_system = ?",searchterm).order("created_at desc")
56
- when "device"
57
- where("device = ?",searchterm).order("created_at desc")
58
- when "platform"
59
- where("platform = ?",searchterm).order("created_at desc")
60
- else
61
- order("created_at desc").scoped
62
- end
63
- else
64
- order("created_at desc").scoped
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>Request URI</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
- <p>
5
- <%= submit_tag "Search", :name => nil, :id=>"search_results" %>
6
- <%= text_field_tag :searchterm, params[:searchterm] %>
7
- <%= radio_button_tag 'searchtype', "path_info", true, :class => "searchtype" %> Req URI
8
- <%= radio_button_tag 'searchtype', "request_uri", false, :class => "searchtype" %> Full URI
9
- <%= radio_button_tag 'searchtype', "operating_system", false, :class => "searchtype" %> User OS
10
- <%= radio_button_tag 'searchtype', "device", false, :class => "searchtype" %> User Device
11
- <%= radio_button_tag 'searchtype', "platform", false, :class => "searchtype" %> User Platform
12
- <%= radio_button_tag 'searchtype', "request_method", false, :class => "searchtype" %> Request Type
13
- </p>
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
- $("#search_results").click(function() {
24
- $.get($("#records_search").attr("action"), $("#records_search").serialize(), null, "script");
25
- return false;
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>
@@ -1,3 +1,3 @@
1
1
  module Trafficlogger
2
- VERSION = "1.1.0"
2
+ VERSION = "2.0.0"
3
3
  end
@@ -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 => 0) do
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
+  (0.1ms) SELECT `schema_migrations`.`version` FROM `schema_migrations` 
28
+ Connecting to database specified by database.yml
29
+  (0.3ms) SELECT `schema_migrations`.`version` FROM `schema_migrations` 
30
+ Connecting to database specified by database.yml
31
+  (0.1ms) SELECT `schema_migrations`.`version` FROM `schema_migrations` 
32
+  (146.0ms) DROP DATABASE IF EXISTS `dummy_test`
33
+  (14.0ms) CREATE DATABASE `dummy_test` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`
34
+  (179.2ms) CREATE TABLE `schema_migrations` (`version` varchar(255) NOT NULL) ENGINE=InnoDB
35
+  (254.6ms) CREATE UNIQUE INDEX `unique_schema_migrations` ON `schema_migrations` (`version`)
36
+  (0.4ms) SELECT version FROM `schema_migrations`
37
+  (42.1ms) INSERT INTO `schema_migrations` (version) VALUES ('0')
38
+ Connecting to database specified by database.yml
39
+  (0.1ms) SELECT `schema_migrations`.`version` FROM `schema_migrations` 
40
+ Migrating to CreateTrafficloggerAnalytics (20140319104457)
41
+  (156.7ms) 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
+  (198.7ms) CREATE INDEX `index_trafficlogger_analytics_on_server_name` ON `trafficlogger_analytics` (`server_name`)
43
+  (188.0ms) CREATE INDEX `index_trafficlogger_analytics_on_request_method` ON `trafficlogger_analytics` (`request_method`)
44
+  (177.0ms) CREATE INDEX `index_trafficlogger_analytics_on_request_uri` ON `trafficlogger_analytics` (`request_uri`)
45
+  (210.0ms) CREATE INDEX `index_trafficlogger_analytics_on_path_info` ON `trafficlogger_analytics` (`path_info`)
46
+  (211.4ms) CREATE INDEX `index_trafficlogger_analytics_on_original_full_path` ON `trafficlogger_analytics` (`original_full_path`)
47
+  (210.0ms) CREATE INDEX `index_trafficlogger_analytics_on_platform` ON `trafficlogger_analytics` (`platform`)
48
+  (188.0ms) CREATE INDEX `index_trafficlogger_analytics_on_device` ON `trafficlogger_analytics` (`device`)
49
+  (165.7ms) CREATE INDEX `index_trafficlogger_analytics_on_operating_system` ON `trafficlogger_analytics` (`operating_system`)
50
+  (43.1ms) INSERT INTO `schema_migrations` (`version`) VALUES ('20140319104457')
51
+  (0.2ms) 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
- - 1
7
- - 1
6
+ - 2
8
7
  - 0
9
- version: 1.1.0
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