class Roadie::ProvidersFailed
def build_message
def build_message message = +%(Could not find stylesheet "#{css_name}": #{extra_message}\nUsed providers:\n) each_error_row(errors) do |row| message << "\t" << row << "\n" end message end
def each_error_row(errors)
def each_error_row(errors) errors.each do |error| case error when ProvidersFailed each_error_row(error.errors) { |row| yield row } when CssNotFound yield error.error_row else yield "Unknown provider (#{error.class}): #{error}" end end end
def initialize(css_name:, providers:, errors:)
def initialize(css_name:, providers:, errors:) @errors = errors super( css_name: css_name, message: "All providers failed", provider: providers ) end