dsl_evaluator 0.2.0 → 0.2.3

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: dd75a6a48ce5a9eb6858f470264eaf01af1039d93e4be1d5f609f8bc381ba297
4
- data.tar.gz: d21493fb8aa7d9c78c7e873374a8037c1c40fd3991f4002c379ac0926c0e0e45
3
+ metadata.gz: b8435bd7d87d467ba317984fd74bd31c8af789524228a5ae8895d50856efb1d2
4
+ data.tar.gz: d8297543d1c5e02f2c3a2333c5f45417318f34bb32d6d10175a3b09d2dbada53
5
5
  SHA512:
6
- metadata.gz: fa1913f87e7c7285bf3266097742353fbbb1817dface02543513798aba3d6b284b9231a8702199d3229accf57b6480f620490e15b23d92b25c9f0c03432bf742
7
- data.tar.gz: 995507941a52c9b0ad3691346268ed5a30d852fb116cc7cd8132692343760411ed213f0b9815a43f20926e35b22d502d9bc3d37d4dd1062fd7d6037d86324305
6
+ metadata.gz: ac18d9e60a195db5cb84befd2ebb49eee7891f6de1b8faed08c686cceb9149d047322fa90eaebccfe11e9a66eb23c026c34eaa0ec988eadfcf30a8925e0a7822
7
+ data.tar.gz: 0c06aaffebf2bd326e86ddd5f45bc1dbd89a5d330e43e70b3371df3e93cb3f202b7b9b370a8ae3d35698e745b70dfe418a949d12fc4bebbf34bde9d25070225f
data/CHANGELOG.md CHANGED
@@ -3,6 +3,15 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  This project *loosely tries* to adhere to [Semantic Versioning](http://semver.org/).
5
5
 
6
+ ## [0.2.3] - 2022-02-27
7
+ - [#5](https://github.com/tongueroo/dsl_evaluator/pull/5) add zeitwerk dependency
8
+
9
+ ## [0.2.2] - 2022-02-25
10
+ - dont filter lines with FULL_BACKTRACE=1
11
+
12
+ ## [0.2.1] - 2022-02-25
13
+ - [#4](https://github.com/tongueroo/dsl_evaluator/pull/4) add config.select_pattern option
14
+
6
15
  ## [0.2.0] - 2022-02-24
7
16
  - [#3](https://github.com/tongueroo/dsl_evaluator/pull/3) major improvements: configure ability
8
17
 
@@ -25,4 +25,5 @@ Gem::Specification.new do |spec|
25
25
  spec.add_dependency "activesupport"
26
26
  spec.add_dependency "memoist"
27
27
  spec.add_dependency "rainbow"
28
+ spec.add_dependency "zeitwerk"
28
29
  end
@@ -1,3 +1,5 @@
1
+ require "singleton"
2
+
1
3
  module DslEvaluator
2
4
  class App
3
5
  extend Memoist
@@ -21,6 +23,7 @@ module DslEvaluator
21
23
 
22
24
  config.backtrace = ActiveSupport::OrderedOptions.new
23
25
  config.backtrace.reject_pattern = nil # dont use .reject. Seems its used internally by ActiveSupport::OrderedOptions
26
+ config.backtrace.select_pattern = nil
24
27
 
25
28
  config
26
29
  end
@@ -1,3 +1,5 @@
1
+ require "zeitwerk"
2
+
1
3
  module DslEvaluator
2
4
  class Autoloader
3
5
  class Inflector < Zeitwerk::Inflector
@@ -52,21 +52,11 @@ module DslEvaluator
52
52
  if ENV['FULL_BACKTRACE']
53
53
  logger.error @error.message.color(:red)
54
54
  logger.error lines.join("\n")
55
+ else
56
+ lines = reject(lines)
57
+ lines = select(lines)
55
58
  end
56
59
 
57
- # Keep DslEvaluator.backtrace_reject for backwards compatibility
58
- backtrace_reject = config.backtrace.reject_pattern || DslEvaluator.backtrace_reject
59
- if backtrace_reject
60
- lines = lines.reject do |l|
61
- if backtrace_reject.is_a?(String)
62
- l.include?(backtrace_reject)
63
- else
64
- l.match(backtrace_reject)
65
- end
66
- end
67
- end
68
- lines = lines.reject { |l| l.include?("lib/dsl_evaluator") } # ignore internal lib/dsl_evaluator backtrace lines
69
-
70
60
  error_info = lines.first
71
61
  parts = error_info.split(':')
72
62
  windows = error_info.match(/^[a-zA-Z]:/)
@@ -77,6 +67,35 @@ module DslEvaluator
77
67
  {path: path, line_number: line_number}
78
68
  end
79
69
 
70
+ def reject(lines)
71
+ # Keep DslEvaluator.backtrace_reject for backwards compatibility
72
+ pattern = config.backtrace.reject_pattern || DslEvaluator.backtrace_reject
73
+ return lines unless pattern
74
+
75
+ lines.reject! do |l|
76
+ if pattern.is_a?(String)
77
+ l.include?(pattern)
78
+ else
79
+ l.match(pattern)
80
+ end
81
+ end
82
+ # Always ignore internal lib/dsl_evaluator backtrace lines
83
+ lines.reject { |l| l.include?("lib/dsl_evaluator") }
84
+ end
85
+
86
+ def select(lines)
87
+ pattern = config.backtrace.select_pattern
88
+ return unless pattern
89
+
90
+ lines.select do |l|
91
+ if pattern.is_a?(String)
92
+ l.include?(pattern)
93
+ else
94
+ l.match(pattern)
95
+ end
96
+ end
97
+ end
98
+
80
99
  def pretty_path(path)
81
100
  path.sub("#{config.root}/",'')
82
101
  end
@@ -1,3 +1,3 @@
1
1
  module DslEvaluator
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.3"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dsl_evaluator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tung Nguyen
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-02-24 00:00:00.000000000 Z
11
+ date: 2022-02-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: zeitwerk
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
55
69
  description:
56
70
  email:
57
71
  - tongueroo@gmail.com