class IOSGen::Generator::BaseGenerator
Constants
- INTERACTORS_KEY
- VIEWCONTROLLER_KEY
- VIEWMODEL_KEY
Attributes
destination[R]
factory[R]
file_spec[R]
formatter[R]
test_formatter[R]
type[R]
view_controller[R]
view_model[R]
Public Class Methods
new(hash = {})
click to toggle source
# File lib/ios_gen/generator/base_generator.rb, line 16 def initialize(hash = {}) @type = hash[:type] @file_spec = hash[:file_spec] @destination = hash[:destination] @factory = IOSGen::Base::BaseFactory.new interactor_formatter = Objc::InteractorFormatter.new view_model_formatter = Objc::ViewModelFormatter.new(interactor_formatter) view_controller_formatter = Objc::ViewControllerFormatter.new(view_model_formatter) @formatter = Objc::Formatter.new(view_controller_formatter, view_model_formatter, interactor_formatter) @test_formatter = Objc::XctestcaseFormatter.new parse end
Public Instance Methods
generate()
click to toggle source
# File lib/ios_gen/generator/base_generator.rb, line 29 def generate @formatter.generate do |file_name, template| generate_template(file_name, template, @destination) puts "[+] Created Source File: #{file_name}".green end end
generate_test()
click to toggle source
# File lib/ios_gen/generator/base_generator.rb, line 36 def generate_test generate_test_object(@view_model) @view_model.interactors.each do |interactor| generate_test_object(interactor) end end
Private Instance Methods
generate_template(name, template, destination = '.')
click to toggle source
# File lib/ios_gen/generator/base_generator.rb, line 55 def generate_template(name, template, destination = '.') path_template = File.expand_path("../../../#{template}", File.dirname(__FILE__)) renderer = ERB.new(File.read(path_template)) destination_path = "#{destination}#{name}" File.open(destination_path, 'w') do |f| f.write renderer.result(binding) end end
generate_test_object(object)
click to toggle source
# File lib/ios_gen/generator/base_generator.rb, line 64 def generate_test_object(object) @test_formatter.object = object @test_formatter.generate do |file_name, template| generate_template(file_name, template, @destination) puts "[+] Created Test File: #{file_name}".green end end
parse()
click to toggle source
# File lib/ios_gen/generator/base_generator.rb, line 45 def parse file = File.read(@file_spec) hash = JSON.parse(file) @view_model = @factory.parse_view_model(hash[VIEWMODEL_KEY]) @view_controller = @factory.parse_view_controller(hash[VIEWCONTROLLER_KEY]) @view_controller.view_model = @view_model unless @view_controller.nil? @formatter.view_model = @view_model unless @view_model.nil? @formatter.view_controller = @view_controller unless @view_controller.nil? end