class SlackTransformer::Date

Constants

DATE_FORMAT_TOKENS

See api.slack.com/docs/message-formatting#formatting_dates

Attributes

fallback[R]
format[R]
input[R]

Public Class Methods

new(input, format:, link: nil, fallback:) click to toggle source
# File lib/slack_transformer/date.rb, line 23
def initialize(input, format:, link: nil, fallback:)
  @input = input
  @format = format
  @link = link
  @fallback = fallback
end

Public Instance Methods

to_slack() click to toggle source
# File lib/slack_transformer/date.rb, line 30
def to_slack
  tokens = format.scan(/(\{\w+\})/).first

  if tokens
    invalid_tokens = tokens.reject { |t| DATE_FORMAT_TOKENS.include?(t) }
    raise InvalidTokenError, invalid_tokens.join(', ') unless invalid_tokens.empty?
  end

  "<!date^#{Time.parse(input.to_s).to_i}^#{format}#{"^#{link}" if link}|#{fallback}>"
end