Method: HtmlGrid::TagComposite#create

Defined in:
lib/htmlgrid/composite.rb

#create(component, model = @model) ⇒ Object



138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
# File 'lib/htmlgrid/composite.rb', line 138

def create(component, model=@model)
  if(component.is_a? Class)
    component.new(model, @session, self)
  elsif(component.is_a? Symbol)
    if(self.respond_to?(component, true))
      self.send(component, model)
    elsif(klass = symbol_map[component])
      klass.new(component, model, @session, self)
    else
      self::class::DEFAULT_CLASS.new(component, model, @session, self)
    end
  elsif(component.is_a? String)
    val = @lookandfeel.lookup(component) { component.to_s }
      val.gsub(@@nl2br_ptrn, '<br>')
  end
rescue StandardError => exc
  exc.backtrace.push(sprintf("%s::COMPONENTS[%s] in create(%s)", 
    self.class, components.index(component).inspect, component))
  raise exc
end