cocoapods-whitelist 0.0.7 → 0.0.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: 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