diff options
author | Lamont Granquist <lamont@chef.io> | 2020-01-21 17:55:47 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-01-21 17:55:47 -0800 |
commit | 549bdc9f4e0ff328517ae3dbf90786aa0b9ae1dc (patch) | |
tree | a4ad2d743eb7586cbcf0621f7d846641298dac99 /lib | |
parent | f1eff774eb6cf1be81c95362beec9746f3796d2a (diff) | |
parent | 3a7dc2359fd833e5f920818f67f6d0474bfb9042 (diff) | |
download | chef-549bdc9f4e0ff328517ae3dbf90786aa0b9ae1dc.tar.gz |
move Chef::VersionString to Chef::Utils (#9234)
* move Chef::VersionString to Chef::Utils
Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
* fix namespacing bugs
Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/chef/version.rb | 2 | ||||
-rw-r--r-- | lib/chef/version_string.rb | 129 |
2 files changed, 4 insertions, 127 deletions
diff --git a/lib/chef/version.rb b/lib/chef/version.rb index cf778c584a..bff1e67c22 100644 --- a/lib/chef/version.rb +++ b/lib/chef/version.rb @@ -1,4 +1,4 @@ -# Copyright:: Copyright 2010-2018, Chef Software, Inc. +# Copyright:: Copyright 2010-2020, Chef Software Inc. # License:: Apache License, Version 2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/lib/chef/version_string.rb b/lib/chef/version_string.rb index c307509425..8da5df570a 100644 --- a/lib/chef/version_string.rb +++ b/lib/chef/version_string.rb @@ -13,131 +13,8 @@ # See the License for the specific language governing permissions and # limitations under the License. -class Chef - # String-like object for version strings. - # - # @since 13.2 - # @api internal - class VersionString < String - # Parsed version object for the string. - # @return [Gem::Version] - attr_reader :parsed_version - - # Create a new VersionString from an input String. - # - # @param val [String] Version string to parse. - def initialize(val) - super - @parsed_version = ::Gem::Version.create(self) - end - - # @!group Compat wrappers for String - - # Compat wrapper for + to behave like a normal String. - # - # @param other [String] - # @return [String] - def +(other) - to_s + other - end - - # Compat wrapper for * to behave like a normal String. - # - # @param other [Integer] - # @return [String] - def *(other) - to_s * other - end - - # @!group Comparison operators - - # Compare a VersionString to an object. If compared to another VersionString - # then sort like `Gem::Version`, otherwise try to treat the other object as - # a version but fall back to normal string comparison. - # - # @param other [Object] - # @return [Integer] - def <=>(other) - other_ver = case other - when VersionString - other.parsed_version - else - begin - Gem::Version.create(other.to_s) - rescue ArgumentError - # Comparing to a string that isn't a version. - return super - end - end - parsed_version <=> other_ver - end - - # Compat wrapper for == based on <=>. - # - # @param other [Object] - # @return [Boolean] - def ==(other) - (self <=> other) == 0 - end +require "chef-utils/version_string" - # Compat wrapper for != based on <=>. - # - # @param other [Object] - # @return [Boolean] - def !=(other) - (self <=> other) != 0 - end - - # Compat wrapper for < based on <=>. - # - # @param other [Object] - # @return [Boolean] - def <(other) - (self <=> other) < 0 - end - - # Compat wrapper for <= based on <=>. - # - # @param other [Object] - # @return [Boolean] - def <=(other) - (self <=> other) < 1 - end - - # Compat wrapper for > based on <=>. - # - # @param other [Object] - # @return [Boolean] - def >(other) - (self <=> other) > 0 - end - - # Compat wrapper for >= based on <=>. - # - # @param other [Object] - # @return [Boolean] - def >=(other) - (self <=> other) > -1 - end - - # @!group Matching operators - - # Matching operator to support checking against a requirement string. - # - # @param other [Regexp, String] - # @return [Boolean] - # @example Match against a Regexp - # Chef::VersionString.new('1.0.0') =~ /^1/ - # @example Match against a requirement - # Chef::VersionString.new('1.0.0') =~ '~> 1.0' - def =~(other) - case other - when Regexp - super - else - Gem::Requirement.create(other) =~ parsed_version - end - end - - end +class Chef + VersionString = ChefUtils::VersionString end |