class Object

  1. lib/scaffolding_extensions/controller/camping.rb
  2. lib/scaffolding_extensions/model/datamapper.rb
  3. show all
Superclass: BasicObject

Constants

ERB = Erubis::Eruby  

Public Instance methods

add_scaffolding_methods (classes)
[show source]
# File lib/scaffolding_extensions/model/datamapper.rb, line 279
def add_scaffolding_methods(classes)
  unless classes.is_a?(Array)
    classes = [classes]
  end
  classes.each do |cl|
    cl.class_eval <<-ECLASS
      SCAFFOLD_OPTIONS = ::ScaffoldingExtensions::MetaModel::SCAFFOLD_OPTIONS
      include ScaffoldingExtensions::Model
      include ScaffoldingExtensions::DataMapper
      extend ScaffoldingExtensions::MetaModel
      extend ScaffoldingExtensions::MetaDataMapper
      extend ScaffoldingExtensions::Overridable
    ECLASS
  end
end
get_key_array_safe (key)
[show source]
# File lib/scaffolding_extensions/model/datamapper.rb, line 3
def get_key_array_safe(key)
  if key.is_a?(Array) then
    if key.length==1
      key.first
    else
      key
    end
  else
    key
  end
end
get_ordering_options (ordopts)
[show source]
# File lib/scaffolding_extensions/model/datamapper.rb, line 15
def get_ordering_options(ordopts)
  result = []
  if ordopts then
    ordering = ordopts.dup
  else
    return nil
  end
  ordering = ordering.split(',') unless ordering.is_a?(Array)
  ordering.each do |ord|
    asc = :asc
    if ord.upcase =~ /DESC/
      asc = :desc
    end
    ord.gsub!(/[Dd][Ee][Ss][Cc]|[Aa][Ss][Cc]/,"")
    ord.strip!
    if ord =~ /(\w+)\.(\w+)/
      tablename = $1
      propertyname = $2
      #TODO handling of associated orderings
      #optionshash[:order] << DataMapper::Query::Direction.new(eval("#{tablename.downcase.gsub(/\b[a-z]/) { |a| a.upcase }.gsub(/\s/, "")
      #}.properties[:#{propertyname.downcase}]"),asc)
      result << eval(":#{propertyname}.#{asc.to_s}")
    elsif ord =~ /(\w+)/
      propertyname = $1
      result << eval(":#{propertyname}.#{asc.to_s}")
    else
      # TODO Warning message
    end
  end
  result
end
scaffold_R (root)

Create a route class, and automatically extend it with MetaCampingController so scaffold methods can be used directly inside of it.

[show source]
# File lib/scaffolding_extensions/controller/camping.rb, line 145
def scaffold_R(root)
  r = Camping::Controllers::R("(#{root})/?([^/]*)/?([^/]*)")
  r.send(:extend, ScaffoldingExtensions::MetaCampingController)
  r
end