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



26
27
28
# File 'lib/avm/eac_ruby_base1/bundler/gemfile/add_or_replace_gem_line.rb', line 26

def add_line
  lines.insert(add_line_index, new_gem_line)
end

#add_line_indexObject



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

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



14
15
16
# File 'lib/avm/eac_ruby_base1/bundler/gemfile/add_or_replace_gem_line.rb', line 14

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

#gem_line_prefixObject



45
46
47
# File 'lib/avm/eac_ruby_base1/bundler/gemfile/add_or_replace_gem_line.rb', line 45

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

#gems_lines_start_indexObject



37
38
39
# File 'lib/avm/eac_ruby_base1/bundler/gemfile/add_or_replace_gem_line.rb', line 37

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

#new_gem_lineObject



41
42
43
# File 'lib/avm/eac_ruby_base1/bundler/gemfile/add_or_replace_gem_line.rb', line 41

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

#replace_lineObject



49
50
51
# File 'lib/avm/eac_ruby_base1/bundler/gemfile/add_or_replace_gem_line.rb', line 49

def replace_line
  lines[existing_gem_line_index] = new_gem_line
end

#resultObject



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

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