class Gem::StubSpecification
def self.default_gemspec_stub(filename, base_dir, gems_dir)
def self.default_gemspec_stub(filename, base_dir, gems_dir) new filename, base_dir, gems_dir, true end
def self.gemspec_stub(filename, base_dir, gems_dir)
def self.gemspec_stub(filename, base_dir, gems_dir) new filename, base_dir, gems_dir, false end
def activated?
def activated? @activated ||= begin loaded = Gem.loaded_specs[name] loaded && loaded.version == version end end
def build_extensions # :nodoc:
def build_extensions # :nodoc: return if default_gem? return if extensions.empty? to_spec.build_extensions end
def data
def data unless @data begin saved_lineno = $. File.open loaded_from, OPEN_MODE do |file| begin file.readline # discard encoding line stubline = file.readline.chomp if stubline.start_with?(PREFIX) extensions = if /\A#{PREFIX}/ =~ file.readline.chomp $'.split "\0" else StubLine::NO_EXTENSIONS end @data = StubLine.new stubline, extensions end rescue EOFError end end ensure $. = saved_lineno end end @data ||= to_spec end
def default_gem?
def default_gem? @default_gem end
def extensions
def extensions data.extensions end
def full_name
def full_name data.full_name end
def initialize(filename, base_dir, gems_dir, default_gem)
def initialize(filename, base_dir, gems_dir, default_gem) super() filename.tap(&Gem::UNTAINT) self.loaded_from = filename @data = nil @name = nil @spec = nil @base_dir = base_dir @gems_dir = gems_dir @default_gem = default_gem end
def missing_extensions?
def missing_extensions? return false if default_gem? return false if extensions.empty? return false if File.exist? gem_build_complete_path to_spec.missing_extensions? end
def name
def name data.name end
def platform
def platform data.platform end
def raw_require_paths # :nodoc:
def raw_require_paths # :nodoc: data.require_paths end
def stubbed?
def stubbed? data.is_a? StubLine end
def to_spec
def to_spec @spec ||= if @data loaded = Gem.loaded_specs[name] loaded if loaded && loaded.version == version end @spec ||= Gem::Specification.load(loaded_from) @spec.ignored = @ignored if @spec @spec end
def valid?
def valid? data end
def version
def version data.version end