Jack Nagel
9b75afcf4a
Make Version#<=> allocation-free
2015-03-27 20:07:50 -04:00
Jack Nagel
38a8c54898
Return early for the == case in Version#<=>
2015-03-17 21:37:03 -04:00
Jack Nagel
68c7e1e30c
Add protected reader for version value
2015-03-17 21:37:03 -04:00
Jack Nagel
03b309cc76
Fix NullToken equality
2015-03-17 21:37:03 -04:00
Jack Nagel
0d4f241d48
Remove explicit type check
2015-03-17 21:37:03 -04:00
Jack Nagel
2356131e5f
Remove unnecessary default argument
...
This method is always called with two arguments.
2015-03-14 01:58:17 -04:00
Baptiste Fontaine
a9c4091de7
Fix more version misdetections for URLs with archs
...
Closes Homebrew/homebrew#36368 .
Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
2015-01-30 08:55:49 +00:00
Baptiste Fontaine
a9e8dfb996
Fix version misdetections for URLs with OS/archs
...
Closes Homebrew/homebrew#36308 .
Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
2015-01-28 14:19:21 +00:00
Jack Nagel
4bbefc12e3
Eliminate boolean argument to Version.new
2015-01-07 15:21:20 -05:00
Jack Nagel
35793f0e0c
Let Version.parse instantiate subclasses
2015-01-07 15:21:20 -05:00
Viktor Szakats
fc2818b7a5
Use more https in urls and updated some lost links
...
Closes Homebrew/homebrew#35531 .
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2015-01-04 02:13:16 -05:00
Jack Nagel
dfb7657557
Compare patchlevels numerically rather than lexically
...
Fixes Homebrew/homebrew#32960 .
2014-10-06 13:55:23 -05:00
Jack Nagel
fbefa76ce2
Always use class.name to build inspect strings
2014-07-01 18:39:15 -05:00
Jack Nagel
f446e95852
Remove support for version "schemes", just pass version objects directly
...
I'm not sure why I thought reinventing object instantiation was a good
idea.
2014-05-27 21:41:43 -05:00
Jack Nagel
33c99123f2
Build the version scanner regexp once
2014-04-03 11:19:57 -05:00
Jack Nagel
0f5a80a97b
Fix tokenizing openssl style versions
...
Fixes Homebrew/homebrew#25736 .
2014-01-11 20:00:34 -06:00
Jack Nagel
b6cbd08e93
Implement hash equality for Version
2013-12-09 19:43:07 -06:00
Mike McQuaid
8d256848d6
version: match Jenkins LTS releases.
2013-11-14 22:58:24 +00:00
Jack Nagel
383b321119
Disallow initializing Versions with non-strings
...
Closes Homebrew/homebrew#23553 .
2013-10-25 17:29:45 -05:00
Mike McQuaid
705a248719
versions: remove perforce bottle detection.
2013-08-03 22:27:42 -07:00
Jack Nagel
023aff10c7
Adjust logic to properly sort erlang versions
...
Fixes Homebrew/homebrew#21417 .
2013-07-24 19:48:21 -05:00
Jack Nagel
033ef09518
Detect versions in tag specs
...
Closes Homebrew/homebrew#18300 .
Closes Homebrew/homebrew#20891 .
2013-06-28 21:17:23 -05:00
Jack Nagel
74b60a561c
Simplify custom version scheme handling
2013-06-28 21:17:12 -05:00
Mike McQuaid
01e5e428eb
perforce: add version detection regex.
2013-06-20 13:07:59 +01:00
Jack Nagel
113125d394
Remove Version#to_a alias
...
Exposing this as "to_a" was a mistake, versions are not arrays and it
causes incorrect behavior when splatted or using Kernel#Array(). Use the
more correct name "tokens" instead.
2013-06-14 18:37:27 -05:00
Jack Nagel
5369199df3
Fix version misdetection from fa582cb9ac65
2013-06-11 17:34:21 -05:00
Jack Nagel
2fcc9bad42
Define to_s for Version::Token
2013-06-05 23:31:47 -05:00
Jack Nagel
28acfbba51
Improve tokenization of version strings
...
Tokens like "b4", "beta1", "p195", &c. are now treated as atoms rather
than being broken down even further. Additionally, we enable support for
padding in the middle of versions strings, so we can successfully
compare something like "2.1-p195" with "2.1.0-p194" by inferring that
"2.1" is really "2.1.0".
This fixes the comparison "9.9.3-P1" > "9.9.3" which previously has not
been handled correctly.
2013-06-05 22:03:58 -05:00
Mike McQuaid
eb7efb8dd5
make erlang versions case-insensitive for bottles.
2013-06-03 20:53:00 +01:00
Jack Nagel
bf935a1fa5
Version: dup @version in #to_s
2013-05-19 20:51:25 -05:00
Jack Nagel
5bf652ecdd
Avoid extra array allocations
2013-05-06 16:52:26 -05:00
Jack Nagel
c2889de323
Avoid capturing groups when unnused
2013-04-27 15:21:06 -05:00
Jack Nagel
364c5c3473
Combine GitHub version regexes
2013-04-27 15:21:05 -05:00
Jack Nagel
b7c0c53ffc
VersionElement: attempt most likely match first
2013-04-16 14:56:22 -05:00
Jack Nagel
42da1295ce
Only call Pathname#to_s once per Version object
2013-04-16 14:32:32 -05:00
Jack Nagel
466a32df02
Optimize Version#<=>
2013-04-15 15:00:57 -05:00
Jack Nagel
7fbeb0df3d
MacOSVersion -> MacOS::Version
2013-02-07 12:39:54 -06:00
Jack Nagel
ba2717fb19
Version: remove pointless private call
2013-02-06 22:25:02 -06:00
Jack Nagel
15562c8876
Version: kill silly class method
...
Overriding <=> directly is much simpler.
2013-02-06 22:25:02 -06:00
Mike McQuaid
eec8cc6a12
jpeg: support version format.
2013-01-30 21:29:19 -08:00
Jack Nagel
bdece49b05
version: mark some methods as protected
2013-01-15 18:20:56 -06:00
Jack Nagel
6641fc4017
version: mark some implementation details as protected
2013-01-07 11:59:33 -06:00
Cyril Scetbon
4fc76a67d4
Add Apache version style.
...
Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
2013-01-01 17:30:52 +00:00
Mike McQuaid
7d61bfe88f
Add another Erlang version format.
2012-12-16 14:35:41 +00:00
Mike McQuaid
425440de3b
Add Jenkins version matching (and test).
2012-10-16 10:31:35 +01:00
Mike McQuaid
d9a18d4c1e
erlang: fix version detection and bottles.
2012-08-25 10:21:48 -07:00
Jack Nagel
f069ebd0df
Version: make MacOSVersion comparison more robust
...
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-08-23 18:16:08 -05:00
Jack Nagel
c924de7086
Version: build-in devel version comparisons
...
The heuristic used by the default version comparison is simple. A
version string is scanned for strings of digits, split into an array of
these strings, and then an element-wise comparison is done.
This fails when presented with something like
Version.new("1.0.0beta7") <=> Version.new("1.0.0")
because the first three digits match, and the fourth digit of the
receiver (7) is greater than the assumed fourth digit of the parameter
(0).
Fix this by defining an element-wise comparator on a new VersionElement
class. This allows us to correctly compare "alpha", "beta", and "rc"
style version strings, and keeps the logic out of the main version
comparison.
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-08-18 15:53:04 -05:00
Jack Nagel
b8231fc5f3
Add custom comparator for MacOS.version
...
This will allow us to do comparisons like
if MacOS.version >= :lion
and hopefully deprecate the MacOS.<name>? family of methods, which are
counterinitutive.
2012-08-18 11:13:54 -05:00
Jack Nagel
158b7047e5
Add small DSL for defining comparators
2012-08-18 11:12:10 -05:00