Class: Dependabot::Bundler::FileUpdater::GitPinReplacer

Inherits:
Object
  • Object
show all
Extended by:
T::Sig
Defined in:
lib/dependabot/bundler/file_updater/git_pin_replacer.rb

Defined Under Namespace

Classes: Rewriter

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(dependency:, new_pin:) ⇒ GitPinReplacer

Returns a new instance of GitPinReplacer.



21
22
23
24
# File 'lib/dependabot/bundler/file_updater/git_pin_replacer.rb', line 21

def initialize(dependency:, new_pin:)
  @dependency = T.let(dependency, Dependabot::Dependency)
  @new_pin = T.let(new_pin, String)
end

Instance Attribute Details

#dependencyObject (readonly)

Returns the value of attribute dependency.



15
16
17
# File 'lib/dependabot/bundler/file_updater/git_pin_replacer.rb', line 15

def dependency
  @dependency
end

#new_pinObject (readonly)

Returns the value of attribute new_pin.



18
19
20
# File 'lib/dependabot/bundler/file_updater/git_pin_replacer.rb', line 18

def new_pin
  @new_pin
end

Instance Method Details

#rewrite(content) ⇒ Object



27
28
29
30
31
32
33
34
35
# File 'lib/dependabot/bundler/file_updater/git_pin_replacer.rb', line 27

def rewrite(content)
  buffer = Parser::Source::Buffer.new("(gemfile_content)")
  buffer.source = content
  ast = Parser::CurrentRuby.new.parse(buffer)

  Rewriter
    .new(dependency: dependency, new_pin: new_pin)
    .rewrite(buffer, ast)
end