class Ruboty::Handlers::Bundler::Gems

Public Class Methods

new(gemfile_content: nil, gemfile_lock_content: nil) click to toggle source

@param gemfile_content [String] @param gemfile_lcok_content [String]

# File lib/ruboty/handlers/bundler.rb, line 192
def initialize(gemfile_content: nil, gemfile_lock_content: nil)
  @gemfile_content = gemfile_content
  @gemfile_lock_content = gemfile_lock_content
end

Public Instance Methods

add(gem_name, version: nil) click to toggle source
# File lib/ruboty/handlers/bundler.rb, line 197
def add(gem_name, version: nil)
  dependencies.reject! do |dependency|
    dependency.name == gem_name
  end
  dependencies << ::Bundler::Dependency.new(gem_name, version || ">= 0")
end
delete(gem_name) click to toggle source
# File lib/ruboty/handlers/bundler.rb, line 204
def delete(gem_name)
  raise GemNotFound if dependencies.all? {|dependency| dependency.name != gem_name }
  dependencies.reject! do |dependency|
    dependency.name == gem_name
  end
end
dependencies() click to toggle source
# File lib/ruboty/handlers/bundler.rb, line 211
def dependencies
  @dependencies ||= ::Bundler::Dsl.evaluate(
    gemfile_file.path,
    gemfile_lock_file.path,
    {},
  ).dependencies
end

Private Instance Methods

gemfile_file() click to toggle source
# File lib/ruboty/handlers/bundler.rb, line 221
def gemfile_file
  @gemfile_file ||= Tempfile.new("Gemfile").tap do |file|
    file.write(@gemfile_content)
    file.flush
  end
end
gemfile_lock_file() click to toggle source
# File lib/ruboty/handlers/bundler.rb, line 228
def gemfile_lock_file
  @gemfile_lock_file ||= Tempfile.new("Gemfile.lock").tap do |file|
    file.write(@gemfile_lock_content)
    file.flush
  end
end