Class: Slimmer::RelatedItemsInserter

Inherits:
Object
  • Object
show all
Includes:
ERB::Util, GdsApi::Helpers
Defined in:
lib/slimmer/related_items_inserter.rb

Instance Method Summary collapse

Constructor Details

#initialize(related_block_template, external_request) ⇒ RelatedItemsInserter

Returns a new instance of RelatedItemsInserter.



7
8
9
10
# File 'lib/slimmer/related_items_inserter.rb', line 7

def initialize(related_block_template, external_request)
  @related_block_template = related_block_template
  @external_request = external_request
end

Instance Method Details

#filter(content_document, page_template) ⇒ Object



17
18
19
20
21
# File 'lib/slimmer/related_items_inserter.rb', line 17

def filter(content_document, page_template)
  if content_document.at_css('body.mainstream div#related-items')
    page_template.at_css('body.mainstream div#related-items').replace(related_item_block)
  end
end

#metadata_from_panopticonObject



27
28
29
# File 'lib/slimmer/related_items_inserter.rb', line 27

def 
  under_test? ? {} : fetch_artefact(slug: requested_slug)
end


31
32
33
34
35
# File 'lib/slimmer/related_items_inserter.rb', line 31

def related_item_block
  artefact = 
  html = ERB.new(@related_block_template).result(binding)
  Nokogiri::HTML.fragment(html)
end

#requested_slugObject



12
13
14
15
# File 'lib/slimmer/related_items_inserter.rb', line 12

def requested_slug
  url_parts = @external_request.path_info.split('/')
  url_parts.size > 0 ? url_parts[1] : ''
end

#under_test?Boolean

Returns:

  • (Boolean)


23
24
25
# File 'lib/slimmer/related_items_inserter.rb', line 23

def under_test?
  ENV['RACK_ENV'] == 'test' || ENV['RAILS_ENV'] == 'test'
end