class XcodeProject::RootNode
Public Class Methods
new(data, wd)
click to toggle source
# File lib/xcodeproject/root_node.rb, line 38 def initialize (data, wd) @data = data @wd = Pathname.new(wd) @wd = Pathname.new(ENV['PWD']).join(@wd) if @wd.relative? @objects = data['objects'] @uuid_generator = UUIDGenerator.new end
Public Instance Methods
absolute_path(path)
click to toggle source
# File lib/xcodeproject/root_node.rb, line 108 def absolute_path (path) path = Pathname.new(path) path = path.absolute? ? path : @wd.join(path) path.cleanpath end
add_object(data)
click to toggle source
# File lib/xcodeproject/root_node.rb, line 100 def add_object (data) @objects.merge!(Hash[ uuid = generate_object_uuid, data ]); [uuid, data] end
build_files(file_ref_uuid)
click to toggle source
# File lib/xcodeproject/root_node.rb, line 52 def build_files (file_ref_uuid) find_objects('PBXBuildFile', {'fileRef' => file_ref_uuid}) end
find_object(isa, hash = Hash.new)
click to toggle source
# File lib/xcodeproject/root_node.rb, line 81 def find_object (isa, hash = Hash.new) find_objects(isa, hash).first end
find_object!(isa, hash = Hash.new)
click to toggle source
# File lib/xcodeproject/root_node.rb, line 85 def find_object! (isa, hash = Hash.new) obj = find_object(isa, hash) raise ParseError if obj.nil?; obj end
find_object2(isa, h1 = Hash.new, h2 = Hash.new)
click to toggle source
# File lib/xcodeproject/root_node.rb, line 90 def find_object2 (isa, h1 = Hash.new, h2 = Hash.new) obj = find_object(isa, h1) obj.nil? ? find_object(isa, h2) : obj end
find_object2!(isa, h1 = Hash.new, h2 = Hash.new)
click to toggle source
# File lib/xcodeproject/root_node.rb, line 95 def find_object2! (isa, h1 = Hash.new, h2 = Hash.new) obj = find_object2(isa, h1, h2) raise ParseError if obj.nil?; obj end
find_objects(isa, hash = Hash.new)
click to toggle source
# File lib/xcodeproject/root_node.rb, line 71 def find_objects (isa, hash = Hash.new) hash.merge!(Hash[ 'isa', isa ]) select_objects {|uuid, data| data.values_at(*hash.keys) == hash.values } end
find_objects!(isa, hash = Hash.new)
click to toggle source
# File lib/xcodeproject/root_node.rb, line 76 def find_objects! (isa, hash = Hash.new) objs = find_objects(isa, hash) raise ParseError.new("Object with isa = #{isa} and #{hash} not found.") if objs.empty?; objs end
generate_object_uuid()
click to toggle source
# File lib/xcodeproject/root_node.rb, line 114 def generate_object_uuid @uuid_generator.generate end
object(uuid)
click to toggle source
# File lib/xcodeproject/root_node.rb, line 56 def object (uuid) data = @objects[uuid] XcodeProject.const_get(data['isa']).new(self, uuid, data) unless data.nil? end
object!(uuid)
click to toggle source
# File lib/xcodeproject/root_node.rb, line 61 def object! (uuid) obj = object(uuid) raise ParseError.new("Object with uuid = #{uuid} not found.") if obj.nil?; obj end
project()
click to toggle source
# File lib/xcodeproject/root_node.rb, line 48 def project find_object!('PBXProject') end
remove_object(uuid)
click to toggle source
# File lib/xcodeproject/root_node.rb, line 104 def remove_object (uuid) @objects.delete(uuid) end
select_objects() { |uuid, data| ... }
click to toggle source
# File lib/xcodeproject/root_node.rb, line 66 def select_objects objs = @objects.select {|uuid, data| yield uuid, data } objs.map {|uuid, data| object(uuid) } end
to_plist(fmtr = Formatter.new)
click to toggle source
# File lib/xcodeproject/root_node.rb, line 118 def to_plist (fmtr = Formatter.new) @data.to_plist end