Remove support for version "schemes", just pass version objects directly

I'm not sure why I thought reinventing object instantiation was a good
idea.
This commit is contained in:
Jack Nagel 2014-05-27 21:41:43 -05:00
parent 33cdff99ba
commit f446e95852
3 changed files with 6 additions and 14 deletions

View File

@ -120,7 +120,7 @@ class Resource
case val
when nil then Version.detect(url, specs)
when String then Version.new(val)
when Hash then Version.new_with_scheme(*val.shift)
when Version then val
else
raise TypeError, "version '#{val.inspect}' should be a string"
end

View File

@ -61,10 +61,10 @@ class ResourceTests < Test::Unit::TestCase
end
def test_version_with_scheme
scheme = Class.new(Version)
@resource.version('1.0' => scheme)
klass = Class.new(Version)
@resource.version klass.new("1.0")
assert_version_equal '1.0', @resource.version
assert_instance_of scheme, @resource.version
assert_instance_of klass, @resource.version
end
def test_version_from_tag

View File

@ -155,14 +155,6 @@ class Version
StringToken::PATTERN
)
def self.new_with_scheme(value, scheme)
if Class === scheme && scheme.ancestors.include?(Version)
scheme.new(value)
else
raise TypeError, "Unknown version scheme #{scheme.inspect}"
end
end
def self.detect(url, specs={})
if specs.has_key?(:tag)
new(specs[:tag][/((?:\d+\.)*\d+)/, 1], true)