class RSGem::Tasks::AddDependency

Constants

OUTPUT

Public Instance Methods

perform() click to toggle source
# File lib/rsgem/tasks/add_dependency.rb, line 8
def perform
  return if already_installed?

  add_dependency
  write_to_gemspec
  dependency.install(context)
end

Private Instance Methods

add_dependency() click to toggle source
# File lib/rsgem/tasks/add_dependency.rb, line 18
def add_dependency
  gemspec_file.gsub!(/end\n\z/, code)
  gemspec_file << "\nend"
end
already_installed?() click to toggle source
# File lib/rsgem/tasks/add_dependency.rb, line 23
def already_installed?
  gemspec_file.match? Regexp.new("('|\")#{dependency.name}('|\")")
end
code() click to toggle source
# File lib/rsgem/tasks/add_dependency.rb, line 27
def code
  text = ["  spec.add_#{dependency.mode}_dependency '#{dependency.name}'", dependency.version]
  text.compact.join(', ')
end
dependency() click to toggle source
# File lib/rsgem/tasks/add_dependency.rb, line 32
def dependency
  args[:dependency]
end
gemspec_file() click to toggle source
# File lib/rsgem/tasks/add_dependency.rb, line 36
def gemspec_file
  @gemspec_file ||= File.read(context.gemspec_path)
end
output_name() click to toggle source
# File lib/rsgem/tasks/add_dependency.rb, line 40
def output_name
  "Install #{dependency.name.capitalize}"
end
write_to_gemspec() click to toggle source
# File lib/rsgem/tasks/add_dependency.rb, line 44
def write_to_gemspec
  File.open(context.gemspec_path, 'w') do |file|
    file.puts gemspec_file
  end
end