Sha256: 2d53837c32d940c442edd66733eb4e9467ee0dd9138b7606604e6009b302db37

Contents?: true

Size: 1.05 KB

Versions: 5

Compression:

Stored size: 1.05 KB

Contents

class MimeType
  attr_accessor :name, :extensions, :mime_types
  def initialize(name)
    @name = name
    @extensions = []
    @mime_types = []
    @processor = nil
    @builder = nil
    @auth_type = :page
    @layout_processor = :ember
  end

  def mime_types(*types)
    @mime_types += types
  end

  def extensions(*exts)
    @extensions += exts
  end

  def default_extension(ext=nil)
    @extensions.first
  end

  def default_mime_type
    @mime_types.first
  end

  def has_builder?
    !@builder.nil?
  end

  def builder(&block)
    @builder = block
  end

  def create_builder
    @builder ? @builder.call : nil
  end

  def has_processor?
    !@processor.nil?
  end

  def processor(&block)
    @processor = block
  end

  def process(data)
    @processor ? @processor.call(data) : data
  end
  
  def layout_processor(*processor)
    if processor.empty?
      @layout_processor
    else
      @layout_processor = processor.first
    end
  end
  
  def auth_type(*type)
    if type.empty?
      @auth_type
    else
      @auth_type = type.first
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
yodel-0.0.7 lib/yodel/mime_types/mime_type.rb
yodel-0.0.4 lib/yodel/mime_types/mime_type.rb
yodel-0.0.3 lib/yodel/mime_types/mime_type.rb
yodel-0.0.2 lib/yodel/mime_types/mime_type.rb
yodel-0.0.1 lib/yodel/mime_types/mime_type.rb