Class: Gem::Specification
Overview
On universal Rubies, resolve the “universal” arch to the real CPU arch, without changing the extension directory.
Defined Under Namespace
Modules: YamlBackfiller
Constant Summary
collapse
- LATEST_RUBY_WITHOUT_PATCH_VERSIONS =
Gem::Version.new("2.1")
- ORIGINAL_LOCAL_PLATFORM =
local_platform.to_s.freeze
Bundler::GemHelpers::GENERICS, Bundler::GemHelpers::GENERIC_CACHE
Instance Attribute Summary collapse
Instance Method Summary
collapse
#match_platform, platforms_match?
generic, generic_local_platform, local_platform, platform_specificity_match, same_deps, same_specificity, select_best_platform_match, sort_best_platform_match
#matches_current_ruby?, #matches_current_rubygems?
#to_yaml
Instance Attribute Details
#location ⇒ Object
Returns the value of attribute location.
35
36
37
|
# File 'lib/bundler/rubygems_ext.rb', line 35
def location
@location
end
|
#relative_loaded_from ⇒ Object
Returns the value of attribute relative_loaded_from.
35
36
37
|
# File 'lib/bundler/rubygems_ext.rb', line 35
def relative_loaded_from
@relative_loaded_from
end
|
#remote ⇒ Object
Returns the value of attribute remote.
35
36
37
|
# File 'lib/bundler/rubygems_ext.rb', line 35
def remote
@remote
end
|
#source ⇒ Object
39
40
41
|
# File 'lib/bundler/rubygems_ext.rb', line 39
def source
(defined?(@source) && @source) || Gem::Source::Installed.new
end
|
Instance Method Details
#deleted_gem? ⇒ Boolean
132
133
134
|
# File 'lib/bundler/rubygems_ext.rb', line 132
def deleted_gem?
!default_gem? && !File.directory?(full_gem_path)
end
|
#extension_dir ⇒ Object
67
68
69
70
71
72
73
74
|
# File 'lib/bundler/rubygems_ext.rb', line 67
def extension_dir
@bundler_extension_dir ||= if source.respond_to?(:extension_dir_name)
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
|
#extensions_dir ⇒ Object
324
325
326
327
328
|
# File 'lib/bundler/rubygems_ext.rb', line 324
def extensions_dir
Gem.default_ext_dir_for(base_dir) ||
File.join(base_dir, "extensions", ORIGINAL_LOCAL_PLATFORM,
Gem.extension_api_version)
end
|
#full_gem_path ⇒ Object
46
47
48
49
50
51
52
|
# File 'lib/bundler/rubygems_ext.rb', line 46
def full_gem_path
if source.respond_to?(:root)
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
|
#gem_dir ⇒ Object
77
78
79
|
# File 'lib/bundler/rubygems_ext.rb', line 77
def gem_dir
full_gem_path
end
|
#git_version ⇒ Object
102
103
104
105
|
# File 'lib/bundler/rubygems_ext.rb', line 102
def git_version
return unless loaded_from && source.is_a?(Bundler::Source::Git)
" #{source.revision[0..6]}"
end
|
#groups ⇒ Object
98
99
100
|
# File 'lib/bundler/rubygems_ext.rb', line 98
def groups
@groups ||= []
end
|
#load_paths ⇒ Object
62
63
64
|
# File 'lib/bundler/rubygems_ext.rb', line 62
def load_paths
full_require_paths
end
|
#loaded_from ⇒ Object
54
55
56
57
58
59
60
|
# File 'lib/bundler/rubygems_ext.rb', line 54
def loaded_from
if relative_loaded_from
source.path.join(relative_loaded_from).to_s
else
rg_loaded_from
end
end
|
#nondevelopment_dependencies ⇒ Object
128
129
130
|
# File 'lib/bundler/rubygems_ext.rb', line 128
def nondevelopment_dependencies
dependencies - development_dependencies
end
|
#required_ruby_version=(req) ⇒ Object
85
86
87
88
89
90
91
92
93
94
95
|
# File 'lib/bundler/rubygems_ext.rb', line 85
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
|
#rg_extension_dir ⇒ Object
66
|
# File 'lib/bundler/rubygems_ext.rb', line 66
alias_method :rg_extension_dir, :extension_dir
|
#rg_full_gem_path ⇒ Object
43
|
# File 'lib/bundler/rubygems_ext.rb', line 43
alias_method :rg_full_gem_path, :full_gem_path
|
#rg_loaded_from ⇒ Object
44
|
# File 'lib/bundler/rubygems_ext.rb', line 44
alias_method :rg_loaded_from, :loaded_from
|
#rg_required_ruby_version= ⇒ Object
84
|
# File 'lib/bundler/rubygems_ext.rb', line 84
alias_method :rg_required_ruby_version=, :required_ruby_version=
|
#to_gemfile(path = nil) ⇒ Object
107
108
109
110
111
112
113
114
115
|
# File 'lib/bundler/rubygems_ext.rb', line 107
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
|