class DTRipperProjectCreator::DTModuleGenerator

Public Class Methods

new(module_name,module_dir=File.dirname(__FILE__),main_proj_name="MainProject", main_proj_dir=nil) click to toggle source
# File lib/DTRipperProjectCreator.rb, line 162
def initialize(module_name,module_dir=File.dirname(__FILE__),main_proj_name="MainProject", main_proj_dir=nil)
  @module_dir  = module_dir
  @module_name = module_name
  @main_proj_dir = main_proj_dir
  @main_proj_name = main_proj_name
  if main_proj_dir == nil
    @main_proj_dir = module_dir
  end
end

Public Instance Methods

config() click to toggle source
# File lib/DTRipperProjectCreator.rb, line 172
def config
  workspace_file_dir = File.join(@main_proj_dir,@main_proj_name,"#{@main_proj_name}.xcworkspace")
  main_proj_file_dir = File.join @main_proj_dir ,@main_proj_name , "#{@main_proj_name}.xcodeproj"
  module_proj_file_dir = File.join(@module_dir,@module_name,"#{@module_name}.xcodeproj")
  podfile_dir          = File.join @main_proj_dir ,@main_proj_name , "Podfile"

  if !File.exists?(main_proj_file_dir)
    puts "Did not found main project at path:'#{main_proj_file_dir}'"
    return
  end


  File.open(podfile_dir,"r:utf-8") do |fr|
    buffer = fr.read
    if !buffer.include?("#{@module_name}")
      endIndex = buffer.index("end")
      puts endIndex
      buffer.insert(endIndex,"  pod '#{@module_name}', :path => '#{File.join(@module_dir,@module_name)}' \n")
      File.open(podfile_dir, "w:utf-8") { |fw|
        fw.write(buffer)
      }
    end
  end
  workspace = DTMainProjectGenerator.create_workspace(@main_proj_dir,@main_proj_name)
  workspace << module_proj_file_dir
  workspace.save_as workspace_file_dir
  exec "pod install --project-directory=#{File.join(@main_proj_dir,@main_proj_name)}"
end
create() click to toggle source
# File lib/DTRipperProjectCreator.rb, line 201
def create

  main_proj_file_dir = File.join @main_proj_dir ,@main_proj_name , "#{@main_proj_name}.xcodeproj"
  if !File.exists? main_proj_file_dir
    #create main project
    return DTMainProjectGenerator.new(@main_proj_name,@main_proj_dir).create
  end

  #create module project
  result = ProjectReplacer.new(@module_name,@module_dir,
                                TEMPLETE_MODULE_PROJECT_ZIP_FILE_NAME,
                                TEMPLETE_MODULE_PROJECT_DOWNLOAD_URL,
                                TEMPLETE_MODULE_PROJECT_ROOT_FOLDER,
                                REPLACEABLE_STRING_REX).replace
  if result
    config
  end
end