Class: Typelizer::RouteWriter

Inherits:
Object
  • Object
show all
Defined in:
lib/typelizer/route_writer.rb

Instance Method Summary collapse

Constructor Details

#initialize(config) ⇒ RouteWriter

Returns a new instance of RouteWriter.



7
8
9
10
# File 'lib/typelizer/route_writer.rb', line 7

def initialize(config)
  @config = config
  @template_cache = {}
end

Instance Method Details

#call(routes, force:) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/typelizer/route_writer.rb', line 12

def call(routes, force:)
  FileUtils.rm_rf(config.output_dir) if force

  written_files = []

  controllers = routes.group_by { |r| r[:controller] }
  named = build_named_routes(routes, controllers)

  controllers.each do |controller, controller_routes|
    written_files << write_controller(controller, controller_routes)
  end

  written_files << write_index(controllers, named)

  written_files << write_runtime

  cleanup_stale_files(written_files) unless force

  Typelizer.logger.debug("Generated #{written_files.size} route files in #{config.output_dir}")

  written_files
end