⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 format.rb

📁 Amarok是一款在LINUX或其他类UNIX操作系统中运行的音频播放器软件。 经过两年开发后
💻 RB
字号:
#--# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.# All rights reserved.# See LICENSE.txt for permissions.#++require 'rubygems/package'module Gem  ##  # The format class knows the guts of the RubyGem .gem file format  # and provides the capability to read gem files  #  class Format    attr_accessor :spec, :file_entries, :gem_path    extend Gem::UserInteraction      ##    # Constructs an instance of a Format object, representing the gem's    # data structure.    #    # gem:: [String] The file name of the gem    #    def initialize(gem_path)      @gem_path = gem_path    end        ##    # Reads the named gem file and returns a Format object, representing     # the data from the gem file    #    # file_path:: [String] Path to the gem file    #    def self.from_file_by_path(file_path, security_policy = nil)      unless File.exist?(file_path)        raise Gem::Exception, "Cannot load gem at [#{file_path}]"      end      require 'fileutils'      # check for old version gem      if File.read(file_path, 20).include?("MD5SUM =")        #alert_warning "Gem #{file_path} is in old format."        require 'rubygems/old_format'        return OldFormat.from_file_by_path(file_path)      else        f = File.open(file_path, 'rb')        return from_io(f, file_path, security_policy)      end    end    ##    # Reads a gem from an io stream and returns a Format object, representing    # the data from the gem file    #    # io:: [IO] Stream from which to read the gem    #    def self.from_io(io, gem_path="(io)", security_policy = nil)      format = self.new(gem_path)      Package.open_from_io(io, 'r', security_policy) do |pkg|        format.spec = pkg.metadata        format.file_entries = []        pkg.each do |entry|          format.file_entries << [{"size", entry.size, "mode", entry.mode,              "path", entry.full_name}, entry.read]        end      end      format    end  endend

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -