cocoapods-trunk 0.5.0 → 0.5.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 59b4de692c8f9b3d9e59e840e3293eec2d40d491
4
- data.tar.gz: 1ac058c477bf478299066aab29c63f47b404fbdf
3
+ metadata.gz: 8fd8fe859e2920ddba3c449b56c120e294b14cde
4
+ data.tar.gz: c9c5c3d1ed0c5e1eea9f82e3b00a03ed87dde6ec
5
5
  SHA512:
6
- metadata.gz: 250a29d1c1052e3f042a4d3aa1b114f665c303f288fab9912baecbfd65d8c9016310eb58f6f90ba58a196a1cd5147738bf94069323a962a1e1b6ef09b4462d61
7
- data.tar.gz: d54b60e9653e0e37f0cc4a7182f3a80681727e583d8e67706ac538af8ebf7f0c07a6b0115853f7e0e3cdecb6494cb7974e8a2a32e26eda490e9baa907e849bcf
6
+ metadata.gz: ec5e95ef99c5864f7147346bd4316764ad6f08b5f8564557f7917feb924bc448b7179362361bb0a891f6cbc96fef07920e30963473f94eab2e5a7e8fa097aad4
7
+ data.tar.gz: f79b2506de975e6c535dedab7d337bb47866eee5452562a83d497600e347db372672c36b1ca29012a9cdb3b01174c0c804293095e2de83141df382f8b604900a
data/CHANGELOG.md CHANGED
@@ -1,3 +1,20 @@
1
+ ## 0.5.1
2
+
3
+ ##### Enhancements
4
+
5
+ * Lint as a framework automatically. If needed, the `--use-libraries`
6
+ option allows linting as a static library.
7
+ [Boris Bügling](https://github.com/neonichu)
8
+ [#2912](https://github.com/CocoaPods/CocoaPods/issues/2912)
9
+
10
+ ##### Bug Fixes
11
+
12
+ * Fix the detection of spec validation errors, and present the proper error
13
+ (and messages) to the user.
14
+ [Orta Therox](https://github.com/orta)
15
+ [#39](https://github.com/CocoaPods/cocoapods-trunk/issues/39)
16
+
17
+
1
18
  ## 0.5.0
2
19
 
3
20
  ##### Enhancements
data/Gemfile.lock CHANGED
@@ -38,7 +38,7 @@ GIT
38
38
  PATH
39
39
  remote: .
40
40
  specs:
41
- cocoapods-trunk (0.5.0)
41
+ cocoapods-trunk (0.5.1)
42
42
  nap (>= 0.8)
43
43
  netrc (= 0.7.8)
44
44
 
@@ -1,3 +1,3 @@
1
1
  module CocoaPodsTrunk
2
- VERSION = '0.5.0'
2
+ VERSION = '0.5.1'
3
3
  end
@@ -50,20 +50,19 @@ module Pod
50
50
  rescue JSON::ParserError
51
51
  json = {}
52
52
  end
53
+ error = json['error'] || "An unexpected error ocurred: #{body}"
53
54
 
54
- case error = json['error']
55
+ case data = json['data']
55
56
  when Hash
56
- lines = error.sort_by(&:first).map do |attr, messages|
57
+ lines = data.sort_by(&:first).map do |attr, messages|
57
58
  attr = attr[0, 1].upcase << attr[1..-1]
58
59
  messages.sort.map do |message|
59
- "- #{attr} #{message}."
60
+ "- #{attr}: #{message}"
60
61
  end
61
62
  end.flatten
62
63
  count = lines.size
63
64
  lines.unshift "The following #{'validation'.pluralize(count)} failed:"
64
- error = lines.join("\n")
65
- when nil
66
- error = "An unexpected error ocurred: #{body}"
65
+ error += "\n" << lines.join("\n")
67
66
  end
68
67
 
69
68
  raise Informative, error
@@ -28,11 +28,13 @@ module Pod
28
28
  def self.options
29
29
  [
30
30
  ['--allow-warnings', 'Allows push even if there are lint warnings'],
31
+ ['--use-libraries', 'Linter uses static libraries to install the spec'],
31
32
  ].concat(super)
32
33
  end
33
34
 
34
35
  def initialize(argv)
35
36
  @allow_warnings = argv.flag?('allow-warnings')
37
+ @use_frameworks = !argv.flag?('use-libraries')
36
38
  @path = argv.shift_argument || '.'
37
39
  find_podspec_file if File.directory?(@path)
38
40
  super
@@ -103,6 +105,7 @@ module Pod
103
105
 
104
106
  validator = Validator.new(spec, %w(https://github.com/CocoaPods/Specs.git))
105
107
  validator.allow_warnings = @allow_warnings
108
+ validator.use_frameworks = @use_frameworks
106
109
  validator.validate
107
110
  unless validator.validated?
108
111
  raise Informative, 'The podspec does not validate.'
@@ -7,7 +7,7 @@ module Pod
7
7
  Register a new account, or create a new session.
8
8
 
9
9
  If this is your first registration, both an `EMAIL` address and your
10
- `NAME` are required. If you've already registered with trunk, you may
10
+ `NAME` are required. If youve already registered with trunk, you may
11
11
  omit the `NAME` (unless you would like to change it).
12
12
 
13
13
  It is recommended that you provide a description of the session, so
@@ -16,6 +16,25 @@ module Pod
16
16
  exception.message.should.include 'register a session'
17
17
  end
18
18
 
19
+ it 'should error when the trunk service returns an error' do
20
+ url = 'https://trunk.cocoapods.org/api/v1/pods'
21
+ WebMock::API.stub_request(:post, url).to_return(:status => 422, :body => {
22
+ 'error' => 'The Pod Specification did not pass validation.',
23
+ 'data' => {
24
+ 'warnings' => [
25
+ 'A value for `requires_arc` should be specified until the migration to a `true` default.',
26
+ ],
27
+ },
28
+ }.to_json)
29
+ command = Command.parse(%w(trunk push))
30
+ command.stubs(:validate_podspec)
31
+ command.stubs(:spec).returns(Pod::Specification.new)
32
+ exception = lambda { command.run }.should.raise Informative
33
+ exception.message.should.include 'following validation failed'
34
+ exception.message.should.include 'should be specified'
35
+ exception.message.should.include 'The Pod Specification did not pass validation'
36
+ end
37
+
19
38
  describe 'PATH' do
20
39
  before do
21
40
  UI.output = ''
@@ -63,5 +82,34 @@ module Pod
63
82
  UI.output.should.match /Multiple podspec files in directory/
64
83
  end
65
84
  end
85
+
86
+ describe 'validation' do
87
+ before do
88
+ Installer.any_instance.stubs(:aggregate_targets).returns([])
89
+ Installer.any_instance.stubs(:install!)
90
+
91
+ Validator.any_instance.stubs(:check_file_patterns)
92
+ Validator.any_instance.stubs(:validated?).returns(true)
93
+ Validator.any_instance.stubs(:validate_url)
94
+ Validator.any_instance.stubs(:validate_screenshots)
95
+ Validator.any_instance.stubs(:xcodebuild).returns('')
96
+ end
97
+
98
+ it 'validates specs as frameworks by default' do
99
+ Validator.any_instance.expects(:podfile_from_spec).with(:ios, nil, true).once
100
+ Validator.any_instance.expects(:podfile_from_spec).with(:osx, nil, true).once
101
+
102
+ cmd = Command.parse(%w(trunk push spec/fixtures/BananaLib.podspec))
103
+ cmd.send(:validate_podspec)
104
+ end
105
+
106
+ it 'validates specs as libraries if requested' do
107
+ Validator.any_instance.expects(:podfile_from_spec).with(:ios, nil, false).once
108
+ Validator.any_instance.expects(:podfile_from_spec).with(:osx, nil, false).once
109
+
110
+ cmd = Command.parse(%w(trunk push spec/fixtures/BananaLib.podspec --use-libraries))
111
+ cmd.send(:validate_podspec)
112
+ end
113
+ end
66
114
  end
67
115
  end
@@ -0,0 +1,25 @@
1
+ Pod::Spec.new do |s|
2
+ s.name = 'BananaLib'
3
+ s.version = '1.0'
4
+ s.authors = 'Banana Corp', { 'Monkey Boy' => 'monkey@banana-corp.local' }
5
+ s.homepage = 'http://banana-corp.local/banana-lib.html'
6
+ s.summary = 'Chunky bananas!'
7
+ s.description = 'Full of chunky bananas.'
8
+ s.source = { :git => 'http://banana-corp.local/banana-lib.git', :tag => 'v1.0' }
9
+ s.license = {
10
+ :type => 'MIT',
11
+ :file => 'LICENSE',
12
+ :text => 'Permission is hereby granted ...'
13
+ }
14
+ s.source_files = 'Classes/*.{h,m,d}', 'Vendor'
15
+ s.resources = "Resources/*"
16
+ s.vendored_framework = 'Bananalib.framework'
17
+ s.vendored_library = 'libBananalib.a'
18
+ s.preserve_paths = 'preserve_me.txt'
19
+ s.public_header_files = 'Classes/Banana.h'
20
+
21
+ s.prefix_header_file = 'Classes/BananaLib.pch'
22
+ s.xcconfig = { 'OTHER_LDFLAGS' => '-framework SystemConfiguration' }
23
+ s.dependency 'monkey', '~> 1.0.1', '< 1.0.9'
24
+
25
+ end
metadata CHANGED
@@ -1,27 +1,27 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cocoapods-trunk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eloy Durán
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-12-25 00:00:00.000000000 Z
11
+ date: 2015-02-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nap
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0.8'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0.8'
27
27
  - !ruby/object:Gem::Dependency
@@ -42,28 +42,28 @@ dependencies:
42
42
  name: bundler
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ~>
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
47
  version: '1.3'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ~>
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '1.3'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rake
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - '>='
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - '>='
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  description:
@@ -73,12 +73,12 @@ executables: []
73
73
  extensions: []
74
74
  extra_rdoc_files: []
75
75
  files:
76
- - .gitignore
77
- - .kick
78
- - .rubocop.yml
79
- - .rubocop_cocoapods.yml
80
- - .rubocop_todo.yml
81
- - .travis.yml
76
+ - ".gitignore"
77
+ - ".kick"
78
+ - ".rubocop.yml"
79
+ - ".rubocop_cocoapods.yml"
80
+ - ".rubocop_todo.yml"
81
+ - ".travis.yml"
82
82
  - CHANGELOG.md
83
83
  - Gemfile
84
84
  - Gemfile.lock
@@ -102,6 +102,7 @@ files:
102
102
  - spec/command/trunk/register_spec.rb
103
103
  - spec/command/trunk/remove_owner_spec.rb
104
104
  - spec/command/trunk_spec.rb
105
+ - spec/fixtures/BananaLib.podspec
105
106
  - spec/spec_helper.rb
106
107
  homepage: ''
107
108
  licenses:
@@ -113,17 +114,17 @@ require_paths:
113
114
  - lib
114
115
  required_ruby_version: !ruby/object:Gem::Requirement
115
116
  requirements:
116
- - - '>='
117
+ - - ">="
117
118
  - !ruby/object:Gem::Version
118
119
  version: 2.0.0
119
120
  required_rubygems_version: !ruby/object:Gem::Requirement
120
121
  requirements:
121
- - - '>='
122
+ - - ">="
122
123
  - !ruby/object:Gem::Version
123
124
  version: '0'
124
125
  requirements: []
125
126
  rubyforge_project:
126
- rubygems_version: 2.0.14
127
+ rubygems_version: 2.4.5
127
128
  signing_key:
128
129
  specification_version: 4
129
130
  summary: Interact with trunk.cocoapods.org
@@ -135,4 +136,5 @@ test_files:
135
136
  - spec/command/trunk/register_spec.rb
136
137
  - spec/command/trunk/remove_owner_spec.rb
137
138
  - spec/command/trunk_spec.rb
139
+ - spec/fixtures/BananaLib.podspec
138
140
  - spec/spec_helper.rb