Class: Locomotive::Steam::AssetHostService

Inherits:
Object
  • Object
show all
Defined in:
lib/locomotive/steam/services/asset_host_service.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(request, site, default_host) ⇒ AssetHostService

Returns a new instance of AssetHostService.



8
9
10
# File 'lib/locomotive/steam/services/asset_host_service.rb', line 8

def initialize(request, site, default_host)
  @request, @site, @default_host = request, site, default_host
end

Instance Attribute Details

#requestObject (readonly)

Returns the value of attribute request.



6
7
8
# File 'lib/locomotive/steam/services/asset_host_service.rb', line 6

def request
  @request
end

#siteObject (readonly)

Returns the value of attribute site.



6
7
8
# File 'lib/locomotive/steam/services/asset_host_service.rb', line 6

def site
  @site
end

Instance Method Details

#compute(source, timestamp = nil) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
# File 'lib/locomotive/steam/services/asset_host_service.rb', line 12

def compute(source, timestamp = nil)
  return source if source.blank?

  timestamp ||= (site.try(:template_version) || site.try(:updated_at)).to_i

  return add_timestamp_suffix(source, timestamp) if source =~ Steam::IsHTTP

  url = self.host ? build_url(host, source) : source

  add_timestamp_suffix(url, timestamp)
end

#hostObject



24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/locomotive/steam/services/asset_host_service.rb', line 24

def host
  return @host if @host

  @host = if site.try(:asset_host).present?
    build_host_with_protocol(site.asset_host)
  elsif @default_host.respond_to?(:call)
    @default_host.call(request, site)
  elsif @default_host.present?
    build_host_with_protocol(@default_host)
  else
    nil
  end
end