class IdobataHook::Source

Public Class Methods

htmlize(message) click to toggle source
# File lib/idobata_hook/source.rb, line 26
def htmlize(message)
  return message if message.is_a? String

  type, text = message.first
  case type.to_s
  when 'label'
    %(<span class="label">#{text}</span>)
  when /label-(.+)/
    %(<span class="label label-#{$1}">#{text}</span>)
  when 'badge'
    %(<span class="badge">#{text}</span>)
  when /badge-(.+)/
    %(<span class="badge badge-#{$1}">#{text}</span>)
  when 'emoji'
    %(<img class="emoji" alt=":#{text}:" src="/images/emoji/#{text}.png">)
  when 'fa'
    %(<i class="fa fa-#{text}"></i>)
  when 'commit-id'
    %(<span class="commit-id">#{text}</span>)
  else
    raise "unsupported type: #{type}"
  end
end
new(*messages) click to toggle source
# File lib/idobata_hook/source.rb, line 3
def initialize(*messages)
  @text, @force_html = parse(messages.flatten)
end

Public Instance Methods

force_html?() click to toggle source
# File lib/idobata_hook/source.rb, line 7
def force_html?
  @force_html
end
parse(messages) click to toggle source
# File lib/idobata_hook/source.rb, line 15
def parse(messages)
  force_html = false
  text = messages.map do |message|
    next message if message.is_a? String
    force_html ||= true
    Source.htmlize(message)
  end.join
  [text, force_html]
end
to_s() click to toggle source
# File lib/idobata_hook/source.rb, line 11
def to_s
  @text
end