Module: GemfileLocker::GemEntry::GitRef

Included in:
GemfileLocker::GemEntry
Defined in:
lib/gemfile_locker/gem_entry/git_ref.rb

Instance Method Summary collapse

Instance Method Details

#has_git_tag?Boolean

Returns:

  • (Boolean)


15
16
17
# File 'lib/gemfile_locker/gem_entry/git_ref.rb', line 15

def has_git_tag?
  git_option_nodes.any? { |pair| pair.children[0].children[0] == :tag }
end

#lock(options) ⇒ Object



4
5
6
7
8
# File 'lib/gemfile_locker/gem_entry/git_ref.rb', line 4

def lock(options)
  git_ref = options[:git_ref]
  set_git_ref(git_ref) if git_ref && !has_git_tag?
  super
end

#remove_git_refObject



28
29
30
31
# File 'lib/gemfile_locker/gem_entry/git_ref.rb', line 28

def remove_git_ref
  ref_node = ref_option_node
  remove_node_with_comma(ref_node) if ref_node
end

#set_git_ref(ref) ⇒ Object

rubocop:disable AccessorMethodName



19
20
21
22
23
24
25
26
# File 'lib/gemfile_locker/gem_entry/git_ref.rb', line 19

def set_git_ref(ref) # rubocop:disable AccessorMethodName
  ref_node = ref_option_node
  return replace_string_node(ref_node.children[1], ref) if ref_node
  git_nodes = git_option_nodes
  insert_after_node = git_nodes.any? ? git_nodes.last : node.children.last
  quote = name_quote
  rewriter.insert_after(insert_after_node.loc.expression.end, ", ref: #{quote}#{ref}#{quote}")
end

#unlockObject



10
11
12
13
# File 'lib/gemfile_locker/gem_entry/git_ref.rb', line 10

def unlock
  remove_git_ref
  super
end