class Onebox::Engine::GithubIssueOnebox

Public Instance Methods

url() click to toggle source
# File lib/onebox/engine/github_issue_onebox.rb, line 17
def url
  m = match
  "https://api.github.com/repos/#{m["org"]}/#{m["repo"]}/issues/#{m["item_id"]}"
end

Private Instance Methods

data() click to toggle source
# File lib/onebox/engine/github_issue_onebox.rb, line 28
def data
  created_at = Time.parse(raw['created_at'])
  closed_at = Time.parse(raw['closed_at']) if raw['closed_at']
  body, excerpt = compute_body(raw['body'])
  ulink = URI(link)

  {
    link: @url,
    title: raw["title"],
    body: body,
    excerpt: excerpt,
    labels: raw["labels"],
    user: raw['user'],
    created_at: created_at.strftime("%I:%M%p - %d %b %y %Z"),
    created_at_date: created_at.strftime("%F"),
    created_at_time: created_at.strftime("%T"),
    closed_at: closed_at&.strftime("%I:%M%p - %d %b %y %Z"),
    closed_at_date: closed_at&.strftime("%F"),
    closed_at_time: closed_at&.strftime("%T"),
    closed_by: raw['closed_by'],
    avatar: "https://avatars1.githubusercontent.com/u/#{raw['user']['id']}?v=2&s=96",
    domain: "#{ulink.host}/#{ulink.path.split('/')[1]}/#{ulink.path.split('/')[2]}",
  }
end
match() click to toggle source
# File lib/onebox/engine/github_issue_onebox.rb, line 24
def match
  @match ||= @url.match(/^http(?:s)?:\/\/(?:www\.)?(?:(?:\w)+\.)?github\.com\/(?<org>.+)\/(?<repo>.+)\/(?<type>issues)\/(?<item_id>[\d]+)/)
end