class Gem::Specification

def add_bundler_dependencies(*groups)

def add_bundler_dependencies(*groups)
  groups = [:default] if groups.empty?
  Bundler.definition.dependencies.each do |dep|
    if dep.groups.include?(:development)
      self.add_development_dependency(dep.name, dep.requirement.to_s)
    elsif (dep.groups & groups).any?
      self.add_dependency(dep.name, dep.requirement.to_s)
    end
  end
end

def dependencies_to_gemfile(dependencies, group = nil)

def dependencies_to_gemfile(dependencies, group = nil)
  gemfile = ''
  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 git_version

def git_version
  if @loaded_from && File.exist?(File.join(full_gem_path, ".git"))
    sha = Dir.chdir(full_gem_path){ `git rev-parse HEAD`.strip }
    branch = full_gem_path.split("-")[3]
    (branch && branch != sha) ? " #{branch}-#{sha[0...6]}" : " #{sha[0...6]}"
  end
end

def groups

def groups
  @groups ||= []
end

def load_paths

def load_paths
  require_paths.map {|p| File.join(full_gem_path, p) }
end

def nondevelopment_dependencies

def nondevelopment_dependencies
  dependencies - development_dependencies
end

def required_by

def required_by
  @required_by ||= []
end

def to_gemfile(path = nil)

def to_gemfile(path = nil)
  gemfile = "source :gemcutter\n"
  gemfile << dependencies_to_gemfile(nondevelopment_dependencies)
  unless development_dependencies.empty?
    gemfile << "\n"
    gemfile << dependencies_to_gemfile(development_dependencies, :development)
  end
  gemfile
end