class XcodeProject::Project

Attributes

bundle_path[R]
file_path[R]
name[R]

Public Class Methods

find(pattern = nil) click to toggle source
# File lib/xcodeproject/project.rb, line 36
def self.find (pattern = nil)
        pattern = Pathname.new(pattern.to_s)
        pattern = pattern.join('*.xcodeproj') if pattern.extname != '.xcodeproj'

        Dir[ pattern ].map {|path| self.new(path) }
end
new(path) click to toggle source
# File lib/xcodeproject/project.rb, line 43
def initialize (path)
        path = Pathname.new(path)
        raise FilePathError.new("No such project file '#{path}'.") unless path.exist?

        @bundle_path = path
        @file_path = bundle_path.join('project.pbxproj')
        @name = bundle_path.basename('.*').to_s
end

Public Instance Methods

change() { |data| ... } click to toggle source
# File lib/xcodeproject/project.rb, line 52
def change
        data = read
        yield data
        write data
end
doctor() click to toggle source
# File lib/xcodeproject/project.rb, line 68
def doctor
        change {|data| data.doctor }
end
read() click to toggle source
# File lib/xcodeproject/project.rb, line 58
def read
        Data.new(JSON.parse(`plutil -convert json -o - "#{file_path}"`), bundle_path.dirname)
end
write(data) click to toggle source
# File lib/xcodeproject/project.rb, line 62
def write (data)
        File.open(file_path, "w") do |file|
                file.write(data.to_plist)
        end
end