Class: Gem::Specification
Relationships & Source Files | |
Namespace Children | |
Modules:
| |
Extension / Inclusion / Inheritance Descendants | |
Subclasses:
|
|
Super Chains via Extension / Inclusion / Inheritance | |
Class Chain:
self,
RequirePathFlattener
|
|
Instance Chain:
|
|
Inherits: | Object |
Defined in: | lib/bundler/rubygems_ext.rb |
Constant Summary
-
LATEST_RUBY_WITHOUT_PATCH_VERSIONS =
# File 'lib/bundler/rubygems_ext.rb', line 137Gem::Version.new("2.1")
::Bundler::GemHelpers
- Included
Instance Attribute Summary
- #deleted_gem? ⇒ Boolean readonly
- #insecurely_materialized? ⇒ Boolean readonly
- #relative_loaded_from rw
- #remote rw
- #required_ruby_version=(req) writeonly
AllowSettingSource
- Included
::Bundler::GemHelpers
- Included
::Bundler::MatchMetadata
- Included
Instance Method Summary
- #extension_dir
- #flatten_require_paths
- #full_gem_path
- #gem_dir
- #git_version
- #groups
- #load_paths
- #loaded_from
- #nondevelopment_dependencies
- #rg_extension_dir
- #rg_full_gem_path
- #rg_loaded_from
- #rg_required_ruby_version=
- #to_gemfile(path = nil)
- #validate_for_resolution
- #dependencies_to_gemfile(dependencies, group = nil) private
::Bundler::MatchPlatform
- Included
::Bundler::GemHelpers
- Included
Instance Attribute Details
#deleted_gem? ⇒ Boolean
(readonly)
[ GitHub ]
# File 'lib/bundler/rubygems_ext.rb', line 180
def deleted_gem? !default_gem? && !File.directory?(full_gem_path) end
#insecurely_materialized? ⇒ Boolean
(readonly)
[ GitHub ]
# File 'lib/bundler/rubygems_ext.rb', line 153
def insecurely_materialized? false end
#relative_loaded_from (rw)
[ GitHub ]# File 'lib/bundler/rubygems_ext.rb', line 82
attr_accessor :remote, :relative_loaded_from
#remote (rw)
[ GitHub ]# File 'lib/bundler/rubygems_ext.rb', line 82
attr_accessor :remote, :relative_loaded_from
#required_ruby_version=(req) (writeonly)
[ GitHub ]# File 'lib/bundler/rubygems_ext.rb', line 140
def required_ruby_version=(req) self.rg_required_ruby_version = req @required_ruby_version.requirements.map! do |op, v| if v >= LATEST_RUBY_WITHOUT_PATCH_VERSIONS && v.release.segments.size == 4 [op == "~>" ? "=" : op, Gem::Version.new(v.segments.tap {|s| s.delete_at(3) }.join("."))] else [op, v] end end end
Instance Method Details
#dependencies_to_gemfile(dependencies, group = nil) (private)
[ GitHub ]# File 'lib/bundler/rubygems_ext.rb', line 213
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 118
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. (File.join(extensions_dir, unique_extension_dir)) else rg_extension_dir end end
#flatten_require_paths
[ GitHub ]# File 'lib/bundler/rubygems_ext.rb', line 191
def flatten_require_paths return unless raw_require_paths.first.is_a?(Array) warn "#{name} #{version} includes a gemspec with `require_paths` set to an array of arrays. Newer versions of this gem might've already fixed this" raw_require_paths.flatten! end
#full_gem_path
[ GitHub ]# File 'lib/bundler/rubygems_ext.rb', line 97
def full_gem_path if source.respond_to?(:root) File. (File.dirname(loaded_from), source.root) else rg_full_gem_path end end
#gem_dir
[ GitHub ]# File 'lib/bundler/rubygems_ext.rb', line 132
def gem_dir full_gem_path end
#git_version
[ GitHub ]# File 'lib/bundler/rubygems_ext.rb', line 161
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 157
def groups @groups ||= [] end
#load_paths
[ GitHub ]# File 'lib/bundler/rubygems_ext.rb', line 113
def load_paths full_require_paths end
#loaded_from
[ GitHub ]# File 'lib/bundler/rubygems_ext.rb', line 105
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 176
def nondevelopment_dependencies dependencies - development_dependencies end
#rg_extension_dir
[ GitHub ]# File 'lib/bundler/rubygems_ext.rb', line 117
alias_method :rg_extension_dir, :extension_dir
#rg_full_gem_path
[ GitHub ]# File 'lib/bundler/rubygems_ext.rb', line 94
alias_method :rg_full_gem_path, :full_gem_path
#rg_loaded_from
[ GitHub ]# File 'lib/bundler/rubygems_ext.rb', line 95
alias_method :rg_loaded_from, :loaded_from
#rg_required_ruby_version=
[ GitHub ]# File 'lib/bundler/rubygems_ext.rb', line 139
alias_method :rg_required_ruby_version=, :required_ruby_version=
#to_gemfile(path = nil)
[ GitHub ]# File 'lib/bundler/rubygems_ext.rb', line 166
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 185
def validate_for_resolution SpecificationPolicy.new(self).validate_for_resolution end