cocoapods-acknowledgements 1.1.3 → 1.2.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 +4 -4
- data/.gitignore +0 -1
- data/CHANGELOG.md +25 -0
- data/Gemfile.lock +115 -0
- data/README.md +7 -1
- data/cocoapods_acknowledgements.gemspec +2 -1
- data/lib/cocoapods_acknowledgements.rb +32 -30
- data/lib/cocoapods_acknowledgements/plist_generator.rb +6 -8
- data/lib/cocoapods_acknowledgements/settings_plist_generator.rb +5 -5
- data/lib/cocoapods_acknowledgements/version.rb +1 -1
- data/spec/acknowledgement_spec.rb +150 -0
- data/spec/plist_generator_spec.rb +138 -1
- data/spec/settings_plist_generator_spec.rb +76 -1
- data/spec/spec_helper.rb +62 -0
- metadata +20 -6
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 0f75510ee94aabecc1ad7344e4f06d1f48137321fc153b970ec73c3c4bf68d81
|
|
4
|
+
data.tar.gz: f032430ac9827e8dbb6753c2e415d860992c213850c7a2ee38178297a5104594
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7df979610134e829e971ed8ecd92ac7bfcac68b9dd70b9995a64c3ecafa8b54baee1ff0e514d87d5f8adaddd1abc7e1a27b8b681c366e9c2208870cd3a8bcfaf
|
|
7
|
+
data.tar.gz: 1ad0eb6bcbd3f6472851c9990dfbee26cd22e7d9e6de9507a8f6d97fa40a4e82522872675119d1f0224b6b9263b1e52f3f98c1edee9e363136bca8732f0b6e2e
|
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,30 @@
|
|
|
1
1
|
# CocoaPods Acknowledgements Changelog
|
|
2
2
|
|
|
3
|
+
## 1.2.0 (2020-03-23)
|
|
4
|
+
|
|
5
|
+
##### Enhancements
|
|
6
|
+
|
|
7
|
+
* Update internal gem dependencies to latest versions
|
|
8
|
+
[Olivier Halligon](https://github.com/AliSoftware)
|
|
9
|
+
[#56](https://github.com/CocoaPods/cocoapods-acknowledgements/pull/56)
|
|
10
|
+
|
|
11
|
+
* Add `targets` options to specify targets to add metadata
|
|
12
|
+
[Richard Lee](https://github.com/dlackty)
|
|
13
|
+
[#46](https://github.com/CocoaPods/cocoapods-acknowledgements/issues/46)
|
|
14
|
+
|
|
15
|
+
* Improve the performance of metadata generation
|
|
16
|
+
[Eric Amorde](https://github.com/amorde)
|
|
17
|
+
[#54](https://github.com/CocoaPods/cocoapods-acknowledgements/pull/54)
|
|
18
|
+
|
|
19
|
+
* Add tests
|
|
20
|
+
[Eric Amorde](https://github.com/amorde)
|
|
21
|
+
[#1](https://github.com/CocoaPods/cocoapods-acknowledgements/issues/1)
|
|
22
|
+
|
|
23
|
+
##### Bug Fixes
|
|
24
|
+
|
|
25
|
+
* None.
|
|
26
|
+
|
|
27
|
+
|
|
3
28
|
## 1.1.3 (2018-04-04)
|
|
4
29
|
|
|
5
30
|
##### Enhancements
|
data/Gemfile.lock
ADDED
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
PATH
|
|
2
|
+
remote: .
|
|
3
|
+
specs:
|
|
4
|
+
cocoapods-acknowledgements (1.2.0)
|
|
5
|
+
activesupport (>= 4.0.2, < 5)
|
|
6
|
+
redcarpet (~> 3.3)
|
|
7
|
+
xcodeproj
|
|
8
|
+
|
|
9
|
+
GEM
|
|
10
|
+
remote: https://rubygems.org/
|
|
11
|
+
specs:
|
|
12
|
+
CFPropertyList (3.0.2)
|
|
13
|
+
activesupport (4.2.11.1)
|
|
14
|
+
i18n (~> 0.7)
|
|
15
|
+
minitest (~> 5.1)
|
|
16
|
+
thread_safe (~> 0.3, >= 0.3.4)
|
|
17
|
+
tzinfo (~> 1.1)
|
|
18
|
+
algoliasearch (1.27.1)
|
|
19
|
+
httpclient (~> 2.8, >= 2.8.3)
|
|
20
|
+
json (>= 1.5.1)
|
|
21
|
+
atomos (0.1.3)
|
|
22
|
+
bacon (1.2.0)
|
|
23
|
+
claide (1.0.3)
|
|
24
|
+
cocoapods (1.9.1)
|
|
25
|
+
activesupport (>= 4.0.2, < 5)
|
|
26
|
+
claide (>= 1.0.2, < 2.0)
|
|
27
|
+
cocoapods-core (= 1.9.1)
|
|
28
|
+
cocoapods-deintegrate (>= 1.0.3, < 2.0)
|
|
29
|
+
cocoapods-downloader (>= 1.2.2, < 2.0)
|
|
30
|
+
cocoapods-plugins (>= 1.0.0, < 2.0)
|
|
31
|
+
cocoapods-search (>= 1.0.0, < 2.0)
|
|
32
|
+
cocoapods-stats (>= 1.0.0, < 2.0)
|
|
33
|
+
cocoapods-trunk (>= 1.4.0, < 2.0)
|
|
34
|
+
cocoapods-try (>= 1.1.0, < 2.0)
|
|
35
|
+
colored2 (~> 3.1)
|
|
36
|
+
escape (~> 0.0.4)
|
|
37
|
+
fourflusher (>= 2.3.0, < 3.0)
|
|
38
|
+
gh_inspector (~> 1.0)
|
|
39
|
+
molinillo (~> 0.6.6)
|
|
40
|
+
nap (~> 1.0)
|
|
41
|
+
ruby-macho (~> 1.4)
|
|
42
|
+
xcodeproj (>= 1.14.0, < 2.0)
|
|
43
|
+
cocoapods-core (1.9.1)
|
|
44
|
+
activesupport (>= 4.0.2, < 6)
|
|
45
|
+
algoliasearch (~> 1.0)
|
|
46
|
+
concurrent-ruby (~> 1.1)
|
|
47
|
+
fuzzy_match (~> 2.0.4)
|
|
48
|
+
nap (~> 1.0)
|
|
49
|
+
netrc (~> 0.11)
|
|
50
|
+
typhoeus (~> 1.0)
|
|
51
|
+
cocoapods-deintegrate (1.0.4)
|
|
52
|
+
cocoapods-downloader (1.3.0)
|
|
53
|
+
cocoapods-plugins (1.0.0)
|
|
54
|
+
nap
|
|
55
|
+
cocoapods-search (1.0.0)
|
|
56
|
+
cocoapods-stats (1.1.0)
|
|
57
|
+
cocoapods-trunk (1.4.1)
|
|
58
|
+
nap (>= 0.8, < 2.0)
|
|
59
|
+
netrc (~> 0.11)
|
|
60
|
+
cocoapods-try (1.1.0)
|
|
61
|
+
colored2 (3.1.2)
|
|
62
|
+
concurrent-ruby (1.1.6)
|
|
63
|
+
escape (0.0.4)
|
|
64
|
+
ethon (0.12.0)
|
|
65
|
+
ffi (>= 1.3.0)
|
|
66
|
+
ffi (1.12.2)
|
|
67
|
+
fourflusher (2.3.1)
|
|
68
|
+
fuzzy_match (2.0.4)
|
|
69
|
+
gh_inspector (1.1.3)
|
|
70
|
+
httpclient (2.8.3)
|
|
71
|
+
i18n (0.9.5)
|
|
72
|
+
concurrent-ruby (~> 1.0)
|
|
73
|
+
json (2.3.0)
|
|
74
|
+
metaclass (0.0.4)
|
|
75
|
+
minitest (5.14.0)
|
|
76
|
+
mocha (0.11.4)
|
|
77
|
+
metaclass (~> 0.0.1)
|
|
78
|
+
mocha-on-bacon (0.2.1)
|
|
79
|
+
mocha (>= 0.9.8)
|
|
80
|
+
molinillo (0.6.6)
|
|
81
|
+
nanaimo (0.2.6)
|
|
82
|
+
nap (1.1.0)
|
|
83
|
+
netrc (0.11.0)
|
|
84
|
+
prettybacon (0.0.2)
|
|
85
|
+
bacon (~> 1.2)
|
|
86
|
+
rake (13.0.1)
|
|
87
|
+
redcarpet (3.5.0)
|
|
88
|
+
ruby-macho (1.4.0)
|
|
89
|
+
thread_safe (0.3.6)
|
|
90
|
+
typhoeus (1.3.1)
|
|
91
|
+
ethon (>= 0.9.0)
|
|
92
|
+
tzinfo (1.2.6)
|
|
93
|
+
thread_safe (~> 0.1)
|
|
94
|
+
xcodeproj (1.15.0)
|
|
95
|
+
CFPropertyList (>= 2.3.3, < 4.0)
|
|
96
|
+
atomos (~> 0.1.3)
|
|
97
|
+
claide (>= 1.0.2, < 2.0)
|
|
98
|
+
colored2 (~> 3.1)
|
|
99
|
+
nanaimo (~> 0.2.6)
|
|
100
|
+
|
|
101
|
+
PLATFORMS
|
|
102
|
+
ruby
|
|
103
|
+
|
|
104
|
+
DEPENDENCIES
|
|
105
|
+
bacon
|
|
106
|
+
bundler (~> 2.0)
|
|
107
|
+
cocoapods
|
|
108
|
+
cocoapods-acknowledgements!
|
|
109
|
+
mocha (~> 0.11.4)
|
|
110
|
+
mocha-on-bacon
|
|
111
|
+
prettybacon
|
|
112
|
+
rake
|
|
113
|
+
|
|
114
|
+
BUNDLED WITH
|
|
115
|
+
2.0.2
|
data/README.md
CHANGED
|
@@ -35,7 +35,7 @@ plugin 'cocoapods-acknowledgements', :settings_bundle => true , :settings_post_p
|
|
|
35
35
|
|
|
36
36
|
The plugin will search through your project files to find a `Settings.bundle` file, and add the file to the bundle. If this is not enough for you, we'd love a PR.
|
|
37
37
|
|
|
38
|
-
You can
|
|
38
|
+
You can exclude some dependencies so they won't be added to the generated plists. This is useful when you don't want to add private dependencies.
|
|
39
39
|
|
|
40
40
|
```ruby
|
|
41
41
|
plugin 'cocoapods-acknowledgements', :settings_bundle => true, :exclude => 'PrivateKit'
|
|
@@ -43,6 +43,12 @@ plugin 'cocoapods-acknowledgements', :settings_bundle => true, :exclude => 'Priv
|
|
|
43
43
|
plugin 'cocoapods-acknowledgements', :settings_bundle => true, :exclude => ['PrivateKit', 'SecretLib']
|
|
44
44
|
```
|
|
45
45
|
|
|
46
|
+
You can also specify a list of targets for which to generate acknowledgements. This can be useful to exclude test or extension targets.
|
|
47
|
+
|
|
48
|
+
``` ruby
|
|
49
|
+
plugin 'cocoapods-acknowledgements', :targets => ['MyApp']
|
|
50
|
+
```
|
|
51
|
+
|
|
46
52
|
### Location
|
|
47
53
|
|
|
48
54
|
The plist generated by this plugin is located under the root of your ```Pods``` directory.
|
|
@@ -20,6 +20,7 @@ Gem::Specification.new do |spec|
|
|
|
20
20
|
spec.add_runtime_dependency 'activesupport', '>= 4.0.2', '< 5'
|
|
21
21
|
|
|
22
22
|
spec.add_dependency "redcarpet", "~> 3.3"
|
|
23
|
-
spec.
|
|
23
|
+
spec.add_dependency "xcodeproj"
|
|
24
|
+
spec.add_development_dependency "bundler", "~> 2.0"
|
|
24
25
|
spec.add_development_dependency "rake"
|
|
25
26
|
end
|
|
@@ -29,7 +29,6 @@ module CocoaPodsAcknowledgements
|
|
|
29
29
|
end
|
|
30
30
|
|
|
31
31
|
project.save
|
|
32
|
-
|
|
33
32
|
end
|
|
34
33
|
|
|
35
34
|
def self.settings_bundle_in_project(project)
|
|
@@ -51,8 +50,9 @@ module CocoaPodsAcknowledgements
|
|
|
51
50
|
|
|
52
51
|
Pod::UI.section 'Adding Acknowledgements' do
|
|
53
52
|
|
|
54
|
-
should_include_settings = user_options["settings_bundle"]
|
|
53
|
+
should_include_settings = user_options["settings_bundle"]
|
|
55
54
|
excluded_pods = Set.new(user_options["exclude"])
|
|
55
|
+
targets = Set.new(user_options["targets"])
|
|
56
56
|
|
|
57
57
|
sandbox = context.sandbox if defined? context.sandbox
|
|
58
58
|
sandbox ||= Pod::Sandbox.new(context.sandbox_root)
|
|
@@ -60,44 +60,46 @@ module CocoaPodsAcknowledgements
|
|
|
60
60
|
context.umbrella_targets.each do |umbrella_target|
|
|
61
61
|
project = Xcodeproj::Project.open(umbrella_target.user_project_path)
|
|
62
62
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
63
|
+
# Generate a plist representing all of the podspecs
|
|
64
|
+
metadata = PlistGenerator.generate(umbrella_target, sandbox, excluded_pods)
|
|
65
|
+
next unless metadata
|
|
66
|
+
|
|
67
|
+
if should_include_settings
|
|
68
|
+
# We need to look for a Settings.bundle
|
|
69
|
+
# and add this to the root of the bundle
|
|
70
|
+
settings_bundle = settings_bundle_in_project(project)
|
|
71
|
+
if settings_bundle == nil
|
|
72
|
+
Pod::UI.warn "Could not find a Settings.bundle to add the Pod Settings Plist to."
|
|
73
|
+
else
|
|
74
74
|
# Generate a plist in Settings format
|
|
75
75
|
settings_metadata = SettingsPlistGenerator.generate(umbrella_target, sandbox, excluded_pods)
|
|
76
|
+
settings_plist_path = settings_bundle + "/#{umbrella_target.cocoapods_target_label}-settings-metadata.plist"
|
|
77
|
+
end
|
|
78
|
+
end
|
|
76
79
|
|
|
77
|
-
|
|
78
|
-
# and add this to the root of the bundle
|
|
80
|
+
plist_path = sandbox.root + "#{umbrella_target.cocoapods_target_label}-metadata.plist"
|
|
79
81
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
82
|
+
user_target_uuids = if targets.empty?
|
|
83
|
+
umbrella_target.user_target_uuids
|
|
84
|
+
else
|
|
85
|
+
umbrella_target.user_targets.select do |target|
|
|
86
|
+
targets.include?(target.name)
|
|
87
|
+
end.map(&:uuid)
|
|
88
|
+
end
|
|
87
89
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
user_options["settings_post_process"].call(settings_plist_path, umbrella_target, excluded_pods)
|
|
91
|
-
end
|
|
90
|
+
user_target_uuids.each do |user_target_uuid|
|
|
91
|
+
save_metadata(metadata, plist_path, project, sandbox, user_target_uuid)
|
|
92
92
|
|
|
93
|
+
if settings_metadata && settings_plist_path
|
|
94
|
+
save_metadata(settings_metadata, settings_plist_path, project, sandbox, user_target_uuid)
|
|
95
|
+
Pod::UI.info "Added Pod info to Settings.bundle for target #{umbrella_target.cocoapods_target_label}"
|
|
96
|
+
# Support a callback for the key :settings_post_process
|
|
97
|
+
if user_options["settings_post_process"]
|
|
98
|
+
user_options["settings_post_process"].call(settings_plist_path, umbrella_target, excluded_pods)
|
|
93
99
|
end
|
|
94
100
|
end
|
|
95
|
-
|
|
96
101
|
end
|
|
97
|
-
|
|
98
102
|
end
|
|
99
|
-
|
|
100
103
|
end
|
|
101
|
-
|
|
102
104
|
end
|
|
103
105
|
end
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
require 'redcarpet'
|
|
2
3
|
|
|
3
4
|
module CocoaPodsAcknowledgements
|
|
@@ -13,14 +14,12 @@ module CocoaPodsAcknowledgements
|
|
|
13
14
|
|
|
14
15
|
return nil if root_specs.empty?
|
|
15
16
|
|
|
16
|
-
specs_metadata =
|
|
17
|
-
root_specs.each do |spec|
|
|
18
|
-
pod_root = sandbox.pod_dir(spec.name)
|
|
17
|
+
specs_metadata = root_specs.map do |spec|
|
|
19
18
|
platform = Pod::Platform.new(target_description.platform_name)
|
|
20
19
|
file_accessor = file_accessor(spec, platform, sandbox)
|
|
21
20
|
license_text = license_text(spec, file_accessor)
|
|
22
21
|
|
|
23
|
-
|
|
22
|
+
{
|
|
24
23
|
"name" => spec.name,
|
|
25
24
|
"version" => spec.version,
|
|
26
25
|
"authors" => spec.authors,
|
|
@@ -31,12 +30,11 @@ module CocoaPodsAcknowledgements
|
|
|
31
30
|
"licenseText" => license_text,
|
|
32
31
|
"homepage" => spec.homepage,
|
|
33
32
|
}
|
|
34
|
-
specs_metadata << spec_metadata
|
|
35
33
|
end
|
|
36
34
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
35
|
+
{
|
|
36
|
+
"specs" => specs_metadata
|
|
37
|
+
}
|
|
40
38
|
end
|
|
41
39
|
|
|
42
40
|
#-----------------------------------------------------------------------#
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
require 'cocoapods_acknowledgements/plist_generator'
|
|
2
3
|
|
|
3
4
|
module CocoaPodsAcknowledgements
|
|
@@ -12,7 +13,6 @@ module CocoaPodsAcknowledgements
|
|
|
12
13
|
specs_metadata = [header]
|
|
13
14
|
|
|
14
15
|
root_specs.each do |spec|
|
|
15
|
-
pod_root = sandbox.pod_dir(spec.name)
|
|
16
16
|
platform = Pod::Platform.new(target_description.platform_name)
|
|
17
17
|
file_accessor = file_accessor(spec, platform, sandbox)
|
|
18
18
|
license_text = license_text(spec, file_accessor)
|
|
@@ -26,7 +26,7 @@ module CocoaPodsAcknowledgements
|
|
|
26
26
|
end
|
|
27
27
|
|
|
28
28
|
specs_metadata << footer
|
|
29
|
-
|
|
29
|
+
{
|
|
30
30
|
"PreferenceSpecifiers" => specs_metadata,
|
|
31
31
|
"Title" => "Acknowledgements",
|
|
32
32
|
"StringsTable" => "Acknowledgements"
|
|
@@ -34,7 +34,7 @@ module CocoaPodsAcknowledgements
|
|
|
34
34
|
end
|
|
35
35
|
|
|
36
36
|
def header
|
|
37
|
-
|
|
37
|
+
{
|
|
38
38
|
"FooterText" => "This application makes use of the following third party libraries:",
|
|
39
39
|
"Title" => "Acknowledgements",
|
|
40
40
|
"Type" => "PSGroupSpecifier"
|
|
@@ -42,8 +42,8 @@ module CocoaPodsAcknowledgements
|
|
|
42
42
|
end
|
|
43
43
|
|
|
44
44
|
def footer
|
|
45
|
-
|
|
46
|
-
"FooterText" => "Generated by CocoaPods -
|
|
45
|
+
{
|
|
46
|
+
"FooterText" => "Generated by CocoaPods - https://cocoapods.org",
|
|
47
47
|
"Title" => nil,
|
|
48
48
|
"Type" => "PSGroupSpecifier"
|
|
49
49
|
}
|
|
@@ -1,5 +1,155 @@
|
|
|
1
1
|
require File.expand_path('../spec_helper.rb', __FILE__)
|
|
2
|
+
require 'xcodeproj'
|
|
2
3
|
|
|
3
4
|
describe CocoaPodsAcknowledgements do
|
|
4
5
|
|
|
6
|
+
UmbrellaTargetDescription = Pod::Installer::PostInstallHooksContext::UmbrellaTargetDescription
|
|
7
|
+
|
|
8
|
+
before do
|
|
9
|
+
@project_path = SpecHelper.temporary_directory + 'project.xcodeproj'
|
|
10
|
+
@project = Xcodeproj::Project.new(@project_path)
|
|
11
|
+
@project.initialize_from_scratch
|
|
12
|
+
@sandbox = temporary_sandbox
|
|
13
|
+
@spec1 = SpecHelper.spec1
|
|
14
|
+
@spec2 = SpecHelper.spec2
|
|
15
|
+
|
|
16
|
+
@settings_plist_content = {
|
|
17
|
+
'Title' => 'Acknowledgements',
|
|
18
|
+
'StringsTable' => 'Acknowledgements',
|
|
19
|
+
'PreferenceSpecifiers' => [
|
|
20
|
+
{
|
|
21
|
+
'Title' => 'Acknowledgements',
|
|
22
|
+
'Type' => 'PSGroupSpecifier',
|
|
23
|
+
'FooterText' => 'This application makes use of the following third party libraries:'
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
'Title' => 'monkeylib',
|
|
27
|
+
'Type' => 'PSGroupSpecifier',
|
|
28
|
+
'FooterText' => 'Permission is hereby granted ...'
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
'Title' => 'BananaLib',
|
|
32
|
+
'Type' => 'PSGroupSpecifier',
|
|
33
|
+
'FooterText' => 'Permission is hereby granted ...'
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
'Title' => nil,
|
|
37
|
+
'Type' => 'PSGroupSpecifier',
|
|
38
|
+
'FooterText' => 'Generated by CocoaPods - https://cocoapods.org'
|
|
39
|
+
},
|
|
40
|
+
]
|
|
41
|
+
}
|
|
42
|
+
@plist_content = {
|
|
43
|
+
"specs" => [
|
|
44
|
+
{
|
|
45
|
+
"name" => "monkeylib",
|
|
46
|
+
"version"=> Pod::Version.new(1.0),
|
|
47
|
+
"authors"=> {
|
|
48
|
+
"CocoaPods" => "email@cocoapods.org"
|
|
49
|
+
},
|
|
50
|
+
"socialMediaURL" => "https://twitter.com/CocoaPods",
|
|
51
|
+
"summary" => "A lib to do monkey things",
|
|
52
|
+
"description" => "<h2>What is it</h2>\n\n<p>A lib to do monkey things</p>\n\n<h2>Why?</h2>\n\n<p>Why not?</p>\n",
|
|
53
|
+
"licenseType" => "MIT",
|
|
54
|
+
"licenseText" => "Permission is hereby granted ...",
|
|
55
|
+
"homepage" => "https://github.com/CocoaPods/monkeylib"
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"name" => "BananaLib",
|
|
59
|
+
"version" => Pod::Version.new(1.0),
|
|
60
|
+
"authors" => {
|
|
61
|
+
"Banana Corp" => nil,
|
|
62
|
+
"Monkey Boy" => "monkey@banana-corp.local"
|
|
63
|
+
},
|
|
64
|
+
"socialMediaURL" => nil,
|
|
65
|
+
"summary" => "Chunky bananas!",
|
|
66
|
+
"description" => "<p>Full of chunky bananas.</p>\n",
|
|
67
|
+
"licenseType" => "MIT",
|
|
68
|
+
"licenseText" => "Permission is hereby granted ...",
|
|
69
|
+
"homepage" => "http://banana-corp.local/banana-lib.html"
|
|
70
|
+
}
|
|
71
|
+
]
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
@target = @project.new_target(:application, 'MyApp', :ios)
|
|
75
|
+
@plist_path = @sandbox.root + 'Pods-MyApp-metadata.plist'
|
|
76
|
+
@project.save
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
after do
|
|
80
|
+
FileUtils.rm_rf(SpecHelper.temporary_directory)
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
describe 'In general' do
|
|
84
|
+
it 'finds existing settings bundles' do
|
|
85
|
+
settings_bundle = SpecHelper.temporary_directory + 'Settings.bundle'
|
|
86
|
+
FileUtils.mkdir(settings_bundle)
|
|
87
|
+
resource_group = @project.main_group.new_group('Resources')
|
|
88
|
+
resource_group.new_file(settings_bundle)
|
|
89
|
+
|
|
90
|
+
result = CocoaPodsAcknowledgements.settings_bundle_in_project(@project)
|
|
91
|
+
result.to_s.should == settings_bundle.to_s
|
|
92
|
+
FileUtils.rm_rf(settings_bundle)
|
|
93
|
+
end
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
describe '#save_metadata' do
|
|
97
|
+
it 'saves the metadata to disk' do
|
|
98
|
+
Xcodeproj::Plist.expects(:write_to_path).with(@plist_content, @plist_path).once
|
|
99
|
+
CocoaPodsAcknowledgements.save_metadata(@plist_content, @plist_path, @project, @sandbox, @target.uuid)
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
it 'adds the Pods group if not already existing' do
|
|
103
|
+
@project.main_group["Pods"].should.be.nil?
|
|
104
|
+
CocoaPodsAcknowledgements.save_metadata(@plist_content, @plist_path, @project, @sandbox, @target.uuid)
|
|
105
|
+
@project.main_group["Pods"].should.not.be.nil?
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
it 'adds the plist to the Pods group' do
|
|
109
|
+
CocoaPodsAcknowledgements.save_metadata(@plist_content, @plist_path, @project, @sandbox, @target.uuid)
|
|
110
|
+
@project.main_group["Pods"].files.find { |f| f.path == 'Pods-MyApp-metadata.plist' }.should.not.be.nil?
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
it 'adds the plist to user target Copy Resources build phase' do
|
|
114
|
+
CocoaPodsAcknowledgements.save_metadata(@plist_content, @plist_path, @project, @sandbox, @target.uuid)
|
|
115
|
+
file_ref = @project.main_group["Pods"].files.find { |f| f.path == 'Pods-MyApp-metadata.plist' }
|
|
116
|
+
file_ref.should.not.be.nil?
|
|
117
|
+
|
|
118
|
+
@target.resources_build_phase.files.find { |f| f.file_ref == file_ref }.should.not.be.nil?
|
|
119
|
+
end
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
describe 'plugin-hook' do
|
|
123
|
+
before do
|
|
124
|
+
@target_description = UmbrellaTargetDescription.new(@project, [@target], [@spec1, @spec2], :ios, '8.0', 'Pods-MyApp')
|
|
125
|
+
@hook_context = Pod::Installer::PostInstallHooksContext.new(@sandbox, @sandbox.root, nil, [@target_description])
|
|
126
|
+
Xcodeproj::Project.stubs(:open).returns(@project)
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
it 'generates acknowledgement plists' do
|
|
130
|
+
CocoaPodsAcknowledgements.expects(:save_metadata).with(@plist_content, @plist_path, @project, @sandbox, @target.uuid)
|
|
131
|
+
Pod::HooksManager.run(:post_install, @hook_context, { 'cocoapods-acknowledgements' => {}})
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
it 'generates a settings plist when specified' do
|
|
135
|
+
settings_bundle = SpecHelper.temporary_directory + 'Settings.bundle'
|
|
136
|
+
settings_plist_path = settings_bundle + 'Pods-MyApp-settings-metadata.plist'
|
|
137
|
+
FileUtils.mkdir(settings_bundle)
|
|
138
|
+
resource_group = @project.main_group.new_group('Resources')
|
|
139
|
+
resource_group.new_file(settings_bundle)
|
|
140
|
+
|
|
141
|
+
CocoaPodsAcknowledgements.expects(:save_metadata).with(@plist_content, @plist_path, @project, @sandbox, @target.uuid).once
|
|
142
|
+
CocoaPodsAcknowledgements.expects(:save_metadata).with(@settings_plist_content, settings_plist_path.to_s, @project, @sandbox, @target.uuid).once
|
|
143
|
+
Pod::HooksManager.run(:post_install, @hook_context, { 'cocoapods-acknowledgements' => { :settings_bundle => true }})
|
|
144
|
+
FileUtils.rm_rf(settings_bundle)
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
it "generates acknowledgement plists to only specified targets" do
|
|
148
|
+
CocoaPodsAcknowledgements.expects(:save_metadata).with(@plist_content, @plist_path, @project, @sandbox, @target.uuid).once
|
|
149
|
+
Pod::HooksManager.run(:post_install, @hook_context, { 'cocoapods-acknowledgements' => { targets: ['MyApp'] }})
|
|
150
|
+
|
|
151
|
+
CocoaPodsAcknowledgements.expects(:save_metadata).never
|
|
152
|
+
Pod::HooksManager.run(:post_install, @hook_context, { 'cocoapods-acknowledgements' => { targets: ['TheOtherTarget'] }})
|
|
153
|
+
end
|
|
154
|
+
end
|
|
5
155
|
end
|
|
@@ -1,5 +1,142 @@
|
|
|
1
1
|
require File.expand_path('../spec_helper.rb', __FILE__)
|
|
2
2
|
|
|
3
|
-
describe CocoaPodsAcknowledgements::PlistGenerator do
|
|
3
|
+
describe PlistGenerator = CocoaPodsAcknowledgements::PlistGenerator do
|
|
4
4
|
|
|
5
|
+
before do
|
|
6
|
+
@spec1 = SpecHelper.spec1
|
|
7
|
+
@spec2 = SpecHelper.spec2
|
|
8
|
+
PlistGenerator.stubs(:file_accessor).returns(nil)
|
|
9
|
+
@sandbox = temporary_sandbox
|
|
10
|
+
@target_description = stub('target_description',
|
|
11
|
+
:specs => [@spec1, @spec2],
|
|
12
|
+
:platform_name => 'ios')
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
describe 'In general' do
|
|
16
|
+
it 'generates metadata' do
|
|
17
|
+
result = PlistGenerator.generate(@target_description, @sandbox, [])
|
|
18
|
+
result.should == {
|
|
19
|
+
"specs" => [
|
|
20
|
+
{
|
|
21
|
+
"name" => "monkeylib",
|
|
22
|
+
"version"=> Pod::Version.new(1.0),
|
|
23
|
+
"authors"=> {
|
|
24
|
+
"CocoaPods" => "email@cocoapods.org"
|
|
25
|
+
},
|
|
26
|
+
"socialMediaURL" => "https://twitter.com/CocoaPods",
|
|
27
|
+
"summary" => "A lib to do monkey things",
|
|
28
|
+
"description" => "<h2>What is it</h2>\n\n<p>A lib to do monkey things</p>\n\n<h2>Why?</h2>\n\n<p>Why not?</p>\n",
|
|
29
|
+
"licenseType" => "MIT",
|
|
30
|
+
"licenseText" => "Permission is hereby granted ...",
|
|
31
|
+
"homepage" => "https://github.com/CocoaPods/monkeylib"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"name" => "BananaLib",
|
|
35
|
+
"version" => Pod::Version.new(1.0),
|
|
36
|
+
"authors" => {
|
|
37
|
+
"Banana Corp" => nil,
|
|
38
|
+
"Monkey Boy" => "monkey@banana-corp.local"
|
|
39
|
+
},
|
|
40
|
+
"socialMediaURL" => nil,
|
|
41
|
+
"summary" => "Chunky bananas!",
|
|
42
|
+
"description" => "<p>Full of chunky bananas.</p>\n",
|
|
43
|
+
"licenseType" => "MIT",
|
|
44
|
+
"licenseText" => "Permission is hereby granted ...",
|
|
45
|
+
"homepage" => "http://banana-corp.local/banana-lib.html"
|
|
46
|
+
}
|
|
47
|
+
]
|
|
48
|
+
}
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
it 'generates nil if specs is empty' do
|
|
52
|
+
target_description = stub('target_description',
|
|
53
|
+
:specs => [],
|
|
54
|
+
:platform_name => 'ios')
|
|
55
|
+
result = PlistGenerator.generate(target_description, @sandbox, [])
|
|
56
|
+
result.should.be.nil?
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
it 'does not include metadata for excluded specs' do
|
|
60
|
+
target_description = stub('target_description',
|
|
61
|
+
:specs => [@spec1, @spec2],
|
|
62
|
+
:platform_name => 'ios')
|
|
63
|
+
result = PlistGenerator.generate(target_description, @sandbox, [@spec1.name])
|
|
64
|
+
result.should == {
|
|
65
|
+
"specs" => [
|
|
66
|
+
{
|
|
67
|
+
"name" => "BananaLib",
|
|
68
|
+
"version" => Pod::Version.new(1.0),
|
|
69
|
+
"authors" => {
|
|
70
|
+
"Banana Corp" => nil,
|
|
71
|
+
"Monkey Boy" => "monkey@banana-corp.local"
|
|
72
|
+
},
|
|
73
|
+
"socialMediaURL" => nil,
|
|
74
|
+
"summary" => "Chunky bananas!",
|
|
75
|
+
"description" => "<p>Full of chunky bananas.</p>\n",
|
|
76
|
+
"licenseType" => "MIT",
|
|
77
|
+
"licenseText" => "Permission is hereby granted ...",
|
|
78
|
+
"homepage" => "http://banana-corp.local/banana-lib.html"
|
|
79
|
+
}
|
|
80
|
+
]
|
|
81
|
+
}
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
it 'generates nil when all specs are excluded' do
|
|
85
|
+
target_description = stub('target_description',
|
|
86
|
+
:specs => [@spec1, @spec2],
|
|
87
|
+
:platform_name => 'ios')
|
|
88
|
+
result = PlistGenerator.generate(target_description, @sandbox, [@spec1.name, @spec2.name])
|
|
89
|
+
result.should.be.nil?
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
describe '#license_text' do
|
|
93
|
+
it 'returns nil if license is missing' do
|
|
94
|
+
spec = stub('spec', :license => nil)
|
|
95
|
+
result = PlistGenerator.license_text(spec, nil)
|
|
96
|
+
result.should.be.nil?
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
it 'returns text if specified' do
|
|
100
|
+
spec = stub('spec', :license => { :text => 'Permission is hereby granted ...'})
|
|
101
|
+
result = PlistGenerator.license_text(spec, nil)
|
|
102
|
+
result.should == 'Permission is hereby granted ...'
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
it 'reads license files when specified' do
|
|
106
|
+
license_file = SpecHelper.temporary_directory + 'LICENSE'
|
|
107
|
+
license_file.open('w') { |f| f.write("Permission is hereby granted ...") }
|
|
108
|
+
spec = stub('spec', :license => { :file => license_file })
|
|
109
|
+
file_accessor = stub('file_accessor', :license => license_file)
|
|
110
|
+
result = PlistGenerator.license_text(spec, file_accessor)
|
|
111
|
+
result.should == 'Permission is hereby granted ...'
|
|
112
|
+
FileUtils.rm_f(license_file)
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
it 'warns when a license file is specified but does not exist' do
|
|
116
|
+
license_file = SpecHelper.temporary_directory + 'non-existent-file.txt'
|
|
117
|
+
spec = stub('spec', :license => { :file => license_file })
|
|
118
|
+
file_accessor = stub('file_accessor', :license => license_file)
|
|
119
|
+
PlistGenerator.license_text(spec, file_accessor)
|
|
120
|
+
Pod::UI.warnings.should.match /Unable to read the license file/
|
|
121
|
+
end
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
it 'renders markdown' do
|
|
125
|
+
contents = <<EOT
|
|
126
|
+
# Title
|
|
127
|
+
Title description
|
|
128
|
+
|
|
129
|
+
## H2 Title
|
|
130
|
+
* List item 1
|
|
131
|
+
* List item 2
|
|
132
|
+
|
|
133
|
+
### Sub Sub Head
|
|
134
|
+
> Some interesting quote
|
|
135
|
+
**
|
|
136
|
+
EOT
|
|
137
|
+
expected = "<h1>Title</h1>\n\n<p>Title description</p>\n\n<h2>H2 Title</h2>\n\n<ul>\n<li>List item 1</li>\n<li>List item 2</li>\n</ul>\n\n<h3>Sub Sub Head</h3>\n\n<blockquote>\n<p>Some interesting quote\n**</p>\n</blockquote>\n"
|
|
138
|
+
result = PlistGenerator.parse_markdown(contents)
|
|
139
|
+
result.should == "<h1>Title</h1>\n\n<p>Title description</p>\n\n<h2>H2 Title</h2>\n\n<ul>\n<li>List item 1</li>\n<li>List item 2</li>\n</ul>\n\n<h3>Sub Sub Head</h3>\n\n<blockquote>\n<p>Some interesting quote\n**</p>\n</blockquote>\n"
|
|
140
|
+
end
|
|
141
|
+
end
|
|
5
142
|
end
|
|
@@ -1,5 +1,80 @@
|
|
|
1
1
|
require File.expand_path('../spec_helper.rb', __FILE__)
|
|
2
2
|
|
|
3
|
-
describe CocoaPodsAcknowledgements::SettingsPlistGenerator do
|
|
3
|
+
describe SettingsPlistGenerator = CocoaPodsAcknowledgements::SettingsPlistGenerator do
|
|
4
4
|
|
|
5
|
+
before do
|
|
6
|
+
@spec1 = SpecHelper.spec1
|
|
7
|
+
@spec2 = SpecHelper.spec2
|
|
8
|
+
SettingsPlistGenerator.stubs(:file_accessor).returns(nil)
|
|
9
|
+
@sandbox = temporary_sandbox
|
|
10
|
+
@target_description = stub('target_description',
|
|
11
|
+
:specs => [@spec1, @spec2],
|
|
12
|
+
:platform_name => 'ios')
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it 'generates metadata' do
|
|
16
|
+
result = SettingsPlistGenerator.generate(@target_description, @sandbox, [])
|
|
17
|
+
result.should == {
|
|
18
|
+
'Title' => 'Acknowledgements',
|
|
19
|
+
'StringsTable' => 'Acknowledgements',
|
|
20
|
+
'PreferenceSpecifiers' => [
|
|
21
|
+
{
|
|
22
|
+
'Title' => 'Acknowledgements',
|
|
23
|
+
'Type' => 'PSGroupSpecifier',
|
|
24
|
+
'FooterText' => 'This application makes use of the following third party libraries:'
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
'Title' => 'monkeylib',
|
|
28
|
+
'Type' => 'PSGroupSpecifier',
|
|
29
|
+
'FooterText' => 'Permission is hereby granted ...'
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
'Title' => 'BananaLib',
|
|
33
|
+
'Type' => 'PSGroupSpecifier',
|
|
34
|
+
'FooterText' => 'Permission is hereby granted ...'
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
'Title' => nil,
|
|
38
|
+
'Type' => 'PSGroupSpecifier',
|
|
39
|
+
'FooterText' => 'Generated by CocoaPods - https://cocoapods.org'
|
|
40
|
+
},
|
|
41
|
+
]
|
|
42
|
+
}
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
it 'generates nil if specs is empty' do
|
|
46
|
+
target_description = stub('target_description',
|
|
47
|
+
:specs => [],
|
|
48
|
+
:platform_name => 'ios')
|
|
49
|
+
result = SettingsPlistGenerator.generate(target_description, @sandbox, [])
|
|
50
|
+
result.should.be.nil?
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
it 'does not include metadata for excluded specs' do
|
|
54
|
+
target_description = stub('target_description',
|
|
55
|
+
:specs => [@spec1, @spec2],
|
|
56
|
+
:platform_name => 'ios')
|
|
57
|
+
result = SettingsPlistGenerator.generate(target_description, @sandbox, [@spec1.name])
|
|
58
|
+
result.should == {
|
|
59
|
+
'Title' => 'Acknowledgements',
|
|
60
|
+
'StringsTable' => 'Acknowledgements',
|
|
61
|
+
'PreferenceSpecifiers' => [
|
|
62
|
+
{
|
|
63
|
+
'Title' => 'Acknowledgements',
|
|
64
|
+
'Type' => 'PSGroupSpecifier',
|
|
65
|
+
'FooterText' => 'This application makes use of the following third party libraries:'
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
'Title' => 'BananaLib',
|
|
69
|
+
'Type' => 'PSGroupSpecifier',
|
|
70
|
+
'FooterText' => 'Permission is hereby granted ...'
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
'Title' => nil,
|
|
74
|
+
'Type' => 'PSGroupSpecifier',
|
|
75
|
+
'FooterText' => 'Generated by CocoaPods - https://cocoapods.org'
|
|
76
|
+
},
|
|
77
|
+
]
|
|
78
|
+
}
|
|
79
|
+
end
|
|
5
80
|
end
|
data/spec/spec_helper.rb
CHANGED
|
@@ -44,4 +44,66 @@ module Pod
|
|
|
44
44
|
end
|
|
45
45
|
end
|
|
46
46
|
|
|
47
|
+
module SpecHelper
|
|
48
|
+
def self.temporary_directory
|
|
49
|
+
ROOT + 'tmp'
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def self.spec1
|
|
53
|
+
Pod::Specification.new do |s|
|
|
54
|
+
s.name = 'monkeylib'
|
|
55
|
+
s.version = '1.0'
|
|
56
|
+
s.authors = {
|
|
57
|
+
'CocoaPods' => 'email@cocoapods.org'
|
|
58
|
+
}
|
|
59
|
+
s.social_media_url = 'https://twitter.com/CocoaPods'
|
|
60
|
+
s.homepage = 'https://github.com/CocoaPods/monkeylib'
|
|
61
|
+
s.license = {
|
|
62
|
+
:type => 'MIT',
|
|
63
|
+
:file => 'LICENSE',
|
|
64
|
+
:text => 'Permission is hereby granted ...'
|
|
65
|
+
}
|
|
66
|
+
s.summary = 'A lib to do monkey things'
|
|
67
|
+
s.description = <<EOF
|
|
68
|
+
## What is it
|
|
69
|
+
A lib to do monkey things
|
|
70
|
+
## Why?
|
|
71
|
+
Why not?
|
|
72
|
+
EOF
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
def self.spec2
|
|
77
|
+
Pod::Specification.new do |s|
|
|
78
|
+
s.name = 'BananaLib'
|
|
79
|
+
s.version = '1.0'
|
|
80
|
+
s.authors = 'Banana Corp', { 'Monkey Boy' => 'monkey@banana-corp.local' }
|
|
81
|
+
s.homepage = 'http://banana-corp.local/banana-lib.html'
|
|
82
|
+
s.summary = 'Chunky bananas!'
|
|
83
|
+
s.description = 'Full of chunky bananas.'
|
|
84
|
+
s.source = { :git => 'http://banana-corp.local/banana-lib.git', :tag => 'v1.0' }
|
|
85
|
+
s.license = {
|
|
86
|
+
:type => 'MIT',
|
|
87
|
+
:file => 'LICENSE',
|
|
88
|
+
:text => 'Permission is hereby granted ...'
|
|
89
|
+
}
|
|
90
|
+
s.source_files = 'Classes/*.{h,m,d}', 'Vendor', 'framework/Source/*.h'
|
|
91
|
+
s.resources = "Resources/*", "Resources/Images.xcassets"
|
|
92
|
+
s.vendored_framework = 'BananaFramework.framework'
|
|
93
|
+
s.vendored_library = 'libBananaStaticLib.a'
|
|
94
|
+
s.preserve_paths = 'preserve_me.txt'
|
|
95
|
+
s.public_header_files = 'Classes/Banana.h', 'framework/Source/MoreBanana.h'
|
|
96
|
+
s.module_map = 'Banana.modulemap'
|
|
97
|
+
|
|
98
|
+
s.prefix_header_file = 'Classes/BananaLib.pch'
|
|
99
|
+
s.pod_target_xcconfig = { 'OTHER_LDFLAGS' => '-framework SystemConfiguration' }
|
|
100
|
+
s.dependency 'monkey', '~> 1.0.1', '< 1.0.9'
|
|
101
|
+
end
|
|
102
|
+
end
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
def temporary_sandbox
|
|
106
|
+
Pod::Sandbox.new(SpecHelper.temporary_directory + 'Pods')
|
|
107
|
+
end
|
|
108
|
+
|
|
47
109
|
#-----------------------------------------------------------------------------#
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: cocoapods-acknowledgements
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.2.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Fabio Pelosin
|
|
@@ -10,7 +10,7 @@ authors:
|
|
|
10
10
|
autorequire:
|
|
11
11
|
bindir: bin
|
|
12
12
|
cert_chain: []
|
|
13
|
-
date:
|
|
13
|
+
date: 2020-03-23 00:00:00.000000000 Z
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
16
16
|
name: activesupport
|
|
@@ -46,20 +46,34 @@ dependencies:
|
|
|
46
46
|
- - "~>"
|
|
47
47
|
- !ruby/object:Gem::Version
|
|
48
48
|
version: '3.3'
|
|
49
|
+
- !ruby/object:Gem::Dependency
|
|
50
|
+
name: xcodeproj
|
|
51
|
+
requirement: !ruby/object:Gem::Requirement
|
|
52
|
+
requirements:
|
|
53
|
+
- - ">="
|
|
54
|
+
- !ruby/object:Gem::Version
|
|
55
|
+
version: '0'
|
|
56
|
+
type: :runtime
|
|
57
|
+
prerelease: false
|
|
58
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
59
|
+
requirements:
|
|
60
|
+
- - ">="
|
|
61
|
+
- !ruby/object:Gem::Version
|
|
62
|
+
version: '0'
|
|
49
63
|
- !ruby/object:Gem::Dependency
|
|
50
64
|
name: bundler
|
|
51
65
|
requirement: !ruby/object:Gem::Requirement
|
|
52
66
|
requirements:
|
|
53
67
|
- - "~>"
|
|
54
68
|
- !ruby/object:Gem::Version
|
|
55
|
-
version: '
|
|
69
|
+
version: '2.0'
|
|
56
70
|
type: :development
|
|
57
71
|
prerelease: false
|
|
58
72
|
version_requirements: !ruby/object:Gem::Requirement
|
|
59
73
|
requirements:
|
|
60
74
|
- - "~>"
|
|
61
75
|
- !ruby/object:Gem::Version
|
|
62
|
-
version: '
|
|
76
|
+
version: '2.0'
|
|
63
77
|
- !ruby/object:Gem::Dependency
|
|
64
78
|
name: rake
|
|
65
79
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -84,6 +98,7 @@ files:
|
|
|
84
98
|
- ".travis.yml"
|
|
85
99
|
- CHANGELOG.md
|
|
86
100
|
- Gemfile
|
|
101
|
+
- Gemfile.lock
|
|
87
102
|
- LICENSE
|
|
88
103
|
- README.md
|
|
89
104
|
- Rakefile
|
|
@@ -116,8 +131,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
116
131
|
- !ruby/object:Gem::Version
|
|
117
132
|
version: '0'
|
|
118
133
|
requirements: []
|
|
119
|
-
|
|
120
|
-
rubygems_version: 2.7.6
|
|
134
|
+
rubygems_version: 3.0.6
|
|
121
135
|
signing_key:
|
|
122
136
|
specification_version: 4
|
|
123
137
|
summary: CocoaPods plugin that generates an acknowledgements plist to make it easy
|