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