move version detection to seperate function and change line endings
This commit is contained in:
@@ -13,24 +13,7 @@ class WpItem
|
|||||||
# This check is needed because readme_url can return nil
|
# This check is needed because readme_url can return nil
|
||||||
if has_readme?
|
if has_readme?
|
||||||
response = Browser.get(readme_url)
|
response = Browser.get(readme_url)
|
||||||
version = response.body[/\b(?:stable tag|version):\s*(?!trunk)([0-9a-z\.-]+)/i, 1]
|
@version = extract_version(response.body)
|
||||||
if version.nil? || version !~ /[0-9]+/
|
|
||||||
extracted_versions = response.body.scan(/[=]+\s+(?:v(?:ersion)?\s*)?([0-9\.-]+)[ \ta-z0-9\(\)\.-]*[=]+/i)
|
|
||||||
return if extracted_versions.nil? || extracted_versions.length == 0
|
|
||||||
extracted_versions.flatten!
|
|
||||||
# must contain at least one number
|
|
||||||
extracted_versions = extracted_versions.select { |x| x =~ /[0-9]+/ }
|
|
||||||
sorted = extracted_versions.sort { |x,y|
|
|
||||||
begin
|
|
||||||
Gem::Version.new(x) <=> Gem::Version.new(y)
|
|
||||||
rescue
|
|
||||||
0
|
|
||||||
end
|
|
||||||
}
|
|
||||||
@version = sorted.last
|
|
||||||
else
|
|
||||||
@version = version
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@version
|
@version
|
||||||
@@ -42,5 +25,29 @@ class WpItem
|
|||||||
"#@name#{' - v' + item_version.strip if item_version}"
|
"#@name#{' - v' + item_version.strip if item_version}"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Extracts the version number from a given string/body
|
||||||
|
#
|
||||||
|
# @return [ String ] detected version
|
||||||
|
def extract_version(body)
|
||||||
|
version = body[/\b(?:stable tag|version):\s*(?!trunk)([0-9a-z\.-]+)/i, 1]
|
||||||
|
if version.nil? || version !~ /[0-9]+/
|
||||||
|
extracted_versions = body.scan(/[=]+\s+(?:v(?:ersion)?\s*)?([0-9\.-]+)[ \ta-z0-9\(\)\.-]*[=]+/i)
|
||||||
|
return if extracted_versions.nil? || extracted_versions.length == 0
|
||||||
|
extracted_versions.flatten!
|
||||||
|
# must contain at least one number
|
||||||
|
extracted_versions = extracted_versions.select { |x| x =~ /[0-9]+/ }
|
||||||
|
sorted = extracted_versions.sort { |x,y|
|
||||||
|
begin
|
||||||
|
Gem::Version.new(x) <=> Gem::Version.new(y)
|
||||||
|
rescue
|
||||||
|
0
|
||||||
|
end
|
||||||
|
}
|
||||||
|
return sorted.last
|
||||||
|
else
|
||||||
|
return version
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user