Module: NitroRails::SequentialRoutes

Defined in:
app/lib/nitro_rails/sequential_routes.rb

Instance Method Summary collapse

Instance Method Details

#sequence(domain, sequence_name, steps:) ⇒ Object



2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'app/lib/nitro_rails/sequential_routes.rb', line 2

def sequence(domain, sequence_name, steps:)
  controller = "#{domain}/#{sequence_name}_sequence"
  collection_route = "#{domain}/#{sequence_name}"
  individual_route = "#{domain}/:id/#{sequence_name}"
  helper = "#{domain}_#{sequence_name}_sequence"

  get collection_route, to: "#{controller}#start", as: helper
  get "#{individual_route}/finish", to: "#{controller}#finish", as: "#{helper}_finish"
  # get "#{individual_route}/:step", to: "#{controller}#step", as: "#{helper}_step"
  # 
  steps.each do |step|
    get "#{individual_route}/#{step}", to: "#{controller}##{step}", as: "#{helper}_#{step}"
    get "#{collection_route}/#{step}", to: "#{controller}##{step}", as: "new_#{helper}_#{step}"
    patch "#{individual_route}/#{step}", to: "#{controller}##{step}!", as: "post_#{helper}_#{step}"
    post "#{collection_route}/#{step}", to: "#{controller}##{step}!", as: "create_#{helper}_#{step}"
    post "#{individual_route}/#{step}", to: "#{controller}##{step}!", as: "create_items_#{helper}_#{step}"
  end
end

#sequence_collection_route(domain, sequence_name) ⇒ Object



25
26
27
# File 'app/lib/nitro_rails/sequential_routes.rb', line 25

def sequence_collection_route(domain, sequence_name)
  "#{domain}/#{sequence_name}"
end

#sequence_controller(domain, sequence_name) ⇒ Object



21
22
23
# File 'app/lib/nitro_rails/sequential_routes.rb', line 21

def sequence_controller(domain, sequence_name)
  "sequences/#{domain}_#{sequence_name}"
end

#sequence_helper(domain, sequence_name) ⇒ Object



33
34
35
# File 'app/lib/nitro_rails/sequential_routes.rb', line 33

def sequence_helper(domain, sequence_name)
  "#{domain}_#{sequence_name}_sequence"
end

#sequence_individual_route(domain, sequence_name) ⇒ Object



29
30
31
# File 'app/lib/nitro_rails/sequential_routes.rb', line 29

def sequence_individual_route(domain, sequence_name)
  "#{domain}/:id/#{sequence_name}"
end