datamapper.rb

lib/scaffolding_extensions/model/datamapper.rb
Last Update: Fri Apr 15 08:27:48 -0700 2011

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