Public instance methods
add_scaffolding_methods
(classes)
[show source]
# File lib/scaffolding_extensions/model/datamapper.rb, line 279 279: def add_scaffolding_methods(classes) 280: unless classes.is_a?(Array) 281: classes = [classes] 282: end 283: classes.each do |cl| 284: cl.class_eval "SCAFFOLD_OPTIONS = ::ScaffoldingExtensions::MetaModel::SCAFFOLD_OPTIONS\ninclude ScaffoldingExtensions::Model\ninclude ScaffoldingExtensions::DataMapper\nextend ScaffoldingExtensions::MetaModel\nextend ScaffoldingExtensions::MetaDataMapper\nextend ScaffoldingExtensions::Overridable\n" 285: end 286: end
get_key_array_safe
(key)
[show source]
# File lib/scaffolding_extensions/model/datamapper.rb, line 3 3: def get_key_array_safe(key) 4: if key.is_a?(Array) then 5: if key.length==1 6: key.first 7: else 8: key 9: end 10: else 11: key 12: end 13: end
get_ordering_options
(ordopts)
[show source]
# File lib/scaffolding_extensions/model/datamapper.rb, line 15 15: def get_ordering_options(ordopts) 16: result = [] 17: if ordopts then 18: ordering = ordopts.dup 19: else 20: return nil 21: end 22: ordering = ordering.split(',') unless ordering.is_a?(Array) 23: ordering.each do |ord| 24: asc = :asc 25: if ord.upcase =~ /DESC/ 26: asc = :desc 27: end 28: ord.gsub!(/[Dd][Ee][Ss][Cc]|[Aa][Ss][Cc]/,"") 29: ord.strip! 30: if ord =~ /(\w+)\.(\w+)/ 31: tablename = $1 32: propertyname = $2 33: #TODO handling of associated orderings 34: #optionshash[:order] << DataMapper::Query::Direction.new(eval("#{tablename.downcase.gsub(/\b[a-z]/) { |a| a.upcase }.gsub(/\s/, "") 35: #}.properties[:#{propertyname.downcase}]"),asc) 36: result << eval(":#{propertyname}.#{asc.to_s}") 37: elsif ord =~ /(\w+)/ 38: propertyname = $1 39: result << eval(":#{propertyname}.#{asc.to_s}") 40: else 41: # TODO Warning message 42: end 43: end 44: result 45: end