tailog 0.2.0 → 0.2.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 94898f11ab8489deacbdd01e07f902ac201740f3
4
- data.tar.gz: 4d42e7d30f37d856c349e3ffadc5a91d070fde1e
3
+ metadata.gz: 93481db09b17c1316e746bc42f2b5d5d3ac68a5c
4
+ data.tar.gz: c412238da872b246a0506a838126bc3b54c98a74
5
5
  SHA512:
6
- metadata.gz: 7c0ceab245395356fbc3ba8be2e8c7ef943814e54dcafbde612c496a4dd5b6d8069fe0acaca37cc3e44bbb84fc92952e625b18c0e313aa7751ba305917fce8f2
7
- data.tar.gz: 90be1575fd13c56462793d667298f880ecf1c3334af0a4374b908a654642971957e14ff63f5cc5c1d39030a404cced5ba38d46ce877b3951b6dbd3d5df0e98c1
6
+ metadata.gz: 281e8fdfd628c36e3eccdea2c759643641d9d11f26f42d664eef81382e3afd0293fec70035d68cb200762e7a3c481cfb4606cb8a104645fb0e44db967dd35974
7
+ data.tar.gz: 74f55c1e650fd08c537c8add13cf3acea9402ecc0b03ea8e3fd83beff2c8ae512d89913c10be87027b0a744ff726ad4cf2e1804961b567111ffd08e1011e237d
data/app/views/env.erb ADDED
@@ -0,0 +1,6 @@
1
+ <dl class="dl-horizontal">
2
+ <% ENV.each do |key, value| %>
3
+ <dt><%= key %></dt>
4
+ <dd><%= value %></dd>
5
+ <% end %>
6
+ </dl>
data/app/views/error.erb CHANGED
@@ -1,4 +1,4 @@
1
- <div class="alert alert-danger monospace">
1
+ <div class="alert alert-danger">
2
2
  <h4><%= h error.class %>: <%= h error.message %></h4>
3
3
  <% error.backtrace.each do |backtrace| %>
4
4
  <%= h backtrace %><br>
@@ -0,0 +1,62 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>TAILOG</title>
5
+ <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.3/jquery.min.js"></script>
6
+ <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.6/css/bootstrap.min.css">
7
+ <style type="text/css">
8
+ body {
9
+ font-family: "Lucida Console", Monaco, monospace;
10
+ padding-top: 20px;
11
+ padding-bottom: 20px;
12
+ }
13
+
14
+ p {
15
+ white-space: pre-wrap;
16
+ margin: 0;
17
+ }
18
+
19
+ p:hover {
20
+ background: #EEE;
21
+ }
22
+
23
+ a {
24
+ display: block;
25
+ }
26
+ </style>
27
+ </head>
28
+ <body>
29
+
30
+ <div class="container">
31
+
32
+ <!-- Static navbar -->
33
+ <% p path_info = request.path_info %>
34
+ <nav class="navbar navbar-default">
35
+ <div class="container-fluid">
36
+ <div class="navbar-header">
37
+ <a class="navbar-brand">TAILOG</a>
38
+ </div>
39
+ <div id="navbar" class="navbar-collapse collapse">
40
+ <ul class="nav navbar-nav">
41
+ <li<%= ' class="active"' if path_info == "/logs" %>><a href="logs">Logs</a></li>
42
+ <li<%= ' class="active"' if path_info == "/env" %>><a href="env">Env</a></li>
43
+ </ul>
44
+ <ul class="nav navbar-nav navbar-right">
45
+ <form class="navbar-form navbar-left" method="get">
46
+ <div class="input-group">
47
+ <input name="file" type="text" class="form-control" placeholder="<%= params[:file] || 'File Name...' %>">
48
+ <span class="input-group-btn">
49
+ <button class="btn btn-default" type="button">Go!</button>
50
+ </span>
51
+ </div>
52
+ </form>
53
+ </ul>
54
+ </div><!--/.nav-collapse -->
55
+ </div><!--/.container-fluid -->
56
+ </nav>
57
+
58
+ <%= yield %>
59
+
60
+ </div> <!-- /container -->
61
+ </body>
62
+ </html>
@@ -1,120 +1,56 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <title>TAILOG</title>
5
- <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.3/jquery.min.js"></script>
6
- <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.6/css/bootstrap.min.css">
7
- <style type="text/css">
8
- body {
9
- padding-top: 20px;
10
- padding-bottom: 20px;
11
- }
1
+ <% begin %>
12
2
 
13
- .monospace {
14
- font-family: "Lucida Console", Monaco, monospace;
15
- }
3
+ <% raise RuntimeError, "Tailog.log_path is not present!" unless Tailog.log_path %>
16
4
 
17
- p {
18
- white-space: pre-wrap;
19
- margin: 0;
20
- }
5
+ <% if params[:file] %>
6
+ <% file_path = File.join Tailog.log_path, params[:file] %>
7
+ <h3 class="page-header"><%= file_path %></h3>
21
8
 
22
- p:hover {
23
- background: #EEE;
24
- }
9
+ <% File.open file_path do |file| end %>
10
+ <div id="content"></div>
25
11
 
26
- a {
27
- display: block;
28
- }
29
- </style>
30
- </head>
31
- <body>
12
+ <script type="text/javascript">
13
+ window.fileSize = {};
14
+ window.fileSizeDone = {};
15
+ var $window = $(window),
16
+ $document = $(document),
17
+ $content = $("#content");
32
18
 
33
- <div class="container">
19
+ function loadMore() {
20
+ $.post(window.location.href, { seek: window.fileSize }, function(json) {
21
+ try {
22
+ var data = JSON.parse(json);
34
23
 
35
- <!-- Static navbar -->
36
- <nav class="navbar navbar-default">
37
- <div class="container-fluid">
38
- <div class="navbar-header">
39
- <a class="navbar-brand monospace">TAILOG</a>
40
- </div>
41
- <div id="navbar" class="navbar-collapse collapse">
42
- <ul class="nav navbar-nav">
43
- <li class="active"><a href="#">Logs</a></li>
44
- </ul>
45
- <ul class="nav navbar-nav navbar-right">
46
- <form class="navbar-form navbar-left" method="get">
47
- <div class="input-group">
48
- <input name="file" type="text" class="form-control" placeholder="<%= params[:file] || 'File Name...' %>">
49
- <span class="input-group-btn">
50
- <button class="btn btn-default" type="button">Go!</button>
51
- </span>
52
- </div>
53
- </form>
54
- </ul>
55
- </div><!--/.nav-collapse -->
56
- </div><!--/.container-fluid -->
57
- </nav>
24
+ var fileSizeKey = data.server_uuid + '-' + data.file_size;
25
+ if (window.fileSizeDone[fileSizeKey]) return;
26
+ window.fileSizeDone[fileSizeKey] = true;
27
+ window.fileSize[data.server_uuid] = data.file_size;
58
28
 
59
- <% begin %>
29
+ if (!data.content) return;
30
+ var shouldScrollToBottom = $window.scrollTop() + $window.height() == $document.height();
31
+ $(data.content).appendTo($content);
60
32
 
61
- <% raise RuntimeError, "Tailog.log_path is not present!" unless Tailog.log_path %>
33
+ if (shouldScrollToBottom) {
34
+ $window.scrollTop($document.height() - $window.height());
35
+ }
62
36
 
63
- <% if params[:file] %>
64
- <% file_path = File.join Tailog.log_path, params[:file] %>
65
- <h3 class="page-header monospace"><%= file_path %></h3>
66
-
67
- <% File.open file_path do |file| end %>
68
- <div id="content" class="monospace"></div>
69
-
70
- <script type="text/javascript">
71
- window.fileSize = {};
72
- window.fileSizeDone = {};
73
- var $window = $(window),
74
- $document = $(document),
75
- $content = $("#content");
76
-
77
- function loadMore() {
78
- $.post(window.location.href, { seek: window.fileSize }, function(json) {
79
- try {
80
- var data = JSON.parse(json);
81
-
82
- var fileSizeKey = data.server_uuid + '-' + data.file_size;
83
- if (window.fileSizeDone[fileSizeKey]) return;
84
- window.fileSizeDone[fileSizeKey] = true;
85
- window.fileSize[data.server_uuid] = data.file_size;
86
-
87
- if (!data.content) return;
88
- var shouldScrollToBottom = $window.scrollTop() + $window.height() == $document.height();
89
- $(data.content).appendTo($content);
90
-
91
- if (shouldScrollToBottom) {
92
- $window.scrollTop($document.height() - $window.height());
93
- }
94
-
95
- } catch (error) {
96
- console.log(error)
97
- }
98
- });
37
+ } catch (error) {
38
+ console.log(error)
99
39
  }
40
+ });
41
+ }
100
42
 
101
- setInterval(loadMore, 3000);
102
- loadMore();
103
- </script>
104
-
105
- <% else %>
106
- <div id="content" class="monospace">
107
- <% Dir[File.join Tailog.log_path, '**/*.log'].each do |file| %>
108
- <% relative_file = Pathname.new(file).relative_path_from(Pathname.new(Tailog.log_path)) %>
109
- <a href="?file=<%= relative_file %>"><%= file %></a>
110
- <% end %>
111
- </div>
112
- <% end %>
43
+ setInterval(loadMore, 3000);
44
+ loadMore();
45
+ </script>
113
46
 
114
- <% rescue => error %>
115
- <%= erb :error, locals: { error: error } %>
47
+ <% else %>
48
+ <% Dir[File.join Tailog.log_path, '**/*.log'].each do |file| %>
49
+ <% relative_file = Pathname.new(file).relative_path_from(Pathname.new(Tailog.log_path)) %>
50
+ <a href="?file=<%= relative_file %>"><%= file %></a>
116
51
  <% end %>
52
+ <% end %>
117
53
 
118
- </div> <!-- /container -->
119
- </body>
120
- </html>
54
+ <% rescue => error %>
55
+ <%= erb :error, locals: { error: error }, layout: false %>
56
+ <% end %>
@@ -1,3 +1,3 @@
1
1
  module Tailog
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.1"
3
3
  end
data/lib/tailog.rb CHANGED
@@ -42,10 +42,10 @@ module Tailog
42
42
  file_size = file.size
43
43
  seek = params[:seek] && params[:seek][Tailog.server_uuid] || file_size
44
44
  file.seek seek.to_i
45
- content = erb :'logs/list', locals: { file: file }
45
+ content = erb :'logs/list', locals: { file: file }, layout: false
46
46
  file.close
47
47
  rescue => error
48
- content = erb :error, locals: { error: error }
48
+ content = erb :error, locals: { error: error }, layout: false
49
49
  end
50
50
 
51
51
  {
@@ -54,5 +54,9 @@ module Tailog
54
54
  content: content
55
55
  }.to_json
56
56
  end
57
+
58
+ get '/env' do
59
+ erb :env
60
+ end
57
61
  end
58
62
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tailog
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - bbtfr
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-04-19 00:00:00.000000000 Z
11
+ date: 2016-04-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -50,7 +50,9 @@ files:
50
50
  - Gemfile
51
51
  - README.md
52
52
  - Rakefile
53
+ - app/views/env.erb
53
54
  - app/views/error.erb
55
+ - app/views/layout.erb
54
56
  - app/views/logs/index.erb
55
57
  - app/views/logs/list.erb
56
58
  - bin/console