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:
parent
33cdff99ba
commit
f446e95852
@ -120,7 +120,7 @@ class Resource
|
|||||||
case val
|
case val
|
||||||
when nil then Version.detect(url, specs)
|
when nil then Version.detect(url, specs)
|
||||||
when String then Version.new(val)
|
when String then Version.new(val)
|
||||||
when Hash then Version.new_with_scheme(*val.shift)
|
when Version then val
|
||||||
else
|
else
|
||||||
raise TypeError, "version '#{val.inspect}' should be a string"
|
raise TypeError, "version '#{val.inspect}' should be a string"
|
||||||
end
|
end
|
||||||
|
|||||||
@ -61,10 +61,10 @@ class ResourceTests < Test::Unit::TestCase
|
|||||||
end
|
end
|
||||||
|
|
||||||
def test_version_with_scheme
|
def test_version_with_scheme
|
||||||
scheme = Class.new(Version)
|
klass = Class.new(Version)
|
||||||
@resource.version('1.0' => scheme)
|
@resource.version klass.new("1.0")
|
||||||
assert_version_equal '1.0', @resource.version
|
assert_version_equal '1.0', @resource.version
|
||||||
assert_instance_of scheme, @resource.version
|
assert_instance_of klass, @resource.version
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_version_from_tag
|
def test_version_from_tag
|
||||||
|
|||||||
@ -155,14 +155,6 @@ class Version
|
|||||||
StringToken::PATTERN
|
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={})
|
def self.detect(url, specs={})
|
||||||
if specs.has_key?(:tag)
|
if specs.has_key?(:tag)
|
||||||
new(specs[:tag][/((?:\d+\.)*\d+)/, 1], true)
|
new(specs[:tag][/((?:\d+\.)*\d+)/, 1], true)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user