class DroidProj::Android::App

Attributes

res[RW]
res_path[RW]
root_dir[RW]

Public Class Methods

new(root_dir) click to toggle source
# File lib/droidproj/app.rb, line 9
def initialize(root_dir)
  @root_dir = root_dir
end

Public Instance Methods

create_filesystem!() click to toggle source

Public: Creates the necessary filesystem considering all options

# File lib/droidproj/app.rb, line 41
def create_filesystem!
  return if !self.res

  res_filesystem = self.res.filesystem_hash

  DroidProj::Logger.log "Creating #{res_path}..."
  FileUtils.mkdir_p res_path

  res_filesystem.each do |folder, files|
    folder = folder.to_s
    folder_path = File.join(res_path, folder)
    DroidProj::Logger.log "Creating #{folder_path}...".green
    FileUtils.mkdir_p folder_path
    files.each do |file_op|
      case file_op
      when Android::Resources::MoveOp
        to = File.join(res_path, folder, file_op.to)
        DroidProj::Logger.log "Copying #{file_op.from} to #{to}...".green
        FileUtils.cp file_op.from, to
      when Android::Resources::WriteOp
        at = File.join(res_path, folder, file_op.at)
        DroidProj::Logger.log "Writing #{at}...".green
        FileUtils.rm_f at
        File.open(at, 'w') { |f|
          f.write(file_op.content)
        }
      end
    end
  end
end