lib/approvals/writer.rb
require 'approvals/writers/text_writer'
require 'approvals/writers/array_writer'
require 'approvals/writers/hash_writer'
require 'approvals/writers/html_writer'
require 'approvals/writers/xml_writer'
require 'approvals/writers/json_writer'
require 'approvals/writers/binary_writer'
module Approvals
module Writer
extend Writers
REGISTRY = {
json: Writers::JsonWriter.new,
xml: Writers::XmlWriter.new,
html: Writers::HtmlWriter.new,
hash: Writers::HashWriter.new,
array: Writers::ArrayWriter.new,
txt: Writers::TextWriter.new,
}
class << self
def for(format)
begin
REGISTRY[format] || Object.const_get(format).new
rescue NameError => e
error = ApprovalError.new(
"Approval Error: #{ e }. Please define a custom writer as outlined"\
" in README section 'Customizing formatted output': "\
"https://github.com/kytrinyx/approvals#customizing-formatted-output"
)
raise error
end
end
end
end
end