[ruby/psych] Get rid of anonymous eval calls

Things declared in anonymous eval are always annoying to locate.

https://github.com/ruby/psych/commit/38871ad4e5
This commit is contained in:
Jean Boussier 2023-01-11 11:00:58 +01:00 коммит произвёл git
Родитель e85ef212de
Коммит 3161fd4372
4 изменённых файлов: 7 добавлений и 7 удалений

Просмотреть файл

@ -35,7 +35,7 @@ module Psych
constants.each do |const|
konst = const_get const
class_eval <<~RUBY
class_eval <<~RUBY, __FILE__, __LINE__ + 1
def #{const.to_s.downcase}
load #{konst.inspect}
end

Просмотреть файл

@ -41,7 +41,7 @@ module Psych
Sequence
Mapping
}.each do |node|
class_eval %{
class_eval <<~RUBY, __FILE__, __LINE__ + 1
def start_#{node.downcase}(anchor, tag, implicit, style)
n = Nodes::#{node}.new(anchor, tag, implicit, style)
set_start_location(n)
@ -54,7 +54,7 @@ module Psych
set_end_location(n)
n
end
}
RUBY
end
###

Просмотреть файл

@ -13,13 +13,13 @@ module Psych
(Handler.instance_methods(true) -
Object.instance_methods).each do |m|
class_eval %{
class_eval <<~RUBY, __FILE__, __LINE__ + 1
def #{m} *args
@strings += args.flatten.find_all { |a|
String === a
}
end
}
RUBY
end
end

Просмотреть файл

@ -16,13 +16,13 @@ module Psych
(Handler.instance_methods(true) -
Object.instance_methods).each do |m|
class_eval %{
class_eval <<~RUBY, __FILE__, __LINE__ + 1
def #{m} *args
super
@marks << @parser.mark if @parser
@calls << [:#{m}, args]
end
}
RUBY
end
end