class Gem::Specification

def dependencies_to_gemfile(dependencies, group = nil)

def dependencies_to_gemfile(dependencies, group = nil)
  gemfile = String.new
  if dependencies.any?
    gemfile << "group :#{group} do\n" if group
    dependencies.each do |dependency|
      gemfile << "  " if group
      gemfile << %(gem "#{dependency.name}")
      req = dependency.requirements_list.first
      gemfile << %(, "#{req}") if req
      gemfile << "\n"
    end
    gemfile << "end\n" if group
  end
  gemfile
end

def extension_dir

def extension_dir
  @bundler_extension_dir ||= if source.respond_to?(:extension_dir_name)
    File.expand_path(File.join(extensions_dir, source.extension_dir_name))
  else
    rg_extension_dir
  end
end

def full_gem_path

def full_gem_path
  if source.respond_to?(:path)
    Pathname.new(loaded_from).dirname.expand_path(Bundler.root).to_s.untaint
  else
    rg_full_gem_path
  end
end

def gem_dir

def gem_dir
  full_gem_path
end

def git_version

def git_version
  return unless loaded_from && source.is_a?(Bundler::Source::Git)
  " #{source.revision[0..6]}"
end

def groups

def groups
  @groups ||= []
end

def load_paths

def load_paths
  return full_require_paths if respond_to?(:full_require_paths)
  require_paths.map do |require_path|
    if require_path.include?(full_gem_path)
      require_path
    else
      File.join(full_gem_path, require_path)
    end
  end
end

def loaded_from

def loaded_from
  if relative_loaded_from
    source.path.join(relative_loaded_from).to_s
  else
    rg_loaded_from
  end
end

def nondevelopment_dependencies

def nondevelopment_dependencies
  dependencies - development_dependencies
end

def to_gemfile(path = nil)

def to_gemfile(path = nil)
  gemfile = String.new("source 'https://rubygems.org'\n")
  gemfile << dependencies_to_gemfile(nondevelopment_dependencies)
  unless development_dependencies.empty?
    gemfile << "\n"
    gemfile << dependencies_to_gemfile(development_dependencies, :development)
  end
  gemfile
end