Class: Composer::Package::Version::VersionSelector
- Inherits:
-
Object
- Object
- Composer::Package::Version::VersionSelector
- Defined in:
- lib/composer/package/version/version_selector.rb
Overview
Selects the best possible version for a package
PHP Authors: Ryan Weaver <[email protected]>
Ruby Authors: Ioannis Kappas <[email protected]>
Instance Method Summary collapse
-
#find_recommended_require_version(package) ⇒ Object
Given a concrete version, this returns a ~ constraint (when possible) that should be used, for example, in composer.json.
-
#initialize(pool) ⇒ VersionSelector
constructor
A new instance of VersionSelector.
Constructor Details
#initialize(pool) ⇒ VersionSelector
24 25 26 |
# File 'lib/composer/package/version/version_selector.rb', line 24 def initialize(pool) @pool = pool end |
Instance Method Details
#find_recommended_require_version(package) ⇒ Object
Given a concrete version, this returns a ~ constraint (when possible) that should be used, for example, in composer.json.
For example:
* 1.2.1 -> ~1.2
* 1.2 -> ~1.2
* v3.2.1 -> ~3.2
* 2.0-beta.1 -> ~2.0@beta
* dev-master -> ~2.1@dev (dev version with alias)
* dev-master -> dev-master (dev versions are untouched)
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/composer/package/version/version_selector.rb', line 42 def find_recommended_require_version(package) version = package.version if !package.is_dev return transform_version(version, package.pretty_version, package.stability) end loader = Composer::Package::Loader::HashLoader.new(parser) dumper = Composer::Package::Dumper::HashDumper.new if (extra = loader.get_branch_alias(dumper.dump(package))) if match = /^(\d+\.\d+\.\d+)(\.9999999)-dev$/.match(extra) extra = "#{match[1]}.0" extra.gsub!('.9999999', '.0') return transform_version(extra, extra, 'dev') end end package.pretty_version end |