Class: Jekyll::RemoteTheme::Downloader

Inherits:
Object
  • Object
show all
Defined in:
lib/jekyll-remote-theme/downloader.rb

Constant Summary collapse

PROJECT_URL =
"https://github.com/benbalter/jekyll-remote-theme"
USER_AGENT =
"Jekyll Remote Theme/#{VERSION} (+#{PROJECT_URL})"
MAX_FILE_SIZE =

Size in bytes (1 GB)

1 * (1024 * 1024 * 1024)
NET_HTTP_ERRORS =
[
  Timeout::Error, Errno::EINVAL, Errno::ECONNRESET, EOFError, Net::OpenTimeout,
  Net::HTTPBadResponse, Net::HTTPHeaderSyntaxError, Net::ProtocolError,
].freeze

Instance Method Summary collapse

Constructor Details

#initialize(theme) ⇒ Downloader

Returns a new instance of Downloader.



14
15
16
# File 'lib/jekyll-remote-theme/downloader.rb', line 14

def initialize(theme)
  @theme = theme
end

Instance Method Details

#downloaded?Boolean

Returns:

  • (Boolean)


28
29
30
# File 'lib/jekyll-remote-theme/downloader.rb', line 28

def downloaded?
  @downloaded ||= theme_dir_exists? && !theme_dir_empty?
end

#runObject



18
19
20
21
22
23
24
25
26
# File 'lib/jekyll-remote-theme/downloader.rb', line 18

def run
  if downloaded?
    Jekyll.logger.debug LOG_KEY, "Using existing #{theme.name_with_owner}"
    return
  end

  download
  unzip
end