rshade 0.2.0 → 0.2.1
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 +4 -4
- data/.rubocop.yml +31 -0
- data/Gemfile +3 -0
- data/Gemfile.lock +2 -2
- data/README.md +4 -3
- data/lib/rshade/config/registry.rb +1 -8
- data/lib/rshade/config/stack_store.rb +8 -3
- data/lib/rshade/config/store.rb +7 -3
- data/lib/rshade/config.rb +5 -5
- data/lib/rshade/core_extensions/object/reveal.rb +3 -0
- data/lib/rshade/event.rb +2 -2
- data/lib/rshade/event_processor.rb +1 -1
- data/lib/rshade/event_tree.rb +5 -3
- data/lib/rshade/filter/default.rb +1 -1
- data/lib/rshade/filter/filter_composition.rb +5 -3
- data/lib/rshade/filter/include_path_filter.rb +1 -0
- data/lib/rshade/filter/variable_filter.rb +1 -0
- data/lib/rshade/formatter/stack/stdout.rb +1 -1
- data/lib/rshade/formatter/stack/string.rb +15 -3
- data/lib/rshade/formatter/trace/file.rb +1 -3
- data/lib/rshade/formatter/trace/html.rb +1 -3
- data/lib/rshade/formatter/trace/json.rb +4 -5
- data/lib/rshade/formatter/trace/stdout.rb +1 -1
- data/lib/rshade/rspec/rspec.rb +3 -1
- data/lib/rshade/serializer/traversal.rb +2 -7
- data/lib/rshade/stack.rb +1 -1
- data/lib/rshade/stack_frame.rb +4 -3
- data/lib/rshade/trace_observable.rb +5 -5
- data/lib/rshade/version.rb +1 -1
- data/rshade.gemspec +6 -7
- metadata +4 -45
- data/lib/rshade/rails/rails.rb +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: efdbfc08fca88589c49b580abbbeb36687b68986e365291c2c4758633b33943d
|
4
|
+
data.tar.gz: 78e8147a5539bb79216281763274c676d916729b62af681b2811caa1772f7031
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 39fad4c1cb0663e510aaee89100090a10e689880da9f2fb2422fc404094337bad4bcbd5bb72a96270b284a3709392d4d9879cb1410d8f912d8e55db2962a8e4f
|
7
|
+
data.tar.gz: de5d785cfe183f5a7109aeebb128086e0173ce126788165b7dc18b818de066909830e628b5322c84ff6c9655696cb34cc8c7d289aafff036965f6a7caeb7bda0
|
data/.rubocop.yml
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
# The behavior of RuboCop can be controlled via the .rubocop.yml
|
2
|
+
# configuration file. It makes it possible to enable/disable
|
3
|
+
# certain cops (checks) and to alter their behavior if they accept
|
4
|
+
# any parameters. The file can be placed either in your home
|
5
|
+
# directory or in some project directory.
|
6
|
+
#
|
7
|
+
# RuboCop will start looking for the configuration file in the directory
|
8
|
+
# where the inspected file is and continue its way up to the root directory.
|
9
|
+
#
|
10
|
+
# See https://docs.rubocop.org/rubocop/configuration
|
11
|
+
AllCops:
|
12
|
+
NewCops: enable
|
13
|
+
Exclude:
|
14
|
+
- 'spec/fixture/**/*'
|
15
|
+
Style/HashSyntax:
|
16
|
+
EnforcedShorthandSyntax: never
|
17
|
+
|
18
|
+
Naming/MethodParameterName:
|
19
|
+
Exclude:
|
20
|
+
- spec/**/*
|
21
|
+
- test.rb
|
22
|
+
Style/Documentation:
|
23
|
+
Enabled: false
|
24
|
+
Metrics/BlockLength:
|
25
|
+
Max: 75
|
26
|
+
Metrics/MethodLength:
|
27
|
+
Max: 30
|
28
|
+
Metrics/PerceivedComplexity:
|
29
|
+
Max: 10
|
30
|
+
Metrics/AbcSize:
|
31
|
+
Max: 30
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
rshade (0.2.
|
4
|
+
rshade (0.2.1)
|
5
5
|
binding_of_caller
|
6
6
|
colorize
|
7
7
|
prism
|
@@ -12,7 +12,7 @@ GEM
|
|
12
12
|
binding_of_caller (1.0.1)
|
13
13
|
debug_inspector (>= 1.2.0)
|
14
14
|
coderay (1.1.3)
|
15
|
-
colorize (
|
15
|
+
colorize (1.1.0)
|
16
16
|
debug_inspector (1.2.0)
|
17
17
|
diff-lcs (1.5.0)
|
18
18
|
method_source (1.0.0)
|
data/README.md
CHANGED
@@ -102,11 +102,12 @@ As you can see all code that have been in use is printed.
|
|
102
102
|
|
103
103
|
## Stack reveal
|
104
104
|
Config
|
105
|
+
|
105
106
|
```ruby
|
106
107
|
::RShade::Config::Registry.instance.stack_config do |config|
|
107
|
-
|
108
|
-
|
109
|
-
|
108
|
+
config.exclude_gems!
|
109
|
+
filepath = File.join(Rails.root, 'log', 'rshade-stack.json.log')
|
110
|
+
config.formatter!(:json, { filepath: filepath, pretty: false })
|
110
111
|
end
|
111
112
|
```
|
112
113
|
|
@@ -3,9 +3,8 @@
|
|
3
3
|
module RShade
|
4
4
|
class Config
|
5
5
|
class Registry
|
6
|
-
attr_reader :map, :mutex
|
7
|
-
|
8
6
|
include Singleton
|
7
|
+
attr_reader :map, :mutex
|
9
8
|
|
10
9
|
def initialize
|
11
10
|
@map = {}
|
@@ -13,12 +12,6 @@ module RShade
|
|
13
12
|
defaults
|
14
13
|
end
|
15
14
|
|
16
|
-
def set_default_stack(config)
|
17
|
-
mutex.synchronize do
|
18
|
-
map[:store_default] = config
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
15
|
def default_stack_config
|
23
16
|
val = nil
|
24
17
|
mutex.synchronize do
|
@@ -6,7 +6,8 @@ module RShade
|
|
6
6
|
attr_reader :filter, :formatter, :custom_serializers
|
7
7
|
|
8
8
|
DEFAULT_FORMATTER = {
|
9
|
-
json: ::RShade::Formatter::Stack::Json
|
9
|
+
json: ::RShade::Formatter::Stack::Json,
|
10
|
+
stdout: ::RShade::Formatter::Stack::Stdout
|
10
11
|
}.freeze
|
11
12
|
|
12
13
|
# @param [Hash] options
|
@@ -28,7 +29,7 @@ module RShade
|
|
28
29
|
self
|
29
30
|
end
|
30
31
|
|
31
|
-
def
|
32
|
+
def formatter!(formatter, opts = {})
|
32
33
|
@formatter = formatter.is_a?(Symbol) ? set_symbol_formatter(formatter, opts) : formatter
|
33
34
|
self
|
34
35
|
end
|
@@ -50,8 +51,12 @@ module RShade
|
|
50
51
|
end
|
51
52
|
|
52
53
|
def default_filter_composition
|
54
|
+
variable_filter = RShade::Filter::VariableFilter.new
|
55
|
+
include_filter = RShade::Filter::IncludePathFilter.new
|
56
|
+
exclude_filter = RShade::Filter::ExcludePathFilter.new
|
57
|
+
|
53
58
|
RShade::Filter::FilterBuilder.build([:or,
|
54
|
-
[:or,
|
59
|
+
[:or, variable_filter, include_filter], exclude_filter])
|
55
60
|
end
|
56
61
|
end
|
57
62
|
end
|
data/lib/rshade/config/store.rb
CHANGED
@@ -16,7 +16,7 @@ module RShade
|
|
16
16
|
@custom_serializers = options.fetch(:custom_serializers, {})
|
17
17
|
end
|
18
18
|
|
19
|
-
def
|
19
|
+
def tp_events!(tp_events)
|
20
20
|
@tp_events = tp_events
|
21
21
|
self
|
22
22
|
end
|
@@ -31,7 +31,7 @@ module RShade
|
|
31
31
|
self
|
32
32
|
end
|
33
33
|
|
34
|
-
def
|
34
|
+
def formatter!(formatter)
|
35
35
|
@formatter = formatter
|
36
36
|
self
|
37
37
|
end
|
@@ -39,8 +39,12 @@ module RShade
|
|
39
39
|
private
|
40
40
|
|
41
41
|
def default_filter_composition
|
42
|
+
variable_filter = RShade::Filter::VariableFilter.new
|
43
|
+
include_filter = RShade::Filter::IncludePathFilter.new
|
44
|
+
exclude_filter = RShade::Filter::ExcludePathFilter.new
|
45
|
+
|
42
46
|
RShade::Filter::FilterBuilder.build([:or,
|
43
|
-
[:or,
|
47
|
+
[:or, variable_filter, include_filter], exclude_filter])
|
44
48
|
end
|
45
49
|
end
|
46
50
|
end
|
data/lib/rshade/config.rb
CHANGED
@@ -2,10 +2,10 @@
|
|
2
2
|
|
3
3
|
module RShade
|
4
4
|
class Config
|
5
|
-
RUBY_VERSION_PATTERN = /ruby-[0-9.]
|
5
|
+
RUBY_VERSION_PATTERN = /ruby-[0-9.]*/.freeze
|
6
6
|
|
7
7
|
def self.default
|
8
|
-
::RShade::Config::Store.new.
|
8
|
+
::RShade::Config::Store.new.formatter!(::RShade::Formatter::Trace::Stdout.new)
|
9
9
|
.config_filter(::RShade::Filter::ExcludePathFilter) do |paths|
|
10
10
|
default_excluded_path.each do |path|
|
11
11
|
paths << path
|
@@ -28,7 +28,7 @@ module RShade
|
|
28
28
|
|
29
29
|
def tp_events(&block)
|
30
30
|
events = block.call
|
31
|
-
@config_store.
|
31
|
+
@config_store.tp_events!(events)
|
32
32
|
self
|
33
33
|
end
|
34
34
|
|
@@ -49,7 +49,7 @@ module RShade
|
|
49
49
|
|
50
50
|
def formatter(&block)
|
51
51
|
formatter = block.call
|
52
|
-
@config_store.
|
52
|
+
@config_store.formatter!(formatter)
|
53
53
|
self
|
54
54
|
end
|
55
55
|
|
@@ -71,7 +71,7 @@ module RShade
|
|
71
71
|
end
|
72
72
|
|
73
73
|
def self.default_excluded_path
|
74
|
-
[ENV['GEM_PATH'].split(':'), RUBY_VERSION_PATTERN, /internal/].flatten.compact
|
74
|
+
[ENV['GEM_PATH'].split(':'), RUBY_VERSION_PATTERN, /internal/, %r{/gems/}].flatten.compact
|
75
75
|
end
|
76
76
|
end
|
77
77
|
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
class Object
|
4
|
+
# rubocop:disable Metrics/MethodLength
|
4
5
|
def reveal(method_name = nil, **opts, &block)
|
5
6
|
if method_name
|
6
7
|
@__cache_rshade_reveal ||= {}
|
@@ -8,6 +9,7 @@ class Object
|
|
8
9
|
@__cache_rshade_reveal[method_name] = config
|
9
10
|
instance_eval do
|
10
11
|
def method_added(name)
|
12
|
+
super
|
11
13
|
return unless @__cache_rshade_reveal[name]
|
12
14
|
|
13
15
|
if @__reveal_rewrite
|
@@ -34,4 +36,5 @@ class Object
|
|
34
36
|
trace.show
|
35
37
|
end
|
36
38
|
end
|
39
|
+
# rubocop:enable Metrics/MethodLength
|
37
40
|
end
|
data/lib/rshade/event.rb
CHANGED
@@ -22,7 +22,7 @@ module RShade
|
|
22
22
|
self
|
23
23
|
end
|
24
24
|
|
25
|
-
def
|
25
|
+
def return_value!(return_value)
|
26
26
|
@hash[:return_value] = return_value
|
27
27
|
self
|
28
28
|
end
|
@@ -46,7 +46,7 @@ module RShade
|
|
46
46
|
vars[var_name] = hash
|
47
47
|
end
|
48
48
|
|
49
|
-
hash = { path: evt.path, lineno: evt.lineno, klass: evt.defined_class, method_name: evt.method_id, vars
|
49
|
+
hash = { path: evt.path, lineno: evt.lineno, klass: evt.defined_class, method_name: evt.method_id, vars: vars,
|
50
50
|
event_type: evt.event }
|
51
51
|
|
52
52
|
if RETURN_EVENTS.include?(evt.event)
|
@@ -22,7 +22,7 @@ module RShade
|
|
22
22
|
# @param [Integer] level
|
23
23
|
def leave(event, _level)
|
24
24
|
store.current! do |node|
|
25
|
-
node.value.
|
25
|
+
node.value.return_value!(event.return_value)
|
26
26
|
.with_serialized_return!(serializer)
|
27
27
|
end
|
28
28
|
rescue StandardError
|
data/lib/rshade/event_tree.rb
CHANGED
@@ -10,6 +10,7 @@ module RShade
|
|
10
10
|
@current = @head = EventTreeNode.new(nil, 0, nil)
|
11
11
|
end
|
12
12
|
|
13
|
+
# rubocop:disable Metrics/AbcSize
|
13
14
|
def add(value, level)
|
14
15
|
if current.level + 1 == level
|
15
16
|
current.children << EventTreeNode.new(value, level, current)
|
@@ -30,6 +31,7 @@ module RShade
|
|
30
31
|
@current = current.parent
|
31
32
|
add(value, level)
|
32
33
|
end
|
34
|
+
# rubocop:enable Metrics/AbcSize
|
33
35
|
|
34
36
|
def current!(&block)
|
35
37
|
block.call(current.children.last) if current.children.last
|
@@ -50,7 +52,7 @@ module RShade
|
|
50
52
|
@level = level
|
51
53
|
@parent = parent
|
52
54
|
@value = value
|
53
|
-
@vlevel =
|
55
|
+
@vlevel = vlevel!(parent)
|
54
56
|
end
|
55
57
|
|
56
58
|
def each(&block)
|
@@ -60,13 +62,13 @@ module RShade
|
|
60
62
|
|
61
63
|
private
|
62
64
|
|
63
|
-
def
|
65
|
+
def vlevel!(node)
|
64
66
|
return 0 if node.nil?
|
65
67
|
|
66
68
|
if node.value || node.level.zero?
|
67
69
|
node.vlevel + 1
|
68
70
|
else
|
69
|
-
|
71
|
+
vlevel!(node.parent)
|
70
72
|
end
|
71
73
|
end
|
72
74
|
end
|
@@ -7,7 +7,7 @@ module RShade
|
|
7
7
|
AND_OP = :and
|
8
8
|
OR_OP = :or
|
9
9
|
UNARY_OP = :unary
|
10
|
-
attr_reader :value, :left, :right
|
10
|
+
attr_reader :value, :left, :right
|
11
11
|
attr_accessor :parent
|
12
12
|
|
13
13
|
# @param [#call, Enumerable] left
|
@@ -18,6 +18,7 @@ module RShade
|
|
18
18
|
@right = right
|
19
19
|
end
|
20
20
|
|
21
|
+
# rubocop:disable Metrics/CyclomaticComplexity
|
21
22
|
def call(event)
|
22
23
|
case value
|
23
24
|
when UNARY_OP
|
@@ -30,6 +31,7 @@ module RShade
|
|
30
31
|
value.call(event)
|
31
32
|
end
|
32
33
|
end
|
34
|
+
# rubocop:enable Metrics/CyclomaticComplexity
|
33
35
|
|
34
36
|
def each(&block)
|
35
37
|
yield value unless left && right
|
@@ -38,8 +40,8 @@ module RShade
|
|
38
40
|
end
|
39
41
|
|
40
42
|
def config_filter(type, &block)
|
41
|
-
filter = find do |
|
42
|
-
|
43
|
+
filter = find do |f|
|
44
|
+
f.is_a? type
|
43
45
|
end
|
44
46
|
filter&.config(&block)
|
45
47
|
end
|
@@ -4,9 +4,13 @@ module RShade
|
|
4
4
|
module Formatter
|
5
5
|
module Stack
|
6
6
|
class String
|
7
|
+
attr_reader :colorize
|
8
|
+
|
7
9
|
ROOT_SEP = "---\n"
|
8
10
|
|
9
|
-
def initialize(
|
11
|
+
def initialize(colorize: true)
|
12
|
+
@colorize = colorize
|
13
|
+
end
|
10
14
|
|
11
15
|
# @param [RShade::EventProcessor] stack
|
12
16
|
def call(stack)
|
@@ -23,18 +27,26 @@ module RShade
|
|
23
27
|
buffer.string
|
24
28
|
end
|
25
29
|
|
30
|
+
private
|
31
|
+
|
26
32
|
# @param [RShade::StackFrame] frame
|
27
33
|
def line(line_idx, frame, depth)
|
28
|
-
source_location =
|
34
|
+
source_location = apply_color("(#{frame.source_location[:path]}:#{frame.source_location[:line]})", :green)
|
29
35
|
var_str = frame.local_vars.map do |_, val|
|
30
36
|
var_name = val[:name]
|
31
37
|
var_value = val[:value]
|
32
38
|
var_type = val[:type]
|
33
39
|
"#{var_type} #{var_name} => (#{var_value})"
|
34
40
|
end.join(', ')
|
35
|
-
colorized_var_str =
|
41
|
+
colorized_var_str = apply_color(var_str, :blue)
|
36
42
|
"#{' ' * depth}[frame: #{line_idx}]#{source_location} => local vars: (#{colorized_var_str})\n"
|
37
43
|
end
|
44
|
+
|
45
|
+
def apply_color(str, color)
|
46
|
+
return str unless colorize
|
47
|
+
|
48
|
+
ColorizedString[str].colorize(color)
|
49
|
+
end
|
38
50
|
end
|
39
51
|
end
|
40
52
|
end
|
@@ -13,9 +13,8 @@ module RShade
|
|
13
13
|
end
|
14
14
|
|
15
15
|
def flat
|
16
|
-
arr =
|
17
|
-
|
18
|
-
arr << item(node.event)
|
16
|
+
arr = event_store.map do |node|
|
17
|
+
item(node.event)
|
19
18
|
end
|
20
19
|
arr.sort_by { |item| item[:level] }
|
21
20
|
end
|
@@ -30,9 +29,9 @@ module RShade
|
|
30
29
|
sort_hash(hash)
|
31
30
|
end
|
32
31
|
|
33
|
-
def sort_hash(
|
32
|
+
def sort_hash(hash)
|
34
33
|
{}.tap do |h2|
|
35
|
-
|
34
|
+
hash.sort.each do |k, v|
|
36
35
|
h2[k] = v.is_a?(Hash) ? sort_hash(v) : v
|
37
36
|
end
|
38
37
|
end
|
data/lib/rshade/rspec/rspec.rb
CHANGED
@@ -26,14 +26,9 @@ module RShade
|
|
26
26
|
String => ->(value) { value },
|
27
27
|
Hash => lambda do |value|
|
28
28
|
hash = {}
|
29
|
-
|
30
|
-
|
31
|
-
hash[k] = traverse(v)
|
32
|
-
end
|
33
|
-
rescue Exception => e
|
34
|
-
binding.pry
|
29
|
+
value.each do |k, v|
|
30
|
+
hash[k] = traverse(v)
|
35
31
|
end
|
36
|
-
|
37
32
|
hash
|
38
33
|
end,
|
39
34
|
Array => lambda do |value|
|
data/lib/rshade/stack.rb
CHANGED
data/lib/rshade/stack_frame.rb
CHANGED
@@ -30,7 +30,7 @@ module RShade
|
|
30
30
|
type = value.is_a?(Class) ? value : value.class
|
31
31
|
memo[var_name] = {
|
32
32
|
name: var_name,
|
33
|
-
value
|
33
|
+
value: value,
|
34
34
|
type: type.to_s
|
35
35
|
}
|
36
36
|
end
|
@@ -39,11 +39,12 @@ module RShade
|
|
39
39
|
type = value.is_a?(Class) ? value : value.class
|
40
40
|
memo[var_name] = {
|
41
41
|
name: var_name,
|
42
|
-
value
|
42
|
+
value: value,
|
43
43
|
type: type.to_s
|
44
44
|
}
|
45
45
|
end
|
46
|
-
hash = { source_location
|
46
|
+
hash = { source_location: source_location, local_vars: local_vars, source: {},
|
47
|
+
receiver_variables: receiver_variables }
|
47
48
|
new(hash)
|
48
49
|
end
|
49
50
|
|
@@ -32,12 +32,12 @@ module RShade
|
|
32
32
|
private
|
33
33
|
|
34
34
|
# more info https://rubyapi.org/3.1/o/tracepoint
|
35
|
-
# @param [TracePoint]
|
36
|
-
def process(
|
35
|
+
# @param [TracePoint] trace_point
|
36
|
+
def process(trace_point)
|
37
37
|
changed
|
38
|
-
event = Event.from_trace_point(
|
39
|
-
return notify_observers(event, :enter) if CALL_EVENTS.include?(
|
40
|
-
return notify_observers(event, :leave) if RETURN_EVENTS.include?(
|
38
|
+
event = Event.from_trace_point(trace_point)
|
39
|
+
return notify_observers(event, :enter) if CALL_EVENTS.include?(trace_point.event)
|
40
|
+
return notify_observers(event, :leave) if RETURN_EVENTS.include?(trace_point.event)
|
41
41
|
|
42
42
|
notify_observers(event, :other)
|
43
43
|
end
|
data/lib/rshade/version.rb
CHANGED
data/rshade.gemspec
CHANGED
@@ -25,7 +25,7 @@ Gem::Specification.new do |spec|
|
|
25
25
|
spec.metadata['changelog_uri'] = 'https://github.com/gingray/rshade/CHANGELOG.md'
|
26
26
|
else
|
27
27
|
raise 'RubyGems 2.0 or newer is required to protect against ' \
|
28
|
-
|
28
|
+
'public gem pushes.'
|
29
29
|
end
|
30
30
|
|
31
31
|
# Specify which files should be added to the gem when it is released.
|
@@ -36,12 +36,11 @@ Gem::Specification.new do |spec|
|
|
36
36
|
spec.bindir = 'exe'
|
37
37
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
38
38
|
spec.require_paths = ['lib']
|
39
|
+
spec.required_ruby_version = '>= 2.7.0'
|
39
40
|
|
40
|
-
spec.
|
41
|
-
spec.
|
42
|
-
spec.
|
41
|
+
spec.add_dependency 'binding_of_caller'
|
42
|
+
spec.add_dependency 'colorize'
|
43
|
+
spec.add_dependency 'prism'
|
43
44
|
|
44
|
-
spec.
|
45
|
-
spec.add_development_dependency 'rake', '>= 12.3.3'
|
46
|
-
spec.add_development_dependency 'rspec', '~> 3.0'
|
45
|
+
spec.metadata['rubygems_mfa_required'] = 'true'
|
47
46
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rshade
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ivan Lopatin
|
@@ -52,48 +52,6 @@ dependencies:
|
|
52
52
|
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: bundler
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - "~>"
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: 2.2.33
|
62
|
-
type: :development
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - "~>"
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: 2.2.33
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: rake
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - ">="
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: 12.3.3
|
76
|
-
type: :development
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - ">="
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: 12.3.3
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: rspec
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - "~>"
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: '3.0'
|
90
|
-
type: :development
|
91
|
-
prerelease: false
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
-
requirements:
|
94
|
-
- - "~>"
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: '3.0'
|
97
55
|
description: https://github.com/gingray/rshade
|
98
56
|
email:
|
99
57
|
- gingray.dev@gmail.com
|
@@ -103,6 +61,7 @@ extra_rdoc_files: []
|
|
103
61
|
files:
|
104
62
|
- ".gitignore"
|
105
63
|
- ".rspec"
|
64
|
+
- ".rubocop.yml"
|
106
65
|
- ".travis.yml"
|
107
66
|
- Gemfile
|
108
67
|
- Gemfile.lock
|
@@ -137,7 +96,6 @@ files:
|
|
137
96
|
- lib/rshade/formatter/trace/json.rb
|
138
97
|
- lib/rshade/formatter/trace/stdout.rb
|
139
98
|
- lib/rshade/formatter/trace/string.rb
|
140
|
-
- lib/rshade/rails/rails.rb
|
141
99
|
- lib/rshade/rspec/rspec.rb
|
142
100
|
- lib/rshade/serializer/traversal.rb
|
143
101
|
- lib/rshade/stack.rb
|
@@ -156,6 +114,7 @@ metadata:
|
|
156
114
|
homepage_uri: https://github.com/gingray/rshade
|
157
115
|
source_code_uri: https://github.com/gingray/rshade
|
158
116
|
changelog_uri: https://github.com/gingray/rshade/CHANGELOG.md
|
117
|
+
rubygems_mfa_required: 'true'
|
159
118
|
post_install_message:
|
160
119
|
rdoc_options: []
|
161
120
|
require_paths:
|
@@ -164,7 +123,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
164
123
|
requirements:
|
165
124
|
- - ">="
|
166
125
|
- !ruby/object:Gem::Version
|
167
|
-
version:
|
126
|
+
version: 2.7.0
|
168
127
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
169
128
|
requirements:
|
170
129
|
- - ">="
|
data/lib/rshade/rails/rails.rb
DELETED
File without changes
|