Sha256: a423bbeeefa4b18e32b457d8584e4e0ae9449e8d26f34598e1d3561b77f2d7d0

Contents?: true

Size: 1.68 KB

Versions: 2

Compression:

Stored size: 1.68 KB

Contents

module Lolita
  module Configuration
    module Tab
      # FileTab extend Lolita default tab with new lolita accessors.
      # * <tt>extensions</tt> - Array of extension white list
      # * <tt>maxfilesize</tt> - uploaded file maximums size
    	class Files < Lolita::Configuration::Tab::Base
    	
  	  	lolita_accessor :extensions,:maxfilesize
        attr_reader :association

        # As any other Lolita::Configuration::Tab this should receive _dbi_ object.
        # Additional _args_ that may represent methods, for details see Lolita::Configuration::Tab.
        # And block.
  	  	def initialize(dbi,*args,&block)
          @type=:files
  	  		@extensions=[]
          @dbi=dbi
          set_association
  	  		super
  	  	end

        # Add another extension to #extensions white list.
        # ====Example
        #     # using in lolita configuration definition
        #     lolita do
        #       tab(:file) do
        #         extension :pdf
        #       end
        #     end
        #     
        #     # using for object
        #     Lolita::Configuration.FileTab.new(dbi).extension("pdf")
  	  	def extension(value)
  	  		@extensions << value
  	  	end
  	  	
        private

        def set_association
          @association=self.dbi.associations.detect{|k,assoc| assoc.class_name=="Lolita::Upload::File"}
          @association=@association.last if @association
        end

        def validate
          super
          unless self.association
            raise Lolita::AssociationError, "#{self.dbi.klass} has no association with Lolita::Upload::File. Put has_many :files, :class_name=>'Lolita::Upload::File' to have one."
          end
        end

      end
  	end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
lolita-file-upload-0.1.3 lib/lolita-file-upload/configuration/tab/files.rb
lolita-file-upload-0.1.2 lib/lolita-file-upload/configuration/tab/files.rb