Class: Avm::EacRubyBase1::Bundler::Gemfile::AddOrReplaceGemLine

Inherits:
Object
  • Object
show all
Defined in:
lib/avm/eac_ruby_base1/bundler/gemfile/add_or_replace_gem_line.rb

Instance Method Summary collapse

Instance Method Details

#add_lineObject



24
25
26
# File 'lib/avm/eac_ruby_base1/bundler/gemfile/add_or_replace_gem_line.rb', line 24

def add_line
  lines.insert(add_line_index, new_gem_line)
end

#add_line_indexObject



28
29
30
31
32
33
# File 'lib/avm/eac_ruby_base1/bundler/gemfile/add_or_replace_gem_line.rb', line 28

def add_line_index
  (gems_lines_start_index..(lines.count - 1)).each do |e|
    return e if new_gem_line < lines[e]
  end
  lines.count
end

#existing_gem_line_indexObject



12
13
14
# File 'lib/avm/eac_ruby_base1/bundler/gemfile/add_or_replace_gem_line.rb', line 12

def existing_gem_line_index
  lines.index { |line| line.start_with?(gem_line_prefix) }
end

#gem_line_prefixObject



43
44
45
# File 'lib/avm/eac_ruby_base1/bundler/gemfile/add_or_replace_gem_line.rb', line 43

def gem_line_prefix
  "gem '#{gem_name}'"
end

#gems_lines_start_indexObject



35
36
37
# File 'lib/avm/eac_ruby_base1/bundler/gemfile/add_or_replace_gem_line.rb', line 35

def gems_lines_start_index
  lines.index { |line| line.start_with?('gem ') } || lines.count
end

#new_gem_lineObject



39
40
41
# File 'lib/avm/eac_ruby_base1/bundler/gemfile/add_or_replace_gem_line.rb', line 39

def new_gem_line
  ([gem_line_prefix] + gem_specs).join(', ')
end

#replace_lineObject



47
48
49
# File 'lib/avm/eac_ruby_base1/bundler/gemfile/add_or_replace_gem_line.rb', line 47

def replace_line
  lines[existing_gem_line_index] = new_gem_line
end

#resultObject



16
17
18
19
20
21
22
# File 'lib/avm/eac_ruby_base1/bundler/gemfile/add_or_replace_gem_line.rb', line 16

def result
  if existing_gem_line_index.present?
    replace_line
  else
    add_line
  end
end