cocoapods-packager 0.9.0 → 1.0.0

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: 591af7db1eae5a165c490790048809921356a001
4
- data.tar.gz: 01d7f6d8d4cb562a781ebea871770ecbd6ad8faf
3
+ metadata.gz: daf6373e6fe4b564fcdb89c3f9088932c5ee5089
4
+ data.tar.gz: 98179203644200ea7ae4c527b2407da266923a92
5
5
  SHA512:
6
- metadata.gz: 50a846d36ea48df0b1043c1f503c4c6284282020e1d3ec732651fb70ad902cd66fd7e0e59bde2eae036e2afd22da6fb6bd1a89dc2fd188961a278eb5e73d73c4
7
- data.tar.gz: 6cdd37a127620963ea5a7627bf092f1d0294f4b0e233c0944ce0711143362acaa81fbcb54bb8beef07658441e82219d510231fb3ff045ee4584cb384c7321a4f
6
+ metadata.gz: 1c6efb257cf86a34176576abfe91f4500c2545f670f3ce0fa95806a49e9eb166490e07325801d12e7be8ed8a07cb5fba0f0d8d5f4f68aa7f6bb7e33779a5e0df
7
+ data.tar.gz: 2ef8bfcaf3570cd43e6c559ef369790702d1871fc83ef0bf5e14d9f1094bb0b1606637b7cc2f8eb83b1627d7676ea74588b24f51499460ea6cfe96803332a252
data/Gemfile CHANGED
@@ -8,5 +8,5 @@ group :development do
8
8
  gem 'mocha-on-bacon'
9
9
  gem 'mocha', '~> 0.11.4'
10
10
  gem 'prettybacon', :git => 'https://github.com/irrationalfab/PrettyBacon.git', :branch => 'master'
11
- gem 'coveralls', require: false
11
+ gem 'coveralls', :require => false
12
12
  end
data/Gemfile.lock CHANGED
@@ -9,7 +9,7 @@ GIT
9
9
  PATH
10
10
  remote: .
11
11
  specs:
12
- cocoapods-packager (0.5.0)
12
+ cocoapods-packager (1.0.0)
13
13
 
14
14
  GEM
15
15
  remote: https://rubygems.org/
@@ -7,7 +7,7 @@ Gem::Specification.new do |spec|
7
7
  spec.name = 'cocoapods-packager'
8
8
  spec.version = Pod::Packager::VERSION
9
9
  spec.authors = ['Kyle Fuller']
10
- spec.summary = ''
10
+ spec.summary = 'CocoaPods plugin which allows you to generate a framework or static library from a podspec.'
11
11
  spec.homepage = 'https://github.com/CocoaPods/cocoapods-packager'
12
12
  spec.license = 'MIT'
13
13
  spec.files = `git ls-files`.split($/)
@@ -78,7 +78,7 @@ module Pod
78
78
  defines = Symbols.mangle_for_pod_dependencies(@spec.name, @sandbox_root)
79
79
  UI.puts 'Building mangled framework'
80
80
  xcodebuild(defines)
81
- return defines
81
+ defines
82
82
  end
83
83
 
84
84
  def compile
@@ -136,7 +136,7 @@ module Pod
136
136
  end
137
137
  end
138
138
 
139
- def static_libs_in_sandbox(build_dir='build')
139
+ def static_libs_in_sandbox(build_dir = 'build')
140
140
  Dir.glob("#{@sandbox_root}/#{build_dir}/libPods-*.a")
141
141
  end
142
142
 
@@ -8,7 +8,8 @@ module Pod
8
8
  File.basename(@path),
9
9
  @spec.name,
10
10
  platform_name,
11
- @spec.deployment_target(platform_name))
11
+ @spec.deployment_target(platform_name),
12
+ @subspecs)
12
13
 
13
14
  sandbox = Sandbox.new(config.sandbox_root)
14
15
  installer = Installer.new(sandbox, podfile)
@@ -17,28 +18,41 @@ module Pod
17
18
  sandbox
18
19
  end
19
20
 
20
- def podfile_from_spec(path, spec_name, platform_name, deployment_target)
21
+ def podfile_from_spec(path, spec_name, platform_name, deployment_target, subspecs)
21
22
  Pod::Podfile.new do
22
23
  platform(platform_name, deployment_target)
23
24
  if path
24
- pod spec_name, :podspec => path
25
+ if subspecs
26
+ subspecs.each do |subspec|
27
+ pod spec_name + '/' + subspec, :podspec => path
28
+ end
29
+ else
30
+ pod spec_name, :podspec => path
31
+ end
25
32
  else
26
- pod spec_name, :path => '.'
33
+ if subspecs
34
+ subspecs.each do |subspec|
35
+ pod spec_name + '/' + subspec, :path => '.'
36
+ end
37
+ else
38
+ pod spec_name, :path => '.'
39
+ end
27
40
  end
28
41
  end
29
42
  end
30
43
 
31
- def source_files_available?(spec)
44
+ def binary_only?(spec)
32
45
  deps = spec.dependencies.map { |dep| spec_with_name(dep.name) }
33
46
 
34
47
  [spec, *deps].each do |specification|
35
- source_files = specification.attributes_hash['source_files']
36
- if source_files.nil?
37
- return false
48
+ %w(vendored_frameworks vendored_libraries).each do |attrib|
49
+ if specification.attributes_hash[attrib]
50
+ return true
51
+ end
38
52
  end
39
53
  end
40
54
 
41
- true
55
+ false
42
56
  end
43
57
 
44
58
  def spec_with_name(name)
@@ -60,7 +74,7 @@ module Pod
60
74
  return
61
75
  end
62
76
 
63
- if !['.podspec', '.json'].include? Pathname.new(path).extname
77
+ unless ['.podspec', '.json'].include? Pathname.new(path).extname
64
78
  help! path + ': is not a podspec.'
65
79
  return
66
80
  end
@@ -15,7 +15,6 @@ module Pod
15
15
  end
16
16
 
17
17
  def spec_platform(platform)
18
-
19
18
  fwk_base = platform.name.to_s + '/' + framework_path
20
19
  spec = <<SPEC
21
20
  s.#{platform.name}.platform = :#{platform.symbolic_name}, '#{platform.deployment_target}'
@@ -1,5 +1,5 @@
1
1
  module Pod
2
2
  module Packager
3
- VERSION = '0.9.0'
3
+ VERSION = '1.0.0'
4
4
  end
5
5
  end
@@ -11,7 +11,8 @@ module Pod
11
11
  ['--force', 'Overwrite existing files.'],
12
12
  ['--no-mangle', 'Do not mangle symbols of depedendant Pods.'],
13
13
  ['--embedded', 'Generate embedded frameworks.'],
14
- ['--library', 'Generate static libraries.']
14
+ ['--library', 'Generate static libraries.'],
15
+ ['--subspecs', 'Only include the given subspecs']
15
16
  ]
16
17
  end
17
18
 
@@ -23,6 +24,9 @@ module Pod
23
24
  @name = argv.shift_argument
24
25
  @source = argv.shift_argument
25
26
 
27
+ subspecs = argv.option('subspecs')
28
+ @subspecs = subspecs.split(',') unless subspecs.nil?
29
+
26
30
  @source_dir = Dir.pwd
27
31
  @spec = spec_with_path(@name)
28
32
  @spec = spec_with_name(@name) unless @spec
@@ -32,10 +36,7 @@ module Pod
32
36
  def validate!
33
37
  super
34
38
  help! 'A podspec name or path is required.' unless @spec
35
-
36
- if !source_files_available? @spec
37
- help! 'podspec has binary-only depedencies, mangling not possible.'
38
- end
39
+ help! 'podspec has binary-only depedencies, mangling not possible.' if binary_only? @spec
39
40
  end
40
41
 
41
42
  def run
@@ -4,6 +4,7 @@ module Pod
4
4
  describe 'Packager' do
5
5
  after do
6
6
  Dir.glob("CPDColors-*").each { |dir| Pathname.new(dir).rmtree }
7
+ Dir.glob("layer-client-messaging-schema-*").each { |dir| Pathname.new(dir).rmtree }
7
8
  end
8
9
 
9
10
  it 'presents the help if a directory is provided' do
@@ -25,6 +26,13 @@ module Pod
25
26
  end.message.should.match /binary-only/
26
27
  end
27
28
 
29
+ it 'can package a podspec with only resources' do
30
+ command = Command.parse(%w{ package spec/fixtures/layer-client-messaging-schema.podspec --no-mangle })
31
+ command.run
32
+
33
+ true.should == true # To make the test pass without any shoulds
34
+ end
35
+
28
36
  it 'can package a podspec with binary-only dependencies if --no-mangle is specified' do
29
37
  command = Command.parse(%w{ package spec/fixtures/CPDColors.podspec --no-mangle })
30
38
  command.run
@@ -0,0 +1,29 @@
1
+ require File.expand_path('../../spec_helper', __FILE__)
2
+
3
+ module Pod
4
+ describe Command::Spec::Package do
5
+ describe 'Subspecs' do
6
+ after do
7
+ Dir.glob("KFData-*").each { |dir| Pathname.new(dir).rmtree }
8
+ end
9
+
10
+ it 'can package a single subspec' do
11
+ SourcesManager.stubs(:search).returns(nil)
12
+
13
+ command = Command.parse(%w{ package spec/fixtures/KFData.podspec --subspecs=Core})
14
+ command.run
15
+
16
+ true.should == true # To make the test pass without any shoulds
17
+ end
18
+
19
+ it 'can package a list of subspecs' do
20
+ SourcesManager.stubs(:search).returns(nil)
21
+
22
+ command = Command.parse(%w{ package spec/fixtures/KFData.podspec --subspecs=Core,Compatibility})
23
+ command.run
24
+
25
+ true.should == true # To make the test pass without any shoulds
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,13 @@
1
+ Pod::Spec.new do |s|
2
+ s.name = "layer-client-messaging-schema"
3
+ s.version = "20140715104949748"
4
+ s.summary = "Packages the database schema and migrations for layer-client-messaging-schema"
5
+ s.homepage = "http://github.com/layerhq"
6
+ s.author = { "Steven Jones" => "steven@layer.com" }
7
+ s.source = { :git => "https://github.com/neonichu/CPDColors.git",
8
+ :tag => "0.1.0" }
9
+ s.license = 'Commercial'
10
+ s.requires_arc = true
11
+
12
+ s.resource_bundles = { 'layer-client-messaging-schema' => ['Code/**/*.h'] }
13
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cocoapods-packager
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kyle Fuller
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-08-24 00:00:00.000000000 Z
11
+ date: 2014-09-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -68,6 +68,7 @@ files:
68
68
  - scripts/lstsym.sh
69
69
  - spec/command/error_spec.rb
70
70
  - spec/command/package_spec.rb
71
+ - spec/command/subspecs_spec.rb
71
72
  - spec/fixtures/Builder.podspec
72
73
  - spec/fixtures/CPDColors.podspec
73
74
  - spec/fixtures/KFData.podspec
@@ -90,6 +91,7 @@ files:
90
91
  - spec/fixtures/PackagerTest/Podfile
91
92
  - spec/fixtures/PackagerTest/Podfile.lock
92
93
  - spec/fixtures/foo-bar.podspec
94
+ - spec/fixtures/layer-client-messaging-schema.podspec
93
95
  - spec/integration/project_spec.rb
94
96
  - spec/spec_helper.rb
95
97
  - spec/specification/builder_spec.rb
@@ -116,10 +118,12 @@ rubyforge_project:
116
118
  rubygems_version: 2.0.14
117
119
  signing_key:
118
120
  specification_version: 4
119
- summary: ''
121
+ summary: CocoaPods plugin which allows you to generate a framework or static library
122
+ from a podspec.
120
123
  test_files:
121
124
  - spec/command/error_spec.rb
122
125
  - spec/command/package_spec.rb
126
+ - spec/command/subspecs_spec.rb
123
127
  - spec/fixtures/Builder.podspec
124
128
  - spec/fixtures/CPDColors.podspec
125
129
  - spec/fixtures/KFData.podspec
@@ -142,6 +146,7 @@ test_files:
142
146
  - spec/fixtures/PackagerTest/Podfile
143
147
  - spec/fixtures/PackagerTest/Podfile.lock
144
148
  - spec/fixtures/foo-bar.podspec
149
+ - spec/fixtures/layer-client-messaging-schema.podspec
145
150
  - spec/integration/project_spec.rb
146
151
  - spec/spec_helper.rb
147
152
  - spec/specification/builder_spec.rb