class Gem::Specification
Attributes
location[RW]
relative_loaded_from[RW]
remote[RW]
source[W]
Public Instance Methods
extension_dir()
click to toggle source
# File bundler/rubygems_ext.rb, line 52 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
full_gem_path()
click to toggle source
# File bundler/rubygems_ext.rb, line 26 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.expand_path(source.root).to_s.tap{|x| x.untaint if RUBY_VERSION < "2.7" } else rg_full_gem_path end end
Also aliased as: rg_full_gem_path
gem_dir()
click to toggle source
# File bundler/rubygems_ext.rb, line 62 def gem_dir full_gem_path end
git_version()
click to toggle source
# File bundler/rubygems_ext.rb, line 70 def git_version return unless loaded_from && source.is_a?(Bundler::Source::Git) " #{source.revision[0..6]}" end
groups()
click to toggle source
# File bundler/rubygems_ext.rb, line 66 def groups @groups ||= [] end
load_paths()
click to toggle source
# File bundler/rubygems_ext.rb, line 46 def load_paths full_require_paths end
loaded_from()
click to toggle source
# File bundler/rubygems_ext.rb, line 38 def loaded_from if relative_loaded_from source.path.join(relative_loaded_from).to_s else rg_loaded_from end end
Also aliased as: rg_loaded_from
nondevelopment_dependencies()
click to toggle source
# File bundler/rubygems_ext.rb, line 85 def nondevelopment_dependencies dependencies - development_dependencies end
source()
click to toggle source
# File bundler/rubygems_ext.rb, line 19 def source (defined?(@source) && @source) || Gem::Source::Installed.new end
to_gemfile(path = nil)
click to toggle source
# File bundler/rubygems_ext.rb, line 75 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
Private Instance Methods
dependencies_to_gemfile(dependencies, group = nil)
click to toggle source
# File bundler/rubygems_ext.rb, line 91 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