Class: IOS::ConfigureSwift

Inherits:
Object
  • Object
show all
Defined in:
lib/ios/module/setup/ConfigureSwift.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ ConfigureSwift

Returns a new instance of ConfigureSwift.



11
12
13
# File 'lib/ios/module/setup/ConfigureSwift.rb', line 11

def initialize(options)
  @configurator = options.fetch(:configurator)
end

Instance Attribute Details

#configuratorObject (readonly)

Returns the value of attribute configurator.



5
6
7
# File 'lib/ios/module/setup/ConfigureSwift.rb', line 5

def configurator
  @configurator
end

#root_pathObject (readonly)

Returns the value of attribute root_path.



5
6
7
# File 'lib/ios/module/setup/ConfigureSwift.rb', line 5

def root_path
  @root_path
end

Class Method Details

.perform(options) ⇒ Object



7
8
9
# File 'lib/ios/module/setup/ConfigureSwift.rb', line 7

def self.perform(options)
  new(options).perform
end

Instance Method Details

#performObject



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/ios/module/setup/ConfigureSwift.rb', line 15

def perform
  moduleType = configurator.ask_with_answers("Qual o tipo do módulo", ["Core", "Feature"]).to_sym


  if moduleType == :feature
    hasInterface = "yes".to_sym
    hasSwiftgen = "yes".to_sym
    hasTest = "yes".to_sym
  else
    hasInterface = configurator.ask_with_answers("Criar módulo de interfaces", ["Yes", "No"]).to_sym
    hasTest = configurator.ask_with_answers("Criar pasta de teste", ["Yes", "No"]).to_sym
    hasSwiftgen = configurator.ask_with_answers("Criar Swiftgen", ["Yes", "No"]).to_sym
    mockNetwork = "no".to_sym
  end

  keepDemo = configurator.ask_with_answers("Criar projeto exemplo", ["Yes", "No"]).to_sym
  if keepDemo == :yes && moduleType == :feature
    mockNetwork = configurator.ask_with_answers("Criar mocks de network para o projeto exemplo", ["Yes", "No"]).to_sym
  end

  ProjectManipulator.new({
                                :configurator => @configurator,
                                :keep_demo => keepDemo,
                                :module_type => moduleType,
                                :has_swiftgen => hasSwiftgen,
                                :has_interface => hasInterface,
                                :has_test => hasTest,
                                :mock_network => mockNetwork
                              }).run
end