eras 0.2.5 → 0.2.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 25d9ab0900627a51927c2a86466fece135b362b1044ae5bd78bc325f954ce538
4
- data.tar.gz: e26b82a4ba54231398f167240d04dfdcdf01ffc35b3b6c969a53a11b6d885aa5
3
+ metadata.gz: eac092a75031412c1ac1310c0aee54020655f0a5949eaab51b9757a576d81c2e
4
+ data.tar.gz: 32e1f8e528e35cecb3817c756bc3b36744ac1db9a0ef8b401f43f01655078614
5
5
  SHA512:
6
- metadata.gz: 221a381ba04433c98222ee2fbf8e4c07cf8847b8809737e924d3e996bc4b86ef95908c254f607097a3a8c1bf78c11fc3f559d994ff33997fe9e79940454ae8a6
7
- data.tar.gz: f8210aefe690c01600831bbe80ff79653b4ae12d41a87a452a08dcc1839bb6e12dd56172b06fdefc225f26eb1bd85dab0eb09ec6287e91d65a8665f15cd178a5
6
+ metadata.gz: 55f51be8a2e27e43404b7f198fdb00bd7dd87d77cfac949dcc0b161fa9c222f0cb523e02f1041cb346c77f20eaecc3fc6638c74ede4f2eb99dfd0fcdf28d8eba
7
+ data.tar.gz: ebc26565ef50af9d8105c70ab08165ebf6fb8e92ae55d2fe58e05dc420bb70b63e7e2a72f463926d21fc70964d88ce69853b79668a9fd1f41d9f96d832f8b9e7
@@ -4,17 +4,16 @@ module Eras
4
4
  before_action :set_environment, only: [:index, :show]
5
5
 
6
6
  def index
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::Adapters::FileSystem.new.read_error(params[:id])
11
+ @error = Eras.adapter.read_error(params[:id])
14
12
  end
15
13
 
16
14
  def destroy
17
- Eras::Adapters::FileSystem.new.destroy_file
15
+ # TODO: rename to be adapter agnostic
16
+ Eras.adapter.destroy_file
18
17
  end
19
18
 
20
19
  def set_environment
@@ -22,11 +21,8 @@ module Eras
22
21
  end
23
22
 
24
23
  def set_file_attrs
25
- # TODO: We need to store the active adapter as a singleton somewhere
26
- # so we can use it places instead of creating new ones.
27
- adapter = Eras::Adapters::FileSystem.new
28
- @file_path = adapter.path
29
- @file_size = adapter.file_size
24
+ @file_path = Eras.adapter.path
25
+ @file_size = Eras.adapter.file_size
30
26
  end
31
27
  end
32
28
  end
@@ -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(path = nil)
8
- if path.nil?
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
- # TODO: Actually use the path
13
- @path = Rails.root.join("tmp", "eras", "errors.json")
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)
@@ -0,0 +1,12 @@
1
+ require "eras/adapters/file_system"
2
+
3
+ module Eras
4
+ class Config
5
+ attr_accessor :adapter, :ignored_error_classes
6
+
7
+ def initialize
8
+ @adapter = Eras::Adapters::FileSystem.new
9
+ @ignored_error_classes = []
10
+ end
11
+ end
12
+ end
@@ -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, # ActionController.to_s causes stack overflow
16
+ context: context,
19
17
  source: source
20
18
  }
21
- @adapter.write_error(data)
19
+ Eras.adapter.write_error(data)
22
20
  end
23
21
  end
24
22
  end
data/lib/eras/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Eras
2
- VERSION = "0.2.5"
2
+ VERSION = "0.2.6"
3
3
  end
data/lib/eras.rb CHANGED
@@ -1,7 +1,17 @@
1
1
  require "eras/version"
2
2
  require "eras/engine"
3
- require "eras/adapters/file_system"
3
+ require "eras/config"
4
4
 
5
5
  module Eras
6
- # Your code goes here...
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.5
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