xcodeproj 0.4.0 → 0.4.1
Sign up to get free protection for your applications and to get access to all the features.
- data/ext/xcodeproj/xcodeproj_ext.c +3 -5
- data/lib/xcodeproj.rb +1 -1
- data/lib/xcodeproj/config.rb +39 -32
- data/lib/xcodeproj/constants.rb +8 -0
- data/lib/xcodeproj/project.rb +91 -47
- data/lib/xcodeproj/project/object.rb +43 -18
- data/lib/xcodeproj/project/object/build_configuration.rb +2 -0
- data/lib/xcodeproj/project/object/build_file.rb +2 -0
- data/lib/xcodeproj/project/object/build_phase.rb +36 -7
- data/lib/xcodeproj/project/object/build_rule.rb +2 -0
- data/lib/xcodeproj/project/object/configuration_list.rb +4 -2
- data/lib/xcodeproj/project/object/container_item_proxy.rb +2 -0
- data/lib/xcodeproj/project/object/file_reference.rb +7 -5
- data/lib/xcodeproj/project/object/group.rb +49 -35
- data/lib/xcodeproj/project/object/native_target.rb +84 -28
- data/lib/xcodeproj/project/object/reference_proxy.rb +9 -6
- data/lib/xcodeproj/project/object/root_object.rb +6 -4
- data/lib/xcodeproj/project/object/target_dependency.rb +8 -6
- data/lib/xcodeproj/project/object_attributes.rb +35 -10
- data/lib/xcodeproj/project/object_dictionary.rb +4 -4
- data/lib/xcodeproj/project/object_list.rb +2 -2
- metadata +3 -7
- data/lib/xcodeproj/project/object/aggregate_target.rb +0 -0
@@ -9,6 +9,8 @@ module Xcodeproj
|
|
9
9
|
#
|
10
10
|
class PBXReferenceProxy < AbstractObject
|
11
11
|
|
12
|
+
# @!group Attributes
|
13
|
+
|
12
14
|
# @return [String] the path of the referenced filed.
|
13
15
|
#
|
14
16
|
attribute :path, String
|
@@ -18,21 +20,22 @@ module Xcodeproj
|
|
18
20
|
attribute :file_type, String
|
19
21
|
|
20
22
|
# @return [PBXContainerItemProxy] the proxy to the project that
|
21
|
-
#
|
23
|
+
# contains the object.
|
22
24
|
#
|
23
25
|
has_one :remote_ref, PBXContainerItemProxy
|
24
26
|
|
25
|
-
# @return
|
27
|
+
# @return [String] the source tree for the path of the reference.
|
26
28
|
#
|
27
|
-
#
|
29
|
+
# @example Possible value
|
30
|
+
# "BUILT_PRODUCTS_DIR"
|
28
31
|
#
|
29
32
|
attribute :source_tree, String
|
30
33
|
|
31
|
-
|
34
|
+
#---------------------------------------------------------------------#
|
32
35
|
|
33
|
-
# @!group
|
36
|
+
# @!group Helpers
|
34
37
|
|
35
|
-
# Checks
|
38
|
+
# Checks whether the reference is a proxy.
|
36
39
|
#
|
37
40
|
# @return [Bool] always true for this ISA.
|
38
41
|
#
|
@@ -6,13 +6,15 @@ module Xcodeproj
|
|
6
6
|
#
|
7
7
|
class PBXProject < AbstractObject
|
8
8
|
|
9
|
+
# @!group Attributes
|
10
|
+
|
9
11
|
# @return [ObjectList<PBXNativeTarget>] a list of all the targets in
|
10
|
-
#
|
12
|
+
# the project.
|
11
13
|
#
|
12
14
|
has_many :targets, AbstractTarget
|
13
15
|
|
14
16
|
# @return [Hash{String => String}] attributes the attributes of the
|
15
|
-
#
|
17
|
+
# target.
|
16
18
|
#
|
17
19
|
# The hash might contain the following keys:
|
18
20
|
#
|
@@ -43,12 +45,12 @@ module Xcodeproj
|
|
43
45
|
attribute :known_regions, Array, ['en']
|
44
46
|
|
45
47
|
# @return [PBXGroup] the main group of the project. The one displayed
|
46
|
-
#
|
48
|
+
# by Xcode in the Project Navigator.
|
47
49
|
#
|
48
50
|
has_one :main_group, PBXGroup
|
49
51
|
|
50
52
|
# @return [PBXGroup] the group containing the references to products of
|
51
|
-
#
|
53
|
+
# the project.
|
52
54
|
#
|
53
55
|
has_one :product_ref_group, PBXGroup
|
54
56
|
|
@@ -6,23 +6,25 @@ module Xcodeproj
|
|
6
6
|
#
|
7
7
|
class PBXTargetDependency < AbstractObject
|
8
8
|
|
9
|
+
# @!group Attributes
|
10
|
+
|
9
11
|
# @return [PBXNativeTarget] the target that needs to be built to
|
10
|
-
#
|
12
|
+
# satisfy the dependency.
|
11
13
|
#
|
12
14
|
has_one :target, AbstractTarget
|
13
15
|
|
14
16
|
# @return [PBXContainerItemProxy] a proxy for the target that needs to
|
15
|
-
#
|
17
|
+
# be built.
|
16
18
|
#
|
17
|
-
# Apparently to support targets in other projects of the same
|
18
|
-
#
|
19
|
+
# @note Apparently to support targets in other projects of the same
|
20
|
+
# workspace.
|
19
21
|
#
|
20
22
|
has_one :targetProxy, PBXContainerItemProxy
|
21
23
|
|
22
24
|
# @return [String] the name of the target.
|
23
25
|
#
|
24
|
-
# This seems only to be used when the target dependency is a
|
25
|
-
#
|
26
|
+
# @note This seems only to be used when the target dependency is a
|
27
|
+
# target from a nested Xcode project.
|
26
28
|
#
|
27
29
|
attribute :name, String
|
28
30
|
end
|
@@ -34,14 +34,14 @@ module Xcodeproj
|
|
34
34
|
# Attributes are expected to be instantiated only by the
|
35
35
|
# {AbstractObject} DSL methods.
|
36
36
|
#
|
37
|
-
# @param
|
38
|
-
#
|
37
|
+
# @param [Symbol] type
|
38
|
+
# the type of the attribute.
|
39
39
|
#
|
40
|
-
# @param
|
41
|
-
#
|
40
|
+
# @param [Symbol] name
|
41
|
+
# the name of the attribute.
|
42
42
|
#
|
43
|
-
# @param
|
44
|
-
#
|
43
|
+
# @param [Class] owner
|
44
|
+
# the class that owns the attribute.
|
45
45
|
#
|
46
46
|
def initialize(type, name, owner)
|
47
47
|
@type = type
|
@@ -160,10 +160,11 @@ module Xcodeproj
|
|
160
160
|
# - `{AbstractObject.has_one}`
|
161
161
|
# - `{AbstractObject.has_many}`
|
162
162
|
#
|
163
|
-
# The subclasses should not interfere with the methods
|
164
|
-
# the DSL and should only implement
|
163
|
+
# @note The subclasses should not interfere with the methods
|
164
|
+
# synthesised by the DSL and should only implement helpers in top
|
165
|
+
# of them.
|
165
166
|
#
|
166
|
-
# Attributes are typed and are validated at runtime.
|
167
|
+
# @note Attributes are typed and are validated at runtime.
|
167
168
|
#
|
168
169
|
class << self
|
169
170
|
|
@@ -175,6 +176,8 @@ module Xcodeproj
|
|
175
176
|
# an attribute of the superclass but for the method implementation
|
176
177
|
# they will duplicate them.
|
177
178
|
#
|
179
|
+
# @visibility private
|
180
|
+
#
|
178
181
|
def attributes
|
179
182
|
unless @full_attributes
|
180
183
|
attributes = @attributes || []
|
@@ -189,6 +192,8 @@ module Xcodeproj
|
|
189
192
|
# @return [Array<AbstractObjectAttribute>] the simple attributes
|
190
193
|
# associated with with the class.
|
191
194
|
#
|
195
|
+
# @visibility private
|
196
|
+
#
|
192
197
|
def simple_attributes
|
193
198
|
@simple_attributes ||= attributes.select { |a| a.type == :simple }
|
194
199
|
end
|
@@ -197,6 +202,8 @@ module Xcodeproj
|
|
197
202
|
# representing a to one relationship associated with with the
|
198
203
|
# class.
|
199
204
|
#
|
205
|
+
# @visibility private
|
206
|
+
#
|
200
207
|
def to_one_attributes
|
201
208
|
@to_one_attributes ||= attributes.select { |a| a.type == :to_one }
|
202
209
|
end
|
@@ -205,10 +212,14 @@ module Xcodeproj
|
|
205
212
|
# representing a to many relationship associated with with the
|
206
213
|
# class.
|
207
214
|
#
|
215
|
+
# @visibility private
|
216
|
+
#
|
208
217
|
def to_many_attributes
|
209
218
|
@to_many_attributes ||= attributes.select { |a| a.type == :to_many }
|
210
219
|
end
|
211
220
|
|
221
|
+
# @visibility private
|
222
|
+
#
|
212
223
|
def references_by_keys_attributes
|
213
224
|
@references_by_keys_attributes ||= attributes.select { |a| a.type == :references_by_keys }
|
214
225
|
end
|
@@ -352,7 +363,7 @@ module Xcodeproj
|
|
352
363
|
# @param [String] plural_name
|
353
364
|
# the name of the relationship.
|
354
365
|
#
|
355
|
-
# @param [Class, Array<Class>]
|
366
|
+
# @param [Class, Array<Class>] isas_hash
|
356
367
|
# the list of the classes corresponding to the accepted isas for
|
357
368
|
# this relationship.
|
358
369
|
#
|
@@ -392,38 +403,52 @@ module Xcodeproj
|
|
392
403
|
end
|
393
404
|
end # AbstractObject << self
|
394
405
|
|
406
|
+
private
|
407
|
+
|
395
408
|
# @return [Hash] the simple attributes hash.
|
396
409
|
#
|
397
410
|
attr_reader :simple_attributes_hash
|
398
411
|
|
412
|
+
public
|
413
|
+
|
399
414
|
# @!group xcodeproj format attributes
|
400
415
|
|
401
416
|
# @return (see AbstractObject.attributes)
|
402
417
|
#
|
418
|
+
# @visibility private
|
419
|
+
#
|
403
420
|
def attributes
|
404
421
|
self.class.attributes
|
405
422
|
end
|
406
423
|
|
407
424
|
# @return (see AbstractObject.simple_attributes)
|
408
425
|
#
|
426
|
+
# @visibility private
|
427
|
+
#
|
409
428
|
def simple_attributes
|
410
429
|
self.class.simple_attributes
|
411
430
|
end
|
412
431
|
|
413
432
|
# @return (see AbstractObject.to_one_attributes)
|
414
433
|
#
|
434
|
+
# @visibility private
|
435
|
+
#
|
415
436
|
def to_one_attributes
|
416
437
|
self.class.to_one_attributes
|
417
438
|
end
|
418
439
|
|
419
440
|
# @return (see AbstractObject.to_many_attributes)
|
420
441
|
#
|
442
|
+
# @visibility private
|
443
|
+
#
|
421
444
|
def to_many_attributes
|
422
445
|
self.class.to_many_attributes
|
423
446
|
end
|
424
447
|
|
425
448
|
# @return (see AbstractObject.to_many_attributes)
|
426
449
|
#
|
450
|
+
# @visibility private
|
451
|
+
#
|
427
452
|
def references_by_keys_attributes
|
428
453
|
self.class.references_by_keys_attributes
|
429
454
|
end
|
@@ -101,9 +101,9 @@ module Xcodeproj
|
|
101
101
|
|
102
102
|
#------------------------------------------------------------------------#
|
103
103
|
|
104
|
-
# @!group
|
104
|
+
# @!group AbstractObject
|
105
105
|
|
106
|
-
# The plist
|
106
|
+
# The plist representation of the dictionary where the objects are
|
107
107
|
# replaced by their UUIDs.
|
108
108
|
#
|
109
109
|
# @return [Hash<String => String>]
|
@@ -114,7 +114,7 @@ module Xcodeproj
|
|
114
114
|
result
|
115
115
|
end
|
116
116
|
|
117
|
-
# Returns a cascade
|
117
|
+
# Returns a cascade representation of the object without UUIDs.
|
118
118
|
#
|
119
119
|
# @return [Hash<String => String>]
|
120
120
|
#
|
@@ -134,7 +134,7 @@ module Xcodeproj
|
|
134
134
|
|
135
135
|
#------------------------------------------------------------------------#
|
136
136
|
|
137
|
-
# @!group
|
137
|
+
# @!group ObjectList
|
138
138
|
|
139
139
|
# Informs the objects contained in the dictionary that another object is
|
140
140
|
# referencing them.
|
@@ -36,7 +36,7 @@ module Xcodeproj
|
|
36
36
|
|
37
37
|
#------------------------------------------------------------------------#
|
38
38
|
|
39
|
-
# @!group
|
39
|
+
# @!group ObjectList
|
40
40
|
|
41
41
|
# @return [Array<String>]
|
42
42
|
# the UUIDs of all the objects referenced by this list.
|
@@ -60,7 +60,7 @@ module Xcodeproj
|
|
60
60
|
|
61
61
|
# Adds an array of objects to list and updates their references count.
|
62
62
|
#
|
63
|
-
# @param [Array<AbstractObject, ObjectDictionary>]
|
63
|
+
# @param [Array<AbstractObject, ObjectDictionary>] objects
|
64
64
|
# an array of objects to add to the list.
|
65
65
|
#
|
66
66
|
# @return [void]
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: xcodeproj
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2013-01-13 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
@@ -60,7 +60,6 @@ files:
|
|
60
60
|
- lib/xcodeproj/config.rb
|
61
61
|
- lib/xcodeproj/constants.rb
|
62
62
|
- lib/xcodeproj/helper.rb
|
63
|
-
- lib/xcodeproj/project/object/aggregate_target.rb
|
64
63
|
- lib/xcodeproj/project/object/build_configuration.rb
|
65
64
|
- lib/xcodeproj/project/object/build_file.rb
|
66
65
|
- lib/xcodeproj/project/object/build_phase.rb
|
@@ -100,9 +99,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
100
99
|
- - ! '>='
|
101
100
|
- !ruby/object:Gem::Version
|
102
101
|
version: '0'
|
103
|
-
segments:
|
104
|
-
- 0
|
105
|
-
hash: 2142726412192456048
|
106
102
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
107
103
|
none: false
|
108
104
|
requirements:
|
@@ -111,7 +107,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
111
107
|
version: '0'
|
112
108
|
requirements: []
|
113
109
|
rubyforge_project:
|
114
|
-
rubygems_version: 1.8.
|
110
|
+
rubygems_version: 1.8.23
|
115
111
|
signing_key:
|
116
112
|
specification_version: 3
|
117
113
|
summary: Create and modify Xcode projects from Ruby.
|
File without changes
|