eras 0.2.4 → 0.2.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/controllers/eras/errors_controller.rb +11 -11
- data/app/views/eras/errors/index.html.erb +1 -1
- data/app/views/eras/errors/show.html.erb +2 -2
- data/lib/eras/adapters/file_system.rb +9 -4
- data/lib/eras/config.rb +12 -0
- data/lib/eras/error_reporter.rb +4 -6
- data/lib/eras/version.rb +1 -1
- data/lib/eras.rb +12 -2
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: eac092a75031412c1ac1310c0aee54020655f0a5949eaab51b9757a576d81c2e
|
4
|
+
data.tar.gz: 32e1f8e528e35cecb3817c756bc3b36744ac1db9a0ef8b401f43f01655078614
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 55f51be8a2e27e43404b7f198fdb00bd7dd87d77cfac949dcc0b161fa9c222f0cb523e02f1041cb346c77f20eaecc3fc6638c74ede4f2eb99dfd0fcdf28d8eba
|
7
|
+
data.tar.gz: ebc26565ef50af9d8105c70ab08165ebf6fb8e92ae55d2fe58e05dc420bb70b63e7e2a72f463926d21fc70964d88ce69853b79668a9fd1f41d9f96d832f8b9e7
|
@@ -1,28 +1,28 @@
|
|
1
1
|
module Eras
|
2
2
|
class ErrorsController < ApplicationController
|
3
3
|
before_action :set_file_attrs
|
4
|
+
before_action :set_environment, only: [:index, :show]
|
4
5
|
|
5
6
|
def index
|
6
|
-
@
|
7
|
-
# TODO: We need to actually respect the adapter that's used,
|
8
|
-
# and not just assume it's the filesystem adapter.
|
9
|
-
@errors = Eras::Adapters::FileSystem.new.read_errors.filter { |e| e['context']['rails_env'] == @environment }
|
7
|
+
@errors = Eras.adapter.read_errors.filter { |e| e['context']['rails_env'] == @environment }
|
10
8
|
end
|
11
9
|
|
12
10
|
def show
|
13
|
-
@error = Eras
|
11
|
+
@error = Eras.adapter.read_error(params[:id])
|
14
12
|
end
|
15
13
|
|
16
14
|
def destroy
|
17
|
-
|
15
|
+
# TODO: rename to be adapter agnostic
|
16
|
+
Eras.adapter.destroy_file
|
17
|
+
end
|
18
|
+
|
19
|
+
def set_environment
|
20
|
+
@environment = params[:environment] || 'development'
|
18
21
|
end
|
19
22
|
|
20
23
|
def set_file_attrs
|
21
|
-
|
22
|
-
|
23
|
-
adapter = Eras::Adapters::FileSystem.new
|
24
|
-
@file_path = adapter.path
|
25
|
-
@file_size = adapter.file_size
|
24
|
+
@file_path = Eras.adapter.path
|
25
|
+
@file_size = Eras.adapter.file_size
|
26
26
|
end
|
27
27
|
end
|
28
28
|
end
|
@@ -31,7 +31,7 @@
|
|
31
31
|
<%= error.dig("error", "message") %></td>
|
32
32
|
<td>
|
33
33
|
<div class="flex space-x-2 justify-center">
|
34
|
-
<a href="<%= error_path(error['id'])%>"
|
34
|
+
<a href="<%= error_path(id: error['id'], environment: @environment)%>"
|
35
35
|
class="inline-block px-6 py-2.5 bg-blue-600 text-white font-medium text-xs leading-tight uppercase rounded shadow-md hover:bg-blue-700 hover:shadow-lg focus:bg-blue-700 focus:shadow-lg focus:outline-none focus:ring-0 active:bg-blue-800 active:shadow-lg transition duration-150 ease-in-out">View</a>
|
36
36
|
</div>
|
37
37
|
</td>
|
@@ -3,7 +3,7 @@
|
|
3
3
|
|
4
4
|
<p><%= @error.dig('error', 'message') %></p>
|
5
5
|
<a
|
6
|
-
href="<%= errors_path %>"
|
6
|
+
href="<%= errors_path(environment: @environment) %>"
|
7
7
|
class="inline-block px-6 py-2.5 mt-4 bg-blue-600 text-white font-medium text-xs leading-tight uppercase rounded shadow-md hover:bg-blue-700 hover:shadow-lg focus:bg-blue-700 focus:shadow-lg focus:outline-none focus:ring-0 active:bg-blue-800 active:shadow-lg transition duration-150 ease-in-out"
|
8
8
|
data-mdb-ripple="true"
|
9
9
|
data-mdb-ripple-color="light"
|
@@ -12,6 +12,6 @@
|
|
12
12
|
</a>
|
13
13
|
<hr class="my-6 border-gray-300" />
|
14
14
|
<pre>
|
15
|
-
<code class="whitespace-pre-line text-xs"><%= @error.dig('error', 'backtrace')
|
15
|
+
<code class="whitespace-pre-line text-xs"><%= @error.dig('error', 'backtrace')&.strip %></code>
|
16
16
|
</pre>
|
17
17
|
</div>
|
@@ -1,16 +1,21 @@
|
|
1
1
|
module Eras
|
2
2
|
module Adapters
|
3
3
|
class FileSystem
|
4
|
+
class Error < StandardError; end
|
5
|
+
|
4
6
|
include ActionView::Helpers::NumberHelper
|
5
7
|
attr_reader :path
|
6
8
|
|
7
|
-
def initialize(
|
8
|
-
if
|
9
|
+
def initialize(dir = nil)
|
10
|
+
if dir.nil?
|
9
11
|
dir = Rails.root.join("tmp", "eras")
|
12
|
+
|
10
13
|
Dir.mkdir(dir) unless File.exists?(dir)
|
11
14
|
end
|
12
|
-
|
13
|
-
|
15
|
+
|
16
|
+
raise Error, "Directory #{dir} does not exist" unless File.exists?(dir)
|
17
|
+
|
18
|
+
@path = File.join(dir, "errors.json")
|
14
19
|
end
|
15
20
|
|
16
21
|
def write_error(data)
|
data/lib/eras/config.rb
ADDED
data/lib/eras/error_reporter.rb
CHANGED
@@ -1,10 +1,8 @@
|
|
1
1
|
module Eras
|
2
2
|
class ErrorReporter
|
3
|
-
def initialize(adapter: Eras::Adapters::FileSystem.new)
|
4
|
-
@adapter = adapter
|
5
|
-
end
|
6
|
-
|
7
3
|
def report(error, handled:, severity:, context:, source: nil)
|
4
|
+
return if Eras.config.ignored_error_classes.include?(error.class.name)
|
5
|
+
|
8
6
|
context = context.merge(rails_env: ::Rails.env).transform_values(&:to_s)
|
9
7
|
|
10
8
|
data = {
|
@@ -15,10 +13,10 @@ module Eras
|
|
15
13
|
},
|
16
14
|
handled: handled,
|
17
15
|
severity: severity,
|
18
|
-
context: context,
|
16
|
+
context: context,
|
19
17
|
source: source
|
20
18
|
}
|
21
|
-
|
19
|
+
Eras.adapter.write_error(data)
|
22
20
|
end
|
23
21
|
end
|
24
22
|
end
|
data/lib/eras/version.rb
CHANGED
data/lib/eras.rb
CHANGED
@@ -1,7 +1,17 @@
|
|
1
1
|
require "eras/version"
|
2
2
|
require "eras/engine"
|
3
|
-
require "eras/
|
3
|
+
require "eras/config"
|
4
4
|
|
5
5
|
module Eras
|
6
|
-
|
6
|
+
def self.config
|
7
|
+
@config ||= Eras::Config.new
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.configure
|
11
|
+
yield config
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.adapter
|
15
|
+
config.adapter
|
16
|
+
end
|
7
17
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: eras
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bobby McDonald
|
@@ -65,6 +65,7 @@ files:
|
|
65
65
|
- config/tailwind.config.js
|
66
66
|
- lib/eras.rb
|
67
67
|
- lib/eras/adapters/file_system.rb
|
68
|
+
- lib/eras/config.rb
|
68
69
|
- lib/eras/engine.rb
|
69
70
|
- lib/eras/error_reporter.rb
|
70
71
|
- lib/eras/version.rb
|