Class: Lolita::Configuration::Tab::Files
- Inherits:
-
Base
- Object
- Base
- Lolita::Configuration::Tab::Files
- Defined in:
- lib/lolita-file-upload/configuration/tab/files.rb
Overview
FileTab extend Lolita default tab with new lolita accessors.
-
extensions
- Array of extension white list -
maxfilesize
- uploaded file maximums size
Instance Attribute Summary collapse
-
#association(name = nil) ⇒ Object
readonly
Returns the value of attribute association.
-
#association_type ⇒ Object
readonly
Returns the value of attribute association_type.
-
#uploader(name = nil) ⇒ Object
readonly
Returns the value of attribute uploader.
Instance Method Summary collapse
- #association_dbi ⇒ Object
- #default_fields ⇒ Object
- #editable_fields ⇒ Object
- #extension_white_list ⇒ Object
- #field(*args, &block) ⇒ Object
-
#filters(title = nil, extensions = nil) ⇒ Object
NOTE: Filters only limit frontend, backend limit is set in Uploader.
-
#initialize(dbi, *args, &block) ⇒ Files
constructor
As any other Lolita::Configuration::Tab this should receive dbi object.
Constructor Details
#initialize(dbi, *args, &block) ⇒ Files
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.
15 16 17 18 19 20 21 22 |
# File 'lib/lolita-file-upload/configuration/tab/files.rb', line 15 def initialize(dbi, *args, &block) @type=:files @dissociate = true @filters=[] @dbi=dbi set_default_association super(dbi, @type, *args, &block) end |
Instance Attribute Details
#association(name = nil) ⇒ Object (readonly)
Returns the value of attribute association.
10 11 12 |
# File 'lib/lolita-file-upload/configuration/tab/files.rb', line 10 def association @association end |
#association_type ⇒ Object (readonly)
Returns the value of attribute association_type.
10 11 12 |
# File 'lib/lolita-file-upload/configuration/tab/files.rb', line 10 def association_type @association_type end |
#uploader(name = nil) ⇒ Object (readonly)
Returns the value of attribute uploader.
10 11 12 |
# File 'lib/lolita-file-upload/configuration/tab/files.rb', line 10 def uploader @uploader end |
Instance Method Details
#association_dbi ⇒ Object
57 58 59 |
# File 'lib/lolita-file-upload/configuration/tab/files.rb', line 57 def association_dbi Lolita::DBI::Base.new self.association.klass end |
#default_fields ⇒ Object
69 70 71 72 73 74 75 |
# File 'lib/lolita-file-upload/configuration/tab/files.rb', line 69 def default_fields if association association_dbi.fields.each{|db_field| self.field(:name => db_field.name, :type => db_field.type, :dbi_field => db_field) if db_field.content? } end end |
#editable_fields ⇒ Object
77 78 79 80 81 82 |
# File 'lib/lolita-file-upload/configuration/tab/files.rb', line 77 def editable_fields if association self.default_fields if self.fields.empty? self.fields end end |
#extension_white_list ⇒ Object
84 85 86 |
# File 'lib/lolita-file-upload/configuration/tab/files.rb', line 84 def extension_white_list self.association.klass.uploaders[self.uploader].new.extension_white_list end |
#field(*args, &block) ⇒ Object
61 62 63 64 65 66 67 |
# File 'lib/lolita-file-upload/configuration/tab/files.rb', line 61 def field *args, &block if association field = Lolita::Configuration::Factory::Field.add(association_dbi,*args,&block) @fields << field field end end |
#filters(title = nil, extensions = nil) ⇒ Object
NOTE: Filters only limit frontend, backend limit is set in Uploader
Add another filter or just title for uploader’s extension_white_list
Example
# using in lolita configuration definition
lolita do
tab(:file) do
title "Pictures"
filters "Images", "png,jpg"
# OR
filters "Pictures"
end
end
38 39 40 41 |
# File 'lib/lolita-file-upload/configuration/tab/files.rb', line 38 def filters(title=nil, extensions=nil) @filters << {:title => title, :extensions => extensions || self.extension_white_list} if title (@filters.empty? && self.extension_white_list) ? [{:title => self.title, :extensions => self.extension_white_list}] : @filters end |