Class: U3d::Downloader::StandardPackageDownloader

Inherits:
Object
  • Object
show all
Defined in:
lib/u3d/downloader.rb

Direct Known Subclasses

LinuxDownloader, MacDownloader, WindowsDownloader

Instance Method Summary collapse

Instance Method Details

#destination_and_url_for(package, definition) ⇒ Object



151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
# File 'lib/u3d/downloader.rb', line 151

def destination_and_url_for(package, definition)
  final_url = url_for(package, definition)

  dir = File.join(Downloader.download_directory, definition.version)
  Utils.ensure_dir(dir)

  file_name = if (language_match = UNITY_LANGUAGE_FILE_REGEX.match(final_url))
                "#{language_match[1]}.po" # Unity uses PO (Portable object files) for localization
              elsif (module_match = UNITY_MODULE_FILE_REGEX.match(final_url))
                module_match[1]
              else
                raise "Unable to download file at #{final_url}. Please report it to the u3d issues on Github: https://github.com/DragonBox/u3d/issues/new"
              end

  destination = File.expand_path(file_name, dir)

  [destination, final_url]
end

#destination_for(package, definition) ⇒ Object

for backward compatibility



147
148
149
# File 'lib/u3d/downloader.rb', line 147

def destination_for(package, definition)
  destination_and_url_for(package, definition)[0]
end

#url_for(package, definition) ⇒ Object



170
171
172
173
174
175
176
177
178
179
180
181
# File 'lib/u3d/downloader.rb', line 170

def url_for(package, definition)
  url = definition[package].url
  if url
    if url =~ /^http/
      Utils.final_url(url)
    else
      definition.url + url
    end
  else
    definition.url
  end
end