Class: Koi::AdminRouteGenerator
Instance Method Summary
collapse
#collection_attribute_for, #default_sort_attribute, #govuk_input_for, #index_attribute_for, #index_attributes, #show_attribute_for, #show_attributes
Instance Method Details
#add_navigation ⇒ Object
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
# File 'lib/generators/koi/admin_route/admin_route_generator.rb', line 46
def add_navigation
gsub_file("config/initializers/koi.rb", /Koi::Menu.modules = ({}|{\n(?:\s+.*\n)*})\n/) do |match|
config = eval(match) label = [*regular_class_path.map(&:humanize), human_name.pluralize].join(" ")
path = route_url
config[label] = path
config = config.sort.to_h
StringIO.new.tap do |io|
io.puts "Koi::Menu.modules = {"
config.each do |k, v|
if v.is_a?(Hash)
io.puts " #{k.inspect} => {"
v.each do |kk, vv|
io.puts " #{kk.inspect} => #{vv.inspect},"
end
io.puts " },"
else
io.puts " #{k.inspect} => #{v.inspect},"
end
end
io.puts "}"
end.string
end
end
|
#add_route ⇒ Object
26
27
28
29
30
31
32
33
34
35
36
37
38
|
# File 'lib/generators/koi/admin_route/admin_route_generator.rb', line 26
def add_route
route "resources :#{file_name.pluralize}"
if orderable?
resource_route "patch :order, on: :collection"
end
if archivable?
resource_route "put :restore, on: :collection"
resource_route "put :archive, on: :collection"
resource_route "get :archived, on: :collection"
end
end
|
#create_navigation ⇒ Object
40
41
42
43
44
|
# File 'lib/generators/koi/admin_route/admin_route_generator.rb', line 40
def create_navigation
return if Pathname.new(destination_root).join("config/initializers/koi.rb").exist?
template("initializer.rb", "config/initializers/koi.rb")
end
|
#create_routes ⇒ Object
20
21
22
23
24
|
# File 'lib/generators/koi/admin_route/admin_route_generator.rb', line 20
def create_routes
return if Pathname.new(destination_root).join("config/routes/admin.rb").exist?
template("routes.rb", "config/routes/admin.rb")
end
|