cocoapods-packager 0.9.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
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