Class: U3d::UnityVersions::VersionsFetcher
- Inherits:
-
Object
- Object
- U3d::UnityVersions::VersionsFetcher
- Defined in:
- lib/u3d/unity_versions.rb
REGEX: expressions to interpret data collapse
-
#versions ⇒ Object
Returns the value of attribute versions.
REGEX: expressions to interpret data collapse
- #fetch_all_channels ⇒ Object
- #fetch_json(os) ⇒ Object
- #fetch_some(type, url) ⇒ Object
-
#initialize(pattern:) ⇒ VersionsFetcher
constructor
A new instance of VersionsFetcher.
Constructor Details
#initialize(pattern:) ⇒ VersionsFetcher
Returns a new instance of VersionsFetcher.
245 246 247 248 |
# File 'lib/u3d/unity_versions.rb', line 245 def initialize(pattern:) @versions = {} @patterns = pattern.is_a?(Array) ? pattern : [pattern] end |
Instance Attribute Details
#versions ⇒ Object
Returns the value of attribute versions.
243 244 245 |
# File 'lib/u3d/unity_versions.rb', line 243 def versions @versions end |
Instance Method Details
#fetch_all_channels ⇒ Object
277 278 279 280 281 282 283 284 |
# File 'lib/u3d/unity_versions.rb', line 277 def fetch_all_channels fetch_some('lts', UNITY_LTSES) fetch_some('stable', UNITY_DOWNLOADS) fetch_some('patch', UNITY_PATCHES) # This does not work any longer # fetch_some('beta', UNITY_BETAS) @versions end |
#fetch_json(os) ⇒ Object
262 263 264 265 266 267 268 269 270 271 272 273 274 275 |
# File 'lib/u3d/unity_versions.rb', line 262 def fetch_json(os) UI. 'Loading Unity latest releases' url = format(UNITY_LATEST_JSON_URL, os: os) latest = UnityVersions.fetch_from_json(url, UNITY_LATEST_JSON) UI.success "Found #{latest.count} latest releases." @versions.merge!(latest) do |key, oldval, newval| UI.important "Unity version #{key} already fetched, replacing #{oldval} with #{newval}" if newval != oldval newval end @versions end |
#fetch_some(type, url) ⇒ Object
250 251 252 253 254 255 256 257 258 259 260 |
# File 'lib/u3d/unity_versions.rb', line 250 def fetch_some(type, url) UI. "Loading Unity #{type} releases" total = {} @patterns.each do |pattern| current = UnityVersions.fetch_version_paged(url, pattern) current = UnityVersions.fetch_version(url, pattern) if current.empty? total.merge!(current) end UI.success "Found #{total.count} #{type} releases." @versions.merge!(total) end |