class Drone::Builds::Parser
Constants
- MESSAGE_MAX_WIDTH
- STATUS_COLORS
Attributes
client[R]
Public Class Methods
new(client)
click to toggle source
# File lib/drone/builds/parser.rb, line 17 def initialize(client) @client = client end
Public Instance Methods
parse_build(build)
click to toggle source
# File lib/drone/builds/parser.rb, line 25 def parse_build(build) { number: parse_number(build['number']), status: parse_status(build['status']), author: parse_author(build['author']), ref: parse_ref(build['ref']), message: parse_message(build['message']) } end
parse_builds(builds)
click to toggle source
# File lib/drone/builds/parser.rb, line 21 def parse_builds(builds) builds.map { |build| parse_build(build) } end
parse_message(message)
click to toggle source
# File lib/drone/builds/parser.rb, line 56 def parse_message(message) message = message.to_s.lines.first.to_s message = message.gsub("of github.com:#{client.owner}/#{client.name}", '') message[0..MESSAGE_MAX_WIDTH] end
parse_number(number)
click to toggle source
# File lib/drone/builds/parser.rb, line 35 def parse_number(number) number.to_s end
parse_ref(ref)
click to toggle source
# File lib/drone/builds/parser.rb, line 52 def parse_ref(ref) ref.gsub('refs/heads/', '').gsub('/head', '').gsub('refs/pull/', '#') end
parse_status(status)
click to toggle source
# File lib/drone/builds/parser.rb, line 39 def parse_status(status) status.colorize(STATUS_COLORS[status.to_sym]) end
table(data, fields)
click to toggle source
# File lib/drone/builds/parser.rb, line 62 def table(data, fields) Terminal::Table.new(rows: [fields, :separator] + data.map(&:values)) end