xcodeproj 0.4.0 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|