class Objc2swiftAssistant::Assistant

Attributes

config[RW]
config_file_path[RW]
configuration[RW]
dest_root[RW]
log_level_name[RW]
recognizers[RW]
source_root[RW]
structure_option[RW]

Public Class Methods

new( source, dest, config_file, log_level_name, structure_option) click to toggle source
# File lib/assistant.rb, line 29
def initialize( source, dest, config_file, log_level_name, structure_option)
  @source_root = source
  @dest_root = dest
  @config_file_path = config_file.nil? ? nil : Pathname.new( config_file )
  @log_level_name = log_level_name
  @structure_option = structure_option
  @recognizers = [
      CategoryDeclarationRecognizer.new(),
      CategoryImplRecognizer.new(),
      ProtocolRecognizer.new(),
      #EnumRecognizer.new(),
      ImplementationRecognizer.new(),
      InterfaceRecognizer.new(),
      MethodRecognizer.new(),
      PropertyDeclarationRecognizer.new(),
      AtDirectiveRecognizer.new()
      #PragmaMarkRecognizer.new()
  ]
end

Public Instance Methods

generate( dry_run ) click to toggle source
# File lib/assistant.rb, line 55
def generate( dry_run )
  unless @config_file_path.nil?
    log_stage_start( 'Reading Configuration File' )
  end

  @recognizers.each do | recognizer |
    recognizer.configuration = @configuration
  end

  source_file_set = ObjCFileSet.new( @source_root, @recognizers, configuration:@configuration)

  log_stage_start( 'Scanning Objective-C Source Files' )
  source_file_set.scan

  log_stage_start( 'Recognizing code fragmants' )
  source_file_set.recognize_code_fragments

  log_stage_start( 'Converting to Swift' )
  source_file_set.prepare_conversion

  source_file_set.generate_swift_file_set( @dest_root, dry_run )

  source_file_set.dump( '', '   ', @configuration.dump_only_errors ) if @configuration.dump_source

  # TODO
  # source_file_set.generate_swift_files(dry_run)
  #
  # generator = SwiftFileGenerator( @dest_root, source_file_set )
  # generator.map_sources_to_destinations

  # if writeCode
  #
  # else

  # generator.concat_source_files()
end
log_stage_start( text ) click to toggle source
# File lib/assistant.rb, line 104
def log_stage_start( text )
  return unless @verbose
  @configuration.log_verbose( "\n---------------------------------------- #{text} ----------------------------------------\n\n" )
end
read_config_file() click to toggle source
# File lib/assistant.rb, line 92
def read_config_file
  if @config_file_path.nil?
    @configuration = ObjC2SwiftConfiguration.new( {}, @log_level_name, @structure_option )
  else
    file_data = @config_file_path.read
    config_hash = JSON.parse(file_data)
    @configuration = ObjC2SwiftConfiguration.new( config_hash, @log_level_name, @structure_option )
  end

  @configuration.load_configuration
end
update() click to toggle source
# File lib/assistant.rb, line 49
def update
  source_file_set = ObjCFileSet.new( @source_root, @config_hash )
  source_file_set.scan

end