Class: Lolita::Configuration::Filter

Inherits:
Object
  • Object
show all
Includes:
Builder
Defined in:
lib/lolita/configuration/filter.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

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

#dbiObject (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