Class: Lolita::Configuration::Filter
- Includes:
- Builder
- Defined in:
- lib/lolita/configuration/filter.rb
Instance Attribute Summary collapse
-
#dbi ⇒ Object
readonly
Returns the value of attribute dbi.
Instance Method Summary collapse
- #field(*args, &block) ⇒ Object
- #fields(*args, &block) ⇒ Object
-
#fields=(fields) ⇒ Object
Set all fields in tab.
-
#initialize(dbi, *args, &block) ⇒ Filter
constructor
A new instance of Filter.
-
#set_attributes(*args) ⇒ Object
Used to set attributes if block not given.
Methods included from Builder
#build, #builder_options, #default_builder, #get_builder
Constructor Details
#initialize(dbi, *args, &block) ⇒ Filter
7 8 9 10 11 12 |
# File 'lib/lolita/configuration/filter.rb', line 7 def initialize(dbi,*args,&block) @dbi = dbi @fields=Lolita::Configuration::Fields.new set_attributes(*args) self.instance_eval(&block) if block_given? end |
Instance Attribute Details
#dbi ⇒ Object (readonly)
Returns the value of attribute dbi.
5 6 7 |
# File 'lib/lolita/configuration/filter.rb', line 5 def dbi @dbi end |
Instance Method Details
#field(*args, &block) ⇒ Object
14 15 16 17 18 |
# File 'lib/lolita/configuration/filter.rb', line 14 def field *args, &block field=Lolita::Configuration::Field.add(self.dbi,*args,&block) @fields<<field field end |
#fields(*args, &block) ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/lolita/configuration/filter.rb', line 35 def fields(*args, &block) unless args.empty? args.each do |field_name| f = field(field_name) f.instance_eval(&block) if block_given? end end if @fields.empty? field :search end @fields end |
#fields=(fields) ⇒ Object
Set all fields in tab. Accept fields as Array. Each array element can be Lolita::Configuration::Field object or Hash, that will be passed to #field method.
23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/lolita/configuration/filter.rb', line 23 def fields=(fields) if fields.is_a?(Array) fields.each{|field_attr| if field_attr.is_a?(Lolita::Configuration::Field) @fields<<field_attr else self.field(field_attr) end } end end |
#set_attributes(*args) ⇒ Object
Used to set attributes if block not given.
49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/lolita/configuration/filter.rb', line 49 def set_attributes(*args) if args && args[0] if args[0].is_a?(Hash) args[0].each{|m,value| self.send("#{m}=".to_sym,value) } else fields *args end end end |