Class: GovukTechDocs::PageReview

Inherits:
Object
  • Object
show all
Defined in:
lib/govuk_tech_docs/page_review.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(page) ⇒ PageReview

Returns a new instance of PageReview.



5
6
7
# File 'lib/govuk_tech_docs/page_review.rb', line 5

def initialize(page)
  @page = page
end

Instance Attribute Details

#page ⇒ Object (readonly)

Returns the value of attribute page.



3
4
5
# File 'lib/govuk_tech_docs/page_review.rb', line 3

def page
  @page
end

Instance Method Details

#last_reviewed_on ⇒ Object



22
23
24
# File 'lib/govuk_tech_docs/page_review.rb', line 22

def last_reviewed_on
  page.data.last_reviewed_on
end

#owner_slack ⇒ Object



26
27
28
# File 'lib/govuk_tech_docs/page_review.rb', line 26

def owner_slack
  page.data.owner_slack
end

#owner_slack_url ⇒ Object



30
31
32
33
34
# File 'lib/govuk_tech_docs/page_review.rb', line 30

def owner_slack_url
  # Slack URLs don't have the # (channels) or @ (usernames)
  slack_identifier = owner_slack.to_s.delete('#').delete('@')
  "https://govuk.slack.com/messages/#{slack_identifier}"
end

#review_by ⇒ Object



9
10
11
12
13
14
15
16
# File 'lib/govuk_tech_docs/page_review.rb', line 9

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

#under_review? ⇒ Boolean

Returns:

  • (Boolean)


18
19
20
# File 'lib/govuk_tech_docs/page_review.rb', line 18

def under_review?
  page.data.review_in.present?
end