eras 0.2.5 → 0.2.6

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
  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