Class: PresenterGenerator

Inherits:
Object
  • Object
show all
Defined in:
lib/ccios/presenter_generator.rb

Instance Method Summary collapse

Constructor Details

#initialize(parser) ⇒ PresenterGenerator

Returns a new instance of PresenterGenerator.



6
7
8
# File 'lib/ccios/presenter_generator.rb', line 6

def initialize(parser)
  @parser = parser
end

Instance Method Details

#generate(presenter_name, options = {}) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/ccios/presenter_generator.rb', line 10

def generate(presenter_name, options = {})
  app_group = @parser.app_group
  raise "[Error] Group #{presenter_name} already exists in #{app_group.display_name}" if app_group[presenter_name]
  new_group = app_group.new_group(presenter_name)

  ui_group = new_group.new_group("UI")
  ui_group.new_group("View")
  view_controller_group = ui_group.new_group("ViewController")
  presenter_group = new_group.new_group("Presenter")
  model_group = new_group.new_group("Model")

  file_creator = FileCreator.new(@parser.source_path, options)
  target = @parser.main_target
  file_creator.create_file(presenter_name, 'ViewContract', ui_group, target)
  file_creator.create_file(presenter_name, 'ViewController', view_controller_group, target)
  file_creator.create_file(presenter_name, 'Presenter', presenter_group, target)
  file_creator.create_file(presenter_name, 'PresenterImplementation', presenter_group, target)

  file_creator.print_file_content(presenter_name, 'DependencyProvider')
  file_creator.print_file_content(presenter_name, 'PresenterAssembly')
end