123456789_123456789_123456789_123456789_123456789_

Class: Gem::Specification

Relationships & Source Files
Namespace Children
Modules:
Extension / Inclusion / Inheritance Descendants
Subclasses:
Super Chains via Extension / Inclusion / Inheritance
Instance Chain:
Inherits: Object
Defined in: lib/bundler/rubygems_ext.rb

Instance Attribute Summary

Instance Method Summary

Instance Attribute Details

#insecurely_materialized?Boolean (readonly)

[ GitHub ]

  
# File 'lib/bundler/rubygems_ext.rb', line 305

def insecurely_materialized?
  false
end

#installation_missing?Boolean (readonly)

[ GitHub ]

  
# File 'lib/bundler/rubygems_ext.rb', line 332

def installation_missing?
  !default_gem? && !File.directory?(full_gem_path)
end

#relative_loaded_from (rw)

[ GitHub ]

  
# File 'lib/bundler/rubygems_ext.rb', line 237

attr_accessor :remote, :relative_loaded_from

#remote (rw)

[ GitHub ]

  
# File 'lib/bundler/rubygems_ext.rb', line 237

attr_accessor :remote, :relative_loaded_from

Instance Method Details

#build_info_dir

[ GitHub ]

  
# File 'lib/bundler/rubygems_ext.rb', line 285

def build_info_dir
  # A git checkout's build logs belong with that checkout's extension build.
  # base_dir points at the directory holding every checkout, so logs keyed by
  # full_name would collide between revisions of the same gem and would sit
  # outside anything `bundle clean` prunes. extension_dir is unique per
  # revision and goes away with the checkout.
  if source.respond_to?(:extension_dir_name)
    extension_dir
  else
    rg_build_info_dir
  end
end

#dependencies_to_gemfile(dependencies, group = nil) (private)

[ GitHub ]

  
# File 'lib/bundler/rubygems_ext.rb', line 360

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

#extension_dir

[ GitHub ]

  
# File 'lib/bundler/rubygems_ext.rb', line 273

def extension_dir
  # following instance variable is already used in original method
  # and that is the reason to prefix it with bundler_ and add rubocop exception
  @bundler_extension_dir ||= if source.respond_to?(:extension_dir_name) # rubocop:disable Naming/MemoizedInstanceVariableName
    unique_extension_dir = [source.extension_dir_name, File.basename(full_gem_path)].uniq.join("-")
    File.expand_path(File.join(extensions_dir, unique_extension_dir))
  else
    rg_extension_dir
  end
end

#full_gem_path

[ GitHub ]

  
# File 'lib/bundler/rubygems_ext.rb', line 252

def full_gem_path
  if source.respond_to?(:root)
    File.expand_path(File.dirname(loaded_from), source.root)
  else
    rg_full_gem_path
  end
end

#gem_dir

[ GitHub ]

  
# File 'lib/bundler/rubygems_ext.rb', line 301

def gem_dir
  full_gem_path
end

#git_version

[ GitHub ]

  
# File 'lib/bundler/rubygems_ext.rb', line 313

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

#groups

[ GitHub ]

  
# File 'lib/bundler/rubygems_ext.rb', line 309

def groups
  @groups ||= []
end

#load_paths

[ GitHub ]

  
# File 'lib/bundler/rubygems_ext.rb', line 268

def load_paths
  full_require_paths
end

#loaded_from

[ GitHub ]

  
# File 'lib/bundler/rubygems_ext.rb', line 260

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

#lock_name

[ GitHub ]

  
# File 'lib/bundler/rubygems_ext.rb', line 336

def lock_name
  @lock_name ||= name_tuple.lock_name
end

#nondevelopment_dependencies

[ GitHub ]

  
# File 'lib/bundler/rubygems_ext.rb', line 328

def nondevelopment_dependencies
  dependencies - development_dependencies
end

#rg_build_info_dir

[ GitHub ]

  
# File 'lib/bundler/rubygems_ext.rb', line 284

alias_method :rg_build_info_dir, :build_info_dir

#rg_extension_dir

[ GitHub ]

  
# File 'lib/bundler/rubygems_ext.rb', line 272

alias_method :rg_extension_dir, :extension_dir

#rg_full_gem_path

[ GitHub ]

  
# File 'lib/bundler/rubygems_ext.rb', line 249

alias_method :rg_full_gem_path, :full_gem_path

#rg_loaded_from

[ GitHub ]

  
# File 'lib/bundler/rubygems_ext.rb', line 250

alias_method :rg_loaded_from,   :loaded_from

#to_gemfile(path = nil)

[ GitHub ]

  
# File 'lib/bundler/rubygems_ext.rb', line 318

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

#validate_for_resolution

[ GitHub ]

  
# File 'lib/bundler/rubygems_ext.rb', line 341

def validate_for_resolution
  SpecificationPolicy.new(self).validate_for_resolution
end