xcake 0.6.7 → 0.6.8

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3f6a0f981501faed86c3570a6872591d473bce8f
4
- data.tar.gz: b63c7d010a83973b762952b6539f991f7359f6d7
3
+ metadata.gz: 15ae8927c93b407871e67a817c72925d9f15a1e3
4
+ data.tar.gz: 25e31bc7f9c9e1cddd9aced2237b0020391d8046
5
5
  SHA512:
6
- metadata.gz: da62235a77678a17e30f98f56380e8258a93fa1e7bb2ca92d3efa2bcb26a0341a02e5707e0f3f603e6de4a69838e352c59793db89babc8298dd9c150c4790e99
7
- data.tar.gz: 3ff723dc38d043a4cffc0cbd58a37b530cf5b1d4906ef2ec3e46d0b50676db0d1d684836668055f91769c5c3300157fd5b988678e2974bc32a19a4d49050e356
6
+ metadata.gz: db7173db7391ba932be4fd4b61d7a6212834ae7a20d894231b7a78246e70618611376599dbbf6e913a0150ab78c86122882bed9317ec71cd794cce420fe478a5
7
+ data.tar.gz: 33cafc01d11a285895317027a0eaf92342b9b54be77d792e896231cefb7ec5adcb4b8d20c7a2d5c890c9dbb8e17f93e28e621df62f5e8877bb67aa8c9db93dd7
data/.gitignore CHANGED
@@ -33,3 +33,6 @@ build/
33
33
 
34
34
  # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
35
35
  .rvmrc
36
+
37
+ # Mac file metadata files
38
+ .DS_Store
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ v0.6.8
2
+ ======
3
+ - Improvements to setting build settings on all configurations (Thanks to @therealbnut).
4
+
1
5
  v0.6.7
2
6
  ======
3
7
  - Fixes issue where `agvtool` command line tool failed to find plist with the default value used for the `INFOPLIST_FILE` build setting.
data/Gemfile.lock CHANGED
@@ -17,6 +17,7 @@ GEM
17
17
  minitest (~> 5.1)
18
18
  thread_safe (~> 0.3, >= 0.3.4)
19
19
  tzinfo (~> 1.1)
20
+ ast (2.2.0)
20
21
  claide (0.9.1)
21
22
  coderay (1.1.1)
22
23
  colored (1.2)
@@ -37,13 +38,17 @@ GEM
37
38
  minitest (5.8.4)
38
39
  molinillo (0.4.4)
39
40
  necromancer (0.3.0)
41
+ parser (2.3.1.0)
42
+ ast (~> 2.2)
40
43
  pastel (0.5.3)
41
44
  equatable (~> 0.5.0)
42
45
  tty-screen (~> 0.4.3)
46
+ powerpack (0.1.1)
43
47
  pry (0.10.3)
44
48
  coderay (~> 1.1.0)
45
49
  method_source (~> 0.8.1)
46
50
  slop (~> 3.4)
51
+ rainbow (2.1.0)
47
52
  rake (10.5.0)
48
53
  rspec (3.4.0)
49
54
  rspec-core (~> 3.4.0)
@@ -58,6 +63,13 @@ GEM
58
63
  diff-lcs (>= 1.2.0, < 2.0)
59
64
  rspec-support (~> 3.4.0)
60
65
  rspec-support (3.4.1)
66
+ rubocop (0.39.0)
67
+ parser (>= 2.3.0.7, < 3.0)
68
+ powerpack (~> 0.1)
69
+ rainbow (>= 1.99.1, < 3.0)
70
+ ruby-progressbar (~> 1.7)
71
+ unicode-display_width (~> 1.0, >= 1.0.1)
72
+ ruby-progressbar (1.8.0)
61
73
  simplecov (0.11.2)
62
74
  docile (~> 1.1.0)
63
75
  json (~> 1.8)
@@ -106,6 +118,7 @@ GEM
106
118
  tzinfo (1.2.2)
107
119
  thread_safe (~> 0.1)
108
120
  uber (0.0.15)
121
+ unicode-display_width (1.0.5)
109
122
  unicode_utils (1.4.0)
110
123
  verse (0.4.0)
111
124
  unicode_utils (~> 1.4.0)
@@ -124,8 +137,9 @@ DEPENDENCIES
124
137
  pry (~> 0.10)
125
138
  rake (~> 10.0)
126
139
  rspec (~> 3.4.0)
140
+ rubocop (~> 0.39.0)
127
141
  xcake!
128
142
  yard (~> 0.8)
129
143
 
130
144
  BUNDLED WITH
131
- 1.11.2
145
+ 1.12.1
data/docs/Cakefile.md CHANGED
@@ -18,7 +18,7 @@ and here is much more complicated one:
18
18
 
19
19
  application_for :ios, 8.0 do |target|
20
20
  target.name = "test"
21
- target.all_configurations.supported_devices = :iphone_only
21
+ target.all_configurations.each { |c| c.supported_devices = :iphone_only }
22
22
 
23
23
  unit_tests_for target
24
24
  end
@@ -259,7 +259,7 @@ We can apply a particular shared setting across all of our configurations.
259
259
  Xcake provides a simply way of doing this via an "all" configuration.
260
260
 
261
261
  ```ruby
262
- all_configurations.supported_devices = :iphone_only
262
+ all_configurations.each { |c| c.supported_devices = :iphone_only }
263
263
  ```
264
264
 
265
265
  ### Targets
@@ -269,7 +269,7 @@ target we want to modify the configuration for.
269
269
 
270
270
  ```ruby
271
271
 
272
- target.all_configurations.supported_devices = :iphone_only
272
+ target.all_configurations.each { |c| c.supported_devices = :iphone_only }
273
273
 
274
274
  debug_configuration :staging do |configuration|
275
275
  configuration.settings["KEY"] = "VALUE"
@@ -15,41 +15,31 @@ module Xcake
15
15
 
16
16
  private
17
17
 
18
- attr_accessor :all_configuration
18
+ attr_accessor :all_configurations
19
19
 
20
20
  public
21
21
 
22
22
  attr_accessor :debug_configurations
23
23
  attr_accessor :release_configurations
24
24
 
25
- # This collects all of the configurations,
26
- # flattens them and returns them as an array.
25
+ # @return [Array<Configuration>] list of configurations
27
26
  #
28
- # The process of flattening combines each
29
- # configuration settings with the defaults
30
- # and shared "all" settings, in this priority:
31
- #
32
- # - default settings
33
- # - shared settings
34
- # - configuration settings
35
- #
36
- # @return [Array<Configuration>] list of all configurations flattened
37
- #
38
- def flatten_configurations
39
- all_settings = all_configurations.settings
40
- flattened_configurations = []
27
+ def all_configurations
28
+ configurations = []
41
29
 
42
- debug_configurations.each do |b|
43
- b.settings = default_debug_settings.merge!(all_settings).merge!(b.settings)
44
- flattened_configurations << b
30
+ if debug_configurations.empty?
31
+ configurations << debug_configuration("Debug")
32
+ else
33
+ configurations.concat(debug_configurations)
45
34
  end
46
35
 
47
- release_configurations.each do |b|
48
- b.settings = default_release_settings.merge!(all_settings).merge!(b.settings)
49
- flattened_configurations << b
36
+ if release_configurations.empty?
37
+ configurations << release_configuration("Release")
38
+ else
39
+ configurations.concat(release_configurations)
50
40
  end
51
41
 
52
- flattened_configurations
42
+ configurations
53
43
  end
54
44
 
55
45
  # @return [Array<Configuration>] list of debug configurations
@@ -64,23 +54,6 @@ module Xcake
64
54
  @release_configurations ||= []
65
55
  end
66
56
 
67
- # This returns the shared "all" configuration
68
- # use this if you want to set a setting that
69
- # applies across all configurations.
70
- #
71
- # Note: If this setting is set on a configuration
72
- # already then this won't override it.
73
- #
74
- # @example Set a setting across all configurations
75
- #
76
- # t.all_configurations.settings["INFO_PLIST"] = "./myapp/info.plist"
77
- #
78
- # @return [Configuration] configuration for the shared settings
79
- #
80
- def all_configurations
81
- @all_configuration ||= Configuration.new(:all)
82
- end
83
-
84
57
  # This either finds a release configuration
85
58
  # with the same name or creates one.
86
59
  #
@@ -102,28 +75,37 @@ module Xcake
102
75
  private
103
76
 
104
77
  def build_configuration(method, name, &block)
105
- configuration_name = send("#{method}_configurations")
78
+ case method
79
+ when :debug
80
+ configuration_name = debug_configurations
81
+ default_settings = default_debug_settings
82
+ when :release
83
+ configuration_name = release_configurations
84
+ default_settings = default_release_settings
85
+ end
86
+
106
87
  if name.nil?
107
- configuration = configuration_name.first
88
+ build_configuration = configuration_name.first
108
89
  else
109
- configuration = configuration_name.detect do |c|
90
+ build_configuration = configuration_name.detect do |c|
110
91
  c.name == name.to_s
111
92
  end
112
93
  end
113
94
 
114
- if configuration.nil?
95
+ if build_configuration.nil?
115
96
  if name.nil?
116
97
  name = method.to_s[0].upcase + method.to_s[1..-1]
117
98
  end
118
99
 
119
- configuration = Configuration.new(name) do |b|
100
+ build_configuration = Configuration.new(name) do |b|
101
+ b.settings.merge!(default_settings)
120
102
  block.call(b) if block_given?
121
103
  end
122
104
 
123
- configuration_name << configuration
105
+ configuration_name << build_configuration
124
106
  end
125
107
 
126
- configuration
108
+ build_configuration
127
109
  end
128
110
  end
129
111
  end
@@ -18,7 +18,9 @@ module Xcake
18
18
  # @example Using Supported Devices
19
19
  #
20
20
  # Target.new do |t|
21
- # t.all_configurations.supported_devices = :ipad_only
21
+ # t.all_configurations.each do |c|
22
+ # c.supported_devices = :ipad_only
23
+ # end
22
24
  # end
23
25
  #
24
26
  def supported_devices=(devices)
@@ -21,7 +21,7 @@ module Xcake
21
21
  def create_build_configurations_for(configuration_object)
22
22
  puts "Creating build configurations for #{configuration_object}..."
23
23
 
24
- configuration_object.flatten_configurations.each do |configuration|
24
+ configuration_object.all_configurations.each do |configuration|
25
25
  puts "Creating build configuration #{configuration.name} for #{configuration_object}..."
26
26
 
27
27
  build_configuration = @context.native_object_for(configuration)
@@ -63,8 +63,13 @@ module Xcake
63
63
  t.deployment_target = host_target.deployment_target
64
64
  t.language = host_target.language
65
65
 
66
- t.all_configurations.settings["TEST_HOST"] = "$(BUILT_PRODUCTS_DIR)/#{host_target.name}.app/#{host_target.name}"
67
- t.all_configurations.settings["BUNDLE_LOADER"] = "$(TEST_HOST)"
66
+ host_path = "#{host_target.name}.app/#{host_target.name}"
67
+ t.all_configurations.each do |c|
68
+ c.settings["TEST_HOST"] = "$(BUILT_PRODUCTS_DIR)/#{host_path}"
69
+ end
70
+ t.all_configurations.each do |c|
71
+ c.settings["BUNDLE_LOADER"] = "$(TEST_HOST)"
72
+ end
68
73
 
69
74
  block.call(t) if block_given?
70
75
  end
@@ -18,13 +18,13 @@ application_for :ios, 8.0 do |target|
18
18
 
19
19
  #Update these with the details of your app
20
20
  target.name = "YourApp"
21
- target.all_configurations.product_bundle_identifier = "com.yourcompany.yourapp"
21
+ target.all_configurations.each { |c| c.product_bundle_identifier = "com.yourcompany.yourapp"}
22
22
 
23
23
  # Uncomment to target iPhone devices only
24
24
  #
25
25
  # File patterns can be seen here https://guides.cocoapods.org/syntax/podspec.html#group_file_patterns
26
26
  #
27
- #target.all_configurations.supported_devices = :iphone_only
27
+ #target.all_configurations.each { |c| .supported_devices = :iphone_only}
28
28
 
29
29
  # Uncomment this to include additional files
30
30
  #
@@ -38,13 +38,13 @@ application_for :ios, 8.0 do |target|
38
38
 
39
39
  # Uncomment to set your own build settings
40
40
  #
41
- #target.all_configurations.settings["ENABLE_BITCODE"] = "NO"
42
- #target.all_configurations.settings["GCC_PREFIX_HEADER"] = "APP-Prefix-Header.pch"
43
- #target.all_configurations.settings["SWIFT_OBJC_BRIDGING_HEADER"] = "APP-Bridging-Header.h"
41
+ #target.all_configurations.each { |c| c.settings["ENABLE_BITCODE"] = "NO"}
42
+ #target.all_configurations.each { |c| c.settings["GCC_PREFIX_HEADER"] = "APP-Prefix-Header.pch"}
43
+ #target.all_configurations.each { |c| c.settings["SWIFT_OBJC_BRIDGING_HEADER"] = "APP-Bridging-Header.h"}
44
44
 
45
45
  # Uncomment to define your own preprocessor macros
46
46
  #
47
- #target.all_configurations.preprocessor_definitions["API_ENDPOINT"] = "https://example.org".to_obj_c
47
+ #target.all_configurations.each { |c| c.preprocessor_definitions["API_ENDPOINT"] = "https://example.org".to_obj_c}
48
48
 
49
49
  # Comment to remove Unit Tests for your app
50
50
  #
data/lib/xcake/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Xcake
2
- VERSION = "0.6.7".freeze
2
+ VERSION = "0.6.8".freeze
3
3
  end
data/xcake.gemspec CHANGED
@@ -26,6 +26,7 @@ Gem::Specification.new do |spec|
26
26
  spec.add_development_dependency "rake", "~> 10.0"
27
27
  spec.add_development_dependency "rspec", "~> 3.4.0"
28
28
  spec.add_development_dependency "coveralls", "~> 0.8"
29
+ spec.add_development_dependency "rubocop", "~> 0.39.0"
29
30
  spec.add_development_dependency "yard", "~> 0.8"
30
31
  spec.add_development_dependency "pry", "~> 0.10"
31
32
  spec.add_dependency "claide", "~> 0.9.1"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xcake
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.7
4
+ version: 0.6.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Campbell
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-04-27 00:00:00.000000000 Z
11
+ date: 2016-05-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0.8'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rubocop
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 0.39.0
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 0.39.0
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: yard
71
85
  requirement: !ruby/object:Gem::Requirement