builder.rb 805 B

1234567891011121314151617181920212223242526272829303132333435
  1. class CustomWizard::Builder
  2. def initialize(user, wizard_id)
  3. @wizard = Wizard.new(user)
  4. @template = PluginStore.get('custom_wizard', wizard_id)
  5. end
  6. def build
  7. @template.each do |s|
  8. @wizard.append_step(s.title) do |step|
  9. step.banner = s.banner if s.banner
  10. s.fields.each do |f|
  11. field = step.add_field(id: f.id,
  12. type: f.type,
  13. required: f.required,
  14. value: f.value)
  15. if f.type == 'dropdown'
  16. f.choices.each do |c|
  17. field.add_choice(c)
  18. end
  19. end
  20. end
  21. step.on_update do |updater|
  22. puts "UPDATER: #{updater}"
  23. ## do stuff
  24. end
  25. end
  26. end
  27. @wizard
  28. end
  29. end