class GovukTechDocs::PageReview

Attributes

page[R]

Public Class Methods

new(page, config = {}) click to toggle source
# File lib/govuk_tech_docs/page_review.rb, line 5
def initialize(page, config = {})
  @page = page
  @config = config
end

Public Instance Methods

last_reviewed_on() click to toggle source
# File lib/govuk_tech_docs/page_review.rb, line 23
def last_reviewed_on
  page.data.last_reviewed_on
end
owner_slack() click to toggle source
# File lib/govuk_tech_docs/page_review.rb, line 27
def owner_slack
  page.data.owner_slack || default_owner_slack
end
owner_slack_url() click to toggle source
# File lib/govuk_tech_docs/page_review.rb, line 31
def owner_slack_url
  return "" unless owner_slack_workspace

  # Slack URLs don't have the # (channels) or @ (usernames)
  slack_identifier = owner_slack.to_s.delete("#").delete("@")
  "https://#{owner_slack_workspace}.slack.com/messages/#{slack_identifier}"
end
review_by() click to toggle source
# File lib/govuk_tech_docs/page_review.rb, line 10
def review_by
  return unless last_reviewed_on

  @review_by ||= Chronic.parse(
    "in #{page.data.review_in}",
    now: last_reviewed_on.to_time,
  ).to_date
end
show_expiry?() click to toggle source
# File lib/govuk_tech_docs/page_review.rb, line 39
def show_expiry?
  @config[:tech_docs].fetch(:show_expiry, true)
end
show_review_banner?() click to toggle source
# File lib/govuk_tech_docs/page_review.rb, line 43
def show_review_banner?
  @config[:tech_docs].fetch(:show_review_banner, true)
end
under_review?() click to toggle source
# File lib/govuk_tech_docs/page_review.rb, line 19
def under_review?
  page.data.review_in.present?
end

Private Instance Methods

default_owner_slack() click to toggle source
# File lib/govuk_tech_docs/page_review.rb, line 49
def default_owner_slack
  @config[:tech_docs][:default_owner_slack]
end
owner_slack_workspace() click to toggle source
# File lib/govuk_tech_docs/page_review.rb, line 53
def owner_slack_workspace
  @config[:tech_docs][:owner_slack_workspace]
end