Class: ThemeCheck::RemoteAssetFile

Inherits:
Object
  • Object
show all
Defined in:
lib/theme_check/remote_asset_file.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(src) ⇒ RemoteAssetFile

Returns a new instance of RemoteAssetFile.



25
26
27
28
# File 'lib/theme_check/remote_asset_file.rb', line 25

def initialize(src)
  @uri = RemoteAssetFile.uri(src)
  @content = nil
end

Class Method Details

.cacheObject



8
9
10
# File 'lib/theme_check/remote_asset_file.rb', line 8

def cache
  @cache ||= {}
end

.from_src(src) ⇒ Object



12
13
14
15
16
# File 'lib/theme_check/remote_asset_file.rb', line 12

def from_src(src)
  key = uri(src).to_s
  cache[key] = RemoteAssetFile.new(src) unless cache.key?(key)
  cache[key]
end

.uri(src) ⇒ Object



18
19
20
21
22
# File 'lib/theme_check/remote_asset_file.rb', line 18

def uri(src)
  URI.parse(src.sub(%r{^//}, "https://"))
rescue URI::InvalidURIError
  nil
end

Instance Method Details

#contentObject



30
31
32
33
34
35
36
37
38
# File 'lib/theme_check/remote_asset_file.rb', line 30

def content
  return if @uri.nil?
  return @content unless @content.nil?

  @content = request(@uri)

rescue OpenSSL::SSL::SSLError, Zlib::StreamError, *NET_HTTP_EXCEPTIONS
  @contents = ''
end

#gzipped_sizeObject



40
41
42
43
# File 'lib/theme_check/remote_asset_file.rb', line 40

def gzipped_size
  return if @uri.nil?
  @gzipped_size ||= content.bytesize
end