Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Aug 12th, 2012  |  syntax: None  |  size: 0.93 KB  |  hits: 8  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. # app/models/wizard.rb
  2. class Wizard
  3.   # shared instance methods go here
  4.  
  5.   def self.all_visible_subwizards
  6.     descendants.entries.select{|d| d.visible?}.sort
  7.   end
  8. end
  9.  
  10. # lib/wizard_fields.rb
  11. module WizardFields
  12.   def self.included(base)
  13.     base.class_eval do
  14.       property :id,    DataMapper::Property::Serial
  15.       property :state, String
  16.     end
  17.   end
  18. end
  19.  
  20. # app/models/foo_wizard.rb
  21. class FooWizard < Wizard
  22.   include DataMapper::Resource
  23.   include WizardFields
  24.   # some associations here
  25.  
  26.   class << self
  27.     def description
  28.       "foo wizard"
  29.     end
  30.  
  31.     def visible?
  32.       true
  33.     end
  34.   end
  35.  
  36.   # state machine logic down here, other methods
  37. end
  38.  
  39. # app/models/bar_wizard.rb
  40. class BarWizard < Wizard
  41.   include DataMapper::Resource
  42.   include WizardFields
  43.   # some associations here
  44.  
  45.   class << self
  46.     def description
  47.       "bar wizard"
  48.     end
  49.  
  50.     def visible?
  51.       true
  52.     end
  53.   end
  54.  
  55.   # state machine logic down here, other methods
  56. end