class U3d::UnityVersions::LinuxVersions
Constants
- JSON_OS
Attributes
unity_forums[RW]
Public Class Methods
list_available()
click to toggle source
# File lib/u3d/unity_versions.rb, line 200 def list_available UI.message 'Loading Unity releases' versions = @unity_forums.pagination_urls(UNITY_LINUX_DOWNLOADS).map do |page_url| list_available_from_page(@unity_forums, unity_forums.page_content(page_url)) end.reduce({}, :merge) versions_fetcher = VersionsFetcher.new(pattern: LINUX_INSTALLER) versions.merge!(versions_fetcher.fetch_json('linux')) if versions.count.zero? UI.important 'Found no releases' else UI.success "Found #{versions.count} releases." end versions end
Private Class Methods
list_available_from_page(unity_forums, data)
click to toggle source
# File lib/u3d/unity_versions.rb, line 219 def list_available_from_page(unity_forums, data) versions = {} data.scan(LINUX_DOWNLOAD_DATED) do |capt| versions[capt[1]] = capt[0] end data.scan(LINUX_DOWNLOAD) do |capt| versions[capt[2]] = capt[0] end data.scan(LINUX_DOWNLOAD_RECENT_PAGE) do |page| url = page[0] page_body = unity_forums.page_content(url) capt = page_body.match(LINUX_DOWNLOAD_RECENT_FILE) if capt && capt[1] && capt[2] ver = capt[2].delete('x') UI.important "Version #{ver} does not match standard Unity versions" unless ver =~ Utils::UNITY_VERSION_REGEX versions[ver] = capt[1] else capt = page_body.match(LINUX_DOWNLOAD) # newer version of unity on linux support ini files # http://beta.unity3d.com/download/3c89f8d277f5/unity-2017.3.0f1-linux.ini if capt && capt[1] && capt[3] ver = capt[3] UI.verbose("Linux version #{ver}. Could not retrieve a fitting file from #{url}. Assuming ini file present") versions[ver] = capt[1] else UI.important("Could not retrieve a fitting file from #{url}.") end end end versions end