class Lolita::Configuration::Tabs

Lolita::Configuration::Tabs is container class that holds all tabs for each lolita instance. Also it has some useful methods.

Attributes

excluded[R]
tab_types[RW]

Public Class Methods

new(dbp,*args,&block) click to toggle source
# File lib/lolita/configuration/tabs.rb, line 13
def initialize dbp,*args,&block
  set_and_validate_dbp(dbp)
  set_default_attributes
  set_attributes(*args)
  self.instance_eval(&block) if block_given?
end

Public Instance Methods

associated() click to toggle source
# File lib/lolita/configuration/tabs.rb, line 49
def associated
  @tabs.select{|tab| !tab.dissociate}
end
by_type(type) click to toggle source
# File lib/lolita/configuration/tabs.rb, line 41
def by_type(type)
  @tabs.detect{|tab| tab.type == type.to_sym }
end
default() click to toggle source
# File lib/lolita/configuration/tabs.rb, line 57
def default
  tab_types.each{|type| tab(type.to_sym)}
end
dissociated() click to toggle source
# File lib/lolita/configuration/tabs.rb, line 53
def dissociated
  @tabs.select{|tab| tab.dissociate}
end
each() { |tab| ... } click to toggle source
# File lib/lolita/configuration/tabs.rb, line 20
def each
  create_content_tab if @tabs.empty?
  @tabs.each{|tab| yield tab }
end
fields() click to toggle source
# File lib/lolita/configuration/tabs.rb, line 37
def fields
  @tabs.map(&:fields).flatten
end
names() click to toggle source
# File lib/lolita/configuration/tabs.rb, line 45
def names
  @tabs.map(&:name)
end
tab(*args,&block) click to toggle source
# File lib/lolita/configuration/tabs.rb, line 33
def tab *args,&block
  self << build_element(args && args[0],&block)
end
tabs=(values) click to toggle source
# File lib/lolita/configuration/tabs.rb, line 25
def tabs=(values)
  if values.respond_to?(:each)
    values.each{|tab| self << tab}
  else
    raise ArgumentError, "#{values} must respond to each"
  end
end

Private Instance Methods

build_element(possible_tab,&block) click to toggle source
# File lib/lolita/configuration/tabs.rb, line 80
def build_element(possible_tab,&block)
  possible_tab = possible_tab.nil? && :default || possible_tab
  new_tab = if possible_tab.is_a?(Hash) || possible_tab.is_a?(Symbol)
    Lolita::Configuration::Factory::Tab.add(dbp,possible_tab,&block)
  else
    possible_tab
  end
  validate(new_tab)
  new_tab
end
collection_variable() click to toggle source
# File lib/lolita/configuration/tabs.rb, line 76
def collection_variable
  @tabs
end
create_content_tab() click to toggle source
# File lib/lolita/configuration/tabs.rb, line 68
def create_content_tab
  tab(:content)
end
set_default_attributes() click to toggle source
# File lib/lolita/configuration/tabs.rb, line 63
def set_default_attributes()
  @tabs=[]
  @tab_types = [:content]
end
validate(tab) click to toggle source
# File lib/lolita/configuration/tabs.rb, line 72
def validate(tab)
  tab.respond_to?(:validate) && tab.send(:validate, :tabs => @tabs)
end