Class: Lolita::Configuration::List

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Builder

#build, #builder_options, #default_builder, #get_builder

Constructor Details

#initialize(*args, &block) ⇒ List

Returns a new instance of List.



8
9
10
11
12
13
14
15
16
17
# File 'lib/lolita/configuration/list.rb', line 8

def initialize(*args,&block)
  if args && args[0].is_a?(Lolita::DBI::Base)
    @dbi=args.shift
  end
  @columns=Lolita::Configuration::Columns.new(self)
  @set_attributes=[]
  set_attributes(*args)
  self.instance_eval(&block) if block_given?
  self.generate!()
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method_name, *args, &block) ⇒ Object

Look for methods in Page class. Load @page on demand and call method on it.



20
21
22
23
24
25
26
27
# File 'lib/lolita/configuration/list.rb', line 20

def method_missing(method_name,*args,&block)
  if Lolita::Configuration::Page.public_instance_methods.include?(method_name.to_sym)
    @page||=Lolita::Configuration::Page.new(@dbi)
    @page.send(method_name.to_sym,*args,&block)
  else
    super
  end
end

Instance Attribute Details

#dbiObject (readonly)

Returns the value of attribute dbi.



6
7
8
# File 'lib/lolita/configuration/list.rb', line 6

def dbi
  @dbi
end

#initialized_attributesObject (readonly)

Returns the value of attribute initialized_attributes.



6
7
8
# File 'lib/lolita/configuration/list.rb', line 6

def initialized_attributes
  @initialized_attributes
end

Instance Method Details

#columns(*args) ⇒ Object

Get list columns (also block setter)



42
43
44
45
46
47
48
# File 'lib/lolita/configuration/list.rb', line 42

def columns(*args)
  if args && !args.empty?
    self.columns=args
  end
  self.generate!
  @columns
end

#columns=(value) ⇒ Object

Set columns. Allowed classes are Lolita::Configuration::Columns or Array.



30
31
32
33
34
35
36
37
38
39
# File 'lib/lolita/configuration/list.rb', line 30

def columns=(value)
  set_attribute(:columns)
  if value.is_a?(Lolita::Configuration::Columns)
    @columns=value
  elsif value.is_a?(Array)
    value.each{|el| @columns<<el}
  else
    raise ArgumentError.new("Columns must bet Array or Lolita::Configuration::Columns.")
  end
end

#filter(*args, &block) ⇒ Object

Adds filter



61
62
63
# File 'lib/lolita/configuration/list.rb', line 61

def filter(*args,&block)
  @filter ||= Lolita::Configuration::Filter.new(self.dbi,*args,&block)
end

#filter?Boolean

checks if filter defined

Returns:

  • (Boolean)


56
57
58
# File 'lib/lolita/configuration/list.rb', line 56

def filter?
  @filter.is_a?(Lolita::Configuration::Filter)
end

#generate!Object

Generate uninitialized attributes



51
52
53
# File 'lib/lolita/configuration/list.rb', line 51

def generate!()
  @columns.generate! unless is_set?(:columns)
end