Sha256: d71ba9be7079aa1cda8f0ed800412f7c919e1ea8e225a37706fe9727933a1a89
Contents?: true
Size: 980 Bytes
Versions: 3
Compression:
Stored size: 980 Bytes
Contents
module Stevenson module OutputFilter autoload :Jekyll, 'stevenson/output_filters/jekyll' autoload :Zip, 'stevenson/output_filters/zip' autoload :Generator, 'stevenson/output_filter/generator' class Base attr_reader :directory def self.included(filter) filter.extend ClassMethods Stevenson.output_filters[filter.filter_name] = filter end module ClassMethods def filter_name name.gsub(/^.*::/, '').downcase.to_sym end end def initialize(directory) @directory = directory end def output raise NotImplementedError end end def self.generate!(template, options) Generator.new(options).generate!(template) end def self.filter_for(type) Stevenson.output_filters[type] || const_get(type.to_s.capitalize) rescue NameError => e raise NameError.new "Type '#{type}' is not a valid output type.", e end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
stevenson-2.2.0 | lib/stevenson/output_filter.rb |
stevenson-2.1.0 | lib/stevenson/output_filter.rb |
stevenson-2.0.0 | lib/stevenson/output_filter.rb |