Submit
Path:
~
/
/
opt
/
alt
/
ruby21
/
lib64
/
ruby
/
2.1.0
/
rubygems
/
source
/
File Content:
local.rb
## # The local source finds gems in the current directory for fulfilling # dependencies. class Gem::Source::Local < Gem::Source def initialize # :nodoc: @specs = nil @api_uri = nil @uri = nil end ## # Local sorts before Gem::Source and after Gem::Source::Installed def <=> other case other when Gem::Source::Installed, Gem::Source::Lock then -1 when Gem::Source::Local then 0 when Gem::Source then 1 else nil end end def inspect # :nodoc: keys = @specs ? @specs.keys.sort : 'NOT LOADED' "#<%s specs: %p>" % [self.class, keys] end def load_specs type # :nodoc: names = [] @specs = {} Dir["*.gem"].each do |file| begin pkg = Gem::Package.new(file) rescue SystemCallError, Gem::Package::FormatError # ignore else tup = pkg.spec.name_tuple @specs[tup] = [File.expand_path(file), pkg] case type when :released unless pkg.spec.version.prerelease? names << pkg.spec.name_tuple end when :prerelease if pkg.spec.version.prerelease? names << pkg.spec.name_tuple end when :latest tup = pkg.spec.name_tuple cur = names.find { |x| x.name == tup.name } if !cur names << tup elsif cur.version < tup.version names.delete cur names << tup end else names << pkg.spec.name_tuple end end end names end def find_gem gem_name, version = Gem::Requirement.default, # :nodoc: prerelease = false load_specs :complete found = [] @specs.each do |n, data| if n.name == gem_name s = data[1].spec if version.satisfied_by?(s.version) if prerelease found << s elsif !s.version.prerelease? found << s end end end end found.max_by { |s| s.version } end def fetch_spec name # :nodoc: load_specs :complete if data = @specs[name] data.last.spec else raise Gem::Exception, "Unable to find spec for #{name.inspect}" end end def download spec, cache_dir = nil # :nodoc: load_specs :complete @specs.each do |name, data| return data[0] if data[1].spec == spec end raise Gem::Exception, "Unable to find file for '#{spec.full_name}'" end def pretty_print q # :nodoc: q.group 2, '[Local gems:', ']' do q.breakable q.seplist @specs.keys do |v| q.text v.full_name end end end end
Edit
Rename
Chmod
Delete
FILE
FOLDER
Name
Size
Permission
Action
git.rb
5168 bytes
0644
installed.rb
541 bytes
0644
local.rb
2667 bytes
0644
lock.rb
845 bytes
0644
specific_file.rb
1397 bytes
0644
vendor.rb
438 bytes
0644
N4ST4R_ID | Naxtarrr