lib/tapioca/gem/pipeline.rb in tapioca-0.7.3 vs lib/tapioca/gem/pipeline.rb in tapioca-0.8.0
- old
+ new
@@ -85,10 +85,11 @@
sig { params(symbol_name: String).returns(T::Boolean) }
def symbol_in_payload?(symbol_name)
symbol_name = symbol_name[2..-1] if symbol_name.start_with?("::")
return false unless symbol_name
+
@payload_symbols.include?(symbol_name)
end
sig { params(method: UnboundMethod).returns(T::Boolean) }
def method_in_gem?(method)
@@ -100,13 +101,15 @@
sig { params(constant: Module).returns(T.nilable(String)) }
def name_of(constant)
name = name_of_proxy_target(constant, super(class_of(constant)))
return name if name
+
name = super(constant)
return if name.nil?
return unless are_equal?(constant, constantize(name, inherit: true))
+
name = "Struct" if name =~ /^(::)?Struct::[^:]+$/
name
end
private
@@ -348,9 +351,10 @@
end
sig { params(constant: Module, class_name: T.nilable(String)).returns(T.nilable(String)) }
def name_of_proxy_target(constant, class_name)
return unless class_name == "ActiveSupport::Deprecation::DeprecatedConstantProxy"
+
# We are dealing with a ActiveSupport::Deprecation::DeprecatedConstantProxy
# so try to get the name of the target class
begin
target = constant.__send__(:target)
rescue NoMethodError