Sha256: c41f60dd0979a78885521ae0736e4bc9f88470059b0b82b2e85aaa4b895f6d1c

Contents?: true

Size: 671 Bytes

Versions: 4

Compression:

Stored size: 671 Bytes

Contents

module Stove
  module Formatter
    class Base
      class << self
        def inherited(base)
          key = base.to_s.split('::').last.gsub(/(.)([A-Z])/,'\1_\2').downcase.to_sym
          formatters[key] = base
        end

        def formatter_method(*methods)
          methods.each do |name|
            formatter_methods << name

            define_method(name) do |*args|
              raise Stove::AbstractFunction
            end
          end
        end

        def formatters
          @formatters ||= {}
        end

        def formatter_methods
          @formatter_methods ||= []
        end
      end

      formatter_method :upload
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
stove-1.1.2 lib/stove/formatter/base.rb
stove-1.1.0 lib/stove/formatter/base.rb
stove-1.0.1 lib/stove/formatter/base.rb
stove-1.0.0 lib/stove/formatter/base.rb