PHP 8.2.31
Preview: stub_specification.rb Size: 3.10 KB
//proc/thread-self/root/opt/alt/ruby21/lib64/ruby/2.1.0/rubygems/stub_specification.rb

##
# Gem::StubSpecification reads the stub: line from the gemspec.  This prevents
# us having to eval the entire gemspec in order to find out certain
# information.

class Gem::StubSpecification < Gem::BasicSpecification
  # :nodoc:
  PREFIX = "# stub: "

  OPEN_MODE = # :nodoc:
    if Object.const_defined? :Encoding then
      'r:UTF-8:-'
    else
      'r'
    end

  class StubLine # :nodoc: all
    attr_reader :parts

    def initialize(data)
      @parts = data[PREFIX.length..-1].split(" ")
    end

    def name
      @parts[0]
    end

    def version
      Gem::Version.new @parts[1]
    end

    def platform
      Gem::Platform.new @parts[2]
    end

    def require_paths
      @parts[3..-1].join(" ").split("\0")
    end
  end

  def initialize(filename)
    self.loaded_from = filename
    @data            = nil
    @extensions      = nil
    @spec            = nil
  end

  ##
  # True when this gem has been activated

  def activated?
    loaded = Gem.loaded_specs[name]
    loaded && loaded.version == version
  end

  def build_extensions # :nodoc:
    return if default_gem?
    return if extensions.empty?

    to_spec.build_extensions
  end

  ##
  # If the gemspec contains a stubline, returns a StubLine instance. Otherwise
  # returns the full Gem::Specification.

  def data
    unless @data
      @extensions = []

      open loaded_from, OPEN_MODE do |file|
        begin
          file.readline # discard encoding line
          stubline = file.readline.chomp
          if stubline.start_with?(PREFIX) then
            @data = StubLine.new stubline

            @extensions = $'.split "\0" if
              /\A#{PREFIX}/ =~ file.readline.chomp
          end
        rescue EOFError
        end
      end
    end

    @data ||= to_spec
  end

  private :data

  ##
  # Extensions for this gem

  def extensions
    return @extensions if @extensions

    data # load

    @extensions
  end

  ##
  # If a gem has a stub specification it doesn't need to bother with
  # compatibility with original_name gems.  It was installed with the
  # normalized name.

  def find_full_gem_path # :nodoc:
    path = File.expand_path File.join gems_dir, full_name
    path.untaint
    path
  end

  ##
  # Full paths in the gem to add to <code>$LOAD_PATH</code> when this gem is
  # activated.

  def full_require_paths
    @require_paths ||= data.require_paths

    super
  end

  ##
  # Name of the gem

  def name
    @name ||= data.name
  end

  ##
  # Platform of the gem

  def platform
    @platform ||= data.platform
  end

  ##
  # Require paths of the gem

  def require_paths
    @require_paths ||= data.require_paths

    super
  end

  ##
  # The full Gem::Specification for this gem, loaded from evalling its gemspec

  def to_spec
    @spec ||= Gem::Specification.load(loaded_from)
  end

  ##
  # Is this StubSpecification valid? i.e. have we found a stub line, OR does
  # the filename contain a valid gemspec?

  def valid?
    data
  end

  ##
  # Version of the gem

  def version
    @version ||= data.version
  end

  ##
  # Is there a stub line present for this StubSpecification?

  def stubbed?
    data.is_a? StubLine
  end

end

Directory Contents

Dirs: 10 × Files: 59

Name Size Perms Modified Actions
commands DIR
- drwxr-xr-x 2024-03-03 22:43:11
Edit Download
core_ext DIR
- drwxr-xr-x 2024-03-03 22:43:11
Edit Download
ext DIR
- drwxr-xr-x 2024-03-03 22:43:11
Edit Download
package DIR
- drwxr-xr-x 2024-03-03 22:43:11
Edit Download
- drwxr-xr-x 2024-03-03 22:43:11
Edit Download
resolver DIR
- drwxr-xr-x 2024-03-03 22:43:11
Edit Download
security DIR
- drwxr-xr-x 2024-03-03 22:43:11
Edit Download
source DIR
- drwxr-xr-x 2024-03-03 22:43:11
Edit Download
ssl_certs DIR
- drwxr-xr-x 2024-03-03 22:43:11
Edit Download
util DIR
- drwxr-xr-x 2024-03-03 22:43:11
Edit Download
3.00 KB lrw-r--r-- 2014-02-06 02:59:36
Edit Download
5.65 KB lrw-r--r-- 2014-02-06 02:59:36
Edit Download
13.43 KB lrw-r--r-- 2012-11-30 16:27:52
Edit Download
4.62 KB lrw-r--r-- 2013-09-14 08:59:02
Edit Download
1.67 KB lrw-r--r-- 2014-02-06 02:59:36
Edit Download
12.23 KB lrw-r--r-- 2023-07-26 14:19:40
Edit Download
3.64 KB lrw-r--r-- 2014-02-06 02:59:36
Edit Download
7.77 KB lrw-r--r-- 2013-09-14 08:59:02
Edit Download
12.64 KB lrw-r--r-- 2014-02-06 02:59:36
Edit Download
5.53 KB lrw-r--r-- 2013-02-27 23:20:57
Edit Download
1.70 KB lrw-r--r-- 2014-02-06 02:59:36
Edit Download
3.04 KB lrw-r--r-- 2013-11-21 23:27:30
Edit Download
2.42 KB lrw-r--r-- 2013-11-19 00:34:13
Edit Download
5.87 KB lrw-r--r-- 2013-11-21 23:27:30
Edit Download
431 B lrw-r--r-- 2013-10-16 06:00:39
Edit Download
3.97 KB lrw-r--r-- 2013-09-18 21:29:41
Edit Download
1.96 KB lrw-r--r-- 2013-09-14 08:59:02
Edit Download
13.03 KB lrw-r--r-- 2013-10-16 00:14:16
Edit Download
21.42 KB lrw-r--r-- 2014-02-06 02:59:36
Edit Download
4.20 KB lrw-r--r-- 2023-07-26 14:19:40
Edit Download
307 B lrw-r--r-- 2013-07-09 23:21:36
Edit Download
281 B lrw-r--r-- 2012-11-29 06:52:18
Edit Download
5.21 KB lrw-r--r-- 2013-09-14 08:59:02
Edit Download
3.36 KB lrw-r--r-- 2011-07-27 01:40:07
Edit Download
1.35 KB lrw-r--r-- 2012-11-29 06:52:18
Edit Download
2.23 KB lrw-r--r-- 2013-09-14 08:59:02
Edit Download
14.25 KB lrw-r--r-- 2023-07-26 14:19:40
Edit Download
3.77 KB lrw-r--r-- 2013-08-26 20:24:51
Edit Download
1.82 KB lrw-r--r-- 2013-09-14 08:59:02
Edit Download
6.05 KB lrw-r--r-- 2014-02-06 02:59:36
Edit Download
269 B lrw-r--r-- 2013-10-20 01:33:19
Edit Download
763 B lrw-r--r-- 2013-07-09 22:34:58
Edit Download
7.75 KB lrw-r--r-- 2014-02-06 02:59:36
Edit Download
9.46 KB lrw-r--r-- 2015-08-18 12:56:58
Edit Download
7.53 KB lrw-r--r-- 2014-02-06 02:59:36
Edit Download
6.94 KB lrw-r--r-- 2014-02-06 02:59:36
Edit Download
6.10 KB lrw-r--r-- 2013-12-08 01:22:39
Edit Download
12.46 KB lrw-r--r-- 2014-02-06 02:59:36
Edit Download
1.11 KB lrw-r--r-- 2023-07-26 14:19:40
Edit Download
20.96 KB lrw-r--r-- 2014-02-06 02:59:36
Edit Download
21.69 KB lrw-r--r-- 2013-11-10 17:51:40
Edit Download
4.90 KB lrw-r--r-- 2013-12-08 01:22:39
Edit Download
2.47 KB lrw-r--r-- 2013-11-19 00:34:13
Edit Download
111 B lrw-r--r-- 2013-09-14 08:59:02
Edit Download
93 B lrw-r--r-- 2013-09-14 08:59:02
Edit Download
70.80 KB lrw-r--r-- 2023-07-26 14:19:40
Edit Download
6.40 KB lrw-r--r-- 2013-11-19 00:34:13
Edit Download
3.10 KB lrw-r--r-- 2013-10-18 21:56:18
Edit Download
2.09 KB lrw-r--r-- 2013-12-19 22:09:19
Edit Download
35.62 KB lrw-r--r-- 2014-02-06 02:59:36
Edit Download
8.37 KB lrw-r--r-- 2013-12-08 01:22:39
Edit Download
1.23 KB lrw-r--r-- 2011-07-27 01:40:07
Edit Download
8.69 KB lrw-r--r-- 2014-02-06 02:59:36
Edit Download
762 B lrw-r--r-- 2013-10-20 01:33:19
Edit Download
14.40 KB lrw-r--r-- 2013-12-13 00:51:04
Edit Download
2.26 KB lrw-r--r-- 2013-11-25 19:14:49
Edit Download
4.18 KB lrw-r--r-- 2013-11-30 23:27:52
Edit Download
10.78 KB lrw-r--r-- 2014-02-06 02:59:36
Edit Download
1.83 KB lrw-r--r-- 2013-09-14 08:59:02
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).