cocoapods-whitelist 0.0.7 → 0.0.8

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: 750058d7d825d9b61916a46ea50350581cfe3518
4
- data.tar.gz: 270b1db1faf90555f31e4c43c655b1d7494ce650
3
+ metadata.gz: ce25eb9c894a1f5f04f16af8a0a1dd3212fd2edf
4
+ data.tar.gz: f1ceb015b74b141a5a84b97480802867791836c7
5
5
  SHA512:
6
- metadata.gz: 63a7cdc92b231d590dcc66ccbd8e41f1c167da2147c7c041f009bc3da783c76f5ce6f892300c4d90b3b918ffeca0ed63d57214da7ccf1dfd6e7cc9489ee8f418
7
- data.tar.gz: 2b4debab422c070ed134a2eddaa366b36004eeb2c1b2354007922070bb0864aede76215580ffd7da0923dc84ca07a94929879aa464a5a1a6b3c887cf887783d7
6
+ metadata.gz: 4ee82f3510cac178323a75c79ae7b052e46be7b0b3becc78f2c4f4898ab2b2c3bd54c9d689e77e564c2e3218cf0f720f2ac8eb6a9048f5c7878949a5ebd9842f
7
+ data.tar.gz: 7f2846c8fb55f5486db44615c4d448a4832b9cb6892c99aaa76786ee65276b2d04c5bf973aa62260ecbc9316dd41a03cdc1252f131044848ab8cffc35e36156f
@@ -1,3 +1,6 @@
1
+ ## 0.0.8
2
+ - Add `outfile` parameter
3
+
1
4
  ## 0.0.7
2
5
  - Add `outfile` parameter
3
6
 
@@ -1,87 +1,91 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- cocoapods-whitelist (0.0.6)
4
+ cocoapods-whitelist (0.0.8)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
8
8
  specs:
9
- CFPropertyList (2.3.5)
10
- activesupport (4.2.8)
9
+ CFPropertyList (3.0.0)
10
+ activesupport (4.2.11.1)
11
11
  i18n (~> 0.7)
12
12
  minitest (~> 5.1)
13
13
  thread_safe (~> 0.3, >= 0.3.4)
14
14
  tzinfo (~> 1.1)
15
+ atomos (0.1.3)
15
16
  bacon (1.2.0)
16
- claide (1.0.1)
17
- cocoapods (1.2.1)
17
+ claide (1.0.2)
18
+ cocoapods (1.7.3)
18
19
  activesupport (>= 4.0.2, < 5)
19
- claide (>= 1.0.1, < 2.0)
20
- cocoapods-core (= 1.2.1)
21
- cocoapods-deintegrate (>= 1.0.1, < 2.0)
22
- cocoapods-downloader (>= 1.1.3, < 2.0)
20
+ claide (>= 1.0.2, < 2.0)
21
+ cocoapods-core (= 1.7.3)
22
+ cocoapods-deintegrate (>= 1.0.3, < 2.0)
23
+ cocoapods-downloader (>= 1.2.2, < 2.0)
23
24
  cocoapods-plugins (>= 1.0.0, < 2.0)
24
25
  cocoapods-search (>= 1.0.0, < 2.0)
25
26
  cocoapods-stats (>= 1.0.0, < 2.0)
26
- cocoapods-trunk (>= 1.2.0, < 2.0)
27
+ cocoapods-trunk (>= 1.3.1, < 2.0)
27
28
  cocoapods-try (>= 1.1.0, < 2.0)
28
29
  colored2 (~> 3.1)
29
30
  escape (~> 0.0.4)
30
- fourflusher (~> 2.0.1)
31
+ fourflusher (>= 2.3.0, < 3.0)
31
32
  gh_inspector (~> 1.0)
32
- molinillo (~> 0.5.7)
33
+ molinillo (~> 0.6.6)
33
34
  nap (~> 1.0)
34
- ruby-macho (~> 1.1)
35
- xcodeproj (>= 1.4.4, < 2.0)
36
- cocoapods-core (1.2.1)
37
- activesupport (>= 4.0.2, < 5)
35
+ ruby-macho (~> 1.4)
36
+ xcodeproj (>= 1.10.0, < 2.0)
37
+ cocoapods-core (1.7.3)
38
+ activesupport (>= 4.0.2, < 6)
38
39
  fuzzy_match (~> 2.0.4)
39
40
  nap (~> 1.0)
40
- cocoapods-deintegrate (1.0.1)
41
- cocoapods-downloader (1.1.3)
41
+ cocoapods-deintegrate (1.0.4)
42
+ cocoapods-downloader (1.2.2)
42
43
  cocoapods-plugins (1.0.0)
43
44
  nap
44
45
  cocoapods-search (1.0.0)
45
- cocoapods-stats (1.0.0)
46
- cocoapods-trunk (1.2.0)
46
+ cocoapods-stats (1.1.0)
47
+ cocoapods-trunk (1.3.1)
47
48
  nap (>= 0.8, < 2.0)
48
- netrc (= 0.7.8)
49
+ netrc (~> 0.11)
49
50
  cocoapods-try (1.1.0)
50
51
  colored2 (3.1.2)
52
+ concurrent-ruby (1.1.5)
51
53
  escape (0.0.4)
52
- fourflusher (2.0.1)
54
+ fourflusher (2.3.1)
53
55
  fuzzy_match (2.0.4)
54
- gh_inspector (1.0.3)
55
- i18n (0.8.4)
56
+ gh_inspector (1.1.3)
57
+ i18n (0.9.5)
58
+ concurrent-ruby (~> 1.0)
56
59
  metaclass (0.0.4)
57
- minitest (5.10.2)
58
- mocha (1.2.1)
60
+ minitest (5.11.3)
61
+ mocha (1.9.0)
59
62
  metaclass (~> 0.0.1)
60
63
  mocha-on-bacon (0.2.3)
61
64
  mocha (>= 0.13.0)
62
- molinillo (0.5.7)
63
- nanaimo (0.2.3)
65
+ molinillo (0.6.6)
66
+ nanaimo (0.2.6)
64
67
  nap (1.1.0)
65
- netrc (0.7.8)
68
+ netrc (0.11.0)
66
69
  prettybacon (0.0.2)
67
70
  bacon (~> 1.2)
68
- rake (12.0.0)
69
- ruby-macho (1.1.0)
71
+ rake (12.3.2)
72
+ ruby-macho (1.4.0)
70
73
  thread_safe (0.3.6)
71
- tzinfo (1.2.3)
74
+ tzinfo (1.2.5)
72
75
  thread_safe (~> 0.1)
73
- xcodeproj (1.4.4)
74
- CFPropertyList (~> 2.3.3)
75
- claide (>= 1.0.1, < 2.0)
76
+ xcodeproj (1.10.0)
77
+ CFPropertyList (>= 2.3.3, < 4.0)
78
+ atomos (~> 0.1.3)
79
+ claide (>= 1.0.2, < 2.0)
76
80
  colored2 (~> 3.1)
77
- nanaimo (~> 0.2.3)
81
+ nanaimo (~> 0.2.6)
78
82
 
79
83
  PLATFORMS
80
84
  ruby
81
85
 
82
86
  DEPENDENCIES
83
87
  bacon
84
- bundler (~> 1.3)
88
+ bundler (~> 2.0)
85
89
  cocoapods
86
90
  cocoapods-whitelist!
87
91
  mocha
@@ -90,4 +94,4 @@ DEPENDENCIES
90
94
  rake (~> 12.0)
91
95
 
92
96
  BUNDLED WITH
93
- 1.14.6
97
+ 2.0.1
data/README.md CHANGED
@@ -10,7 +10,7 @@ Validate Podspec's dependencies against a whitelist of pods.
10
10
 
11
11
  - As a command
12
12
  ```
13
- $ pod whitelist [--podspec=PODSPEC] [--config=WHITELIST_FILE_OR_URL] [--fail-on-error]
13
+ $ pod whitelist [--podspec=PODSPEC] [--config=WHITELIST_FILE_OR_URL] [--outfile=PATH] [--fail-on-error]
14
14
  ```
15
15
 
16
16
  - As plugin, add into the Podfile of your tests app
@@ -18,6 +18,6 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ['lib']
20
20
 
21
- spec.add_development_dependency 'bundler', '~> 1.3'
21
+ spec.add_development_dependency 'bundler', '~> 2.0'
22
22
  spec.add_development_dependency 'rake', '~> 12.0'
23
23
  end
@@ -5,9 +5,19 @@ DEFAULT_WHITELIST_URL = "https://raw.githubusercontent.com/mercadolibre/mobile-d
5
5
  class AllowedDependency
6
6
  attr_accessor :name
7
7
  attr_accessor :version
8
- def initialize(name, version)
8
+ attr_accessor :expire
9
+ def initialize(name, version, expire)
9
10
  @name = name
10
11
  @version = version
12
+ @expire = expire
13
+ end
14
+
15
+ def expire?
16
+ if @expire != nil
17
+ expire = DateTime.parse(@expire,"%Y-%m-%d")
18
+ return expire < DateTime.now
19
+ end
20
+ return false
11
21
  end
12
22
  end
13
23
 
@@ -84,7 +94,14 @@ module Pod
84
94
  next if parentName && name.start_with?("#{parentName}/")
85
95
 
86
96
  allowedDependency = whitelist.select { |item|
87
- /#{item.name}/ =~ name && (versions.empty? || !item.version || versions.grep(/#{item.version}/).any?)
97
+ item.name == name && (versions.empty? || !item.version || versions.grep(/#{item.version}/).any?)
98
+ }
99
+
100
+ # Checks if any of the allowed dependencies are expired, if so, fail with error
101
+ allowedDependency.each { |dependency|
102
+ if dependency.expire?
103
+ not_allowed.push("#{name} (Expired)")
104
+ end
88
105
  }
89
106
 
90
107
  if allowedDependency.empty?
@@ -125,7 +142,7 @@ module Pod
125
142
  def parse_whitelist(raw_whitelist)
126
143
  json = JSON.parse(raw_whitelist)
127
144
  return json["whitelist"].map { |dependencyJson|
128
- AllowedDependency.new(dependencyJson["name"], dependencyJson["version"])
145
+ AllowedDependency.new(dependencyJson["name"], dependencyJson["version"], dependencyJson["expire"])
129
146
  }
130
147
  end
131
148
 
@@ -146,7 +163,7 @@ module Pod
146
163
  return podspecs.map { |path| Pod::Specification.from_file(path) }
147
164
  end
148
165
 
149
- def show_error_message(message)
166
+ def show_error_message(message)
150
167
  unless @outfile == nil
151
168
  IO.write(@outfile, "#{message}\n", mode: 'a')
152
169
  end
@@ -1,3 +1,3 @@
1
1
  module CocoapodsWhitelist
2
- VERSION = "0.0.7"
2
+ VERSION = "0.0.8"
3
3
  end
@@ -0,0 +1,13 @@
1
+ Pod::Spec.new do |s|
2
+ s.name = "MLSearch"
3
+ s.version = "3.17.0"
4
+ s.summary = "Componente de search"
5
+ s.homepage = "http://www.mercadolibre.com.ar"
6
+ s.license = "none"
7
+ s.author = { "Mobile team" => "mobile@mercadolibre.com" }
8
+ s.platform = :ios, "7.0"
9
+ s.source = { :git => "git@github.com:mercadolibre/search-ios.git", :tag => s.version.to_s }
10
+ s.requires_arc = true
11
+ s.dependency 'Meli', '~>5.1'
12
+
13
+ end
@@ -1,9 +1,19 @@
1
1
  {
2
- "whitelist": [{
3
- "name": "MeliSDK",
4
- "version": "^~>5.[0-9]+$"
5
- }, {
6
- "name": "MLRecommendations",
7
- "version": null
8
- }]
2
+ "whitelist": [
3
+ {
4
+ "name": "MeliSDK",
5
+ "version": "^~>5.[0-9]+$"
6
+ }, {
7
+ "name": "MLRecommendations",
8
+ "version": null
9
+ }, {
10
+ "name": "MLBilling",
11
+ "version": null,
12
+ "expire" : "2100-11-15"
13
+ }, {
14
+ "name": "MLOnDemandResources",
15
+ "version": "^~>5.[0-9]+$",
16
+ "expire" : "2016-11-15"
17
+ }
18
+ ]
9
19
  }
@@ -0,0 +1,24 @@
1
+ {
2
+ "whitelist": [{
3
+ "name": "MeliSDK",
4
+ "version": "^~>5.[0-9]+$"
5
+ }, {
6
+ "name": "MLRecommendations",
7
+ "version": null
8
+ }, {
9
+ "name": "CHTCollectionViewWaterfallLayout2",
10
+ "version": "^~>\\s?0.[0-9]+$",
11
+ "expire": "2017-11-01"
12
+ },
13
+ {
14
+ "name": "CHTCollectionViewWaterfallLayout3",
15
+ "version": "^~>\\s?0.[0-9]+$",
16
+ "expire" : "2017-12-01"
17
+ },
18
+ {
19
+ "name": "CHTCollectionViewWaterfallLayout4",
20
+ "version": "^~>\\s?0.[0-9]+$",
21
+ "expire" : "2017-11-01"
22
+ }
23
+ ]
24
+ }
@@ -0,0 +1,12 @@
1
+ Pod::Spec.new do |s|
2
+ s.name = "MLSearch"
3
+ s.version = "3.17.0"
4
+ s.summary = "Componente de search"
5
+ s.homepage = "http://www.mercadolibre.com.ar"
6
+ s.license = "none"
7
+ s.author = { "Mobile team" => "mobile@mercadolibre.com" }
8
+ s.platform = :ios, "7.0"
9
+ s.source = { :git => "git@github.com:mercadolibre/search-ios.git", :tag => s.version.to_s }
10
+ s.requires_arc = true
11
+ s.dependency 'MLOnDemandResources', '~>5.8'
12
+ end
@@ -0,0 +1,12 @@
1
+ Pod::Spec.new do |s|
2
+ s.name = "MLSearch"
3
+ s.version = "3.17.0"
4
+ s.summary = "Componente de search"
5
+ s.homepage = "http://www.mercadolibre.com.ar"
6
+ s.license = "none"
7
+ s.author = { "Mobile team" => "mobile@mercadolibre.com" }
8
+ s.platform = :ios, "7.0"
9
+ s.source = { :git => "git@github.com:mercadolibre/search-ios.git", :tag => s.version.to_s }
10
+ s.requires_arc = true
11
+ s.dependency 'MLBilling', '~>5.8'
12
+ end
@@ -12,7 +12,7 @@ module Pod
12
12
  it 'parse whitelist json' do
13
13
  command = Command.parse(['whitelist', "--config=#{WHITELIST_FILE}"])
14
14
  dependencies = command.get_whitelist
15
- dependencies.size.should.equal 2
15
+ dependencies.size.should.equal 4
16
16
  end
17
17
  end
18
18
 
@@ -33,23 +33,45 @@ module Pod
33
33
  lambda { command.run }.should.not.raise
34
34
  end
35
35
 
36
+ it 'dependency with incorrect name should not be valid' do
37
+ # Whitelist: ('MeliSDK', '~>5.*') | Podspec: ('Meli', '~>5.0')
38
+ command = Command.parse(['whitelist', "--config=#{WHITELIST_FILE}", "--fail-on-error"])
39
+ specification = Pod::Specification.from_file('./spec/mocks/bad_name.podspec')
40
+ command.expects(:get_podspec_specifications).returns([specification])
41
+ lambda { command.run }.should.raise Informative
42
+ end
43
+
36
44
  it 'not allowed dependency should not be valid' do
37
- # Whitelist: ('MeliSDK', '~>5.*') | Podspec: ('AFNetworking')
38
45
  command = Command.parse(['whitelist', "--config=#{WHITELIST_FILE}", "--fail-on-error"])
39
46
  specification = Pod::Specification.from_file('./spec/mocks/not_allowed.podspec')
40
47
  command.expects(:get_podspec_specifications).returns([specification])
41
48
  lambda { command.run }.should.raise Informative
42
49
  end
43
50
 
44
- it 'dependency with not allowed version should not be valid' do
45
- # Whitelist: ('MeliSDK', '~>5.*') | Podspec: ('AFNetworking')
51
+ it 'dependency with not allowed version should be valid' do
46
52
  command = Command.parse(['whitelist', "--config=#{WHITELIST_FILE}", "--fail-on-error"])
47
53
  specification = Pod::Specification.from_file('./spec/mocks/with_fixed_version.podspec')
48
54
  command.expects(:get_podspec_specifications).returns([specification])
49
55
  lambda { command.run }.should.raise Informative
50
56
  end
51
57
 
52
- it 'dependency with two versions rquieremnt should not be valid' do
58
+ it 'expired dependency should not be valid' do
59
+ # Whitelist: ('MeliSDK', '~>5.*') | Podspec: ('AFNetworking')
60
+ command = Command.parse(['whitelist', "--config=#{WHITELIST_FILE}", "--fail-on-error"])
61
+ specification = Pod::Specification.from_file('./spec/mocks/with_expired_dependencies.podspec')
62
+ command.expects(:get_podspec_specifications).returns([specification])
63
+ lambda { command.run }.should.raise Informative
64
+ end
65
+
66
+ it 'not yet expired dependency should be valid' do
67
+ # Whitelist: ('MeliSDK', '~>5.*') | Podspec: ('AFNetworking')
68
+ command = Command.parse(['whitelist', "--config=#{WHITELIST_FILE}", "--fail-on-error"])
69
+ specification = Pod::Specification.from_file('./spec/mocks/with_not_yet_expired_dependencies.podspec')
70
+ command.expects(:get_podspec_specifications).returns([specification])
71
+ lambda { command.run }.should.not.raise Informative
72
+ end
73
+
74
+ it 'dependency with two versions requierement should not be valid' do
53
75
  # Whitelist: ('MeliSDK', '~>5.*') | Podspec: ('AFNetworking')
54
76
  command = Command.parse(['whitelist', "--config=#{WHITELIST_FILE}", "--fail-on-error"])
55
77
  specification = Pod::Specification.from_file('./spec/mocks/with_two_requirement.podspec')
metadata CHANGED
@@ -1,41 +1,41 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cocoapods-whitelist
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mobile Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-06-05 00:00:00.000000000 Z
11
+ date: 2019-07-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.3'
19
+ version: '2.0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.3'
26
+ version: '2.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ~>
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
33
  version: '12.0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ~>
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '12.0'
41
41
  description: A short description of cocoapods-whitelist.
@@ -45,7 +45,7 @@ executables: []
45
45
  extensions: []
46
46
  extra_rdoc_files: []
47
47
  files:
48
- - .gitignore
48
+ - ".gitignore"
49
49
  - CHANGELOG.md
50
50
  - Gemfile
51
51
  - Gemfile.lock
@@ -58,13 +58,17 @@ files:
58
58
  - lib/cocoapods-whitelist/command/whitelist.rb
59
59
  - lib/cocoapods-whitelist/gem_version.rb
60
60
  - lib/cocoapods_plugin.rb
61
+ - spec/mocks/bad_name.podspec
61
62
  - spec/mocks/free_version.podspec
62
63
  - spec/mocks/major_version_fixed.podspec
63
64
  - spec/mocks/not_allowed.podspec
64
65
  - spec/mocks/whitelist.json
66
+ - spec/mocks/whitelist_with_expired_dependencies.json
65
67
  - spec/mocks/with_allowed_in_subspec.podspec
68
+ - spec/mocks/with_expired_dependencies.podspec
66
69
  - spec/mocks/with_fixed_version.podspec
67
70
  - spec/mocks/with_not_allowed_in_subspec.podspec
71
+ - spec/mocks/with_not_yet_expired_dependencies.podspec
68
72
  - spec/mocks/with_two_requirement.podspec
69
73
  - spec/mocks/without_dependencies.podspec
70
74
  - spec/mocks/without_version.podspec
@@ -80,28 +84,32 @@ require_paths:
80
84
  - lib
81
85
  required_ruby_version: !ruby/object:Gem::Requirement
82
86
  requirements:
83
- - - '>='
87
+ - - ">="
84
88
  - !ruby/object:Gem::Version
85
89
  version: '0'
86
90
  required_rubygems_version: !ruby/object:Gem::Requirement
87
91
  requirements:
88
- - - '>='
92
+ - - ">="
89
93
  - !ruby/object:Gem::Version
90
94
  version: '0'
91
95
  requirements: []
92
96
  rubyforge_project:
93
- rubygems_version: 2.6.10
97
+ rubygems_version: 2.6.13
94
98
  signing_key:
95
99
  specification_version: 4
96
100
  summary: A longer description of cocoapods-whitelist.
97
101
  test_files:
102
+ - spec/mocks/bad_name.podspec
98
103
  - spec/mocks/free_version.podspec
99
104
  - spec/mocks/major_version_fixed.podspec
100
105
  - spec/mocks/not_allowed.podspec
101
106
  - spec/mocks/whitelist.json
107
+ - spec/mocks/whitelist_with_expired_dependencies.json
102
108
  - spec/mocks/with_allowed_in_subspec.podspec
109
+ - spec/mocks/with_expired_dependencies.podspec
103
110
  - spec/mocks/with_fixed_version.podspec
104
111
  - spec/mocks/with_not_allowed_in_subspec.podspec
112
+ - spec/mocks/with_not_yet_expired_dependencies.podspec
105
113
  - spec/mocks/with_two_requirement.podspec
106
114
  - spec/mocks/without_dependencies.podspec
107
115
  - spec/mocks/without_version.podspec