class Dependabot::Bundler::FileUpdater::GitSourceRemover::Rewriter
Constants
- GOOD_KEYS
TODO: Hack until
Bundler
1.16.0 is available on Heroku
Attributes
dependency[R]
Public Class Methods
new(dependency:)
click to toggle source
# File lib/dependabot/bundler/file_updater/git_source_remover.rb, line 33 def initialize(dependency:) @dependency = dependency end
Public Instance Methods
on_send(node)
click to toggle source
# File lib/dependabot/bundler/file_updater/git_source_remover.rb, line 37 def on_send(node) return unless declares_targeted_gem?(node) return unless node.children.last.type == :hash kwargs_node = node.children.last keys = kwargs_node.children.map do |hash_pair| key_from_hash_pair(hash_pair) end if keys.none? { |key| GOOD_KEYS.include?(key) } remove_all_kwargs(node) else remove_git_related_kwargs(kwargs_node) end end
Private Instance Methods
declares_targeted_gem?(node)
click to toggle source
# File lib/dependabot/bundler/file_updater/git_source_remover.rb, line 55 def declares_targeted_gem?(node) return false unless node.children[1] == :gem node.children[2].children.first == dependency.name end
key_from_hash_pair(node)
click to toggle source
# File lib/dependabot/bundler/file_updater/git_source_remover.rb, line 61 def key_from_hash_pair(node) node.children.first.children.first.to_sym end
remove_all_kwargs(node)
click to toggle source
# File lib/dependabot/bundler/file_updater/git_source_remover.rb, line 65 def remove_all_kwargs(node) kwargs_node = node.children.last range_to_remove = kwargs_node.loc.expression.join(node.children[-2].loc.end.end) remove(range_to_remove) end