Class: Gem::Specification
Relationships & Source Files | |
Extension / Inclusion / Inheritance Descendants | |
Subclasses:
|
|
Super Chains via Extension / Inclusion / Inheritance | |
Instance Chain:
|
|
Inherits: | Object |
Defined in: | lib/bundler/rubygems_ext.rb, lib/bundler/rubygems_ext.rb |
Constant Summary
::Bundler::GemHelpers
- Included
Instance Attribute Summary
- #full_gem_path rw
- #full_gem_path=(value) rw
- #location rw
- #relative_loaded_from rw
- #remote rw
- #source rw
- #source=(value) rw
Instance Method Summary
- #extension_dir
- #gem_dir
- #git_version
- #groups
- #load_paths
- #loaded_from
- #nondevelopment_dependencies
- #rg_extension_dir
- #rg_full_gem_path
- #rg_loaded_from
- #to_gemfile(path = nil)
- #dependencies_to_gemfile(dependencies, group = nil) private
::Bundler::MatchPlatform
- Included
::Bundler::GemHelpers
- Included
Instance Attribute Details
#full_gem_path (rw)
[ GitHub ]# File 'lib/bundler/rubygems_ext.rb', line 45
def full_gem_path # this cannot check source.is_a?(Bundler::Plugin::API::Source) # because that _could_ trip the autoload, and if there are unresolved # gems at that time, this method could be called inside another require, # thus raising with that constant being undefined. Better to check a method if source.respond_to?(:path) || (source.respond_to?(:bundler_plugin_api_source?) && source.bundler_plugin_api_source?) Pathname.new(loaded_from).dirname. (source.root).to_s.untaint else rg_full_gem_path end end
#full_gem_path=(value) (rw)
[ GitHub ]# File 'lib/bundler/rubygems_ext.rb', line 43
attr_writer :full_gem_path unless instance_methods.include?(:full_gem_path=)
#location (rw)
[ GitHub ]# File 'lib/bundler/rubygems_ext.rb', line 28
attr_accessor :remote, :location, :relative_loaded_from
#relative_loaded_from (rw)
[ GitHub ]#remote (rw)
[ GitHub ]# File 'lib/bundler/rubygems_ext.rb', line 28
attr_accessor :remote, :location, :relative_loaded_from
#source (rw)
[ GitHub ]# File 'lib/bundler/rubygems_ext.rb', line 33
def source (defined?(@source) && @source) || Gem::Source::Installed.new end
#source=(value) (rw)
[ GitHub ]# File 'lib/bundler/rubygems_ext.rb', line 32
attr_writer :source
Instance Method Details
#dependencies_to_gemfile(dependencies, group = nil) (private)
[ GitHub ]# File 'lib/bundler/rubygems_ext.rb', line 121
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 79
def extension_dir @bundler_extension_dir ||= if source.respond_to?(:extension_dir_name) File. (File.join(extensions_dir, source.extension_dir_name)) else rg_extension_dir end end
#gem_dir
[ GitHub ]# File 'lib/bundler/rubygems_ext.rb', line 92
def gem_dir full_gem_path end
#git_version
[ GitHub ]#groups
[ GitHub ]# File 'lib/bundler/rubygems_ext.rb', line 96
def groups @groups ||= [] end
#load_paths
[ GitHub ]# File 'lib/bundler/rubygems_ext.rb', line 65
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
#loaded_from
[ GitHub ]# File 'lib/bundler/rubygems_ext.rb', line 57
def loaded_from if relative_loaded_from source.path.join(relative_loaded_from).to_s else rg_loaded_from end end
#nondevelopment_dependencies
[ GitHub ]# File 'lib/bundler/rubygems_ext.rb', line 115
def nondevelopment_dependencies dependencies - development_dependencies end
#rg_extension_dir
[ GitHub ]# File 'lib/bundler/rubygems_ext.rb', line 78
alias_method :rg_extension_dir, :extension_dir
#rg_full_gem_path
[ GitHub ]# File 'lib/bundler/rubygems_ext.rb', line 40
alias_method :rg_full_gem_path, :full_gem_path
#rg_loaded_from
[ GitHub ]# File 'lib/bundler/rubygems_ext.rb', line 41
alias_method :rg_loaded_from, :loaded_from
#to_gemfile(path = nil)
[ GitHub ]# File 'lib/bundler/rubygems_ext.rb', line 105
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