Sha256: 089b5d97af68edec5f0ac7baf45a4712b5070146188dd088ec1530d133e96d8b
Contents?: true
Size: 1.12 KB
Versions: 4
Compression:
Stored size: 1.12 KB
Contents
require 'eac/listable' module EacLauncher module Publish class CheckResult include ::Eac::Listable lists.add_string :status, :updated, :pending, :blocked, :outdated lists.status.values.each do |status| class_eval <<-RUBY_EVAL, __FILE__, __LINE__ + 1 def self.#{status}(message) new('#{status}', message) end RUBY_EVAL end class << self def updated_color 'green' end def pending_color 'yellow' end def blocked_color 'red' end def outdated_color 'light_blue' end end attr_reader :status, :message def initialize(status, message) raise "Status \"#{status}\" not in #{self.class.lists.status.values}" unless self.class.lists.status.values.include?(status) @status = status @message = message end def to_s message.light_white.send("on_#{background_color}") end private def background_color self.class.send("#{status}_color") end end end end
Version data entries
4 entries across 4 versions & 1 rubygems