dsl_evaluator 0.2.0 → 0.2.3

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