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