Class: RepositoryGenerator

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

Instance Method Summary collapse

Constructor Details

#initialize(parser, config) ⇒ RepositoryGenerator

Returns a new instance of RepositoryGenerator.



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

def initialize(parser, config)
  @parser = parser
  @config = config
end

Instance Method Details

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



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

def generate(repository_name, options = {})
  core_group = @parser.repository_core_group
  data_group = @parser.repository_data_group

  raise "[Error] Group #{repository_name} already exists in #{core_group.display_name}" if core_group[repository_name]
  associate_path_to_group = !core_group.path.nil?
  core_data_new_group_path = File.join(core_group.real_path, repository_name)
  core_data_new_group = core_group.new_group(repository_name, associate_path_to_group ? core_data_new_group_path : nil)

  raise "[Error] Group #{repository_name} already exists in #{data_group.display_name}" if data_group[repository_name]
  associate_path_to_group = !data_group.path.nil?
  data_new_group_path = File.join(data_group.real_path, repository_name)
  data_new_group = data_group.new_group(repository_name, associate_path_to_group ? data_new_group_path : nil)

  file_creator = FileCreator.new(options)
  core_target = @parser.core_target
  file_creator.create_file(repository_name, 'Repository', core_data_new_group, core_target)

  file_creator = FileCreator.new(options)
  data_target = @parser.data_target
  file_creator.create_file(repository_name, 'RepositoryImplementation', data_new_group, data_target)

  file_creator.print_file_content(repository_name, 'RepositoryAssembly')
end