晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。 林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。 见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝) 既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。 南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。
| DIR:/opt/alt/ruby34/share/gems/gems/bundler-2.6.9/lib/bundler/resolver/ |
| Current File : //opt/alt/ruby34/share/gems/gems/bundler-2.6.9/lib/bundler/resolver/candidate.rb |
# frozen_string_literal: true
require_relative "spec_group"
module Bundler
class Resolver
#
# This class is a PubGrub compatible "Version" class that takes Bundler
# resolution complexities into account.
#
# Each Resolver::Candidate has a underlying `Gem::Version` plus a set of
# platforms. For example, 1.1.0-x86_64-linux is a different resolution candidate
# from 1.1.0 (generic). This is because different platform variants of the
# same gem version can bring different dependencies, so they need to be
# considered separately.
#
# Some candidates may also keep some information explicitly about the
# package they refer to. These candidates are referred to as "canonical" and
# are used when materializing resolution results back into RubyGems
# specifications that can be installed, written to lockfiles, and so on.
#
class Candidate
include Comparable
attr_reader :version
def initialize(version, group: nil, priority: -1)
@spec_group = group || SpecGroup.new([])
@version = Gem::Version.new(version)
@priority = priority
end
def dependencies
@spec_group.dependencies
end
def to_specs(package, most_specific_locked_platform)
return [] if package.meta?
@spec_group.to_specs(package.force_ruby_platform?, most_specific_locked_platform)
end
def prerelease?
@version.prerelease?
end
def segments
@version.segments
end
def <=>(other)
return unless other.is_a?(self.class)
version_comparison = version <=> other.version
return version_comparison unless version_comparison.zero?
priority <=> other.priority
end
def ==(other)
return unless other.is_a?(self.class)
version == other.version && priority == other.priority
end
def eql?(other)
return unless other.is_a?(self.class)
version.eql?(other.version) && priority.eql?(other.priority)
end
def hash
[@version, @priority].hash
end
def to_s
@version.to_s
end
protected
attr_reader :priority
end
end
end
|