Class: DTRipperProjectCreator::DTModuleGenerator

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

Instance Method Summary collapse

Constructor Details

#initialize(module_name, module_dir = File.dirname(__FILE__), main_proj_name = "MainProject", main_proj_dir = nil) ⇒ DTModuleGenerator

Returns a new instance of DTModuleGenerator.



161
162
163
164
165
166
167
168
169
# File 'lib/DTRipperProjectCreator.rb', line 161

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

Instance Method Details

#configObject



171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
# File 'lib/DTRipperProjectCreator.rb', line 171

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.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

#createObject



200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
# File 'lib/DTRipperProjectCreator.rb', line 200

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
    DTMainProjectGenerator.new(@main_proj_name,@main_proj_dir).create
  end

  #create module project
  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
  config
end