├── spec ├── fixtures │ ├── spec-repos │ │ ├── test_cdn_repo_local │ │ │ └── .gitkeep │ │ ├── test_repo_without_specs_dir │ │ │ └── .gitkeep │ │ ├── trunk │ │ │ ├── .url │ │ │ ├── Specs │ │ │ │ ├── 1 │ │ │ │ │ └── 3 │ │ │ │ │ │ └── f │ │ │ │ │ │ └── JSONKit │ │ │ │ │ │ ├── 1.4 │ │ │ │ │ │ └── JSONKit.podspec.json │ │ │ │ │ │ └── 1.5pre │ │ │ │ │ │ └── JSONKit.podspec.json │ │ │ │ ├── 2 │ │ │ │ │ └── 0 │ │ │ │ │ │ └── 9 │ │ │ │ │ │ └── BeaconKit │ │ │ │ │ │ ├── 1.0.0 │ │ │ │ │ │ └── BeaconKit.podspec.json │ │ │ │ │ │ ├── 1.0.1 │ │ │ │ │ │ └── BeaconKit.podspec.json │ │ │ │ │ │ ├── 1.0.2 │ │ │ │ │ │ └── BeaconKit.podspec.json │ │ │ │ │ │ ├── 1.0.3 │ │ │ │ │ │ └── BeaconKit.podspec.json │ │ │ │ │ │ ├── 1.0.6 │ │ │ │ │ │ └── BeaconKit.podspec.json │ │ │ │ │ │ ├── 1.0.4 │ │ │ │ │ │ └── BeaconKit.podspec.json │ │ │ │ │ │ └── 1.0.5 │ │ │ │ │ │ └── BeaconKit.podspec.json │ │ │ │ └── d │ │ │ │ │ ├── 1 │ │ │ │ │ └── 8 │ │ │ │ │ │ └── CocoaLumberjack │ │ │ │ │ │ ├── 1.0 │ │ │ │ │ │ └── CocoaLumberjack.podspec.json │ │ │ │ │ │ ├── 1.1 │ │ │ │ │ │ └── CocoaLumberjack.podspec.json │ │ │ │ │ │ ├── 1.2 │ │ │ │ │ │ └── CocoaLumberjack.podspec.json │ │ │ │ │ │ ├── 1.2.1 │ │ │ │ │ │ └── CocoaLumberjack.podspec.json │ │ │ │ │ │ ├── 1.2.2 │ │ │ │ │ │ └── CocoaLumberjack.podspec.json │ │ │ │ │ │ ├── 1.2.3 │ │ │ │ │ │ └── CocoaLumberjack.podspec.json │ │ │ │ │ │ ├── 1.3 │ │ │ │ │ │ └── CocoaLumberjack.podspec.json │ │ │ │ │ │ ├── 1.3.1 │ │ │ │ │ │ └── CocoaLumberjack.podspec.json │ │ │ │ │ │ ├── 1.3.2 │ │ │ │ │ │ └── CocoaLumberjack.podspec.json │ │ │ │ │ │ ├── 1.6.1 │ │ │ │ │ │ └── CocoaLumberjack.podspec.json │ │ │ │ │ │ ├── 1.6 │ │ │ │ │ │ └── CocoaLumberjack.podspec.json │ │ │ │ │ │ ├── 1.3.3 │ │ │ │ │ │ └── CocoaLumberjack.podspec.json │ │ │ │ │ │ ├── 1.6.2 │ │ │ │ │ │ └── CocoaLumberjack.podspec.json │ │ │ │ │ │ ├── 1.6.3 │ │ │ │ │ │ └── CocoaLumberjack.podspec.json │ │ │ │ │ │ ├── 1.6.4 │ │ │ │ │ │ └── CocoaLumberjack.podspec.json │ │ │ │ │ │ ├── 1.6.5 │ │ │ │ │ │ └── CocoaLumberjack.podspec.json │ │ │ │ │ │ ├── 1.7.0 │ │ │ │ │ │ └── CocoaLumberjack.podspec.json │ │ │ │ │ │ ├── 1.6.5.1 │ │ │ │ │ │ └── CocoaLumberjack.podspec.json │ │ │ │ │ │ ├── 1.9.0 │ │ │ │ │ │ └── CocoaLumberjack.podspec.json │ │ │ │ │ │ ├── 1.9.1 │ │ │ │ │ │ └── CocoaLumberjack.podspec.json │ │ │ │ │ │ ├── 1.8.0 │ │ │ │ │ │ └── CocoaLumberjack.podspec.json │ │ │ │ │ │ ├── 1.8.1 │ │ │ │ │ │ └── CocoaLumberjack.podspec.json │ │ │ │ │ │ ├── 1.9.2 │ │ │ │ │ │ └── CocoaLumberjack.podspec.json │ │ │ │ │ │ ├── 2.0.0-beta │ │ │ │ │ │ └── CocoaLumberjack.podspec.json │ │ │ │ │ │ ├── 2.0.0-beta2 │ │ │ │ │ │ └── CocoaLumberjack.podspec.json │ │ │ │ │ │ ├── 3.5.0 │ │ │ │ │ │ └── CocoaLumberjack.podspec.json │ │ │ │ │ │ ├── 3.5.1 │ │ │ │ │ │ └── CocoaLumberjack.podspec.json │ │ │ │ │ │ ├── 3.5.2 │ │ │ │ │ │ └── CocoaLumberjack.podspec.json │ │ │ │ │ │ ├── 3.5.3 │ │ │ │ │ │ └── CocoaLumberjack.podspec.json │ │ │ │ │ │ ├── 2.0.0-beta3 │ │ │ │ │ │ └── CocoaLumberjack.podspec.json │ │ │ │ │ │ ├── 2.0.0-beta4 │ │ │ │ │ │ └── CocoaLumberjack.podspec.json │ │ │ │ │ │ ├── 2.0.0 │ │ │ │ │ │ └── CocoaLumberjack.podspec.json │ │ │ │ │ │ ├── 2.0.0-rc │ │ │ │ │ │ └── CocoaLumberjack.podspec.json │ │ │ │ │ │ ├── 2.0.0-rc2 │ │ │ │ │ │ └── CocoaLumberjack.podspec.json │ │ │ │ │ │ ├── 2.0.1 │ │ │ │ │ │ └── CocoaLumberjack.podspec.json │ │ │ │ │ │ ├── 2.0.2 │ │ │ │ │ │ └── CocoaLumberjack.podspec.json │ │ │ │ │ │ ├── 2.0.3 │ │ │ │ │ │ └── CocoaLumberjack.podspec.json │ │ │ │ │ │ ├── 2.4.0 │ │ │ │ │ │ └── CocoaLumberjack.podspec.json │ │ │ │ │ │ ├── 2.1.0 │ │ │ │ │ │ └── CocoaLumberjack.podspec.json │ │ │ │ │ │ ├── 2.1.0-rc │ │ │ │ │ │ └── CocoaLumberjack.podspec.json │ │ │ │ │ │ ├── 3.0.0 │ │ │ │ │ │ └── CocoaLumberjack.podspec.json │ │ │ │ │ │ ├── 2.1.0-beta │ │ │ │ │ │ └── CocoaLumberjack.podspec.json │ │ │ │ │ │ ├── 2.2.0 │ │ │ │ │ │ └── CocoaLumberjack.podspec.json │ │ │ │ │ │ ├── 2.3.0 │ │ │ │ │ │ └── CocoaLumberjack.podspec.json │ │ │ │ │ │ ├── 3.4.2 │ │ │ │ │ │ └── CocoaLumberjack.podspec.json │ │ │ │ │ │ ├── 3.1.0 │ │ │ │ │ │ └── CocoaLumberjack.podspec.json │ │ │ │ │ │ ├── 3.2.0 │ │ │ │ │ │ └── CocoaLumberjack.podspec.json │ │ │ │ │ │ ├── 3.2.1 │ │ │ │ │ │ └── CocoaLumberjack.podspec.json │ │ │ │ │ │ ├── 3.3.0 │ │ │ │ │ │ └── CocoaLumberjack.podspec.json │ │ │ │ │ │ ├── 3.4.0 │ │ │ │ │ │ └── CocoaLumberjack.podspec.json │ │ │ │ │ │ └── 3.4.1 │ │ │ │ │ │ └── CocoaLumberjack.podspec.json │ │ │ │ │ └── b │ │ │ │ │ └── 4 │ │ │ │ │ └── ReactiveObjC │ │ │ │ │ ├── 1.0.1 │ │ │ │ │ └── ReactiveObjC.podspec.json │ │ │ │ │ ├── 1.0.2 │ │ │ │ │ └── ReactiveObjC.podspec.json │ │ │ │ │ ├── 2.0.0 │ │ │ │ │ └── ReactiveObjC.podspec.json │ │ │ │ │ ├── 2.1.0 │ │ │ │ │ └── ReactiveObjC.podspec.json │ │ │ │ │ ├── 2.1.1 │ │ │ │ │ └── ReactiveObjC.podspec.json │ │ │ │ │ ├── 2.1.2 │ │ │ │ │ └── ReactiveObjC.podspec.json │ │ │ │ │ ├── 3.0.0 │ │ │ │ │ └── ReactiveObjC.podspec.json │ │ │ │ │ └── 3.1.0 │ │ │ │ │ └── ReactiveObjC.podspec.json │ │ │ ├── all_pods_versions_8_b_0.txt │ │ │ ├── all_pods_versions_d_1_8.txt │ │ │ ├── all_pods_versions_d_b_4.txt │ │ │ ├── all_pods_versions_c_2_3.txt │ │ │ ├── all_pods_versions_3_8_e.txt │ │ │ ├── all_pods_versions_2_0_9.txt │ │ │ └── all_pods_versions_1_3_f.txt │ │ ├── test_empty_dir_repo │ │ │ └── Specs │ │ │ │ └── EmptyDir_spec │ │ │ │ └── .gitkeep │ │ ├── test_repo │ │ │ └── Specs │ │ │ │ ├── Faulty_spec │ │ │ │ └── 1.0.0 │ │ │ │ │ └── Faulty_spec.podspec │ │ │ │ ├── JSONSpec │ │ │ │ ├── 0.9 │ │ │ │ │ └── JSONSpec.podspec.json │ │ │ │ └── 1.0 │ │ │ │ │ └── JSONSpec.podspec.json │ │ │ │ ├── StraySpec.podspec │ │ │ │ ├── IncorrectPath │ │ │ │ └── 1.0 │ │ │ │ │ └── IncorrectPath.podspec │ │ │ │ ├── JSONKit │ │ │ │ ├── 1.4 │ │ │ │ │ └── JSONKit.podspec │ │ │ │ ├── 1.13 │ │ │ │ │ └── JSONKit.podspec │ │ │ │ └── 999.999.999 │ │ │ │ │ └── JSONKit.podspec │ │ │ │ └── BananaLib │ │ │ │ ├── 0.9 │ │ │ │ └── BananaLib.podspec │ │ │ │ ├── 0.8 │ │ │ │ └── BananaLib.podspec │ │ │ │ ├── 1.0 │ │ │ │ └── BananaLib.podspec │ │ │ │ ├── 0.0.1 │ │ │ │ └── BananaLib.podspec │ │ │ │ └── 1.1 │ │ │ │ └── BananaLib.podspec │ │ └── test_prefixed_repo │ │ │ ├── Specs │ │ │ ├── 1 │ │ │ │ └── 3 │ │ │ │ │ └── f │ │ │ │ │ └── JSONKit │ │ │ │ │ ├── 1.4 │ │ │ │ │ └── JSONKit.podspec │ │ │ │ │ ├── 1.13 │ │ │ │ │ └── JSONKit.podspec │ │ │ │ │ └── 999.999.999 │ │ │ │ │ └── JSONKit.podspec │ │ │ ├── 3 │ │ │ │ └── 8 │ │ │ │ │ └── e │ │ │ │ │ └── BananaLib │ │ │ │ │ ├── 0.9 │ │ │ │ │ └── BananaLib.podspec │ │ │ │ │ ├── 1.0 │ │ │ │ │ └── BananaLib.podspec │ │ │ │ │ └── 0.0.1 │ │ │ │ │ └── BananaLib.podspec │ │ │ ├── 9 │ │ │ │ └── 0 │ │ │ │ │ └── c │ │ │ │ │ └── IncorrectPath │ │ │ │ │ └── 1.0 │ │ │ │ │ └── IncorrectPath.podspec │ │ │ └── d │ │ │ │ ├── 8 │ │ │ │ └── d │ │ │ │ │ └── JSONSpec │ │ │ │ │ ├── 0.9 │ │ │ │ │ └── JSONSpec.podspec.json │ │ │ │ │ └── 1.0 │ │ │ │ │ └── JSONSpec.podspec.json │ │ │ │ └── e │ │ │ │ └── d │ │ │ │ └── Faulty_spec │ │ │ │ └── 1.0.0 │ │ │ │ └── Faulty_spec.podspec │ │ │ └── CocoaPods-version.yml │ ├── mock_cdn_repo_remote │ │ ├── all_pods_versions_0_1_7.txt │ │ ├── all_pods_versions_3_8_e.txt │ │ ├── all_pods_versions_9_5_b.txt │ │ ├── all_pods_versions_c_2_3.txt │ │ ├── all_pods.txt │ │ ├── all_pods_versions_3_8_f.txt │ │ ├── all_pods_versions_2_0_9.txt │ │ ├── AlgoliaSearch.yml │ │ ├── deprecated_podspecs.txt │ │ ├── all_pods_versions_1_1_7.txt │ │ ├── CocoaPods-version.yml │ │ └── Specs │ │ │ ├── 1 │ │ │ └── 1 │ │ │ │ └── 7 │ │ │ │ └── SDWebImage │ │ │ │ ├── 2.4 │ │ │ │ └── SDWebImage.podspec.json │ │ │ │ ├── 2.5 │ │ │ │ └── SDWebImage.podspec.json │ │ │ │ ├── 2.6 │ │ │ │ └── SDWebImage.podspec.json │ │ │ │ ├── 2.7 │ │ │ │ └── SDWebImage.podspec.json │ │ │ │ ├── 3.0 │ │ │ │ └── SDWebImage.podspec.json │ │ │ │ ├── 3.1 │ │ │ │ └── SDWebImage.podspec.json │ │ │ │ └── 2.7.4 │ │ │ │ └── SDWebImage.podspec.json │ │ │ ├── 2 │ │ │ └── 0 │ │ │ │ └── 9 │ │ │ │ └── BeaconKit │ │ │ │ ├── 1.0.0 │ │ │ │ └── BeaconKit.podspec.json │ │ │ │ ├── 1.0.1 │ │ │ │ └── BeaconKit.podspec.json │ │ │ │ ├── 1.0.2 │ │ │ │ └── BeaconKit.podspec.json │ │ │ │ ├── 1.0.3 │ │ │ │ └── BeaconKit.podspec.json │ │ │ │ ├── 1.0.4 │ │ │ │ └── BeaconKit.podspec.json │ │ │ │ └── 1.0.5 │ │ │ │ └── BeaconKit.podspec.json │ │ │ └── 3 │ │ │ └── 8 │ │ │ └── f │ │ │ └── СерафимиМногоꙮчитїи │ │ │ └── 1.0.0 │ │ │ └── СерафимиМногоꙮчитїи.podspec.json │ ├── podfile_without_root_podspec │ │ └── Podfile │ ├── Podfile │ ├── Podfile.yaml │ ├── Podfile_UsesFrameworksBoolean.yaml │ ├── Podfile_UsesFrameworksHash.yaml │ ├── CannonPodder14.podspec.json │ ├── CannonPodder15.podspec.json │ ├── CannonPodder16.podspec.json │ ├── CannonPodder17.podspec.json │ ├── CannonPodder18.podspec.json │ ├── BananaLib.podspec │ ├── BananaLib.podspec.json │ ├── Podfile.lock │ ├── PodfileWithIncorrectYAML.lock │ └── lint_podspec │ │ └── RestKit.podspec ├── specification │ └── dsl │ │ ├── deprecations_spec.rb │ │ ├── attribute_support_spec.rb │ │ └── platform_proxy_spec.rb ├── spec_helper │ ├── fixture.rb │ └── temporary_directory.rb ├── trunk_source_spec.rb ├── source │ └── health_reporter_spec.rb ├── build_type_spec.rb └── requirement_spec.rb ├── .yardopts ├── .gitmodules ├── .github ├── scripts │ └── setup_test_repo.sh └── workflows │ └── Specs.yml ├── lib ├── cocoapods-core │ ├── gem_version.rb │ ├── trunk_source.rb │ ├── core_ui.rb │ ├── specification │ │ └── dsl │ │ │ ├── deprecations.rb │ │ │ └── attribute_support.rb │ ├── metrics.rb │ ├── http.rb │ └── vendor.rb └── cocoapods-core.rb ├── .gitignore ├── Gemfile ├── .rubocop.yml ├── .kick ├── LICENSE ├── cocoapods-core.gemspec └── README.md /spec/fixtures/spec-repos/test_cdn_repo_local/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /spec/fixtures/mock_cdn_repo_remote/all_pods_versions_0_1_7.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /spec/fixtures/mock_cdn_repo_remote/all_pods_versions_3_8_e.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /spec/fixtures/mock_cdn_repo_remote/all_pods_versions_9_5_b.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /spec/fixtures/mock_cdn_repo_remote/all_pods_versions_c_2_3.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /spec/fixtures/podfile_without_root_podspec/Podfile: -------------------------------------------------------------------------------- 1 | podspec 2 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/test_repo_without_specs_dir/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/.url: -------------------------------------------------------------------------------- 1 | https://cdn.cocoapods.org/ -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/test_empty_dir_repo/Specs/EmptyDir_spec/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.yardopts: -------------------------------------------------------------------------------- 1 | --output-dir documentation 2 | --markup markdown 3 | --private 4 | -------------------------------------------------------------------------------- /spec/fixtures/mock_cdn_repo_remote/all_pods.txt: -------------------------------------------------------------------------------- 1 | BeaconKit 2 | SDWebImage 3 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/test_repo/Specs/Faulty_spec/1.0.0/Faulty_spec.podspec: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /spec/fixtures/mock_cdn_repo_remote/all_pods_versions_3_8_f.txt: -------------------------------------------------------------------------------- 1 | СерафимиМногоꙮчитїи/1.0.0 -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/test_prefixed_repo/Specs/d/e/d/Faulty_spec/1.0.0/Faulty_spec.podspec: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /spec/fixtures/mock_cdn_repo_remote/all_pods_versions_2_0_9.txt: -------------------------------------------------------------------------------- 1 | BeaconKit/1.0.0/1.0.1/1.0.2/1.0.3/1.0.4/1.0.5 2 | -------------------------------------------------------------------------------- /spec/fixtures/mock_cdn_repo_remote/AlgoliaSearch.yml: -------------------------------------------------------------------------------- 1 | --- 2 | application_id: IDIDIDID 3 | api_key: keykeykey 4 | index: dexdexdex 5 | -------------------------------------------------------------------------------- /spec/fixtures/mock_cdn_repo_remote/deprecated_podspecs.txt: -------------------------------------------------------------------------------- 1 | Specs/3/8/f/СерафимиМногоꙮчитїи/1.0.0/СерафимиМногоꙮчитїи.podspec.json 2 | -------------------------------------------------------------------------------- /spec/fixtures/mock_cdn_repo_remote/all_pods_versions_1_1_7.txt: -------------------------------------------------------------------------------- 1 | SDWebImage/2.4/2.5/2.6/2.7/2.7.4/3.0/3.1/4.0.0/4.0.0-beta/4.0.0-beta2 2 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/test_repo/Specs/JSONSpec/0.9/JSONSpec.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "JSONSpec", 3 | "version": "0.9" 4 | } 5 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/test_repo/Specs/JSONSpec/1.0/JSONSpec.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "JSONSpec", 3 | "version": "1.0" 4 | } 5 | -------------------------------------------------------------------------------- /spec/fixtures/mock_cdn_repo_remote/CocoaPods-version.yml: -------------------------------------------------------------------------------- 1 | --- 2 | min: 1.0.0 3 | last: 1.6.0.beta.2 4 | prefix_lengths: 5 | - 1 6 | - 1 7 | - 1 8 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "spec/fixtures/spec-repos/artsy"] 2 | path = spec/fixtures/spec-repos/artsy 3 | url = https://github.com/artsy/Specs.git 4 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/test_prefixed_repo/Specs/d/8/d/JSONSpec/0.9/JSONSpec.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "JSONSpec", 3 | "version": "0.9" 4 | } 5 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/test_prefixed_repo/Specs/d/8/d/JSONSpec/1.0/JSONSpec.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "JSONSpec", 3 | "version": "1.0" 4 | } 5 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/test_prefixed_repo/CocoaPods-version.yml: -------------------------------------------------------------------------------- 1 | --- 2 | min: 1.0.0 3 | last: 1.9.9 4 | prefix_lengths: 5 | - 1 6 | - 1 7 | - 1 8 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/test_repo/Specs/StraySpec.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | s.name = 'IncorrectPath' 3 | s.version = '0.9' 4 | end 5 | -------------------------------------------------------------------------------- /.github/scripts/setup_test_repo.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | cd spec/fixtures/spec-repos/test_repo 3 | git init 4 | git remote add origin https://bitbucket.com/test/test_repo.git 5 | -------------------------------------------------------------------------------- /lib/cocoapods-core/gem_version.rb: -------------------------------------------------------------------------------- 1 | module Pod 2 | # The version of the cocoapods-core. 3 | # 4 | CORE_VERSION = '1.16.2'.freeze unless defined? Pod::CORE_VERSION 5 | end 6 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/test_repo/Specs/IncorrectPath/1.0/IncorrectPath.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | s.name = 'IncorrectPath' 3 | s.version = '0.9' 4 | end 5 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/test_prefixed_repo/Specs/9/0/c/IncorrectPath/1.0/IncorrectPath.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | s.name = 'IncorrectPath' 3 | s.version = '0.9' 4 | end 5 | -------------------------------------------------------------------------------- /spec/specification/dsl/deprecations_spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path('../../../spec_helper', __FILE__) 2 | 3 | module Pod 4 | describe Specification::DSL::Deprecations do 5 | before do 6 | @spec = Spec.new 7 | end 8 | end 9 | end 10 | -------------------------------------------------------------------------------- /spec/fixtures/Podfile: -------------------------------------------------------------------------------- 1 | source 'myrepo1' 2 | source 'myrepo2' 3 | platform :ios 4 | pod 'SSZipArchive', '>= 1' 5 | pod 'ASIHTTPRequest', '~> 1.8.0' 6 | pod 'Reachability' # part of ASIHTTPRequest 7 | pod 'ASIWebPageRequest', '< 1.8.2' # part of ASIHTTPRequest 8 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.swp 2 | *.swo 3 | *.rbo 4 | *.gem 5 | .DS_Store 6 | .rbenv-version 7 | tmp 8 | spec/fixtures/vcr 9 | .yardoc 10 | .rbx/ 11 | coverage/ 12 | .coveralls.yml 13 | .idea/ 14 | documentation/ 15 | .bundle/ 16 | vendor/bundle 17 | 18 | # trunk source 19 | spec/fixtures/spec-repos/trunk/**/*.etag 20 | spec/fixtures/spec-repos/trunk/*.yml 21 | -------------------------------------------------------------------------------- /lib/cocoapods-core/trunk_source.rb: -------------------------------------------------------------------------------- 1 | module Pod 2 | class TrunkSource < CDNSource 3 | # On-disk master repo name 4 | TRUNK_REPO_NAME = 'trunk'.freeze 5 | 6 | # Remote CDN repo URL 7 | TRUNK_REPO_URL = 'https://cdn.cocoapods.org/'.freeze 8 | 9 | def url 10 | @url ||= TRUNK_REPO_URL 11 | super 12 | end 13 | end 14 | end 15 | -------------------------------------------------------------------------------- /spec/fixtures/Podfile.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | sources: 3 | - 'myrepo1' 4 | - 'myrepo2' 5 | target_definitions: 6 | - name: Pods 7 | abstract: true 8 | platform: ios 9 | 10 | dependencies: 11 | - SSZipArchive: 12 | - '>= 1' 13 | - ASIHTTPRequest: 14 | - ~> 1.8.0 15 | - Reachability 16 | - ASIWebPageRequest: 17 | - < 1.8.2 18 | -------------------------------------------------------------------------------- /spec/fixtures/Podfile_UsesFrameworksBoolean.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | installation_method: 3 | name: cocoapods 4 | sources: 5 | - https://cdn.cocoapods.org/ 6 | target_definitions: 7 | - abstract: true 8 | children: 9 | - children: 10 | - abstract: false 11 | inheritance: search_paths 12 | name: SampleAppTests 13 | name: SampleApp 14 | uses_frameworks: true 15 | name: Pods 16 | -------------------------------------------------------------------------------- /lib/cocoapods-core/core_ui.rb: -------------------------------------------------------------------------------- 1 | module Pod 2 | # Manages the UI output so dependent gems can customize it. 3 | # 4 | module CoreUI 5 | def self.puts(message) 6 | STDOUT.puts message 7 | end 8 | 9 | def self.print(message) 10 | STDOUT.print(message) 11 | end 12 | 13 | def self.warn(message) 14 | STDERR.puts message 15 | end 16 | 17 | #-------------------------------------------------------------------------# 18 | end 19 | end 20 | -------------------------------------------------------------------------------- /spec/fixtures/Podfile_UsesFrameworksHash.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | installation_method: 3 | name: cocoapods 4 | sources: 5 | - https://cdn.cocoapods.org/ 6 | target_definitions: 7 | - abstract: true 8 | children: 9 | - children: 10 | - abstract: false 11 | inheritance: search_paths 12 | name: SampleAppTests 13 | name: SampleApp 14 | uses_frameworks: 15 | :linkage: :dynamic 16 | :packaging: :framework 17 | name: Pods 18 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/test_repo/Specs/JSONKit/1.4/JSONKit.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | s.name = 'JSONKit' 3 | s.version = '1.4' 4 | s.license = 'BSD / Apache License, Version 2.0' 5 | s.summary = 'A Very High Performance Objective-C JSON Library.' 6 | s.homepage = 'https://github.com/johnezang/JSONKit' 7 | s.author = 'John Engelhart' 8 | s.source = { :git => 'https://github.com/johnezang/JSONKit.git', :tag => 'v1.4' } 9 | 10 | s.source_files = 'JSONKit.*' 11 | end 12 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/test_repo/Specs/JSONKit/1.13/JSONKit.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | s.name = 'JSONKit' 3 | s.version = '1.13' 4 | s.license = 'BSD / Apache License, Version 2.0' 5 | s.summary = 'A Very High Performance Objective-C JSON Library.' 6 | s.homepage = 'https://github.com/johnezang/JSONKit' 7 | s.author = 'John Engelhart' 8 | s.source = { :git => 'https://github.com/johnezang/JSONKit.git', :tag => 'v1.13' } 9 | 10 | s.source_files = 'JSONKit.*' 11 | end 12 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/test_prefixed_repo/Specs/1/3/f/JSONKit/1.4/JSONKit.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | s.name = 'JSONKit' 3 | s.version = '1.4' 4 | s.license = 'BSD / Apache License, Version 2.0' 5 | s.summary = 'A Very High Performance Objective-C JSON Library.' 6 | s.homepage = 'https://github.com/johnezang/JSONKit' 7 | s.author = 'John Engelhart' 8 | s.source = { :git => 'https://github.com/johnezang/JSONKit.git', :tag => 'v1.4' } 9 | 10 | s.source_files = 'JSONKit.*' 11 | end 12 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/test_prefixed_repo/Specs/1/3/f/JSONKit/1.13/JSONKit.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | s.name = 'JSONKit' 3 | s.version = '1.13' 4 | s.license = 'BSD / Apache License, Version 2.0' 5 | s.summary = 'A Very High Performance Objective-C JSON Library.' 6 | s.homepage = 'https://github.com/johnezang/JSONKit' 7 | s.author = 'John Engelhart' 8 | s.source = { :git => 'https://github.com/johnezang/JSONKit.git', :tag => 'v1.13' } 9 | 10 | s.source_files = 'JSONKit.*' 11 | end 12 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/1/3/f/JSONKit/1.4/JSONKit.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "JSONKit", 3 | "version": "1.4", 4 | "license": "BSD / Apache License, Version 2.0", 5 | "summary": "A Very High Performance Objective-C JSON Library.", 6 | "homepage": "https://github.com/johnezang/JSONKit", 7 | "authors": "John Engelhart", 8 | "source": { 9 | "git": "https://github.com/johnezang/JSONKit.git", 10 | "tag": "v1.4" 11 | }, 12 | "source_files": "JSONKit.*", 13 | "requires_arc": false 14 | } 15 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source 'https://rubygems.org' 2 | 3 | gemspec 4 | 5 | group :development do 6 | gem 'bacon' 7 | gem 'mocha', '< 1.5' 8 | gem 'mocha-on-bacon' 9 | gem 'prettybacon' 10 | gem 'rake', '~> 12.0' 11 | gem 'rexml', '~> 3.2.5' 12 | gem 'vcr' 13 | gem 'webmock' 14 | gem 'webrick', '~> 1.7.0' 15 | 16 | gem 'rubocop', '~> 1.8', :require => false 17 | gem 'rubocop-performance', :require => false 18 | end 19 | 20 | group :debugging do 21 | gem 'awesome_print' 22 | gem 'kicker' 23 | gem 'pry' 24 | gem 'rb-fsevent' 25 | end 26 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/all_pods_versions_8_b_0.txt: -------------------------------------------------------------------------------- 1 | CoreDragon/0.1.1/0.1.2/0.1.3 2 | EDKeyboardHandler/0.0.1 3 | LMExplain/0.0.1/0.0.2/0.0.3 4 | MWPlaceSearch/0.1.0 5 | RestKit/0.10.0/0.10.1/0.10.2/0.10.3/0.20.0/0.20.0-pre1/0.20.0-pre2/0.20.0-pre3/0.20.0-pre4/0.20.0-pre6/0.20.0-rc1/0.20.0pre5/0.20.1/0.20.2/0.20.3/0.21.0/0.22.0/0.23.1/0.23.2/0.23.3/0.24.0/0.24.1/0.25.0/0.26.0/0.27.0/0.27.1/0.27.2/0.27.3 6 | SMReactiveRestKit/0.1.1/0.2.0/0.3.0/0.4 7 | VuzersSDK/0.0.1/0.0.2/0.0.3/0.1.1 8 | XYPageMaster/2.0.15/2.0.16/2.0.4/2.0.5 9 | first/0.1.0/0.2.0 10 | -------------------------------------------------------------------------------- /spec/spec_helper/fixture.rb: -------------------------------------------------------------------------------- 1 | module SpecHelper 2 | def self.fixture(name) 3 | Fixture.fixture(name) 4 | end 5 | 6 | module Fixture 7 | ROOT = ::ROOT + 'spec/fixtures' 8 | 9 | def fixture(name) 10 | file = ROOT + name 11 | unless file.exist? 12 | archive = Pathname.new(file.to_s + '.tar.gz') 13 | if archive.exist? 14 | system "cd '#{archive.dirname}' && tar -zxvf '#{archive}' > /dev/null 2>&1" 15 | end 16 | end 17 | file 18 | end 19 | module_function :fixture 20 | end 21 | end 22 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/1/3/f/JSONKit/1.5pre/JSONKit.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "JSONKit", 3 | "version": "1.5pre", 4 | "license": "BSD / Apache License, Version 2.0", 5 | "summary": "A Very High Performance Objective-C JSON Library.", 6 | "homepage": "https://github.com/johnezang/JSONKit", 7 | "authors": "John Engelhart", 8 | "source": { 9 | "git": "https://github.com/johnezang/JSONKit.git", 10 | "commit": "0aff3deb5e1bb2bbc88a83fd71c8ad5550185cce" 11 | }, 12 | "source_files": "JSONKit.*", 13 | "requires_arc": false 14 | } 15 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/d/1/8/CocoaLumberjack/1.0/CocoaLumberjack.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CocoaLumberjack", 3 | "version": "1.0", 4 | "license": "BSD", 5 | "summary": "A fast & simple, yet powerful & flexible logging framework for Mac and iOS.", 6 | "homepage": "http://code.google.com/p/cocoalumberjack/", 7 | "authors": { 8 | "Robbie Hanson": "robbiehanson@deusty.com" 9 | }, 10 | "source": { 11 | "git": "https://github.com/CocoaLumberjack/CocoaLumberjack.git", 12 | "tag": "1.0" 13 | }, 14 | "source_files": "Lumberjack", 15 | "requires_arc": false 16 | } 17 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/d/1/8/CocoaLumberjack/1.1/CocoaLumberjack.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CocoaLumberjack", 3 | "version": "1.1", 4 | "license": "BSD", 5 | "summary": "A fast & simple, yet powerful & flexible logging framework for Mac and iOS.", 6 | "homepage": "http://code.google.com/p/cocoalumberjack/", 7 | "authors": { 8 | "Robbie Hanson": "robbiehanson@deusty.com" 9 | }, 10 | "source": { 11 | "git": "https://github.com/CocoaLumberjack/CocoaLumberjack.git", 12 | "tag": "1.1" 13 | }, 14 | "source_files": "Lumberjack", 15 | "requires_arc": false 16 | } 17 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/d/1/8/CocoaLumberjack/1.2/CocoaLumberjack.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CocoaLumberjack", 3 | "version": "1.2", 4 | "license": "BSD", 5 | "summary": "A fast & simple, yet powerful & flexible logging framework for Mac and iOS.", 6 | "homepage": "http://code.google.com/p/cocoalumberjack/", 7 | "authors": { 8 | "Robbie Hanson": "robbiehanson@deusty.com" 9 | }, 10 | "source": { 11 | "git": "https://github.com/CocoaLumberjack/CocoaLumberjack.git", 12 | "tag": "1.2" 13 | }, 14 | "source_files": "Lumberjack", 15 | "requires_arc": false 16 | } 17 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/test_repo/Specs/JSONKit/999.999.999/JSONKit.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | s.name = 'JSONKit' 3 | s.version = '999.999.999' 4 | s.license = 'BSD / Apache License, Version 2.0' 5 | s.summary = 'A Very High Performance Objective-C JSON Library.' 6 | s.homepage = 'https://github.com/johnezang/JSONKit' 7 | s.author = 'John Engelhart' 8 | s.source = { :git => 'https://github.com/johnezang/JSONKit.git', :commit => '0aff3deb5e1bb2bbc88a83fd71c8ad5550185cce' } 9 | 10 | s.source_files = 'JSONKit.*' 11 | s.compiler_flags = '-Wno-deprecated-objc-isa-usage', '-Wno-format' 12 | end 13 | -------------------------------------------------------------------------------- /spec/fixtures/mock_cdn_repo_remote/Specs/1/1/7/SDWebImage/2.4/SDWebImage.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "SDWebImage", 3 | "version": "2.4", 4 | "platforms": { 5 | "ios": null 6 | }, 7 | "license": "MIT", 8 | "summary": "UIImageView category adding suppport for remote images coming from the web asynchronously with caching.", 9 | "homepage": "https://github.com/rs/SDWebImage", 10 | "authors": { 11 | "Olivier Poitrey": "rs@dailymotion.com" 12 | }, 13 | "source": { 14 | "git": "https://github.com/rs/SDWebImage.git", 15 | "tag": "2.4" 16 | }, 17 | "source_files": "*.[mh]", 18 | "requires_arc": false 19 | } 20 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/test_prefixed_repo/Specs/1/3/f/JSONKit/999.999.999/JSONKit.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | s.name = 'JSONKit' 3 | s.version = '999.999.999' 4 | s.license = 'BSD / Apache License, Version 2.0' 5 | s.summary = 'A Very High Performance Objective-C JSON Library.' 6 | s.homepage = 'https://github.com/johnezang/JSONKit' 7 | s.author = 'John Engelhart' 8 | s.source = { :git => 'https://github.com/johnezang/JSONKit.git', :commit => '0aff3deb5e1bb2bbc88a83fd71c8ad5550185cce' } 9 | 10 | s.source_files = 'JSONKit.*' 11 | s.compiler_flags = '-Wno-deprecated-objc-isa-usage', '-Wno-format' 12 | end 13 | -------------------------------------------------------------------------------- /spec/trunk_source_spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path('../spec_helper', __FILE__) 2 | 3 | module Pod 4 | describe TrunkSource do 5 | before do 6 | @path = fixture('spec-repos/trunk') 7 | @source = TrunkSource.new(@path) 8 | end 9 | 10 | #-------------------------------------------------------------------------# 11 | 12 | it 'uses the correct repo name' do 13 | @source.name.should == 'trunk' 14 | end 15 | 16 | it 'uses the correct repo URL' do 17 | @source.url.should == 'https://cdn.cocoapods.org/' 18 | end 19 | 20 | #-------------------------------------------------------------------------# 21 | end 22 | end 23 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/all_pods_versions_d_1_8.txt: -------------------------------------------------------------------------------- 1 | ARSPopover/1.0.0/2.0.0/2.1.0/2.2.0/2.2.1 2 | CocoaLumberjack/1.0/1.1/1.2/1.2.1/1.2.2/1.2.3/1.3/1.3.1/1.3.2/1.3.3/1.6/1.6.1/1.6.2/1.6.3/1.6.4/1.6.5/1.6.5.1/1.7.0/1.8.0/1.8.1/1.9.0/1.9.1/1.9.2/2.0.0/2.0.0-beta/2.0.0-beta2/2.0.0-beta3/2.0.0-beta4/2.0.0-rc/2.0.0-rc2/2.0.1/2.0.2/2.0.3/2.1.0/2.1.0-beta/2.1.0-rc/2.2.0/2.3.0/2.4.0/3.0.0/3.1.0/3.2.0/3.2.1/3.3.0/3.4.0/3.4.1/3.4.2/3.5.0/3.5.1/3.5.2/3.5.3 3 | JPSimulatorHacks/1.0.0/1.0.1/1.0.2/1.0.3/1.0.4/1.1.0/1.2.0/1.2.1/1.2.2/1.3.0/1.4.0/1.4.1/1.4.2 4 | Messenger/0.9.0 5 | SKSpriteButton/0.1.0/0.3.0/0.4.0/1.0.0 6 | SQRPay/0.0.5/0.0.6 7 | VideoChatLib/0.2.0/0.3.0 8 | qthTest/0.0.1/0.0.2 9 | -------------------------------------------------------------------------------- /lib/cocoapods-core/specification/dsl/deprecations.rb: -------------------------------------------------------------------------------- 1 | module Pod 2 | class Specification 3 | module DSL 4 | # Provides warning and errors for the deprecated attributes of the DSL. 5 | # 6 | module Deprecations 7 | DSL.attribute :xcconfig, 8 | :container => Hash, 9 | :inherited => true 10 | 11 | def xcconfig=(value) 12 | self.pod_target_xcconfig = value 13 | self.user_target_xcconfig = value 14 | CoreUI.warn "[#{self}] `xcconfig` has been split into "\ 15 | '`pod_target_xcconfig` and `user_target_xcconfig`.' 16 | end 17 | end 18 | end 19 | end 20 | end 21 | -------------------------------------------------------------------------------- /.rubocop.yml: -------------------------------------------------------------------------------- 1 | inherit_from: 2 | - .rubocop_todo.yml 3 | - .rubocop_cocoapods.yml 4 | 5 | #- Core ----------------------------------------------------------------------- 6 | 7 | AllCops: 8 | TargetRubyVersion: 2.6 9 | # RuboCop has a bunch of cops enabled by default. This setting tells RuboCop 10 | # to ignore them, so only the ones explicitly set in this file are enabled. 11 | DisabledByDefault: true 12 | SuggestExtensions: false 13 | Exclude: 14 | - spec/fixtures/**/* 15 | - vendor/bundle/**/* 16 | - lib/cocoapods-core/vendor/**/* 17 | 18 | Naming/FileName: 19 | Exclude: 20 | - lib/cocoapods-core.rb 21 | 22 | Style/TrivialAccessors: 23 | Exclude: 24 | - lib/cocoapods-core/*/dsl.rb 25 | - lib/cocoapods-core/*/dsl/* 26 | -------------------------------------------------------------------------------- /spec/spec_helper/temporary_directory.rb: -------------------------------------------------------------------------------- 1 | require 'fileutils' 2 | 3 | module SpecHelper 4 | def self.temporary_directory 5 | TemporaryDirectory.temporary_directory 6 | end 7 | 8 | module TemporaryDirectory 9 | module_function 10 | 11 | def temporary_directory 12 | ROOT + 'tmp' 13 | end 14 | 15 | def setup_temporary_directory 16 | temporary_directory.mkpath 17 | end 18 | 19 | def teardown_temporary_directory 20 | temporary_directory.rmtree if temporary_directory.exist? 21 | end 22 | 23 | def self.extended(base) 24 | base.before do 25 | TemporaryDirectory.teardown_temporary_directory 26 | TemporaryDirectory.setup_temporary_directory 27 | end 28 | end 29 | end 30 | end 31 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/all_pods_versions_d_b_4.txt: -------------------------------------------------------------------------------- 1 | APHelperCategory/0.0.2 2 | CBPic2ker/1.0.0/1.0.1 3 | ColorHex/2.0.0/2.0.1/2.1.0/2.1.1 4 | DDCalendarPicker/1.0.0/1.0.1 5 | DeskKit/1.2.1/1.2.2/1.2.3/2.0.0/3.0.0/3.0.1/3.0.2/3.0.3/4.0.0/4.0.1 6 | FATabScroller/1.0.0/1.0.1/2.0.0 7 | LEMUtility/0.0.1/0.0.2/0.0.3/0.0.4/0.0.5/0.0.7/0.0.8/0.0.9/0.1.0/0.1.1/0.1.2 8 | LFLineChartView/0.1.1 9 | MMQRCodeReaderViewControllerModule/0.0.1/0.0.2/0.0.3 10 | MSColorPicker/0.2.0/0.2.1/1.0.0/1.0.1 11 | Mozi/0.1.0 12 | NBSegment/0.1.0/0.2.0 13 | NRLocationManager/1.0.0/1.0.1/1.0.2/1.1.0 14 | ReactiveObjC/1.0.1/1.0.2/2.0.0/2.1.0/2.1.1/2.1.2/3.0.0/3.1.0/3.1.1 15 | XJTools/1.0.0/1.0.10/1.0.11/1.0.3/1.0.5/1.0.6/1.0.8 16 | ZPlaceholderTextView/0.1.0/0.2.0/0.2.1/0.2.2/0.3.0/0.3.1/0.4.0/1.4.0 17 | -------------------------------------------------------------------------------- /.kick: -------------------------------------------------------------------------------- 1 | recipe :ruby 2 | 3 | Kicker::Recipes::Ruby.runner_bin = 'bacon --quiet' 4 | 5 | process do |files| 6 | specs = files.take_and_map do |file| 7 | if file =~ %r{lib/cocoapods-core/(.+?)\.rb$} 8 | s = Dir.glob("spec/**/#{File.basename(file, '.rb')}_spec.rb") 9 | s.uniq unless s.empty? 10 | end 11 | end 12 | Kicker::Recipes::Ruby.run_tests(specs) 13 | end 14 | 15 | # Have written this so many times, probably should make a recipe out of it. 16 | process do |files| 17 | files.each do |file| 18 | case file 19 | when 'Gemfile' 20 | when /.gemspec/ 21 | files.delete(file) 22 | execute 'bundle install' 23 | end 24 | end 25 | end 26 | 27 | recipe :ignore 28 | ignore(/.*\/?tags/) 29 | ignore(/.*\/?\.git/) 30 | ignore(/^tmp/) 31 | 32 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/all_pods_versions_c_2_3.txt: -------------------------------------------------------------------------------- 1 | AMRAdapterChartboost/6.5.1.0/6.5.2.0/6.5.2.1/6.6.1.0/6.6.1.1/6.6.2.0/6.6.3.0/6.6.3.1/6.6.3.2/6.6.3.3/6.6.3.4/6.6.3.5/7.0.4.0/7.1.2.0/7.1.2.1/7.2.0.0/7.3.0.0/7.3.0.1/7.3.1.0/7.3.1.1/7.5.0.0 2 | ActivityNavigationItem/1.0.5 3 | CDLJSONPResponseSerializer/0.9.0 4 | DHExpandableLabel/1.0.0 5 | DexonWalletSDK/0.3.0/1.0.0 6 | EBEmptyView-framework/0.0.7 7 | FZEncryptor/0.0.1 8 | FakeTencent/0.0.1/3.3.3 9 | JKHImageZoomTransition/0.1.0/0.2.1/0.2.2/0.2.3 10 | JWKeyWordFilter/0.0.1/0.0.2/0.0.3/0.0.4/0.0.5/0.0.6 11 | JXPictureSelectionView/0.1.0/0.1.1/0.1.2/0.10.0/0.2.0/0.3.0/0.3.1/0.4.0/0.5.0/0.6.0/0.7.0/0.7.1/0.8.0/0.9.0/0.9.1/0.9.2/0.9.3/0.9.4/0.9.5 12 | LGMCustomTableView/1.3 13 | LYCoreDataStackHelper/0.0.1/0.0.3 14 | PDFer/0.0.2 15 | SwedishSSN/1.0.0 16 | XZYRSA/1.0.0 17 | ZJCocoaPodsTest/0.0.1/0.0.2/0.0.3/0.0.4/0.0.5/0.0.6 18 | libspotify/12.1.64 19 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/test_repo/Specs/BananaLib/0.9/BananaLib.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | s.name = 'BananaLib' 3 | s.version = '0.9' 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.source_files = 'Classes/*.{h,m}', 'Vendor' 10 | s.xcconfig = { 'OTHER_LDFLAGS' => '-framework SystemConfiguration' } 11 | s.prefix_header_file = 'Classes/BananaLib.pch' 12 | s.resources = "Resources/*.png" 13 | s.dependency 'monkey', '~> 1.0.1', '< 1.0.9' 14 | s.license = { 15 | :type => 'MIT', 16 | :file => 'LICENSE', 17 | :text => 'Permission is hereby granted ...' 18 | } 19 | end 20 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/2/0/9/BeaconKit/1.0.0/BeaconKit.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "BeaconKit", 3 | "version": "1.0.0", 4 | "summary": "Beacon detection framework using CoreBluetooth", 5 | "description": "This is a framework that wraps around CoreBluetooth and detects beacons of different types.\nTested to compile with Swift 3.1, 3.2 & 4.0 for iOS 9.0 & macOS 10.12\nThe currently supported types are: Eddystone-UID, Eddystone-URL, AltBeacon, iBeacon.", 6 | "homepage": "https://github.com/igor-makarov/BeaconKit", 7 | "license": "MIT", 8 | "authors": { 9 | "Igor Makarov": "igormaka@gmail.com" 10 | }, 11 | "source": { 12 | "git": "https://github.com/igor-makarov/BeaconKit.git", 13 | "tag": "1.0.0" 14 | }, 15 | "platforms": { 16 | "ios": "9.0", 17 | "osx": "10.12" 18 | }, 19 | "source_files": "Sources/Core/**/*.swift", 20 | "pushed_with_swift_version": "3.0" 21 | } 22 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/2/0/9/BeaconKit/1.0.1/BeaconKit.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "BeaconKit", 3 | "version": "1.0.1", 4 | "summary": "Beacon detection framework using CoreBluetooth", 5 | "description": "This is a framework that wraps around CoreBluetooth and detects beacons of different types.\nTested to compile with Swift 3.1, 3.2 & 4.0 for iOS 9.0 & macOS 10.12\nThe currently supported types are: Eddystone-UID, Eddystone-URL, AltBeacon, iBeacon.", 6 | "homepage": "https://github.com/igor-makarov/BeaconKit", 7 | "license": "MIT", 8 | "authors": { 9 | "Igor Makarov": "igormaka@gmail.com" 10 | }, 11 | "source": { 12 | "git": "https://github.com/igor-makarov/BeaconKit.git", 13 | "tag": "1.0.1" 14 | }, 15 | "platforms": { 16 | "ios": "9.0", 17 | "osx": "10.12" 18 | }, 19 | "source_files": "Sources/Core/**/*.swift", 20 | "pushed_with_swift_version": "3.0" 21 | } 22 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/2/0/9/BeaconKit/1.0.2/BeaconKit.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "BeaconKit", 3 | "version": "1.0.2", 4 | "summary": "Beacon detection framework using CoreBluetooth", 5 | "description": "This is a framework that wraps around CoreBluetooth and detects beacons of different types.\nTested to compile with Swift 3.1, 3.2 & 4.0 for iOS 9.0 & macOS 10.12\nThe currently supported types are: Eddystone-UID, Eddystone-URL, AltBeacon, iBeacon.", 6 | "homepage": "https://github.com/igor-makarov/BeaconKit", 7 | "license": "MIT", 8 | "authors": { 9 | "Igor Makarov": "igormaka@gmail.com" 10 | }, 11 | "source": { 12 | "git": "https://github.com/igor-makarov/BeaconKit.git", 13 | "tag": "1.0.2" 14 | }, 15 | "platforms": { 16 | "ios": "9.0", 17 | "osx": "10.12" 18 | }, 19 | "source_files": "Sources/Core/**/*.swift", 20 | "pushed_with_swift_version": "3.0" 21 | } 22 | -------------------------------------------------------------------------------- /spec/fixtures/mock_cdn_repo_remote/Specs/2/0/9/BeaconKit/1.0.0/BeaconKit.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "BeaconKit", 3 | "version": "1.0.0", 4 | "summary": "Beacon detection framework using CoreBluetooth", 5 | "description": "This is a framework that wraps around CoreBluetooth and detects beacons of different types.\nTested to compile with Swift 3.1, 3.2 & 4.0 for iOS 9.0 & macOS 10.12\nThe currently supported types are: Eddystone-UID, Eddystone-URL, AltBeacon, iBeacon.", 6 | "homepage": "https://github.com/igor-makarov/BeaconKit", 7 | "license": "MIT", 8 | "authors": { 9 | "Igor Makarov": "igormaka@gmail.com" 10 | }, 11 | "source": { 12 | "git": "https://github.com/igor-makarov/BeaconKit.git", 13 | "tag": "1.0.0" 14 | }, 15 | "platforms": { 16 | "ios": "9.0", 17 | "osx": "10.12" 18 | }, 19 | "source_files": "Sources/Core/**/*.swift", 20 | "pushed_with_swift_version": "3.0" 21 | } 22 | -------------------------------------------------------------------------------- /spec/fixtures/mock_cdn_repo_remote/Specs/2/0/9/BeaconKit/1.0.1/BeaconKit.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "BeaconKit", 3 | "version": "1.0.1", 4 | "summary": "Beacon detection framework using CoreBluetooth", 5 | "description": "This is a framework that wraps around CoreBluetooth and detects beacons of different types.\nTested to compile with Swift 3.1, 3.2 & 4.0 for iOS 9.0 & macOS 10.12\nThe currently supported types are: Eddystone-UID, Eddystone-URL, AltBeacon, iBeacon.", 6 | "homepage": "https://github.com/igor-makarov/BeaconKit", 7 | "license": "MIT", 8 | "authors": { 9 | "Igor Makarov": "igormaka@gmail.com" 10 | }, 11 | "source": { 12 | "git": "https://github.com/igor-makarov/BeaconKit.git", 13 | "tag": "1.0.1" 14 | }, 15 | "platforms": { 16 | "ios": "9.0", 17 | "osx": "10.12" 18 | }, 19 | "source_files": "Sources/Core/**/*.swift", 20 | "pushed_with_swift_version": "3.0" 21 | } 22 | -------------------------------------------------------------------------------- /spec/fixtures/mock_cdn_repo_remote/Specs/2/0/9/BeaconKit/1.0.2/BeaconKit.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "BeaconKit", 3 | "version": "1.0.2", 4 | "summary": "Beacon detection framework using CoreBluetooth", 5 | "description": "This is a framework that wraps around CoreBluetooth and detects beacons of different types.\nTested to compile with Swift 3.1, 3.2 & 4.0 for iOS 9.0 & macOS 10.12\nThe currently supported types are: Eddystone-UID, Eddystone-URL, AltBeacon, iBeacon.", 6 | "homepage": "https://github.com/igor-makarov/BeaconKit", 7 | "license": "MIT", 8 | "authors": { 9 | "Igor Makarov": "igormaka@gmail.com" 10 | }, 11 | "source": { 12 | "git": "https://github.com/igor-makarov/BeaconKit.git", 13 | "tag": "1.0.2" 14 | }, 15 | "platforms": { 16 | "ios": "9.0", 17 | "osx": "10.12" 18 | }, 19 | "source_files": "Sources/Core/**/*.swift", 20 | "pushed_with_swift_version": "3.0" 21 | } 22 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/test_prefixed_repo/Specs/3/8/e/BananaLib/0.9/BananaLib.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | s.name = 'BananaLib' 3 | s.version = '0.9' 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.source_files = 'Classes/*.{h,m}', 'Vendor' 10 | s.xcconfig = { 'OTHER_LDFLAGS' => '-framework SystemConfiguration' } 11 | s.prefix_header_file = 'Classes/BananaLib.pch' 12 | s.resources = "Resources/*.png" 13 | s.dependency 'monkey', '~> 1.0.1', '< 1.0.9' 14 | s.license = { 15 | :type => 'MIT', 16 | :file => 'LICENSE', 17 | :text => 'Permission is hereby granted ...' 18 | } 19 | end 20 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/d/1/8/CocoaLumberjack/1.2.1/CocoaLumberjack.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CocoaLumberjack", 3 | "version": "1.2.1", 4 | "license": "BSD", 5 | "summary": "A fast & simple, yet powerful & flexible logging framework for Mac and iOS.", 6 | "homepage": "http://code.google.com/p/cocoalumberjack/", 7 | "authors": { 8 | "Robbie Hanson": "robbiehanson@deusty.com" 9 | }, 10 | "source": { 11 | "git": "https://github.com/CocoaLumberjack/CocoaLumberjack.git", 12 | "tag": "1.2.1" 13 | }, 14 | "description": "It is similar in concept to other popular logging frameworks such as log4j, yet is designed specifically for objective-c, and takes advantage of features such as multi-threading, grand central dispatch (if available), lockless atomic operations, and the dynamic nature of the objective-c runtime.", 15 | "source_files": "Lumberjack", 16 | "requires_arc": false 17 | } 18 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/d/1/8/CocoaLumberjack/1.2.2/CocoaLumberjack.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CocoaLumberjack", 3 | "version": "1.2.2", 4 | "license": "BSD", 5 | "summary": "A fast & simple, yet powerful & flexible logging framework for Mac and iOS.", 6 | "homepage": "http://code.google.com/p/cocoalumberjack/", 7 | "authors": { 8 | "Robbie Hanson": "robbiehanson@deusty.com" 9 | }, 10 | "source": { 11 | "git": "https://github.com/CocoaLumberjack/CocoaLumberjack.git", 12 | "tag": "1.2.2" 13 | }, 14 | "description": "It is similar in concept to other popular logging frameworks such as log4j, yet is designed specifically for objective-c, and takes advantage of features such as multi-threading, grand central dispatch (if available), lockless atomic operations, and the dynamic nature of the objective-c runtime.", 15 | "source_files": "Lumberjack", 16 | "requires_arc": false 17 | } 18 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/d/1/8/CocoaLumberjack/1.2.3/CocoaLumberjack.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CocoaLumberjack", 3 | "version": "1.2.3", 4 | "license": "BSD", 5 | "summary": "A fast & simple, yet powerful & flexible logging framework for Mac and iOS.", 6 | "homepage": "http://code.google.com/p/cocoalumberjack/", 7 | "authors": { 8 | "Robbie Hanson": "robbiehanson@deusty.com" 9 | }, 10 | "source": { 11 | "git": "https://github.com/CocoaLumberjack/CocoaLumberjack.git", 12 | "tag": "1.2.3" 13 | }, 14 | "description": "It is similar in concept to other popular logging frameworks such as log4j, yet is designed specifically for objective-c, and takes advantage of features such as multi-threading, grand central dispatch (if available), lockless atomic operations, and the dynamic nature of the objective-c runtime.", 15 | "source_files": "Lumberjack", 16 | "requires_arc": false 17 | } 18 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/d/1/8/CocoaLumberjack/1.3/CocoaLumberjack.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CocoaLumberjack", 3 | "version": "1.3", 4 | "license": "BSD", 5 | "summary": "A fast & simple, yet powerful & flexible logging framework for Mac and iOS.", 6 | "homepage": "https://github.com/CocoaLumberjack/CocoaLumberjack", 7 | "authors": { 8 | "Robbie Hanson": "robbiehanson@deusty.com" 9 | }, 10 | "source": { 11 | "git": "https://github.com/CocoaLumberjack/CocoaLumberjack.git", 12 | "tag": "1.3" 13 | }, 14 | "description": "It is similar in concept to other popular logging frameworks such as log4j, yet is designed specifically for objective-c, and takes advantage of features such as multi-threading, grand central dispatch (if available), lockless atomic operations, and the dynamic nature of the objective-c runtime.", 15 | "requires_arc": true, 16 | "source_files": "Lumberjack" 17 | } 18 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/d/1/8/CocoaLumberjack/1.3.1/CocoaLumberjack.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CocoaLumberjack", 3 | "version": "1.3.1", 4 | "license": "BSD", 5 | "summary": "A fast & simple, yet powerful & flexible logging framework for Mac and iOS.", 6 | "homepage": "https://github.com/CocoaLumberjack/CocoaLumberjack", 7 | "authors": { 8 | "Robbie Hanson": "robbiehanson@deusty.com" 9 | }, 10 | "source": { 11 | "git": "https://github.com/CocoaLumberjack/CocoaLumberjack.git", 12 | "tag": "1.3.1" 13 | }, 14 | "description": "It is similar in concept to other popular logging frameworks such as log4j, yet is designed specifically for objective-c, and takes advantage of features such as multi-threading, grand central dispatch (if available), lockless atomic operations, and the dynamic nature of the objective-c runtime.", 15 | "requires_arc": true, 16 | "source_files": "Lumberjack" 17 | } 18 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/d/1/8/CocoaLumberjack/1.3.2/CocoaLumberjack.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CocoaLumberjack", 3 | "version": "1.3.2", 4 | "license": "BSD", 5 | "summary": "A fast & simple, yet powerful & flexible logging framework for Mac and iOS.", 6 | "homepage": "https://github.com/CocoaLumberjack/CocoaLumberjack", 7 | "authors": { 8 | "Robbie Hanson": "robbiehanson@deusty.com" 9 | }, 10 | "source": { 11 | "git": "https://github.com/CocoaLumberjack/CocoaLumberjack.git", 12 | "tag": "1.3.2" 13 | }, 14 | "description": "It is similar in concept to other popular logging frameworks such as log4j, yet is designed specifically for objective-c, and takes advantage of features such as multi-threading, grand central dispatch (if available), lockless atomic operations, and the dynamic nature of the objective-c runtime.", 15 | "requires_arc": true, 16 | "source_files": "Lumberjack" 17 | } 18 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/d/1/8/CocoaLumberjack/1.6.1/CocoaLumberjack.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CocoaLumberjack", 3 | "version": "1.6.1", 4 | "license": "BSD", 5 | "summary": "A fast & simple, yet powerful & flexible logging framework for Mac and iOS.", 6 | "homepage": "https://github.com/CocoaLumberjack/CocoaLumberjack", 7 | "authors": { 8 | "Robbie Hanson": "robbiehanson@deusty.com" 9 | }, 10 | "source": { 11 | "git": "https://github.com/CocoaLumberjack/CocoaLumberjack.git", 12 | "tag": "1.6.1" 13 | }, 14 | "description": "It is similar in concept to other popular logging frameworks such as log4j, yet is designed specifically for objective-c, and takes advantage of features such as multi-threading, grand central dispatch (if available), lockless atomic operations, and the dynamic nature of the objective-c runtime.", 15 | "requires_arc": true, 16 | "source_files": "Lumberjack" 17 | } 18 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/test_repo/Specs/BananaLib/0.8/BananaLib.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | s.name = 'BananaLib' 3 | s.version = '0.8' 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.source_files = 'Classes/*.{h,m}', 'Vendor' 10 | s.xcconfig = { 'OTHER_LDFLAGS' => '-framework SystemConfiguration' } 11 | s.prefix_header_file = 'Classes/BananaLib.pch' 12 | s.resources = 'Resources/*.png' 13 | s.requires_arc = 'true' 14 | s.dependency 'monkey', '~> 1.0.1', '< 1.0.9' 15 | s.license = { 16 | :type => 'MIT', 17 | :file => 'LICENSE', 18 | :text => 'Permission is hereby granted ...', 19 | } 20 | end 21 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/test_repo/Specs/BananaLib/1.0/BananaLib.podspec: -------------------------------------------------------------------------------- 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.source_files = 'Classes/*.{h,m}', 'Vendor' 10 | s.xcconfig = { 'OTHER_LDFLAGS' => '-framework SystemConfiguration' } 11 | s.prefix_header_file = 'Classes/BananaLib.pch' 12 | s.resources = "Resources/*.png" 13 | s.requires_arc = true 14 | s.dependency 'monkey', '~> 1.0.1', '< 1.0.9' 15 | s.license = { 16 | :type => 'MIT', 17 | :file => 'LICENSE', 18 | :text => 'Permission is hereby granted ...' 19 | } 20 | end 21 | -------------------------------------------------------------------------------- /spec/fixtures/mock_cdn_repo_remote/Specs/3/8/f/СерафимиМногоꙮчитїи/1.0.0/СерафимиМногоꙮчитїи.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "СерафимиМногоꙮчитїи", 3 | "version": "1.0.1", 4 | "summary": "Beacon detection framework using CoreBluetooth", 5 | "description": "This is a framework that wraps around CoreBluetooth and detects beacons of different types.\nTested to compile with Swift 3.1, 3.2 & 4.0 for iOS 9.0 & macOS 10.12\nThe currently supported types are: Eddystone-UID, Eddystone-URL, AltBeacon, iBeacon.", 6 | "homepage": "https://github.com/igor-makarov/BeaconKit", 7 | "license": "MIT", 8 | "authors": { 9 | "Igor Makarov": "igormaka@gmail.com" 10 | }, 11 | "source": { 12 | "git": "https://github.com/igor-makarov/BeaconKit.git", 13 | "tag": "1.0.1" 14 | }, 15 | "platforms": { 16 | "ios": "9.0", 17 | "osx": "10.12" 18 | }, 19 | "source_files": "Sources/Core/**/*.swift", 20 | "pushed_with_swift_version": "3.0" 21 | } 22 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/test_prefixed_repo/Specs/3/8/e/BananaLib/1.0/BananaLib.podspec: -------------------------------------------------------------------------------- 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.source_files = 'Classes/*.{h,m}', 'Vendor' 10 | s.xcconfig = { 'OTHER_LDFLAGS' => '-framework SystemConfiguration' } 11 | s.prefix_header_file = 'Classes/BananaLib.pch' 12 | s.resources = "Resources/*.png" 13 | s.requires_arc = true 14 | s.dependency 'monkey', '~> 1.0.1', '< 1.0.9' 15 | s.license = { 16 | :type => 'MIT', 17 | :file => 'LICENSE', 18 | :text => 'Permission is hereby granted ...' 19 | } 20 | end 21 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/test_repo/Specs/BananaLib/0.0.1/BananaLib.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | s.name = 'BananaLib' 3 | s.version = '0.0.1' 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', :commit => 'dbf863b4d7cf6c22d4bf89969fe7505c61950958' } 9 | s.source_files = 'Classes/*.{h,m}', 'Vendor' 10 | s.xcconfig = { 'OTHER_LDFLAGS' => '-framework SystemConfiguration' } 11 | s.prefix_header_file = 'Classes/BananaLib.pch' 12 | s.resources = "Resources/*.png" 13 | s.dependency 'monkey', '~> 1.0.1', '< 1.0.9' 14 | s.license = { 15 | :type => 'MIT', 16 | :file => 'LICENSE', 17 | :text => 'Permission is hereby granted ...' 18 | } 19 | end 20 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/all_pods_versions_3_8_e.txt: -------------------------------------------------------------------------------- 1 | CallbagCocoa/0.2.3 2 | FAFont/0.1.3 3 | Google-AdMob-Ads-SDK/6.12.0/6.12.2/6.8.0 4 | HBAlertController/0.0.1/0.0.2/0.0.3/0.0.4/0.0.5 5 | HJSafe/0.1.0/0.1.1 6 | JPSuspensionEntrance/0.1.1/0.1.2/0.1.3/0.1.4/0.1.5/0.1.6/0.1.7/0.1.8/0.1.9/0.2.0/0.2.1/0.2.2/1.0.0 7 | LLPay/2.7.2/2.7.3/2.7.5/2.7.6/2.7.7/2.7.8/2.7.9 8 | PandaUtils/0.0.5/0.0.7/0.0.8/0.1.0 9 | RWDropdownMenu/1.0.0/1.0.1/1.0.2/1.0.3 10 | Reindeer/0.1.0/0.1.1 11 | SAMIM_Map_Kit/1.0.0 12 | SOXAppDelegate/1.0.0/1.0.1/1.1.0/1.1.1 13 | TJView/0.1.0 14 | ThreeRingControl/1.0.0/1.0.1/1.0.2/1.0.3 15 | UMengFeedback/1.4/1.4.1/1.4.2/1.4.2.1/1.5/2.0/2.0.1/2.0.2/2.0.3/2.1/2.2/2.3/2.3.1/2.3.2/2.3.3/2.3.4 16 | Zoomy/0.1.0/0.2.0/0.2.1/0.2.2/0.2.3/0.3.0/0.3.1/1.0.0/1.0.1/1.1.0/1.10.0/1.10.1/1.10.2/1.11.0/1.11.1/1.12.0/1.12.1/1.2.0/1.2.1/1.3.0/1.4.0/1.4.1/1.5.0/1.5.1/1.5.2/1.6.0/1.6.1/1.6.2/1.6.3/1.7.0/1.7.1/1.7.2/1.8.0/1.8.1/1.8.2/1.9.0/1.9.1/1.9.2/1.9.3/1.9.4/2.0.0 17 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/test_prefixed_repo/Specs/3/8/e/BananaLib/0.0.1/BananaLib.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | s.name = 'BananaLib' 3 | s.version = '0.0.1' 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', :commit => 'dbf863b4d7cf6c22d4bf89969fe7505c61950958' } 9 | s.source_files = 'Classes/*.{h,m}', 'Vendor' 10 | s.xcconfig = { 'OTHER_LDFLAGS' => '-framework SystemConfiguration' } 11 | s.prefix_header_file = 'Classes/BananaLib.pch' 12 | s.resources = "Resources/*.png" 13 | s.dependency 'monkey', '~> 1.0.1', '< 1.0.9' 14 | s.license = { 15 | :type => 'MIT', 16 | :file => 'LICENSE', 17 | :text => 'Permission is hereby granted ...' 18 | } 19 | end 20 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/d/1/8/CocoaLumberjack/1.6/CocoaLumberjack.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CocoaLumberjack", 3 | "version": "1.6", 4 | "license": "BSD", 5 | "summary": "A fast & simple, yet powerful & flexible logging framework for Mac and iOS.", 6 | "homepage": "https://github.com/CocoaLumberjack/CocoaLumberjack", 7 | "authors": { 8 | "Robbie Hanson": "robbiehanson@deusty.com" 9 | }, 10 | "source": { 11 | "git": "https://github.com/CocoaLumberjack/CocoaLumberjack.git", 12 | "tag": "1.6" 13 | }, 14 | "description": "It is similar in concept to other popular logging frameworks such as log4j, yet is designed specifically for objective-c, and takes advantage of features such as multi-threading, grand central dispatch (if available), lockless atomic operations, and the dynamic nature of the objective-c runtime.", 15 | "requires_arc": true, 16 | "source_files": [ 17 | "Lumberjack", 18 | "Lumberjack/Extensions" 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/d/1/8/CocoaLumberjack/1.3.3/CocoaLumberjack.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CocoaLumberjack", 3 | "version": "1.3.3", 4 | "license": "BSD", 5 | "summary": "A fast & simple, yet powerful & flexible logging framework for Mac and iOS.", 6 | "homepage": "https://github.com/CocoaLumberjack/CocoaLumberjack", 7 | "authors": { 8 | "Robbie Hanson": "robbiehanson@deusty.com" 9 | }, 10 | "source": { 11 | "git": "https://github.com/CocoaLumberjack/CocoaLumberjack.git", 12 | "tag": "1.3.3" 13 | }, 14 | "description": "It is similar in concept to other popular logging frameworks such as log4j, yet is designed specifically for objective-c, and takes advantage of features such as multi-threading, grand central dispatch (if available), lockless atomic operations, and the dynamic nature of the objective-c runtime.", 15 | "requires_arc": true, 16 | "source_files": [ 17 | "Lumberjack", 18 | "Lumberjack/Extensions" 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/d/1/8/CocoaLumberjack/1.6.2/CocoaLumberjack.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CocoaLumberjack", 3 | "version": "1.6.2", 4 | "license": "BSD", 5 | "summary": "A fast & simple, yet powerful & flexible logging framework for Mac and iOS.", 6 | "homepage": "https://github.com/CocoaLumberjack/CocoaLumberjack", 7 | "authors": { 8 | "Robbie Hanson": "robbiehanson@deusty.com" 9 | }, 10 | "source": { 11 | "git": "https://github.com/CocoaLumberjack/CocoaLumberjack.git", 12 | "tag": "1.6.2" 13 | }, 14 | "description": "It is similar in concept to other popular logging frameworks such as log4j, yet is designed specifically for objective-c, and takes advantage of features such as multi-threading, grand central dispatch (if available), lockless atomic operations, and the dynamic nature of the objective-c runtime.", 15 | "requires_arc": true, 16 | "source_files": "Lumberjack/**/*.{h,m}", 17 | "preserve_paths": "Lumberjack/**/README*" 18 | } 19 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/2/0/9/BeaconKit/1.0.3/BeaconKit.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "BeaconKit", 3 | "version": "1.0.3", 4 | "summary": "Beacon detection framework using CoreBluetooth", 5 | "description": "This is a framework that wraps around CoreBluetooth and detects beacons of different types.\nTested to compile with Swift 3.1, 3.2 & 4.0 for iOS 9.0 & macOS 10.12\nThe currently supported types are: Eddystone-UID, Eddystone-URL, AltBeacon, iBeacon.", 6 | "homepage": "https://github.com/igor-makarov/BeaconKit", 7 | "license": "MIT", 8 | "authors": { 9 | "Igor Makarov": "igormaka@gmail.com" 10 | }, 11 | "source": { 12 | "git": "https://github.com/igor-makarov/BeaconKit.git", 13 | "tag": "1.0.3" 14 | }, 15 | "platforms": { 16 | "ios": "9.0", 17 | "osx": "10.12" 18 | }, 19 | "source_files": "Sources/Core/**/*.swift", 20 | "pushed_with_swift_version": "3.0", 21 | "testspecs": [ 22 | { 23 | "name": "Tests", 24 | "test_type": "unit", 25 | "source_files": "Tests/**/*.swift" 26 | } 27 | ] 28 | } 29 | -------------------------------------------------------------------------------- /spec/fixtures/mock_cdn_repo_remote/Specs/2/0/9/BeaconKit/1.0.3/BeaconKit.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "BeaconKit", 3 | "version": "1.0.3", 4 | "summary": "Beacon detection framework using CoreBluetooth", 5 | "description": "This is a framework that wraps around CoreBluetooth and detects beacons of different types.\nTested to compile with Swift 3.1, 3.2 & 4.0 for iOS 9.0 & macOS 10.12\nThe currently supported types are: Eddystone-UID, Eddystone-URL, AltBeacon, iBeacon.", 6 | "homepage": "https://github.com/igor-makarov/BeaconKit", 7 | "license": "MIT", 8 | "authors": { 9 | "Igor Makarov": "igormaka@gmail.com" 10 | }, 11 | "source": { 12 | "git": "https://github.com/igor-makarov/BeaconKit.git", 13 | "tag": "1.0.3" 14 | }, 15 | "platforms": { 16 | "ios": "9.0", 17 | "osx": "10.12" 18 | }, 19 | "source_files": "Sources/Core/**/*.swift", 20 | "pushed_with_swift_version": "3.0", 21 | "testspecs": [ 22 | { 23 | "name": "Tests", 24 | "test_type": "unit", 25 | "source_files": "Tests/**/*.swift" 26 | } 27 | ] 28 | } 29 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/2/0/9/BeaconKit/1.0.6/BeaconKit.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "BeaconKit", 3 | "version": "1.0.6", 4 | "summary": "Beacon detection framework using CoreBluetooth", 5 | "description": "This is a framework that wraps around CoreBluetooth and detects beacons of different types.\nTested to compile with Swift 3.1, 3.2 & 4.0 for iOS 9.0 & macOS 10.12\nThe currently supported types are: Eddystone-UID, Eddystone-URL, AltBeacon, iBeacon.", 6 | "homepage": "https://github.com/igor-makarov/BeaconKit", 7 | "license": "MIT", 8 | "authors": { 9 | "Igor Makarov": "igormaka@gmail.com" 10 | }, 11 | "source": { 12 | "git": "https://github.com/igor-makarov/BeaconKit.git", 13 | "tag": "1.0.6" 14 | }, 15 | "swift_version": "4.0", 16 | "platforms": { 17 | "ios": "9.0", 18 | "osx": "10.12" 19 | }, 20 | "source_files": "Sources/BeaconKit/**/*.swift", 21 | "testspecs": [ 22 | { 23 | "name": "Tests", 24 | "test_type": "unit", 25 | "source_files": "Tests/BeaconKitTests/**/*.swift" 26 | } 27 | ] 28 | } 29 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/2/0/9/BeaconKit/1.0.4/BeaconKit.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "BeaconKit", 3 | "version": "1.0.4", 4 | "summary": "Beacon detection framework using CoreBluetooth", 5 | "description": "This is a framework that wraps around CoreBluetooth and detects beacons of different types.\nTested to compile with Swift 3.1, 3.2 & 4.0 for iOS 9.0 & macOS 10.12\nThe currently supported types are: Eddystone-UID, Eddystone-URL, AltBeacon, iBeacon.", 6 | "homepage": "https://github.com/igor-makarov/BeaconKit", 7 | "license": "MIT", 8 | "authors": { 9 | "Igor Makarov": "igormaka@gmail.com" 10 | }, 11 | "source": { 12 | "git": "https://github.com/igor-makarov/BeaconKit.git", 13 | "tag": "1.0.4" 14 | }, 15 | "platforms": { 16 | "ios": "9.0", 17 | "osx": "10.12" 18 | }, 19 | "source_files": "Sources/BeaconKit/**/*.swift", 20 | "pushed_with_swift_version": "3.0", 21 | "testspecs": [ 22 | { 23 | "name": "Tests", 24 | "test_type": "unit", 25 | "source_files": "Tests/BeaconKitTests/**/*.swift" 26 | } 27 | ] 28 | } 29 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/2/0/9/BeaconKit/1.0.5/BeaconKit.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "BeaconKit", 3 | "version": "1.0.5", 4 | "summary": "Beacon detection framework using CoreBluetooth", 5 | "description": "This is a framework that wraps around CoreBluetooth and detects beacons of different types.\nTested to compile with Swift 3.1, 3.2 & 4.0 for iOS 9.0 & macOS 10.12\nThe currently supported types are: Eddystone-UID, Eddystone-URL, AltBeacon, iBeacon.", 6 | "homepage": "https://github.com/igor-makarov/BeaconKit", 7 | "license": "MIT", 8 | "authors": { 9 | "Igor Makarov": "igormaka@gmail.com" 10 | }, 11 | "source": { 12 | "git": "https://github.com/igor-makarov/BeaconKit.git", 13 | "tag": "1.0.5" 14 | }, 15 | "platforms": { 16 | "ios": "9.0", 17 | "osx": "10.12" 18 | }, 19 | "source_files": "Sources/BeaconKit/**/*.swift", 20 | "pushed_with_swift_version": "3.0", 21 | "testspecs": [ 22 | { 23 | "name": "Tests", 24 | "test_type": "unit", 25 | "source_files": "Tests/BeaconKitTests/**/*.swift" 26 | } 27 | ] 28 | } 29 | -------------------------------------------------------------------------------- /spec/fixtures/mock_cdn_repo_remote/Specs/2/0/9/BeaconKit/1.0.4/BeaconKit.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "BeaconKit", 3 | "version": "1.0.4", 4 | "summary": "Beacon detection framework using CoreBluetooth", 5 | "description": "This is a framework that wraps around CoreBluetooth and detects beacons of different types.\nTested to compile with Swift 3.1, 3.2 & 4.0 for iOS 9.0 & macOS 10.12\nThe currently supported types are: Eddystone-UID, Eddystone-URL, AltBeacon, iBeacon.", 6 | "homepage": "https://github.com/igor-makarov/BeaconKit", 7 | "license": "MIT", 8 | "authors": { 9 | "Igor Makarov": "igormaka@gmail.com" 10 | }, 11 | "source": { 12 | "git": "https://github.com/igor-makarov/BeaconKit.git", 13 | "tag": "1.0.4" 14 | }, 15 | "platforms": { 16 | "ios": "9.0", 17 | "osx": "10.12" 18 | }, 19 | "source_files": "Sources/BeaconKit/**/*.swift", 20 | "pushed_with_swift_version": "3.0", 21 | "testspecs": [ 22 | { 23 | "name": "Tests", 24 | "test_type": "unit", 25 | "source_files": "Tests/BeaconKitTests/**/*.swift" 26 | } 27 | ] 28 | } 29 | -------------------------------------------------------------------------------- /spec/fixtures/mock_cdn_repo_remote/Specs/2/0/9/BeaconKit/1.0.5/BeaconKit.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "BeaconKit", 3 | "version": "1.0.5", 4 | "summary": "Beacon detection framework using CoreBluetooth", 5 | "description": "This is a framework that wraps around CoreBluetooth and detects beacons of different types.\nTested to compile with Swift 3.1, 3.2 & 4.0 for iOS 9.0 & macOS 10.12\nThe currently supported types are: Eddystone-UID, Eddystone-URL, AltBeacon, iBeacon.", 6 | "homepage": "https://github.com/igor-makarov/BeaconKit", 7 | "license": "MIT", 8 | "authors": { 9 | "Igor Makarov": "igormaka@gmail.com" 10 | }, 11 | "source": { 12 | "git": "https://github.com/igor-makarov/BeaconKit.git", 13 | "tag": "1.0.5" 14 | }, 15 | "platforms": { 16 | "ios": "9.0", 17 | "osx": "10.12" 18 | }, 19 | "source_files": "Sources/BeaconKit/**/*.swift", 20 | "pushed_with_swift_version": "3.0", 21 | "testspecs": [ 22 | { 23 | "name": "Tests", 24 | "test_type": "unit", 25 | "source_files": "Tests/BeaconKitTests/**/*.swift" 26 | } 27 | ] 28 | } 29 | -------------------------------------------------------------------------------- /spec/fixtures/mock_cdn_repo_remote/Specs/1/1/7/SDWebImage/2.5/SDWebImage.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "SDWebImage", 3 | "version": "2.5", 4 | "platforms": { 5 | "ios": null 6 | }, 7 | "license": "MIT", 8 | "summary": "Asynchronous image downloader with cache support with an UIImageView category.", 9 | "homepage": "https://github.com/rs/SDWebImage", 10 | "authors": { 11 | "Olivier Poitrey": "rs@dailymotion.com" 12 | }, 13 | "source": { 14 | "git": "https://github.com/rs/SDWebImage.git", 15 | "tag": "2.5" 16 | }, 17 | "description": "This library provides a category for UIImageVIew with support for remote images coming from the web. It provides an UIImageView category adding web image and cache management to the Cocoa Touch framework, an asynchronous image downloader, an asynchronous memory + disk image caching with automatic cache expiration handling, a guarantee that the same URL won't be downloaded several times, a guarantee that bogus URLs won't be retried again and again, and performances!", 18 | "source_files": "{SD,UI}*.{h,m}", 19 | "requires_arc": false 20 | } 21 | -------------------------------------------------------------------------------- /spec/fixtures/mock_cdn_repo_remote/Specs/1/1/7/SDWebImage/2.6/SDWebImage.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "SDWebImage", 3 | "version": "2.6", 4 | "platforms": { 5 | "ios": null 6 | }, 7 | "license": "MIT", 8 | "summary": "Asynchronous image downloader with cache support with an UIImageView category.", 9 | "homepage": "https://github.com/rs/SDWebImage", 10 | "authors": { 11 | "Olivier Poitrey": "rs@dailymotion.com" 12 | }, 13 | "source": { 14 | "git": "https://github.com/rs/SDWebImage.git", 15 | "tag": "2.6" 16 | }, 17 | "description": "This library provides a category for UIImageVIew with support for remote images coming from the web. It provides an UIImageView category adding web image and cache management to the Cocoa Touch framework, an asynchronous image downloader, an asynchronous memory + disk image caching with automatic cache expiration handling, a guarantee that the same URL won't be downloaded several times, a guarantee that bogus URLs won't be retried again and again, and performances!", 18 | "source_files": "{SD,UI}*.{h,m}", 19 | "requires_arc": false 20 | } 21 | -------------------------------------------------------------------------------- /spec/fixtures/CannonPodder14.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CannonPodder", 3 | "version": "1.0.0", 4 | "summary": "Small library that can be used to test CocoaPods stuff (CI, building etc.)", 5 | "homepage": "https://www.cannonpodder.com", 6 | "license": { 7 | "type": "Proprietary", 8 | "text": "© 2019 Someone, Inc." 9 | }, 10 | "authors": { 11 | "CocoaPods": "cocoapods@cocoapods.org" 12 | }, 13 | "source": { 14 | "git": "https://somegitserver.com/cannonpodder.git", 15 | "tag": "1.0.0" 16 | }, 17 | "platforms": { 18 | "ios": "9.0", 19 | "osx": "10.10" 20 | }, 21 | "source_files": "Sources/**/*.{h,m}", 22 | "private_header_files": "Sources/Internal/**/*.h", 23 | "resource_bundles": { 24 | "CannonPodderResources": [ 25 | "Resources/**/*" 26 | ] 27 | }, 28 | "subspecs": [ 29 | { 30 | "name": "Subspec", 31 | "source_files": "Tests/**/*.{h,m}", 32 | "resource_bundles": { 33 | "CannonPodderTestResources": [ 34 | "Tests/Resources/**/*" 35 | ] 36 | }, 37 | "dependencies": { 38 | "OCMock": [ 39 | 40 | ] 41 | } 42 | } 43 | ] 44 | } 45 | -------------------------------------------------------------------------------- /spec/fixtures/CannonPodder15.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CannonPodder", 3 | "version": "1.0.0", 4 | "summary": "Small library that can be used to test CocoaPods stuff (CI, building etc.)", 5 | "homepage": "https://www.cannonpodder.com", 6 | "license": { 7 | "type": "Proprietary", 8 | "text": "© 2019 Someone, Inc." 9 | }, 10 | "authors": { 11 | "CocoaPods": "cocoapods@cocoapods.org" 12 | }, 13 | "source": { 14 | "git": "https://somegitserver.com/cannonpodder.git", 15 | "tag": "1.0.0" 16 | }, 17 | "platforms": { 18 | "ios": "9.0", 19 | "osx": "10.10" 20 | }, 21 | "source_files": "Sources/**/*.{h,m}", 22 | "private_header_files": "Sources/Internal/**/*.h", 23 | "resource_bundles": { 24 | "CannonPodderResources": [ 25 | "Resources/**/*" 26 | ] 27 | }, 28 | "subspecs": [ 29 | { 30 | "name": "Subspec", 31 | "source_files": "Tests/**/*.{h,m}", 32 | "resource_bundles": { 33 | "CannonPodderTestResources": [ 34 | "Tests/Resources/**/*" 35 | ] 36 | }, 37 | "dependencies": { 38 | "OCMock": [ 39 | 40 | ] 41 | } 42 | } 43 | ] 44 | } 45 | -------------------------------------------------------------------------------- /spec/fixtures/CannonPodder16.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CannonPodder", 3 | "version": "1.0.0", 4 | "summary": "Small library that can be used to test CocoaPods stuff (CI, building etc.)", 5 | "homepage": "https://www.cannonpodder.com", 6 | "license": { 7 | "type": "Proprietary", 8 | "text": "© 2019 Someone, Inc." 9 | }, 10 | "authors": { 11 | "CocoaPods": "cocoapods@cocoapods.org" 12 | }, 13 | "source": { 14 | "git": "https://somegitserver.com/cannonpodder.git", 15 | "tag": "1.0.0" 16 | }, 17 | "platforms": { 18 | "ios": "9.0", 19 | "osx": "10.10" 20 | }, 21 | "source_files": "Sources/**/*.{h,m}", 22 | "private_header_files": "Sources/Internal/**/*.h", 23 | "resource_bundles": { 24 | "CannonPodderResources": [ 25 | "Resources/**/*" 26 | ] 27 | }, 28 | "subspecs": [ 29 | { 30 | "name": "Subspec", 31 | "source_files": "Tests/**/*.{h,m}", 32 | "resource_bundles": { 33 | "CannonPodderTestResources": [ 34 | "Tests/Resources/**/*" 35 | ] 36 | }, 37 | "dependencies": { 38 | "OCMock": [ 39 | 40 | ] 41 | } 42 | } 43 | ] 44 | } 45 | -------------------------------------------------------------------------------- /spec/fixtures/CannonPodder17.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CannonPodder", 3 | "version": "1.0.0", 4 | "summary": "Small library that can be used to test CocoaPods stuff (CI, building etc.)", 5 | "homepage": "https://www.cannonpodder.com", 6 | "license": { 7 | "type": "Proprietary", 8 | "text": "© 2019 Someone, Inc." 9 | }, 10 | "authors": { 11 | "CocoaPods": "cocoapods@cocoapods.org" 12 | }, 13 | "source": { 14 | "git": "https://somegitserver.com/cannonpodder.git", 15 | "tag": "1.0.0" 16 | }, 17 | "platforms": { 18 | "ios": "9.0", 19 | "osx": "10.10" 20 | }, 21 | "source_files": "Sources/**/*.{h,m}", 22 | "private_header_files": "Sources/Internal/**/*.h", 23 | "resource_bundles": { 24 | "CannonPodderResources": [ 25 | "Resources/**/*" 26 | ] 27 | }, 28 | "subspecs": [ 29 | { 30 | "name": "Subspec", 31 | "source_files": "Tests/**/*.{h,m}", 32 | "resource_bundles": { 33 | "CannonPodderTestResources": [ 34 | "Tests/Resources/**/*" 35 | ] 36 | }, 37 | "dependencies": { 38 | "OCMock": [ 39 | 40 | ] 41 | } 42 | } 43 | ] 44 | } 45 | -------------------------------------------------------------------------------- /spec/fixtures/CannonPodder18.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CannonPodder", 3 | "version": "1.0.0", 4 | "summary": "Small library that can be used to test CocoaPods stuff (CI, building etc.)", 5 | "homepage": "https://www.cannonpodder.com", 6 | "license": { 7 | "type": "Proprietary", 8 | "text": "© 2019 Someone, Inc." 9 | }, 10 | "authors": { 11 | "CocoaPods": "cocoapods@cocoapods.org" 12 | }, 13 | "source": { 14 | "git": "https://somegitserver.com/cannonpodder.git", 15 | "tag": "1.0.0" 16 | }, 17 | "platforms": { 18 | "ios": "9.0", 19 | "osx": "10.10" 20 | }, 21 | "source_files": "Sources/**/*.{h,m}", 22 | "private_header_files": "Sources/Internal/**/*.h", 23 | "resource_bundles": { 24 | "CannonPodderResources": [ 25 | "Resources/**/*" 26 | ] 27 | }, 28 | "subspecs": [ 29 | { 30 | "name": "Subspec", 31 | "source_files": "Tests/**/*.{h,m}", 32 | "resource_bundles": { 33 | "CannonPodderTestResources": [ 34 | "Tests/Resources/**/*" 35 | ] 36 | }, 37 | "dependencies": { 38 | "OCMock": [ 39 | 40 | ] 41 | } 42 | } 43 | ] 44 | } 45 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2011 - 2012 Eloy Durán 2 | Copyright (c) 2012 Fabio Pelosin 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /.github/workflows/Specs.yml: -------------------------------------------------------------------------------- 1 | name: Specs 2 | 3 | jobs: 4 | specs: 5 | strategy: 6 | fail-fast: false 7 | matrix: 8 | os: [ubuntu-20.04] 9 | ruby: [2.6, 2.7, 3.0.0, 3.2.2] 10 | include: 11 | - os: macos-13 12 | ruby: system 13 | 14 | name: ${{ matrix.os }} / Ruby ${{ matrix.ruby }} 15 | runs-on: ${{ matrix.os }} 16 | steps: 17 | - name: Checkout git 18 | uses: actions/checkout@v1 19 | 20 | - name: Set up Ruby 21 | uses: ruby/setup-ruby@v1 22 | if: ${{ matrix.ruby != 'system' }} 23 | with: 24 | ruby-version: ${{ matrix.ruby }} 25 | 26 | - name: Update git submodules 27 | run: git submodule update --init 28 | 29 | - name: Setup test_repo 30 | run: ./.github/scripts/setup_test_repo.sh 31 | 32 | - name: Run bundle install 33 | run: | 34 | bundle config path vendor/bundle 35 | bundle install --jobs 4 --retry 3 --without debugging documentation 36 | 37 | - name: Run Specs + Rubocop 38 | run: bundle exec rake spec 39 | 40 | on: 41 | push: 42 | branches: 43 | - "master" 44 | - "*-stable" 45 | pull_request: 46 | branches: 47 | - master 48 | - "*-stable" 49 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/d/1/8/CocoaLumberjack/1.6.3/CocoaLumberjack.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CocoaLumberjack", 3 | "version": "1.6.3", 4 | "license": "BSD", 5 | "summary": "A fast & simple, yet powerful & flexible logging framework for Mac and iOS.", 6 | "homepage": "https://github.com/CocoaLumberjack/CocoaLumberjack", 7 | "authors": { 8 | "Robbie Hanson": "robbiehanson@deusty.com" 9 | }, 10 | "source": { 11 | "git": "https://github.com/CocoaLumberjack/CocoaLumberjack.git", 12 | "tag": "1.6.3" 13 | }, 14 | "description": "It is similar in concept to other popular logging frameworks such as log4j, yet is designed specifically for objective-c, and takes advantage of features such as multi-threading, grand central dispatch (if available), lockless atomic operations, and the dynamic nature of the objective-c runtime.", 15 | "requires_arc": true, 16 | "preserve_paths": "Lumberjack/**/README*", 17 | "public_header_files": "Lumberjack/**/*.h", 18 | "subspecs": [ 19 | { 20 | "name": "Core", 21 | "source_files": "Lumberjack/*.{h,m}" 22 | }, 23 | { 24 | "name": "Extensions", 25 | "dependencies": { 26 | "CocoaLumberjack/Core": [ 27 | 28 | ] 29 | }, 30 | "source_files": "Lumberjack/Extensions/*.{h,m}" 31 | } 32 | ] 33 | } 34 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/d/1/8/CocoaLumberjack/1.6.4/CocoaLumberjack.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CocoaLumberjack", 3 | "version": "1.6.4", 4 | "license": "BSD", 5 | "summary": "A fast & simple, yet powerful & flexible logging framework for Mac and iOS.", 6 | "homepage": "https://github.com/CocoaLumberjack/CocoaLumberjack", 7 | "authors": { 8 | "Robbie Hanson": "robbiehanson@deusty.com" 9 | }, 10 | "source": { 11 | "git": "https://github.com/CocoaLumberjack/CocoaLumberjack.git", 12 | "tag": "1.6.4" 13 | }, 14 | "description": "It is similar in concept to other popular logging frameworks such as log4j, yet is designed specifically for objective-c, and takes advantage of features such as multi-threading, grand central dispatch (if available), lockless atomic operations, and the dynamic nature of the objective-c runtime.", 15 | "requires_arc": true, 16 | "preserve_paths": "Lumberjack/**/README*", 17 | "public_header_files": "Lumberjack/**/*.h", 18 | "subspecs": [ 19 | { 20 | "name": "Core", 21 | "source_files": "Lumberjack/*.{h,m}" 22 | }, 23 | { 24 | "name": "Extensions", 25 | "dependencies": { 26 | "CocoaLumberjack/Core": [ 27 | 28 | ] 29 | }, 30 | "source_files": "Lumberjack/Extensions/*.{h,m}" 31 | } 32 | ] 33 | } 34 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/d/1/8/CocoaLumberjack/1.6.5/CocoaLumberjack.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CocoaLumberjack", 3 | "version": "1.6.5", 4 | "license": "BSD", 5 | "summary": "A fast & simple, yet powerful & flexible logging framework for Mac and iOS.", 6 | "homepage": "https://github.com/CocoaLumberjack/CocoaLumberjack", 7 | "authors": { 8 | "Robbie Hanson": "robbiehanson@deusty.com" 9 | }, 10 | "source": { 11 | "git": "https://github.com/CocoaLumberjack/CocoaLumberjack.git", 12 | "tag": "1.6.5" 13 | }, 14 | "description": "It is similar in concept to other popular logging frameworks such as log4j, yet is designed specifically for objective-c, and takes advantage of features such as multi-threading, grand central dispatch (if available), lockless atomic operations, and the dynamic nature of the objective-c runtime.", 15 | "requires_arc": true, 16 | "preserve_paths": "Lumberjack/**/README*", 17 | "public_header_files": "Lumberjack/**/*.h", 18 | "subspecs": [ 19 | { 20 | "name": "Core", 21 | "source_files": "Lumberjack/*.{h,m}" 22 | }, 23 | { 24 | "name": "Extensions", 25 | "dependencies": { 26 | "CocoaLumberjack/Core": [ 27 | 28 | ] 29 | }, 30 | "source_files": "Lumberjack/Extensions/*.{h,m}" 31 | } 32 | ] 33 | } 34 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/d/1/8/CocoaLumberjack/1.7.0/CocoaLumberjack.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CocoaLumberjack", 3 | "version": "1.7.0", 4 | "license": "BSD", 5 | "summary": "A fast & simple, yet powerful & flexible logging framework for Mac and iOS.", 6 | "homepage": "https://github.com/CocoaLumberjack/CocoaLumberjack", 7 | "authors": { 8 | "Robbie Hanson": "robbiehanson@deusty.com" 9 | }, 10 | "source": { 11 | "git": "https://github.com/CocoaLumberjack/CocoaLumberjack.git", 12 | "tag": "1.7.0" 13 | }, 14 | "description": "It is similar in concept to other popular logging frameworks such as log4j, yet is designed specifically for objective-c, and takes advantage of features such as multi-threading, grand central dispatch (if available), lockless atomic operations, and the dynamic nature of the objective-c runtime.", 15 | "requires_arc": true, 16 | "preserve_paths": "Lumberjack/**/README*", 17 | "public_header_files": "Lumberjack/**/*.h", 18 | "subspecs": [ 19 | { 20 | "name": "Core", 21 | "source_files": "Lumberjack/*.{h,m}" 22 | }, 23 | { 24 | "name": "Extensions", 25 | "dependencies": { 26 | "CocoaLumberjack/Core": [ 27 | 28 | ] 29 | }, 30 | "source_files": "Lumberjack/Extensions/*.{h,m}" 31 | } 32 | ] 33 | } 34 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/d/1/8/CocoaLumberjack/1.6.5.1/CocoaLumberjack.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CocoaLumberjack", 3 | "version": "1.6.5.1", 4 | "license": "BSD", 5 | "summary": "A fast & simple, yet powerful & flexible logging framework for Mac and iOS.", 6 | "homepage": "https://github.com/CocoaLumberjack/CocoaLumberjack", 7 | "authors": { 8 | "Robbie Hanson": "robbiehanson@deusty.com" 9 | }, 10 | "source": { 11 | "git": "https://github.com/CocoaLumberjack/CocoaLumberjack.git", 12 | "tag": "1.6.5.1" 13 | }, 14 | "description": "It is similar in concept to other popular logging frameworks such as log4j, yet is designed specifically for objective-c, and takes advantage of features such as multi-threading, grand central dispatch (if available), lockless atomic operations, and the dynamic nature of the objective-c runtime.", 15 | "requires_arc": true, 16 | "preserve_paths": "Lumberjack/**/README*", 17 | "public_header_files": "Lumberjack/**/*.h", 18 | "subspecs": [ 19 | { 20 | "name": "Core", 21 | "source_files": "Lumberjack/*.{h,m}" 22 | }, 23 | { 24 | "name": "Extensions", 25 | "dependencies": { 26 | "CocoaLumberjack/Core": [ 27 | 28 | ] 29 | }, 30 | "source_files": "Lumberjack/Extensions/*.{h,m}" 31 | } 32 | ] 33 | } 34 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/test_repo/Specs/BananaLib/1.1/BananaLib.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | s.name = 'BananaLib' 3 | s.version = '1.1' 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.1' } 9 | s.source_files = 'Classes/*.{h,m}', 'Vendor' 10 | s.xcconfig = { 'OTHER_LDFLAGS' => '-framework SystemConfiguration' } 11 | s.prefix_header_file = 'Classes/BananaLib.pch' 12 | s.resources = "Resources/*.png" 13 | s.requires_arc = true 14 | s.dependency 'monkey', '~> 1.0.1', '< 1.0.9' 15 | s.swift_versions = ['4.2', '5'] 16 | s.license = { 17 | :type => 'MIT', 18 | :file => 'LICENSE', 19 | :text => 'Permission is hereby granted ...' 20 | } 21 | 22 | s.test_spec 'UnitTests' do |test_spec| 23 | test_spec.source_files = 'Tests/Unit/*.{h,m,swift}' 24 | end 25 | 26 | s.test_spec 'SnapshotTests' do |test_spec| 27 | test_spec.requires_app_host = true 28 | test_spec.source_files = 'Tests/Snapshot/*.{h,m,swift}' 29 | end 30 | 31 | s.app_spec 'DemoApp' do |app_spec| 32 | app_spec.source_files = 'Example/*.{h,m,swift}' 33 | end 34 | end 35 | -------------------------------------------------------------------------------- /spec/fixtures/BananaLib.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | 3 | # Root attributes 4 | s.name = 'BananaLib' 5 | s.version = '1.0' 6 | s.authors = 'Banana Corp', { 'Monkey Boy' => 'monkey@banana-corp.local' } 7 | s.homepage = 'http://banana-corp.local/banana-lib.html' 8 | s.summary = 'Chunky bananas!' 9 | s.description = 'Full of chunky bananas.' 10 | s.source = { :git => 'http://banana-corp.local/banana-lib.git', :tag => 'v1.0' } 11 | s.license = { 12 | :type => 'MIT', 13 | :file => 'LICENSE', 14 | :text => 'Permission is hereby granted ...' 15 | } 16 | 17 | # Platform 18 | s.platform = :ios, '4.3' 19 | 20 | # File patterns 21 | s.source_files = 'Classes/*.{h,m}', 'Vendor' 22 | s.ios.source_files = 'Classes_ios/*.{h,m}' 23 | s.resources = "Resources/*.png" 24 | 25 | # Build settings 26 | s.pod_target_xcconfig = { 'OTHER_LDFLAGS' => '-framework SystemConfiguration' } 27 | s.prefix_header_file = 'Classes/BananaLib.pch' 28 | s.requires_arc = true 29 | 30 | # Dependencies 31 | s.dependency 'monkey', '~> 1.0.1', '< 1.0.9' 32 | s.subspec "GreenBanana" do |ss| 33 | ss.source_files = 'GreenBanana' 34 | ss.dependency 'AFNetworking' 35 | end 36 | 37 | s.subspec "YellowBanana" do |ss| 38 | ss.source_files = 'YellowBanana' 39 | ss.dependency 'SDWebImage' 40 | end 41 | end 42 | -------------------------------------------------------------------------------- /lib/cocoapods-core/metrics.rb: -------------------------------------------------------------------------------- 1 | module Pod 2 | # Allows to access metrics about pods. 3 | # 4 | # This class is stored in Core because it might be used by web services. 5 | # 6 | module Metrics 7 | # Returns the metrics of a pod. 8 | # 9 | # @param [String] name 10 | # The name of the pod. 11 | # 12 | # @return [Hash] The metrics for the pod. 13 | # 14 | def self.pod(name) 15 | peform_request("http://metrics.cocoapods.org/api/v1/pods/#{name}") 16 | end 17 | 18 | private 19 | 20 | # @!group Private helpers 21 | #-------------------------------------------------------------------------# 22 | 23 | # Performs a get request with the given URL. 24 | # 25 | # @param [String] url 26 | # The URL of the resource. 27 | # 28 | # @return [Array, Hash] The information of the resource as Ruby objects. 29 | # 30 | def self.peform_request(url) 31 | require 'rest' 32 | require 'json' 33 | headers = { 'User-Agent' => "CocoaPods #{Pod::CORE_VERSION}" } 34 | response = REST.get(url, headers) 35 | body = JSON.parse(response.body) 36 | if response.ok? 37 | body 38 | else 39 | CoreUI.warn "Request to #{url} failed - #{response.status_code}" 40 | CoreUI.warn body['message'] 41 | nil 42 | end 43 | end 44 | 45 | #-------------------------------------------------------------------------# 46 | end 47 | end 48 | -------------------------------------------------------------------------------- /spec/fixtures/BananaLib.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "BananaLib", 3 | "version": "1.0", 4 | "authors": [ 5 | "Banana Corp", 6 | { 7 | "Monkey Boy": "monkey@banana-corp.local" 8 | } 9 | ], 10 | "homepage": "http://banana-corp.local/banana-lib.html", 11 | "summary": "Chunky bananas!", 12 | "description": "Full of chunky bananas.", 13 | "source": { 14 | "git": "http://banana-corp.local/banana-lib.git", 15 | "tag": "v1.0" 16 | }, 17 | "license": { 18 | "type": "MIT", 19 | "file": "LICENSE", 20 | "text": "Permission is hereby granted ..." 21 | }, 22 | "platforms": { 23 | "ios": "4.3" 24 | }, 25 | "source_files": [ 26 | "Classes/*.{h,m}", 27 | "Vendor" 28 | ], 29 | "ios": { 30 | "source_files": "Classes_ios/*.{h,m}" 31 | }, 32 | "resources": "Resources/*.png", 33 | "xcconfig": { 34 | "OTHER_LDFLAGS": "-framework SystemConfiguration" 35 | }, 36 | "prefix_header_file": "Classes/BananaLib.pch", 37 | "requires_arc": true, 38 | "dependencies": { 39 | "monkey": [ 40 | "~> 1.0.1", 41 | "< 1.0.9" 42 | ] 43 | }, 44 | "subspecs": [ 45 | { 46 | "name": "GreenBanana", 47 | "source_files": "GreenBanana", 48 | "dependencies": { 49 | "AFNetworking": [] 50 | } 51 | }, 52 | { 53 | "name": "YellowBanana", 54 | "source_files": "YellowBanana", 55 | "dependencies": { 56 | "SDWebImage": [] 57 | } 58 | } 59 | ] 60 | } 61 | -------------------------------------------------------------------------------- /spec/fixtures/mock_cdn_repo_remote/Specs/1/1/7/SDWebImage/2.7/SDWebImage.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "SDWebImage", 3 | "version": "2.7", 4 | "platforms": { 5 | "ios": null 6 | }, 7 | "license": "MIT", 8 | "summary": "Asynchronous image downloader with cache support with an UIImageView category.", 9 | "homepage": "https://github.com/rs/SDWebImage", 10 | "authors": { 11 | "Olivier Poitrey": "rs@dailymotion.com" 12 | }, 13 | "source": { 14 | "git": "https://github.com/rs/SDWebImage.git", 15 | "tag": "2.7" 16 | }, 17 | "description": "This library provides a category for UIImageVIew with support for remote images coming from the web. It provides an UIImageView category adding web image and cache management to the Cocoa Touch framework, an asynchronous image downloader, an asynchronous memory + disk image caching with automatic cache expiration handling, a guarantee that the same URL won't be downloaded several times, a guarantee that bogus URLs won't be retried again and again, and performances!", 18 | "default_subspecs": [ 19 | "Main" 20 | ], 21 | "requires_arc": false, 22 | "subspecs": [ 23 | { 24 | "name": "Main", 25 | "source_files": "SDWebImage/{SD,UI}*.{h,m}", 26 | "frameworks": "ImageIO" 27 | }, 28 | { 29 | "name": "MapKit", 30 | "dependencies": { 31 | "SDWebImage/Main": [ 32 | 33 | ] 34 | }, 35 | "source_files": "SDWebImage/MKAnnotationView+WebCache.*", 36 | "frameworks": "MapKit" 37 | } 38 | ] 39 | } 40 | -------------------------------------------------------------------------------- /spec/fixtures/mock_cdn_repo_remote/Specs/1/1/7/SDWebImage/3.0/SDWebImage.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "SDWebImage", 3 | "version": "3.0", 4 | "platforms": { 5 | "ios": null 6 | }, 7 | "license": "MIT", 8 | "summary": "Asynchronous image downloader with cache support with an UIImageView category.", 9 | "homepage": "https://github.com/rs/SDWebImage", 10 | "authors": { 11 | "Olivier Poitrey": "rs@dailymotion.com" 12 | }, 13 | "source": { 14 | "git": "https://github.com/rs/SDWebImage.git", 15 | "tag": "3.0" 16 | }, 17 | "description": "This library provides a category for UIImageVIew with support for remote images coming from the web. It provides an UIImageView category adding web image and cache management to the Cocoa Touch framework, an asynchronous image downloader, an asynchronous memory + disk image caching with automatic cache expiration handling, a guarantee that the same URL won't be downloaded several times, a guarantee that bogus URLs won't be retried again and again, and performances!", 18 | "default_subspecs": [ 19 | "Main" 20 | ], 21 | "requires_arc": true, 22 | "subspecs": [ 23 | { 24 | "name": "Main", 25 | "source_files": "SDWebImage/{SD,UI}*.{h,m}", 26 | "frameworks": "ImageIO" 27 | }, 28 | { 29 | "name": "MapKit", 30 | "dependencies": { 31 | "SDWebImage/Main": [ 32 | 33 | ] 34 | }, 35 | "source_files": "SDWebImage/MKAnnotationView+WebCache.*", 36 | "frameworks": "MapKit" 37 | } 38 | ] 39 | } 40 | -------------------------------------------------------------------------------- /spec/fixtures/mock_cdn_repo_remote/Specs/1/1/7/SDWebImage/3.1/SDWebImage.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "SDWebImage", 3 | "version": "3.1", 4 | "platforms": { 5 | "ios": "5.0" 6 | }, 7 | "license": "MIT", 8 | "summary": "Asynchronous image downloader with cache support with an UIImageView category.", 9 | "homepage": "https://github.com/rs/SDWebImage", 10 | "authors": { 11 | "Olivier Poitrey": "rs@dailymotion.com" 12 | }, 13 | "source": { 14 | "git": "https://github.com/rs/SDWebImage.git", 15 | "tag": "3.1" 16 | }, 17 | "description": "This library provides a category for UIImageVIew with support for remote images coming from the web. It provides an UIImageView category adding web image and cache management to the Cocoa Touch framework, an asynchronous image downloader, an asynchronous memory + disk image caching with automatic cache expiration handling, a guarantee that the same URL won't be downloaded several times, a guarantee that bogus URLs won't be retried again and again, and performances!", 18 | "default_subspecs": [ 19 | "Main" 20 | ], 21 | "requires_arc": true, 22 | "subspecs": [ 23 | { 24 | "name": "Main", 25 | "source_files": "SDWebImage/{SD,UI}*.{h,m}", 26 | "frameworks": "ImageIO" 27 | }, 28 | { 29 | "name": "MapKit", 30 | "dependencies": { 31 | "SDWebImage/Main": [ 32 | 33 | ] 34 | }, 35 | "source_files": "SDWebImage/MKAnnotationView+WebCache.*", 36 | "frameworks": "MapKit" 37 | } 38 | ] 39 | } 40 | -------------------------------------------------------------------------------- /spec/fixtures/mock_cdn_repo_remote/Specs/1/1/7/SDWebImage/2.7.4/SDWebImage.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "SDWebImage", 3 | "version": "2.7.4", 4 | "platforms": { 5 | "ios": null 6 | }, 7 | "license": "MIT", 8 | "summary": "Asynchronous image downloader with cache support with an UIImageView category.", 9 | "homepage": "https://github.com/rs/SDWebImage", 10 | "authors": { 11 | "Olivier Poitrey": "rs@dailymotion.com" 12 | }, 13 | "source": { 14 | "git": "https://github.com/rs/SDWebImage.git", 15 | "tag": "2.7.4" 16 | }, 17 | "description": "This library provides a category for UIImageVIew with support for remote images coming from the web. It provides an UIImageView category adding web image and cache management to the Cocoa Touch framework, an asynchronous image downloader, an asynchronous memory + disk image caching with automatic cache expiration handling, a guarantee that the same URL won't be downloaded several times, a guarantee that bogus URLs won't be retried again and again, and performances!", 18 | "default_subspecs": [ 19 | "Main" 20 | ], 21 | "requires_arc": false, 22 | "subspecs": [ 23 | { 24 | "name": "Main", 25 | "source_files": "SDWebImage/{SD,UI}*.{h,m}", 26 | "frameworks": "ImageIO" 27 | }, 28 | { 29 | "name": "MapKit", 30 | "dependencies": { 31 | "SDWebImage/Main": [ 32 | 33 | ] 34 | }, 35 | "source_files": "SDWebImage/MKAnnotationView+WebCache.*", 36 | "frameworks": "MapKit" 37 | } 38 | ] 39 | } 40 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/d/1/8/CocoaLumberjack/1.9.0/CocoaLumberjack.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CocoaLumberjack", 3 | "version": "1.9.0", 4 | "license": "BSD", 5 | "summary": "A fast & simple, yet powerful & flexible logging framework for Mac and iOS.", 6 | "homepage": "https://github.com/CocoaLumberjack/CocoaLumberjack", 7 | "authors": { 8 | "Robbie Hanson": "robbiehanson@deusty.com" 9 | }, 10 | "source": { 11 | "git": "https://github.com/CocoaLumberjack/CocoaLumberjack.git", 12 | "tag": "1.9.0" 13 | }, 14 | "description": "It is similar in concept to other popular logging frameworks such as log4j, yet is designed specifically for objective-c, and takes advantage of features such as multi-threading, grand central dispatch (if available), lockless atomic operations, and the dynamic nature of the objective-c runtime.", 15 | "requires_arc": true, 16 | "preserve_paths": "Lumberjack/**/README*", 17 | "public_header_files": "Lumberjack/**/*.h", 18 | "default_subspecs": "Extensions", 19 | "subspecs": [ 20 | { 21 | "name": "Core", 22 | "source_files": "Lumberjack/*.{h,m}" 23 | }, 24 | { 25 | "name": "Extensions", 26 | "dependencies": { 27 | "CocoaLumberjack/Core": [ 28 | 29 | ] 30 | }, 31 | "source_files": "Lumberjack/Extensions/*.{h,m}" 32 | }, 33 | { 34 | "name": "CLI", 35 | "dependencies": { 36 | "CocoaLumberjack/Core": [ 37 | 38 | ] 39 | }, 40 | "source_files": "Lumberjack/CLI/*.{h,m}" 41 | } 42 | ] 43 | } 44 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/d/1/8/CocoaLumberjack/1.9.1/CocoaLumberjack.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CocoaLumberjack", 3 | "version": "1.9.1", 4 | "license": "BSD", 5 | "summary": "A fast & simple, yet powerful & flexible logging framework for Mac and iOS.", 6 | "homepage": "https://github.com/CocoaLumberjack/CocoaLumberjack", 7 | "authors": { 8 | "Robbie Hanson": "robbiehanson@deusty.com" 9 | }, 10 | "source": { 11 | "git": "https://github.com/CocoaLumberjack/CocoaLumberjack.git", 12 | "tag": "1.9.1" 13 | }, 14 | "description": "It is similar in concept to other popular logging frameworks such as log4j, yet is designed specifically for objective-c, and takes advantage of features such as multi-threading, grand central dispatch (if available), lockless atomic operations, and the dynamic nature of the objective-c runtime.", 15 | "requires_arc": true, 16 | "preserve_paths": "Lumberjack/**/README*", 17 | "public_header_files": "Lumberjack/**/*.h", 18 | "default_subspecs": "Extensions", 19 | "subspecs": [ 20 | { 21 | "name": "Core", 22 | "source_files": "Lumberjack/*.{h,m}" 23 | }, 24 | { 25 | "name": "Extensions", 26 | "dependencies": { 27 | "CocoaLumberjack/Core": [ 28 | 29 | ] 30 | }, 31 | "source_files": "Lumberjack/Extensions/*.{h,m}" 32 | }, 33 | { 34 | "name": "CLI", 35 | "dependencies": { 36 | "CocoaLumberjack/Core": [ 37 | 38 | ] 39 | }, 40 | "source_files": "Lumberjack/CLI/*.{h,m}" 41 | } 42 | ] 43 | } 44 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/d/1/8/CocoaLumberjack/1.8.0/CocoaLumberjack.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CocoaLumberjack", 3 | "version": "1.8.0", 4 | "license": "BSD", 5 | "summary": "A fast & simple, yet powerful & flexible logging framework for Mac and iOS.", 6 | "homepage": "https://github.com/CocoaLumberjack/CocoaLumberjack", 7 | "authors": { 8 | "Robbie Hanson": "robbiehanson@deusty.com" 9 | }, 10 | "source": { 11 | "git": "https://github.com/CocoaLumberjack/CocoaLumberjack.git", 12 | "tag": "1.8.0" 13 | }, 14 | "description": "It is similar in concept to other popular logging frameworks such as log4j, yet is designed specifically for objective-c, and takes advantage of features such as multi-threading, grand central dispatch (if available), lockless atomic operations, and the dynamic nature of the objective-c runtime.", 15 | "requires_arc": true, 16 | "preserve_paths": "Lumberjack/**/README*", 17 | "public_header_files": "Lumberjack/**/*.h", 18 | "default_subspecs": [ 19 | "Extensions" 20 | ], 21 | "subspecs": [ 22 | { 23 | "name": "Core", 24 | "source_files": "Lumberjack/*.{h,m}" 25 | }, 26 | { 27 | "name": "Extensions", 28 | "dependencies": { 29 | "CocoaLumberjack/Core": [ 30 | 31 | ] 32 | }, 33 | "source_files": "Lumberjack/Extensions/*.{h,m}" 34 | }, 35 | { 36 | "name": "CLI", 37 | "dependencies": { 38 | "CocoaLumberjack/Core": [ 39 | 40 | ] 41 | }, 42 | "source_files": "Lumberjack/CLI/*.{h,m}" 43 | } 44 | ] 45 | } 46 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/d/1/8/CocoaLumberjack/1.8.1/CocoaLumberjack.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CocoaLumberjack", 3 | "version": "1.8.1", 4 | "license": "BSD", 5 | "summary": "A fast & simple, yet powerful & flexible logging framework for Mac and iOS.", 6 | "homepage": "https://github.com/CocoaLumberjack/CocoaLumberjack", 7 | "authors": { 8 | "Robbie Hanson": "robbiehanson@deusty.com" 9 | }, 10 | "source": { 11 | "git": "https://github.com/CocoaLumberjack/CocoaLumberjack.git", 12 | "tag": "1.8.1" 13 | }, 14 | "description": "It is similar in concept to other popular logging frameworks such as log4j, yet is designed specifically for objective-c, and takes advantage of features such as multi-threading, grand central dispatch (if available), lockless atomic operations, and the dynamic nature of the objective-c runtime.", 15 | "requires_arc": true, 16 | "preserve_paths": "Lumberjack/**/README*", 17 | "public_header_files": "Lumberjack/**/*.h", 18 | "default_subspecs": [ 19 | "Extensions" 20 | ], 21 | "subspecs": [ 22 | { 23 | "name": "Core", 24 | "source_files": "Lumberjack/*.{h,m}" 25 | }, 26 | { 27 | "name": "Extensions", 28 | "dependencies": { 29 | "CocoaLumberjack/Core": [ 30 | 31 | ] 32 | }, 33 | "source_files": "Lumberjack/Extensions/*.{h,m}" 34 | }, 35 | { 36 | "name": "CLI", 37 | "dependencies": { 38 | "CocoaLumberjack/Core": [ 39 | 40 | ] 41 | }, 42 | "source_files": "Lumberjack/CLI/*.{h,m}" 43 | } 44 | ] 45 | } 46 | -------------------------------------------------------------------------------- /lib/cocoapods-core.rb: -------------------------------------------------------------------------------- 1 | # The Pod modules name-spaces all the classes of CocoaPods. 2 | # 3 | module Pod 4 | require 'cocoapods-core/gem_version' 5 | 6 | # Indicates a runtime error **not** caused by a bug. 7 | # 8 | class PlainInformative < StandardError; end 9 | 10 | # Indicates a user error. 11 | # 12 | class Informative < PlainInformative; end 13 | 14 | require 'pathname' 15 | require 'cocoapods-core/vendor' 16 | 17 | require 'active_support' 18 | require 'active_support/core_ext' 19 | 20 | autoload :Version, 'cocoapods-core/version' 21 | autoload :Requirement, 'cocoapods-core/requirement' 22 | autoload :Dependency, 'cocoapods-core/dependency' 23 | 24 | autoload :CoreUI, 'cocoapods-core/core_ui' 25 | autoload :DSLError, 'cocoapods-core/standard_error' 26 | autoload :GitHub, 'cocoapods-core/github' 27 | autoload :HTTP, 'cocoapods-core/http' 28 | autoload :Lockfile, 'cocoapods-core/lockfile' 29 | autoload :Metrics, 'cocoapods-core/metrics' 30 | autoload :Platform, 'cocoapods-core/platform' 31 | autoload :Podfile, 'cocoapods-core/podfile' 32 | autoload :Source, 'cocoapods-core/source' 33 | autoload :CDNSource, 'cocoapods-core/cdn_source' 34 | autoload :TrunkSource, 'cocoapods-core/trunk_source' 35 | autoload :Specification, 'cocoapods-core/specification' 36 | autoload :StandardError, 'cocoapods-core/standard_error' 37 | autoload :YAMLHelper, 'cocoapods-core/yaml_helper' 38 | autoload :BuildType, 'cocoapods-core/build_type' 39 | 40 | # TODO: Fix 41 | # 42 | Spec = Specification 43 | end 44 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/d/1/8/CocoaLumberjack/1.9.2/CocoaLumberjack.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CocoaLumberjack", 3 | "version": "1.9.2", 4 | "license": "BSD", 5 | "summary": "A fast & simple, yet powerful & flexible logging framework for Mac and iOS.", 6 | "homepage": "https://github.com/CocoaLumberjack/CocoaLumberjack", 7 | "authors": { 8 | "Robbie Hanson": "robbiehanson@deusty.com" 9 | }, 10 | "source": { 11 | "git": "https://github.com/CocoaLumberjack/CocoaLumberjack.git", 12 | "tag": "1.9.2" 13 | }, 14 | "description": "It is similar in concept to other popular logging frameworks such as log4j, yet is designed specifically for objective-c, and takes advantage of features such as multi-threading, grand central dispatch (if available), lockless atomic operations, and the dynamic nature of the objective-c runtime.", 15 | "requires_arc": true, 16 | "platforms": { 17 | "ios": "5.0", 18 | "osx": "10.7" 19 | }, 20 | "preserve_paths": "Lumberjack/**/README*", 21 | "public_header_files": "Lumberjack/**/*.h", 22 | "default_subspecs": "Extensions", 23 | "subspecs": [ 24 | { 25 | "name": "Core", 26 | "source_files": "Lumberjack/*.{h,m}" 27 | }, 28 | { 29 | "name": "Extensions", 30 | "dependencies": { 31 | "CocoaLumberjack/Core": [ 32 | 33 | ] 34 | }, 35 | "source_files": "Lumberjack/Extensions/*.{h,m}" 36 | }, 37 | { 38 | "name": "CLI", 39 | "dependencies": { 40 | "CocoaLumberjack/Core": [ 41 | 42 | ] 43 | }, 44 | "source_files": "Lumberjack/CLI/*.{h,m}" 45 | } 46 | ] 47 | } 48 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/d/1/8/CocoaLumberjack/2.0.0-beta/CocoaLumberjack.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CocoaLumberjack", 3 | "version": "2.0.0-beta", 4 | "license": "BSD", 5 | "summary": "A fast & simple, yet powerful & flexible logging framework for Mac and iOS.", 6 | "homepage": "https://github.com/CocoaLumberjack/CocoaLumberjack", 7 | "authors": { 8 | "Robbie Hanson": "robbiehanson@deusty.com" 9 | }, 10 | "source": { 11 | "git": "https://github.com/CocoaLumberjack/CocoaLumberjack.git", 12 | "tag": "2.0.0-beta" 13 | }, 14 | "description": "It is similar in concept to other popular logging frameworks such as log4j, yet is designed specifically for objective-c, and takes advantage of features such as multi-threading, grand central dispatch (if available), lockless atomic operations, and the dynamic nature of the objective-c runtime.", 15 | "requires_arc": true, 16 | "preserve_paths": "README*", 17 | "platforms": { 18 | "ios": "5.0", 19 | "osx": "10.7" 20 | }, 21 | "public_header_files": "Classes/*.h", 22 | "source_files": "Classes/CocoaLumberjack.{h,m}", 23 | "subspecs": [ 24 | { 25 | "name": "Core", 26 | "source_files": "Classes/*.{h,m}" 27 | }, 28 | { 29 | "name": "Extensions", 30 | "source_files": "Classes/Extensions/*.{h,m}", 31 | "dependencies": { 32 | "CocoaLumberjack/Core": [ 33 | 34 | ] 35 | } 36 | }, 37 | { 38 | "name": "CLI", 39 | "source_files": "Classes/CLI/*.{h,m}", 40 | "dependencies": { 41 | "CocoaLumberjack/Core": [ 42 | 43 | ] 44 | } 45 | } 46 | ] 47 | } 48 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/d/1/8/CocoaLumberjack/2.0.0-beta2/CocoaLumberjack.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CocoaLumberjack", 3 | "version": "2.0.0-beta2", 4 | "license": "BSD", 5 | "summary": "A fast & simple, yet powerful & flexible logging framework for Mac and iOS.", 6 | "homepage": "https://github.com/CocoaLumberjack/CocoaLumberjack", 7 | "authors": { 8 | "Robbie Hanson": "robbiehanson@deusty.com" 9 | }, 10 | "source": { 11 | "git": "https://github.com/CocoaLumberjack/CocoaLumberjack.git", 12 | "tag": "2.0.0-beta2" 13 | }, 14 | "description": "It is similar in concept to other popular logging frameworks such as log4j, yet is designed specifically for objective-c, and takes advantage of features such as multi-threading, grand central dispatch (if available), lockless atomic operations, and the dynamic nature of the objective-c runtime.", 15 | "requires_arc": true, 16 | "preserve_paths": "README*", 17 | "platforms": { 18 | "ios": "5.0", 19 | "osx": "10.7" 20 | }, 21 | "public_header_files": "Classes/*.h", 22 | "source_files": "Classes/CocoaLumberjack.{h,m}", 23 | "subspecs": [ 24 | { 25 | "name": "Core", 26 | "source_files": "Classes/*.{h,m}" 27 | }, 28 | { 29 | "name": "Extensions", 30 | "source_files": "Classes/Extensions/*.{h,m}", 31 | "dependencies": { 32 | "CocoaLumberjack/Core": [ 33 | 34 | ] 35 | } 36 | }, 37 | { 38 | "name": "CLI", 39 | "source_files": "Classes/CLI/*.{h,m}", 40 | "dependencies": { 41 | "CocoaLumberjack/Core": [ 42 | 43 | ] 44 | } 45 | } 46 | ] 47 | } 48 | -------------------------------------------------------------------------------- /cocoapods-core.gemspec: -------------------------------------------------------------------------------- 1 | # -*- encoding: utf-8 -*- 2 | require File.expand_path('../lib/cocoapods-core/gem_version', __FILE__) 3 | require 'date' 4 | 5 | Gem::Specification.new do |s| 6 | s.name = "cocoapods-core" 7 | s.version = Pod::CORE_VERSION 8 | s.date = Date.today 9 | s.license = "MIT" 10 | s.email = ["eloy.de.enige@gmail.com", "fabiopelosin@gmail.com"] 11 | s.homepage = "https://github.com/CocoaPods/CocoaPods" 12 | s.authors = ["Eloy Duran", "Fabio Pelosin"] 13 | s.summary = "The models of CocoaPods" 14 | s.description = "The CocoaPods-Core gem provides support to work with the models of " \ 15 | "CocoaPods.\n\n " \ 16 | "It is intended to be used in place of the CocoaPods when the the " \ 17 | "installation of the dependencies is not needed." \ 18 | 19 | s.files = Dir["lib/**/*.rb"] + %w{ README.md LICENSE } 20 | s.require_paths = %w{ lib } 21 | 22 | s.add_runtime_dependency 'activesupport', '>= 5.0', '< 8' 23 | s.add_runtime_dependency 'nap', '~> 1.0' 24 | s.add_runtime_dependency 'fuzzy_match', '~> 2.0.4' 25 | s.add_runtime_dependency 'algoliasearch', '~> 1.0' 26 | s.add_runtime_dependency 'concurrent-ruby', '~> 1.1' 27 | s.add_runtime_dependency 'typhoeus', '~> 1.0' 28 | s.add_runtime_dependency 'netrc', '~> 0.11' 29 | s.add_runtime_dependency 'addressable', '~> 2.8' 30 | s.add_runtime_dependency 'public_suffix', '~> 4.0' 31 | 32 | s.add_development_dependency 'bacon', '~> 1.1' 33 | 34 | s.required_ruby_version = '>= 2.6' 35 | end 36 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/d/1/8/CocoaLumberjack/3.5.0/CocoaLumberjack.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CocoaLumberjack", 3 | "version": "3.5.0", 4 | "license": "BSD", 5 | "summary": "A fast & simple, yet powerful & flexible logging framework for Mac and iOS.", 6 | "homepage": "https://github.com/CocoaLumberjack/CocoaLumberjack", 7 | "authors": { 8 | "Robbie Hanson": "robbiehanson@deusty.com" 9 | }, 10 | "source": { 11 | "git": "https://github.com/CocoaLumberjack/CocoaLumberjack.git", 12 | "tag": "3.5.0" 13 | }, 14 | "description": "It is similar in concept to other popular logging frameworks such as log4j, yet is designed specifically for objective-c, and takes advantage of features such as multi-threading, grand central dispatch (if available), lockless atomic operations, and the dynamic nature of the objective-c runtime.", 15 | "requires_arc": true, 16 | "preserve_paths": "README.md", 17 | "platforms": { 18 | "ios": "8.0", 19 | "osx": "10.10", 20 | "watchos": "3.0", 21 | "tvos": "9.0" 22 | }, 23 | "swift_version": "4.2", 24 | "default_subspecs": "Core", 25 | "subspecs": [ 26 | { 27 | "name": "Core", 28 | "source_files": [ 29 | "Classes/CocoaLumberjack.h", 30 | "Classes/DD*.{h,m}", 31 | "Classes/Extensions/*.{h,m}", 32 | "Classes/CLI/*.{h,m}" 33 | ], 34 | "private_header_files": "Classes/DD*Internal.{h}" 35 | }, 36 | { 37 | "name": "Swift", 38 | "dependencies": { 39 | "CocoaLumberjack/Core": [ 40 | 41 | ] 42 | }, 43 | "source_files": [ 44 | "Classes/CocoaLumberjack.swift", 45 | "Classes/DDAssert.swift", 46 | "Classes/SwiftLogLevel.h" 47 | ] 48 | } 49 | ] 50 | } 51 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/d/1/8/CocoaLumberjack/3.5.1/CocoaLumberjack.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CocoaLumberjack", 3 | "version": "3.5.1", 4 | "license": "BSD", 5 | "summary": "A fast & simple, yet powerful & flexible logging framework for Mac and iOS.", 6 | "homepage": "https://github.com/CocoaLumberjack/CocoaLumberjack", 7 | "authors": { 8 | "Robbie Hanson": "robbiehanson@deusty.com" 9 | }, 10 | "source": { 11 | "git": "https://github.com/CocoaLumberjack/CocoaLumberjack.git", 12 | "tag": "3.5.1" 13 | }, 14 | "description": "It is similar in concept to other popular logging frameworks such as log4j, yet is designed specifically for objective-c, and takes advantage of features such as multi-threading, grand central dispatch (if available), lockless atomic operations, and the dynamic nature of the objective-c runtime.", 15 | "requires_arc": true, 16 | "preserve_paths": "README.md", 17 | "platforms": { 18 | "ios": "8.0", 19 | "osx": "10.10", 20 | "watchos": "3.0", 21 | "tvos": "9.0" 22 | }, 23 | "swift_version": "4.2", 24 | "default_subspecs": "Core", 25 | "subspecs": [ 26 | { 27 | "name": "Core", 28 | "source_files": [ 29 | "Classes/CocoaLumberjack.h", 30 | "Classes/DD*.{h,m}", 31 | "Classes/Extensions/*.{h,m}", 32 | "Classes/CLI/*.{h,m}" 33 | ], 34 | "private_header_files": "Classes/DD*Internal.{h}" 35 | }, 36 | { 37 | "name": "Swift", 38 | "dependencies": { 39 | "CocoaLumberjack/Core": [ 40 | 41 | ] 42 | }, 43 | "source_files": [ 44 | "Classes/CocoaLumberjack.swift", 45 | "Classes/DDAssert.swift", 46 | "Classes/SwiftLogLevel.h" 47 | ] 48 | } 49 | ] 50 | } 51 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/d/1/8/CocoaLumberjack/3.5.2/CocoaLumberjack.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CocoaLumberjack", 3 | "version": "3.5.2", 4 | "license": "BSD", 5 | "summary": "A fast & simple, yet powerful & flexible logging framework for Mac and iOS.", 6 | "homepage": "https://github.com/CocoaLumberjack/CocoaLumberjack", 7 | "authors": { 8 | "Robbie Hanson": "robbiehanson@deusty.com" 9 | }, 10 | "source": { 11 | "git": "https://github.com/CocoaLumberjack/CocoaLumberjack.git", 12 | "tag": "3.5.2" 13 | }, 14 | "description": "It is similar in concept to other popular logging frameworks such as log4j, yet is designed specifically for objective-c, and takes advantage of features such as multi-threading, grand central dispatch (if available), lockless atomic operations, and the dynamic nature of the objective-c runtime.", 15 | "requires_arc": true, 16 | "preserve_paths": "README.md", 17 | "platforms": { 18 | "ios": "8.0", 19 | "osx": "10.10", 20 | "watchos": "3.0", 21 | "tvos": "9.0" 22 | }, 23 | "swift_version": "4.2", 24 | "default_subspecs": "Core", 25 | "subspecs": [ 26 | { 27 | "name": "Core", 28 | "source_files": [ 29 | "Classes/CocoaLumberjack.h", 30 | "Classes/DD*.{h,m}", 31 | "Classes/Extensions/*.{h,m}", 32 | "Classes/CLI/*.{h,m}" 33 | ], 34 | "private_header_files": "Classes/DD*Internal.{h}" 35 | }, 36 | { 37 | "name": "Swift", 38 | "dependencies": { 39 | "CocoaLumberjack/Core": [ 40 | 41 | ] 42 | }, 43 | "source_files": [ 44 | "Classes/CocoaLumberjack.swift", 45 | "Classes/DDAssert.swift", 46 | "Classes/SwiftLogLevel.h" 47 | ] 48 | } 49 | ] 50 | } 51 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/d/1/8/CocoaLumberjack/3.5.3/CocoaLumberjack.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CocoaLumberjack", 3 | "version": "3.5.3", 4 | "license": "BSD", 5 | "summary": "A fast & simple, yet powerful & flexible logging framework for Mac and iOS.", 6 | "homepage": "https://github.com/CocoaLumberjack/CocoaLumberjack", 7 | "authors": { 8 | "Robbie Hanson": "robbiehanson@deusty.com" 9 | }, 10 | "source": { 11 | "git": "https://github.com/CocoaLumberjack/CocoaLumberjack.git", 12 | "tag": "3.5.3" 13 | }, 14 | "description": "It is similar in concept to other popular logging frameworks such as log4j, yet is designed specifically for objective-c, and takes advantage of features such as multi-threading, grand central dispatch (if available), lockless atomic operations, and the dynamic nature of the objective-c runtime.", 15 | "requires_arc": true, 16 | "preserve_paths": "README.md", 17 | "platforms": { 18 | "ios": "8.0", 19 | "osx": "10.10", 20 | "watchos": "3.0", 21 | "tvos": "9.0" 22 | }, 23 | "swift_version": "5.0", 24 | "default_subspecs": "Core", 25 | "subspecs": [ 26 | { 27 | "name": "Core", 28 | "source_files": [ 29 | "Classes/CocoaLumberjack.h", 30 | "Classes/DD*.{h,m}", 31 | "Classes/Extensions/*.{h,m}", 32 | "Classes/CLI/*.{h,m}" 33 | ], 34 | "private_header_files": "Classes/DD*Internal.{h}" 35 | }, 36 | { 37 | "name": "Swift", 38 | "dependencies": { 39 | "CocoaLumberjack/Core": [ 40 | 41 | ] 42 | }, 43 | "source_files": [ 44 | "Classes/CocoaLumberjack.swift", 45 | "Classes/DDAssert.swift", 46 | "Classes/SwiftLogLevel.h" 47 | ] 48 | } 49 | ] 50 | } 51 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/all_pods_versions_2_0_9.txt: -------------------------------------------------------------------------------- 1 | AMSlideMenu/1.0.0/1.5.0/1.5.2/1.5.3/1.5.4 2 | Applause-SDK/2.2.0/2.2.1/2.2.2/2.2.3/2.3.0/2.4.0/3.0.0/3.0.1/3.1.0/3.10.0/3.10.0-swift2.3/3.10.1/3.10.2/3.11.0/3.2.0/3.2.1/3.2.2/3.2.4/3.2.5/3.3.0/3.4.0/3.4.1/3.5.0/3.5.1/3.6.0/3.7.0/3.8.0/3.9.0 3 | BeaconKit/1.0.0/1.0.1/1.0.2/1.0.3/1.0.4/1.0.5/1.0.6 4 | Boris/0.1.2/0.1.3/0.1.4/0.1.6/0.1.7/0.1.8 5 | CBSSegmentView/0.1.0/1.0.0/1.0.1/1.1.0 6 | DLRadioButton/1.0.3/1.0.4/1.0.5/1.1.1/1.2.1/1.3.1/1.3.2/1.3.3/1.3.4/1.3.5/1.4.11/1.4.12/1.4.2/1.4.3/1.4.4/1.4.5/1.4.6/1.4.7/1.4.8/1.4.9 7 | DistOpenFiles/1.0.0/1.0.1/1.0.2 8 | GDRouting/0.0.1 9 | HFCore/0.1.0/0.1.10/0.1.12/0.1.13/0.1.2/0.1.3/0.1.4/0.1.8/0.2.0/0.2.1 10 | HKChargeModelModule/0.1.0/0.1.1/0.1.2/1.0.0/1.1.0/1.1.1/1.1.2/2.0.0/2.1.0 11 | MMCircularProgressView/1.0/1.0.1/1.0.2/1.0.3 12 | NYVideoKit/0.1.5 13 | PhotoManagerLib/0.0.3 14 | RDUrtls/0.0.1/0.0.2 15 | ROGoogleTranslate/0.0.1/0.0.2/0.0.3/0.0.4/0.0.5 16 | SCPinions/0.1.1 17 | SwiftyTools/0.10/0.11/0.12/0.12.1/0.12.10/0.12.11/0.12.12/0.12.13/0.12.2/0.12.3/0.12.4/0.12.5/0.12.6/0.12.7/0.12.8/0.12.9/0.14/0.14.1/0.14.2/0.15/0.15.1/0.15.2/0.15.3/0.15.4/0.16/0.16.1/0.16.2/0.16.3/0.16.4/0.16.5/0.16.6/0.8.10/0.8.11/0.8.12/0.8.13/0.8.14/0.8.16/0.8.17/0.8.18/0.8.19/0.8.2/0.8.20/0.8.21/0.8.22/0.8.23/0.8.3/0.8.4/0.8.5/0.8.6/0.8.7/0.8.8/0.8.9/0.9/0.9.1/0.9.2/0.9.3 18 | TextbookRSA/0.0.1/1.0.0/1.0.1 19 | XBImageBrowser/0.0.1/0.0.2 20 | testB1/0.0.3/0.0.4/0.0.5/0.0.6/0.0.7/0.0.8/0.0.9/0.0.91/0.0.92/0.0.93/0.0.94/0.0.95/0.0.97/0.0.98/0.1.0/0.1.01/0.1.02/0.1.03/0.1.04/0.1.05/0.1.06/0.1.07/0.1.08/0.1.10/0.1.11/0.1.12/0.1.13/0.1.14/0.1.15/0.1.16/0.1.17/0.1.18/0.1.19/0.1.20/0.1.21/0.1.22/0.1.23/0.1.24/0.1.25/0.1.26/0.1.27/0.1.28/0.1.29/0.1.30/0.1.31/0.1.32/0.1.33/0.1.34/0.1.35/0.1.36/0.1.37/0.1.38/0.1.39/0.1.40/0.1.41/0.1.42/0.1.43/0.1.44/0.1.45/0.1.46/0.1.47/0.1.48/0.1.49 21 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/d/1/8/CocoaLumberjack/2.0.0-beta3/CocoaLumberjack.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CocoaLumberjack", 3 | "version": "2.0.0-beta3", 4 | "license": "BSD", 5 | "summary": "A fast & simple, yet powerful & flexible logging framework for Mac and iOS.", 6 | "homepage": "https://github.com/CocoaLumberjack/CocoaLumberjack", 7 | "authors": { 8 | "Robbie Hanson": "robbiehanson@deusty.com" 9 | }, 10 | "source": { 11 | "git": "https://github.com/CocoaLumberjack/CocoaLumberjack.git", 12 | "tag": "2.0.0-beta3" 13 | }, 14 | "description": "It is similar in concept to other popular logging frameworks such as log4j, yet is designed specifically for objective-c, and takes advantage of features such as multi-threading, grand central dispatch (if available), lockless atomic operations, and the dynamic nature of the objective-c runtime.", 15 | "requires_arc": true, 16 | "preserve_paths": "README*", 17 | "platforms": { 18 | "ios": "5.0", 19 | "osx": "10.7" 20 | }, 21 | "public_header_files": "Classes/*.h", 22 | "default_subspecs": [ 23 | "Default", 24 | "Extensions" 25 | ], 26 | "subspecs": [ 27 | { 28 | "name": "Default", 29 | "source_files": "Classes/CocoaLumberjack.{h,m}", 30 | "dependencies": { 31 | "CocoaLumberjack/Core": [ 32 | 33 | ] 34 | } 35 | }, 36 | { 37 | "name": "Core", 38 | "source_files": "Classes/DD*.{h,m}" 39 | }, 40 | { 41 | "name": "Extensions", 42 | "source_files": "Classes/Extensions/*.{h,m}", 43 | "dependencies": { 44 | "CocoaLumberjack/Default": [ 45 | 46 | ] 47 | } 48 | }, 49 | { 50 | "name": "CLI", 51 | "source_files": "Classes/CLI/*.{h,m}", 52 | "dependencies": { 53 | "CocoaLumberjack/Default": [ 54 | 55 | ] 56 | } 57 | } 58 | ] 59 | } 60 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/d/1/8/CocoaLumberjack/2.0.0-beta4/CocoaLumberjack.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CocoaLumberjack", 3 | "version": "2.0.0-beta4", 4 | "license": "BSD", 5 | "summary": "A fast & simple, yet powerful & flexible logging framework for Mac and iOS.", 6 | "homepage": "https://github.com/CocoaLumberjack/CocoaLumberjack", 7 | "authors": { 8 | "Robbie Hanson": "robbiehanson@deusty.com" 9 | }, 10 | "source": { 11 | "git": "https://github.com/CocoaLumberjack/CocoaLumberjack.git", 12 | "tag": "2.0.0-beta4" 13 | }, 14 | "description": "It is similar in concept to other popular logging frameworks such as log4j, yet is designed specifically for objective-c, and takes advantage of features such as multi-threading, grand central dispatch (if available), lockless atomic operations, and the dynamic nature of the objective-c runtime.", 15 | "requires_arc": true, 16 | "preserve_paths": "README*", 17 | "platforms": { 18 | "ios": "5.0", 19 | "osx": "10.7" 20 | }, 21 | "public_header_files": "Classes/*.h", 22 | "default_subspecs": [ 23 | "Default", 24 | "Extensions" 25 | ], 26 | "subspecs": [ 27 | { 28 | "name": "Default", 29 | "source_files": "Classes/CocoaLumberjack.{h,m}", 30 | "dependencies": { 31 | "CocoaLumberjack/Core": [ 32 | 33 | ] 34 | } 35 | }, 36 | { 37 | "name": "Core", 38 | "source_files": "Classes/DD*.{h,m}" 39 | }, 40 | { 41 | "name": "Extensions", 42 | "source_files": "Classes/Extensions/*.{h,m}", 43 | "dependencies": { 44 | "CocoaLumberjack/Default": [ 45 | 46 | ] 47 | } 48 | }, 49 | { 50 | "name": "CLI", 51 | "source_files": "Classes/CLI/*.{h,m}", 52 | "dependencies": { 53 | "CocoaLumberjack/Default": [ 54 | 55 | ] 56 | } 57 | } 58 | ] 59 | } 60 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/d/1/8/CocoaLumberjack/2.0.0/CocoaLumberjack.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CocoaLumberjack", 3 | "version": "2.0.0", 4 | "license": "BSD", 5 | "summary": "A fast & simple, yet powerful & flexible logging framework for Mac and iOS.", 6 | "homepage": "https://github.com/CocoaLumberjack/CocoaLumberjack", 7 | "authors": { 8 | "Robbie Hanson": "robbiehanson@deusty.com" 9 | }, 10 | "source": { 11 | "git": "https://github.com/CocoaLumberjack/CocoaLumberjack.git", 12 | "tag": "2.0.0" 13 | }, 14 | "description": "It is similar in concept to other popular logging frameworks such as log4j, yet is designed specifically for objective-c, and takes advantage of features such as multi-threading, grand central dispatch (if available), lockless atomic operations, and the dynamic nature of the objective-c runtime.", 15 | "requires_arc": true, 16 | "preserve_paths": [ 17 | "README.md", 18 | "Classes/CocoaLumberjack.{swift,modulemap}" 19 | ], 20 | "platforms": { 21 | "ios": "5.0", 22 | "osx": "10.7" 23 | }, 24 | "public_header_files": "Classes/*.h", 25 | "default_subspecs": [ 26 | "Default", 27 | "Extensions" 28 | ], 29 | "subspecs": [ 30 | { 31 | "name": "Default", 32 | "source_files": "Classes/CocoaLumberjack.{h,m}", 33 | "dependencies": { 34 | "CocoaLumberjack/Core": [ 35 | 36 | ] 37 | } 38 | }, 39 | { 40 | "name": "Core", 41 | "source_files": "Classes/DD*.{h,m}" 42 | }, 43 | { 44 | "name": "Extensions", 45 | "source_files": "Classes/Extensions/*.{h,m}", 46 | "dependencies": { 47 | "CocoaLumberjack/Default": [ 48 | 49 | ] 50 | } 51 | }, 52 | { 53 | "name": "CLI", 54 | "source_files": "Classes/CLI/*.{h,m}", 55 | "dependencies": { 56 | "CocoaLumberjack/Default": [ 57 | 58 | ] 59 | } 60 | } 61 | ] 62 | } 63 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/d/1/8/CocoaLumberjack/2.0.0-rc/CocoaLumberjack.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CocoaLumberjack", 3 | "version": "2.0.0-rc", 4 | "license": "BSD", 5 | "summary": "A fast & simple, yet powerful & flexible logging framework for Mac and iOS.", 6 | "homepage": "https://github.com/CocoaLumberjack/CocoaLumberjack", 7 | "authors": { 8 | "Robbie Hanson": "robbiehanson@deusty.com" 9 | }, 10 | "source": { 11 | "git": "https://github.com/CocoaLumberjack/CocoaLumberjack.git", 12 | "tag": "2.0.0-rc" 13 | }, 14 | "description": "It is similar in concept to other popular logging frameworks such as log4j, yet is designed specifically for objective-c, and takes advantage of features such as multi-threading, grand central dispatch (if available), lockless atomic operations, and the dynamic nature of the objective-c runtime.", 15 | "requires_arc": true, 16 | "preserve_paths": [ 17 | "README.md", 18 | "Classes/CocoaLumberjack.{swift,modulemap}" 19 | ], 20 | "platforms": { 21 | "ios": "5.0", 22 | "osx": "10.7" 23 | }, 24 | "public_header_files": "Classes/*.h", 25 | "default_subspecs": [ 26 | "Default", 27 | "Extensions" 28 | ], 29 | "subspecs": [ 30 | { 31 | "name": "Default", 32 | "source_files": "Classes/CocoaLumberjack.{h,m}", 33 | "dependencies": { 34 | "CocoaLumberjack/Core": [ 35 | 36 | ] 37 | } 38 | }, 39 | { 40 | "name": "Core", 41 | "source_files": "Classes/DD*.{h,m}" 42 | }, 43 | { 44 | "name": "Extensions", 45 | "source_files": "Classes/Extensions/*.{h,m}", 46 | "dependencies": { 47 | "CocoaLumberjack/Default": [ 48 | 49 | ] 50 | } 51 | }, 52 | { 53 | "name": "CLI", 54 | "source_files": "Classes/CLI/*.{h,m}", 55 | "dependencies": { 56 | "CocoaLumberjack/Default": [ 57 | 58 | ] 59 | } 60 | } 61 | ] 62 | } 63 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/d/1/8/CocoaLumberjack/2.0.0-rc2/CocoaLumberjack.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CocoaLumberjack", 3 | "version": "2.0.0-rc2", 4 | "license": "BSD", 5 | "summary": "A fast & simple, yet powerful & flexible logging framework for Mac and iOS.", 6 | "homepage": "https://github.com/CocoaLumberjack/CocoaLumberjack", 7 | "authors": { 8 | "Robbie Hanson": "robbiehanson@deusty.com" 9 | }, 10 | "source": { 11 | "git": "https://github.com/CocoaLumberjack/CocoaLumberjack.git", 12 | "tag": "2.0.0-rc2" 13 | }, 14 | "description": "It is similar in concept to other popular logging frameworks such as log4j, yet is designed specifically for objective-c, and takes advantage of features such as multi-threading, grand central dispatch (if available), lockless atomic operations, and the dynamic nature of the objective-c runtime.", 15 | "requires_arc": true, 16 | "preserve_paths": [ 17 | "README.md", 18 | "Classes/CocoaLumberjack.{swift,modulemap}" 19 | ], 20 | "platforms": { 21 | "ios": "5.0", 22 | "osx": "10.7" 23 | }, 24 | "public_header_files": "Classes/*.h", 25 | "default_subspecs": [ 26 | "Default", 27 | "Extensions" 28 | ], 29 | "subspecs": [ 30 | { 31 | "name": "Default", 32 | "source_files": "Classes/CocoaLumberjack.{h,m}", 33 | "dependencies": { 34 | "CocoaLumberjack/Core": [ 35 | 36 | ] 37 | } 38 | }, 39 | { 40 | "name": "Core", 41 | "source_files": "Classes/DD*.{h,m}" 42 | }, 43 | { 44 | "name": "Extensions", 45 | "source_files": "Classes/Extensions/*.{h,m}", 46 | "dependencies": { 47 | "CocoaLumberjack/Default": [ 48 | 49 | ] 50 | } 51 | }, 52 | { 53 | "name": "CLI", 54 | "source_files": "Classes/CLI/*.{h,m}", 55 | "dependencies": { 56 | "CocoaLumberjack/Default": [ 57 | 58 | ] 59 | } 60 | } 61 | ] 62 | } 63 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/d/1/8/CocoaLumberjack/2.0.1/CocoaLumberjack.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CocoaLumberjack", 3 | "version": "2.0.1", 4 | "license": "BSD", 5 | "summary": "A fast & simple, yet powerful & flexible logging framework for Mac and iOS.", 6 | "homepage": "https://github.com/CocoaLumberjack/CocoaLumberjack", 7 | "authors": { 8 | "Robbie Hanson": "robbiehanson@deusty.com" 9 | }, 10 | "source": { 11 | "git": "https://github.com/CocoaLumberjack/CocoaLumberjack.git", 12 | "tag": "2.0.1" 13 | }, 14 | "description": "It is similar in concept to other popular logging frameworks such as log4j, yet is designed specifically for objective-c, and takes advantage of features such as multi-threading, grand central dispatch (if available), lockless atomic operations, and the dynamic nature of the objective-c runtime.", 15 | "requires_arc": true, 16 | "preserve_paths": [ 17 | "README.md", 18 | "Classes/CocoaLumberjack.{swift,modulemap}" 19 | ], 20 | "platforms": { 21 | "ios": "5.0", 22 | "osx": "10.7" 23 | }, 24 | "public_header_files": "Classes/*.h", 25 | "module_map": "Classes/CocoaLumberjack.modulemap", 26 | "default_subspecs": [ 27 | "Default", 28 | "Extensions" 29 | ], 30 | "subspecs": [ 31 | { 32 | "name": "Default", 33 | "source_files": "Classes/CocoaLumberjack.{h,m}", 34 | "dependencies": { 35 | "CocoaLumberjack/Core": [ 36 | 37 | ] 38 | } 39 | }, 40 | { 41 | "name": "Core", 42 | "source_files": "Classes/DD*.{h,m}" 43 | }, 44 | { 45 | "name": "Extensions", 46 | "source_files": "Classes/Extensions/*.{h,m}", 47 | "dependencies": { 48 | "CocoaLumberjack/Default": [ 49 | 50 | ] 51 | } 52 | }, 53 | { 54 | "name": "CLI", 55 | "source_files": "Classes/CLI/*.{h,m}", 56 | "dependencies": { 57 | "CocoaLumberjack/Default": [ 58 | 59 | ] 60 | } 61 | } 62 | ] 63 | } 64 | -------------------------------------------------------------------------------- /spec/specification/dsl/attribute_support_spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path('../../../spec_helper', __FILE__) 2 | 3 | module Pod 4 | describe Specification::DSL::AttributeSupport do 5 | class TestClass 6 | extend Pod::Specification::DSL::AttributeSupport 7 | root_attribute :test_root_attribute, :types => [String] 8 | attribute :test_attribute, :types => [String], :root_only => false 9 | 10 | class << self 11 | attr_reader :attributes 12 | end 13 | end 14 | 15 | #-------------------------------------------------------------------------# 16 | 17 | it 'stores the attributes' do 18 | TestClass.attributes.keys.sort_by(&:to_s).should == [ 19 | :test_attribute, :test_root_attribute 20 | ] 21 | end 22 | 23 | it 'declares a root attribute' do 24 | attr = TestClass.attributes[:test_root_attribute] 25 | attr.class.should == Specification::DSL::Attribute 26 | end 27 | 28 | it 'declares root attributes with the `root_only` option' do 29 | attr = TestClass.attributes[:test_root_attribute] 30 | attr.should.be.root_only? 31 | end 32 | 33 | it 'declares root attributes without the `multi_platform` option' do 34 | attr = TestClass.attributes[:test_root_attribute] 35 | attr.should.not.be.multi_platform? 36 | end 37 | 38 | it 'declares a normal attribute' do 39 | attr = TestClass.attributes[:test_attribute] 40 | attr.class.should == Specification::DSL::Attribute 41 | end 42 | 43 | it 'declares normal attributes without the `root_only` option' do 44 | attr = TestClass.attributes[:test_attribute] 45 | attr.should.not.be.root_only? 46 | end 47 | 48 | it 'declares root attributes with the `multi_platform` option by default' do 49 | attr = TestClass.attributes[:test_attribute] 50 | attr.should.be.multi_platform? 51 | end 52 | 53 | #-------------------------------------------------------------------------# 54 | end 55 | end 56 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # CocoaPods Core 2 | 3 | [![Build Status](https://github.com/CocoaPods/Core/workflows/Specs/badge.svg)](https://github.com/CocoaPods/Core/actions/workflows/Specs.yml) 4 | [![Test Coverage](https://api.codeclimate.com/v1/badges/91a2d70b9ed977815c66/test_coverage)](https://codeclimate.com/github/CocoaPods/Core/test_coverage) 5 | [![Maintainability](https://api.codeclimate.com/v1/badges/91a2d70b9ed977815c66/maintainability)](https://codeclimate.com/github/CocoaPods/Core/maintainability) 6 | 7 | The CocoaPods-Core gem provides support to work with the models of CocoaPods. 8 | It is intended to be used in place of the CocoaPods gem when the installation 9 | of the dependencies is not needed. Therefore, it is suitable for web services. 10 | 11 | Provides support for working with the following models: 12 | 13 | - `Pod::Specification` - [Podspec Syntax Reference](https://guides.cocoapods.org/syntax/podspec.html). 14 | - `Pod::Podfile` - [Podfile Syntax Reference](https://guides.cocoapods.org/syntax/podfile.html). 15 | - `Pod::Source` - collections of podspec files like the [CocoaPods Spec repo](https://github.com/CocoaPods/Specs). 16 | 17 | The gem also provides support for ancillary features like 18 | `Pod::Specification::Set::Presenter` suitable for presetting descriptions of 19 | Pods and the `Specification::Linter`, which ensures the validity of podspec 20 | files. 21 | 22 | ## Installation 23 | 24 | ``` 25 | $ [sudo] gem install cocoapods-core 26 | ``` 27 | 28 | The `cocoapods-core` gem requires Ruby 2.6.0 or later. 29 | 30 | ## Collaborate 31 | 32 | All CocoaPods development happens on GitHub, there is a repository for 33 | [CocoaPods](https://github.com/CocoaPods/CocoaPods) and one for the [CocoaPods 34 | specs](https://github.com/CocoaPods/Specs). Contributing patches or Pods is 35 | really easy and gratifying. 36 | 37 | Follow [@CocoaPods](http://x.com/CocoaPods) to get up to date 38 | information about what's going on in the CocoaPods world. 39 | 40 | ## License 41 | 42 | This gem and CocoaPods are available under the MIT license. 43 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/all_pods_versions_1_3_f.txt: -------------------------------------------------------------------------------- 1 | AFHTTPSessionManager-AFUniqueGET/0.1/0.2/0.3/0.4/0.5/0.5.1 2 | AI_CollectionView/0.1.0/0.1.1/0.1.2/0.2.0/0.2.1/0.2.2 3 | AVOSCloudIM/0.0.0.1.alpha/10.0.0/10.0.1/10.0.2/10.1.0/10.2.0/10.3.0/10.3.1/11.0.0/11.1.0/11.1.1/11.1.2/11.2.0/11.2.1/11.2.2/11.3.0/11.4.0/11.4.1/11.4.2/11.4.4/11.4.5/11.4.6/11.4.7/11.4.8/11.4.9/11.5.0/11.5.1/11.5.2/11.6.0/11.6.1/11.6.2/11.6.3/11.6.4/2.6.11/2.6.11.1/2.6.11.2/3.0.0/3.0.1/3.0.2/3.0.3/3.1.0/3.1.1/3.1.1.1/3.1.2.1/3.1.2.4/3.1.2.5/3.1.2.6/3.1.2.7/3.1.2.8/3.1.2.9/3.1.3/3.1.3.1/3.1.3.2/3.1.3.3/3.1.3.4/3.1.3.5/3.1.3.6/3.1.4/3.1.5/3.1.5.1/3.1.5.2/3.1.6/3.1.6.1/3.1.6.2/3.1.6.3/3.1.6.4/3.1.6.5/3.1.6.6/3.1.6.7/3.1.6.8/3.1.7/3.1.7.1/3.10.0/3.2.0/3.2.1/3.2.12/3.2.2/3.2.3/3.2.4/3.2.4.1/3.2.5/3.2.5.1/3.2.6/3.2.7/3.2.8/3.2.9/3.3/3.3.3/3.3.4/3.3.5/3.4.0/3.4.0-beta/3.4.0-beta.1/3.4.0-beta.2/3.4.0-beta.3/3.4.0-beta.4/3.4.0-beta.5/3.4.0-beta.6/3.4.1-beta/3.4.1-beta.1/3.4.3/3.4.4/3.5.1/3.6.0/3.6.1/3.7.0/3.7.1/3.8.0/3.8.1/3.8.2/3.9.0/4.0.0/4.0.1/4.1.0/4.2.0/4.3.0/4.3.1/4.4.0/4.5.0/4.6.0/4.7.0/4.8.0/5.0.0/5.0.1/5.0.2/6.0.0/6.0.1/6.1.0/6.1.1/7.0.0/7.1.0/7.2.0/7.3.1/7.3.2/7.3.3/7.3.4/8.0.0/8.0.0-beta.2/8.0.1/8.0.2/8.0.3/8.0.4/8.0.6/8.1.0/8.2.0/8.2.1/8.2.2/8.2.3/9.0.0/9.0.1/9.0.2 4 | BJPassWordManager/0.0.1 5 | CryptoUtilObjC/0.1.0/0.1.1/0.1.101/0.1.102/0.1.103 6 | DictionaryFiltered/1.0.0 7 | ICTKit/0.3.0/0.4.0/0.5.0/0.6.0/0.7.0/0.8.0/1.0.0/1.0.1/1.0.2/1.0.3/1.0.6/1.0.7/12.0/12.1/12.2/2.0.1/2.0.10/2.0.11/2.0.12/2.0.13/2.0.14/2.0.15/2.0.2/2.0.3/2.0.4/2.0.5/2.0.6/2.0.7/2.0.8/2.0.9/2.1.0/2.1.1/2.1.2/2.1.3/2.1.4/2.2.0/2.2.1/2.2.2/2.2.3/2.2.4/2.2.5/2.2.6/2.2.7/2.2.8/3.0.3/3.0.4/3.0.6/3.0.7/3.0.8/4.1/4.2/4.3/8.0/8.1/8.13/8.14/8.15/8.2/8.3/8.4/8.5/8.8/8.9/9.0/9.1 8 | JSONKit/1.4/1.5pre 9 | JSONRequester/0.0.1 10 | RSA_Swift/0.0.1/0.0.2/0.0.3/0.0.4 11 | RVCalendarWeekView/0.1/0.1.1/0.1.2/0.1.4/0.2/0.2.1/0.2.2/0.3/0.3.1/0.3.2/0.3.3/0.3.4/0.3.5/0.4/0.5/0.5.1/0.5.2/0.5.3 12 | SHSafekit/1.0.0/1.0.1 13 | Sculptor/0.1/0.2/0.2.1/0.2.2/0.3.0 14 | XiangHongKit/0.0.1/0.0.2/0.0.3/0.0.4/0.0.5/0.0.6/0.0.7/0.0.8/0.0.9/0.1.0/0.1.1/0.1.5/0.1.7/0.1.8/0.1.9/0.2.0/0.2.2/0.2.3 15 | YHEnDecriptionSDK/1.1.0/2.0.4/2.0.5/2.0.7/2.0.8 16 | ZVProgressHUD/0.0.2/1.0.0/1.0.2/1.1/2.0.0/2.0.2/2.0.3/2.0.4/2.1.0 17 | hellohub2/0.0.1 18 | istnottest/1.0 19 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/d/1/8/CocoaLumberjack/2.0.2/CocoaLumberjack.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CocoaLumberjack", 3 | "version": "2.0.2", 4 | "license": "BSD", 5 | "summary": "A fast & simple, yet powerful & flexible logging framework for Mac and iOS.", 6 | "homepage": "https://github.com/CocoaLumberjack/CocoaLumberjack", 7 | "authors": { 8 | "Robbie Hanson": "robbiehanson@deusty.com" 9 | }, 10 | "source": { 11 | "git": "https://github.com/CocoaLumberjack/CocoaLumberjack.git", 12 | "tag": "2.0.2" 13 | }, 14 | "description": "It is similar in concept to other popular logging frameworks such as log4j, yet is designed specifically for objective-c, and takes advantage of features such as multi-threading, grand central dispatch (if available), lockless atomic operations, and the dynamic nature of the objective-c runtime.", 15 | "requires_arc": true, 16 | "preserve_paths": [ 17 | "README.md", 18 | "Classes/CocoaLumberjack.swift", 19 | "Framework/Lumberjack/CocoaLumberjack.modulemap" 20 | ], 21 | "platforms": { 22 | "ios": "5.0", 23 | "osx": "10.7" 24 | }, 25 | "public_header_files": "Classes/*.h", 26 | "module_map": "Framework/Lumberjack/CocoaLumberjack.modulemap", 27 | "default_subspecs": [ 28 | "Default", 29 | "Extensions" 30 | ], 31 | "subspecs": [ 32 | { 33 | "name": "Default", 34 | "source_files": "Classes/CocoaLumberjack.{h,m}", 35 | "dependencies": { 36 | "CocoaLumberjack/Core": [ 37 | 38 | ] 39 | } 40 | }, 41 | { 42 | "name": "Core", 43 | "source_files": "Classes/DD*.{h,m}" 44 | }, 45 | { 46 | "name": "Extensions", 47 | "source_files": "Classes/Extensions/*.{h,m}", 48 | "dependencies": { 49 | "CocoaLumberjack/Default": [ 50 | 51 | ] 52 | } 53 | }, 54 | { 55 | "name": "CLI", 56 | "source_files": "Classes/CLI/*.{h,m}", 57 | "dependencies": { 58 | "CocoaLumberjack/Default": [ 59 | 60 | ] 61 | } 62 | }, 63 | { 64 | "name": "Swift", 65 | "platforms": { 66 | "ios": "8.0", 67 | "osx": "10.10" 68 | }, 69 | "source_files": "Classes/CocoaLumberjack.swift", 70 | "dependencies": { 71 | "CocoaLumberjack/Extensions": [ 72 | 73 | ] 74 | } 75 | } 76 | ] 77 | } 78 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/d/1/8/CocoaLumberjack/2.0.3/CocoaLumberjack.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CocoaLumberjack", 3 | "version": "2.0.3", 4 | "license": "BSD", 5 | "summary": "A fast & simple, yet powerful & flexible logging framework for Mac and iOS.", 6 | "homepage": "https://github.com/CocoaLumberjack/CocoaLumberjack", 7 | "authors": { 8 | "Robbie Hanson": "robbiehanson@deusty.com" 9 | }, 10 | "source": { 11 | "git": "https://github.com/CocoaLumberjack/CocoaLumberjack.git", 12 | "tag": "2.0.3" 13 | }, 14 | "description": "It is similar in concept to other popular logging frameworks such as log4j, yet is designed specifically for objective-c, and takes advantage of features such as multi-threading, grand central dispatch (if available), lockless atomic operations, and the dynamic nature of the objective-c runtime.", 15 | "requires_arc": true, 16 | "preserve_paths": [ 17 | "README.md", 18 | "Classes/CocoaLumberjack.swift", 19 | "Framework/Lumberjack/CocoaLumberjack.modulemap" 20 | ], 21 | "platforms": { 22 | "ios": "5.0", 23 | "osx": "10.7" 24 | }, 25 | "public_header_files": "Classes/*.h", 26 | "module_map": "Framework/Lumberjack/CocoaLumberjack.modulemap", 27 | "default_subspecs": [ 28 | "Default", 29 | "Extensions" 30 | ], 31 | "subspecs": [ 32 | { 33 | "name": "Default", 34 | "source_files": "Classes/CocoaLumberjack.{h,m}", 35 | "dependencies": { 36 | "CocoaLumberjack/Core": [ 37 | 38 | ] 39 | } 40 | }, 41 | { 42 | "name": "Core", 43 | "source_files": "Classes/DD*.{h,m}" 44 | }, 45 | { 46 | "name": "Extensions", 47 | "source_files": "Classes/Extensions/*.{h,m}", 48 | "dependencies": { 49 | "CocoaLumberjack/Default": [ 50 | 51 | ] 52 | } 53 | }, 54 | { 55 | "name": "CLI", 56 | "source_files": "Classes/CLI/*.{h,m}", 57 | "dependencies": { 58 | "CocoaLumberjack/Default": [ 59 | 60 | ] 61 | } 62 | }, 63 | { 64 | "name": "Swift", 65 | "platforms": { 66 | "ios": "8.0", 67 | "osx": "10.10" 68 | }, 69 | "source_files": "Classes/CocoaLumberjack.swift", 70 | "dependencies": { 71 | "CocoaLumberjack/Extensions": [ 72 | 73 | ] 74 | } 75 | } 76 | ] 77 | } 78 | -------------------------------------------------------------------------------- /spec/source/health_reporter_spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path('../../spec_helper', __FILE__) 2 | 3 | module Pod 4 | describe Source::HealthReporter do 5 | before do 6 | WebMock::API.stub_request(:head, /banana-corp.local/).to_return(:status => 200) 7 | WebMock::API.stub_request(:head, /github.com/).to_return(:status => 200) 8 | @repo = fixture('spec-repos/test_repo') 9 | @reporter = Source::HealthReporter.new(@repo) 10 | end 11 | 12 | #-------------------------------------------------------------------------# 13 | 14 | describe 'In general' do 15 | it 'can store an option callback which is called before analyzing each specification' do 16 | names = [] 17 | @reporter.pre_check do |name, _version| 18 | names << name 19 | end 20 | @reporter.analyze 21 | names.should.include?('BananaLib') 22 | end 23 | 24 | it 'analyzes all the specifications of a repo' do 25 | @reporter.analyze 26 | @reporter.report.analyzed_paths.count.should == 14 27 | end 28 | 29 | it 'is robust against malformed specifications' do 30 | @reporter.analyze 31 | errors = @reporter.report.pods_by_error.keys.join(' - ') 32 | errors.should.match /Faulty_spec.podspec.*could not be loaded/ 33 | end 34 | 35 | it 'lints the specifications' do 36 | @reporter.analyze 37 | errors = @reporter.report.pods_by_error.keys.join(' - ') 38 | errors.should.match /Missing required attribute/ 39 | end 40 | 41 | it 'checks the path of the specifications' do 42 | @reporter.analyze 43 | errors = @reporter.report.pods_by_error.keys.join("\n") 44 | errors.should.match /Incorrect path/ 45 | end 46 | 47 | it 'checks if requires_arc has the string value of true or false' do 48 | @reporter.analyze 49 | warnings = @reporter.report.pods_by_warning.keys.join("\n") 50 | warnings.should.match /true is considered to be the name of a file/ 51 | end 52 | 53 | it 'checks for any stray specifications' do 54 | @reporter.analyze 55 | errors = @reporter.report.pods_by_error.keys.join("\n") 56 | errors.should.match /Stray spec/ 57 | end 58 | end 59 | 60 | #-------------------------------------------------------------------------# 61 | end 62 | end 63 | -------------------------------------------------------------------------------- /spec/build_type_spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path('../spec_helper', __FILE__) 2 | 3 | module Pod 4 | describe BuildType do 5 | describe '#initialize' do 6 | it 'returns static library by default' do 7 | BuildType.new.should == BuildType.static_library 8 | end 9 | 10 | it 'allows specifying linkage' do 11 | BuildType.new(:linkage => :dynamic).should == BuildType.dynamic_library 12 | end 13 | 14 | it 'allows specifying packaging' do 15 | BuildType.new(:packaging => :framework).should == BuildType.static_framework 16 | end 17 | 18 | it 'raises when given an unknown linkage' do 19 | -> { BuildType.new(:linkage => :foo) }.should.raise(ArgumentError). 20 | message.should.include? 'Invalid linkage option :foo, valid options are [:static, :dynamic]' 21 | end 22 | end 23 | 24 | describe 'convenience factory methods' do 25 | it '#dynamic_library' do 26 | BuildType.dynamic_library.should == BuildType.new(:linkage => :dynamic, :packaging => :library) 27 | end 28 | 29 | it '#static_library' do 30 | BuildType.static_library.should == BuildType.new(:linkage => :static, :packaging => :library) 31 | end 32 | 33 | it '#dynamic_framework' do 34 | BuildType.dynamic_framework.should == BuildType.new(:linkage => :dynamic, :packaging => :framework) 35 | end 36 | 37 | it '#static_framework' do 38 | BuildType.static_framework.should == BuildType.new(:linkage => :static, :packaging => :framework) 39 | end 40 | end 41 | 42 | describe '#==' do 43 | it 'compares equal build types as equal' do 44 | BuildType.new(:linkage => :dynamic, :packaging => :library).should == BuildType.new(:linkage => :dynamic, :packaging => :library) 45 | end 46 | 47 | it 'compares unequal build types as unequal' do 48 | BuildType.new(:linkage => :dynamic, :packaging => :framework).should != BuildType.new(:linkage => :dynamic, :packaging => :library) 49 | BuildType.new(:linkage => :static, :packaging => :library).should != BuildType.new(:linkage => :dynamic, :packaging => :library) 50 | end 51 | end 52 | 53 | describe '#to_s' do 54 | it 'returns a readable representation' do 55 | BuildType.static_framework.to_s.should == 'static framework' 56 | end 57 | end 58 | end 59 | end 60 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/d/1/8/CocoaLumberjack/2.4.0/CocoaLumberjack.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CocoaLumberjack", 3 | "version": "2.4.0", 4 | "license": "BSD", 5 | "summary": "A fast & simple, yet powerful & flexible logging framework for Mac and iOS.", 6 | "homepage": "https://github.com/CocoaLumberjack/CocoaLumberjack", 7 | "authors": { 8 | "Robbie Hanson": "robbiehanson@deusty.com" 9 | }, 10 | "source": { 11 | "git": "https://github.com/CocoaLumberjack/CocoaLumberjack.git", 12 | "tag": "2.4.0" 13 | }, 14 | "description": "It is similar in concept to other popular logging frameworks such as log4j, yet is designed specifically for objective-c, and takes advantage of features such as multi-threading, grand central dispatch (if available), lockless atomic operations, and the dynamic nature of the objective-c runtime.", 15 | "requires_arc": true, 16 | "preserve_paths": [ 17 | "README.md", 18 | "Classes/CocoaLumberjack.swift", 19 | "Framework/Lumberjack/CocoaLumberjack.modulemap" 20 | ], 21 | "platforms": { 22 | "ios": "5.0", 23 | "osx": "10.7", 24 | "watchos": "2.0", 25 | "tvos": "9.0" 26 | }, 27 | "default_subspecs": [ 28 | "Default", 29 | "Extensions" 30 | ], 31 | "subspecs": [ 32 | { 33 | "name": "Default", 34 | "source_files": "Classes/CocoaLumberjack.{h,m}", 35 | "dependencies": { 36 | "CocoaLumberjack/Core": [ 37 | 38 | ] 39 | } 40 | }, 41 | { 42 | "name": "Core", 43 | "source_files": "Classes/DD*.{h,m}" 44 | }, 45 | { 46 | "name": "Extensions", 47 | "source_files": "Classes/Extensions/*.{h,m}", 48 | "dependencies": { 49 | "CocoaLumberjack/Default": [ 50 | 51 | ] 52 | } 53 | }, 54 | { 55 | "name": "CLI", 56 | "platforms": { 57 | "osx": "10.7" 58 | }, 59 | "source_files": "Classes/CLI/*.{h,m}", 60 | "dependencies": { 61 | "CocoaLumberjack/Default": [ 62 | 63 | ] 64 | } 65 | }, 66 | { 67 | "name": "Swift", 68 | "platforms": { 69 | "ios": "8.0", 70 | "osx": "10.10", 71 | "watchos": "2.0", 72 | "tvos": "9.0" 73 | }, 74 | "source_files": "Classes/CocoaLumberjack.swift", 75 | "dependencies": { 76 | "CocoaLumberjack/Extensions": [ 77 | 78 | ] 79 | } 80 | } 81 | ] 82 | } 83 | -------------------------------------------------------------------------------- /lib/cocoapods-core/http.rb: -------------------------------------------------------------------------------- 1 | require 'uri' 2 | 3 | module Pod 4 | # Handles HTTP requests 5 | # 6 | module HTTP 7 | # Resolve potential redirects and return the final URL. 8 | # 9 | # @return [string] 10 | # 11 | def self.get_actual_url(url, user_agent = nil) 12 | redirects = 0 13 | 14 | loop do 15 | response = perform_head_request(url, user_agent) 16 | 17 | if [301, 302, 303, 307, 308].include? response.status_code 18 | location = response.headers['location'].first 19 | 20 | if location =~ %r{://} 21 | url = location 22 | else 23 | url = URI.join(url, location).to_s 24 | end 25 | 26 | redirects += 1 27 | else 28 | break 29 | end 30 | 31 | break unless redirects < MAX_HTTP_REDIRECTS 32 | end 33 | 34 | url 35 | end 36 | 37 | # Performs validation of a URL 38 | # 39 | # @return [REST::response] 40 | # 41 | def self.validate_url(url, user_agent = nil) 42 | return nil unless url =~ /^#{URI.regexp}$/ 43 | 44 | begin 45 | url = get_actual_url(url, user_agent) 46 | resp = perform_head_request(url, user_agent) 47 | rescue SocketError, URI::InvalidURIError, REST::Error, REST::Error::Connection 48 | resp = nil 49 | end 50 | 51 | resp 52 | end 53 | 54 | #-------------------------------------------------------------------------# 55 | 56 | private 57 | 58 | # Does a HEAD request and in case of any errors a GET request 59 | # 60 | # @return [REST::response] 61 | # 62 | def self.perform_head_request(url, user_agent) 63 | require 'rest' 64 | 65 | user_agent ||= USER_AGENT 66 | 67 | resp = ::REST.head(url, 'User-Agent' => user_agent) 68 | 69 | if resp.status_code >= 400 70 | resp = ::REST.get(url, 'User-Agent' => user_agent, 71 | 'Range' => 'bytes=0-0') 72 | 73 | if resp.status_code >= 400 74 | resp = ::REST.get(url, 'User-Agent' => user_agent) 75 | end 76 | end 77 | 78 | resp 79 | end 80 | 81 | MAX_HTTP_REDIRECTS = 3 82 | USER_AGENT = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10) AppleWebKit/538.43.40 (KHTML, like Gecko) Version/8.0 Safari/538.43.40' 83 | 84 | #-------------------------------------------------------------------------# 85 | end 86 | end 87 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/d/b/4/ReactiveObjC/1.0.1/ReactiveObjC.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ReactiveObjC", 3 | "version": "1.0.1", 4 | "summary": "The 2.x ReactiveCocoa Objective-C API: Streams of values over time", 5 | "description": "ReactiveObjC (formally ReactiveCocoa or RAC) is an Objective-C\nframework inspired by [Functional Reactive Programming](\nhttp://en.wikipedia.org/wiki/Functional_reactive_programming).\nIt provides APIs for composing and **transforming streams of values**.", 6 | "homepage": "https://reactivecocoa.io", 7 | "screenshots": "https://reactivecocoa.io/img/logo.png", 8 | "license": { 9 | "type": "MIT", 10 | "file": "LICENSE.md" 11 | }, 12 | "documentation_url": "https://github.com/ReactiveCocoa/ReactiveObjC/tree/master/Documentation#readme", 13 | "authors": "ReactiveCocoa", 14 | "social_media_url": "https://twitter.com/ReactiveCocoa", 15 | "platforms": { 16 | "ios": "8.0", 17 | "osx": "10.9", 18 | "watchos": "2.0", 19 | "tvos": "9.0" 20 | }, 21 | "source": { 22 | "git": "https://github.com/ReactiveCocoa/ReactiveObjC.git", 23 | "tag": "1.0.1" 24 | }, 25 | "source_files": [ 26 | "ReactiveObjC/*.{h,m,d}", 27 | "ReactiveObjC/extobjc/*.{h,m}" 28 | ], 29 | "private_header_files": [ 30 | "**/*Private.h", 31 | "**/*EXTRuntimeExtensions.h", 32 | "**/RACEmpty*.h" 33 | ], 34 | "ios": { 35 | "exclude_files": "ReactiveObjC/**/*{AppKit,NSControl,NSText,NSTable}*" 36 | }, 37 | "osx": { 38 | "exclude_files": "ReactiveObjC/**/*{UIActionSheet,UIAlertView,UIBarButtonItem,UIButton,UICollectionReusableView,UIControl,UIDatePicker,UIGestureRecognizer,UIImagePicker,UIRefreshControl,UISegmentedControl,UISlider,UIStepper,UISwitch,UITableViewCell,UITableViewHeaderFooterView,UIText,MK}*" 39 | }, 40 | "tvos": { 41 | "exclude_files": "ReactiveObjC/**/*{AppKit,NSControl,NSText,NSTable,UIActionSheet,UIAlertView,UIDatePicker,UIImagePicker,UIRefreshControl,UISlider,UIStepper,UISwitch,MK}*" 42 | }, 43 | "watchos": { 44 | "exclude_files": "ReactiveObjC/**/*{UIActionSheet,UIAlertView,UIBarButtonItem,UIButton,UICollectionReusableView,UIControl,UIDatePicker,UIGestureRecognizer,UIImagePicker,UIRefreshControl,UISegmentedControl,UISlider,UIStepper,UISwitch,UITableViewCell,UITableViewHeaderFooterView,UIText,MK,AppKit,NSControl,NSText,NSTable,NSURLConnection}*" 45 | }, 46 | "requires_arc": true, 47 | "frameworks": "Foundation" 48 | } 49 | -------------------------------------------------------------------------------- /spec/requirement_spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path('../spec_helper', __FILE__) 2 | 3 | module Pod 4 | describe Requirement do 5 | describe 'In general' do 6 | it 'can be initialized with a string' do 7 | requirement = Requirement.new('<= 1.0') 8 | requirement.to_s.should == '<= 1.0' 9 | end 10 | 11 | it 'defaults to the equality operator on initialization' do 12 | requirement = Requirement.new('1.0') 13 | requirement.to_s.should == '= 1.0' 14 | end 15 | 16 | it 'can be initialized with an array of versions' do 17 | requirement = Requirement.new([Version.new('1.0'), Version.new('2.0')]) 18 | requirement.to_s.should == '= 1.0, = 2.0' 19 | end 20 | 21 | it 'can be initialized with a pre-release version' do 22 | requirement = Requirement.new(Version.new('1.0-beta')) 23 | requirement.to_s.should == '= 1.0-beta' 24 | end 25 | 26 | it 'raises if initialized with an invalid input' do 27 | should.raise ArgumentError do 28 | Requirement.new(Version.new('1.0!beta')) 29 | end 30 | end 31 | 32 | it 'returns the default requirement' do 33 | Requirement.default.to_s.should == '>= 0' 34 | end 35 | end 36 | 37 | #-------------------------------------------------------------------------# 38 | 39 | describe 'Create factory method' do 40 | it 'can be created with a requirement' do 41 | req = Requirement.new('<= 1.0') 42 | requirement = Requirement.create(req) 43 | requirement.should == req 44 | end 45 | 46 | it 'can be created with a version' do 47 | requirement = Requirement.create(Version.new('1.0')) 48 | requirement.to_s.should == '= 1.0' 49 | end 50 | 51 | it 'can be created with an array of versions' do 52 | requirement = Requirement.create([Version.new('1.0'), Version.new('2.0')]) 53 | requirement.to_s.should == '= 1.0, = 2.0' 54 | end 55 | 56 | it 'can be created with a string' do 57 | requirement = Requirement.create('1.0') 58 | requirement.to_s.should == '= 1.0' 59 | end 60 | 61 | it 'can be created with a nil input' do 62 | requirement = Requirement.create(nil) 63 | requirement.to_s.should == '>= 0' 64 | end 65 | end 66 | 67 | #-------------------------------------------------------------------------# 68 | end 69 | end 70 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/d/1/8/CocoaLumberjack/2.1.0/CocoaLumberjack.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CocoaLumberjack", 3 | "version": "2.1.0", 4 | "license": "BSD", 5 | "summary": "A fast & simple, yet powerful & flexible logging framework for Mac and iOS.", 6 | "homepage": "https://github.com/CocoaLumberjack/CocoaLumberjack", 7 | "authors": { 8 | "Robbie Hanson": "robbiehanson@deusty.com" 9 | }, 10 | "source": { 11 | "git": "https://github.com/CocoaLumberjack/CocoaLumberjack.git", 12 | "tag": "2.1.0" 13 | }, 14 | "description": "It is similar in concept to other popular logging frameworks such as log4j, yet is designed specifically for objective-c, and takes advantage of features such as multi-threading, grand central dispatch (if available), lockless atomic operations, and the dynamic nature of the objective-c runtime.", 15 | "requires_arc": true, 16 | "preserve_paths": [ 17 | "README.md", 18 | "Classes/CocoaLumberjack.swift", 19 | "Framework/Lumberjack/CocoaLumberjack.modulemap" 20 | ], 21 | "platforms": { 22 | "ios": "5.0", 23 | "osx": "10.7", 24 | "watchos": "2.0" 25 | }, 26 | "public_header_files": "Classes/*.h", 27 | "module_map": "Framework/Lumberjack/CocoaLumberjack.modulemap", 28 | "default_subspecs": [ 29 | "Default", 30 | "Extensions" 31 | ], 32 | "subspecs": [ 33 | { 34 | "name": "Default", 35 | "source_files": "Classes/CocoaLumberjack.{h,m}", 36 | "dependencies": { 37 | "CocoaLumberjack/Core": [ 38 | 39 | ] 40 | } 41 | }, 42 | { 43 | "name": "Core", 44 | "source_files": "Classes/DD*.{h,m}" 45 | }, 46 | { 47 | "name": "Extensions", 48 | "source_files": "Classes/Extensions/*.{h,m}", 49 | "dependencies": { 50 | "CocoaLumberjack/Default": [ 51 | 52 | ] 53 | } 54 | }, 55 | { 56 | "name": "CLI", 57 | "platforms": { 58 | "osx": "10.7" 59 | }, 60 | "source_files": "Classes/CLI/*.{h,m}", 61 | "dependencies": { 62 | "CocoaLumberjack/Default": [ 63 | 64 | ] 65 | } 66 | }, 67 | { 68 | "name": "Swift", 69 | "platforms": { 70 | "ios": "8.0", 71 | "osx": "10.10", 72 | "watchos": "2.0" 73 | }, 74 | "source_files": "Classes/CocoaLumberjack.swift", 75 | "dependencies": { 76 | "CocoaLumberjack/Extensions": [ 77 | 78 | ] 79 | } 80 | } 81 | ] 82 | } 83 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/d/1/8/CocoaLumberjack/2.1.0-rc/CocoaLumberjack.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CocoaLumberjack", 3 | "version": "2.1.0-rc", 4 | "license": "BSD", 5 | "summary": "A fast & simple, yet powerful & flexible logging framework for Mac and iOS.", 6 | "homepage": "https://github.com/CocoaLumberjack/CocoaLumberjack", 7 | "authors": { 8 | "Robbie Hanson": "robbiehanson@deusty.com" 9 | }, 10 | "source": { 11 | "git": "https://github.com/CocoaLumberjack/CocoaLumberjack.git", 12 | "tag": "2.1.0-rc" 13 | }, 14 | "description": "It is similar in concept to other popular logging frameworks such as log4j, yet is designed specifically for objective-c, and takes advantage of features such as multi-threading, grand central dispatch (if available), lockless atomic operations, and the dynamic nature of the objective-c runtime.", 15 | "requires_arc": true, 16 | "preserve_paths": [ 17 | "README.md", 18 | "Classes/CocoaLumberjack.swift", 19 | "Framework/Lumberjack/CocoaLumberjack.modulemap" 20 | ], 21 | "platforms": { 22 | "ios": "5.0", 23 | "osx": "10.7", 24 | "watchos": "2.0" 25 | }, 26 | "public_header_files": "Classes/*.h", 27 | "module_map": "Framework/Lumberjack/CocoaLumberjack.modulemap", 28 | "default_subspecs": [ 29 | "Default", 30 | "Extensions" 31 | ], 32 | "subspecs": [ 33 | { 34 | "name": "Default", 35 | "source_files": "Classes/CocoaLumberjack.{h,m}", 36 | "dependencies": { 37 | "CocoaLumberjack/Core": [ 38 | 39 | ] 40 | } 41 | }, 42 | { 43 | "name": "Core", 44 | "source_files": "Classes/DD*.{h,m}" 45 | }, 46 | { 47 | "name": "Extensions", 48 | "source_files": "Classes/Extensions/*.{h,m}", 49 | "dependencies": { 50 | "CocoaLumberjack/Default": [ 51 | 52 | ] 53 | } 54 | }, 55 | { 56 | "name": "CLI", 57 | "platforms": { 58 | "osx": "10.7" 59 | }, 60 | "source_files": "Classes/CLI/*.{h,m}", 61 | "dependencies": { 62 | "CocoaLumberjack/Default": [ 63 | 64 | ] 65 | } 66 | }, 67 | { 68 | "name": "Swift", 69 | "platforms": { 70 | "ios": "8.0", 71 | "osx": "10.10", 72 | "watchos": "2.0" 73 | }, 74 | "source_files": "Classes/CocoaLumberjack.swift", 75 | "dependencies": { 76 | "CocoaLumberjack/Extensions": [ 77 | 78 | ] 79 | } 80 | } 81 | ] 82 | } 83 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/d/1/8/CocoaLumberjack/3.0.0/CocoaLumberjack.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CocoaLumberjack", 3 | "version": "3.0.0", 4 | "license": "BSD", 5 | "summary": "A fast & simple, yet powerful & flexible logging framework for Mac and iOS.", 6 | "homepage": "https://github.com/CocoaLumberjack/CocoaLumberjack", 7 | "authors": { 8 | "Robbie Hanson": "robbiehanson@deusty.com" 9 | }, 10 | "source": { 11 | "git": "https://github.com/CocoaLumberjack/CocoaLumberjack.git", 12 | "tag": "3.0.0" 13 | }, 14 | "description": "It is similar in concept to other popular logging frameworks such as log4j, yet is designed specifically for objective-c, and takes advantage of features such as multi-threading, grand central dispatch (if available), lockless atomic operations, and the dynamic nature of the objective-c runtime.", 15 | "requires_arc": true, 16 | "preserve_paths": [ 17 | "README.md", 18 | "Classes/CocoaLumberjack.swift", 19 | "Framework/Lumberjack/CocoaLumberjack.modulemap" 20 | ], 21 | "platforms": { 22 | "ios": "5.0", 23 | "osx": "10.7", 24 | "watchos": "2.0", 25 | "tvos": "9.0" 26 | }, 27 | "default_subspecs": [ 28 | "Default", 29 | "Extensions" 30 | ], 31 | "subspecs": [ 32 | { 33 | "name": "Default", 34 | "source_files": "Classes/CocoaLumberjack.{h,m}", 35 | "dependencies": { 36 | "CocoaLumberjack/Core": [ 37 | 38 | ] 39 | } 40 | }, 41 | { 42 | "name": "Core", 43 | "source_files": "Classes/DD*.{h,m}" 44 | }, 45 | { 46 | "name": "Extensions", 47 | "source_files": "Classes/Extensions/*.{h,m}", 48 | "dependencies": { 49 | "CocoaLumberjack/Default": [ 50 | 51 | ] 52 | } 53 | }, 54 | { 55 | "name": "CLI", 56 | "platforms": { 57 | "osx": "10.7" 58 | }, 59 | "source_files": "Classes/CLI/*.{h,m}", 60 | "dependencies": { 61 | "CocoaLumberjack/Default": [ 62 | 63 | ] 64 | } 65 | }, 66 | { 67 | "name": "Swift", 68 | "platforms": { 69 | "ios": "8.0", 70 | "osx": "10.10", 71 | "watchos": "2.0", 72 | "tvos": "9.0" 73 | }, 74 | "xcconfig": { 75 | "SWIFT_VERSION": "3.0" 76 | }, 77 | "source_files": "Classes/CocoaLumberjack.swift", 78 | "dependencies": { 79 | "CocoaLumberjack/Extensions": [ 80 | 81 | ] 82 | } 83 | } 84 | ] 85 | } 86 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/d/1/8/CocoaLumberjack/2.1.0-beta/CocoaLumberjack.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CocoaLumberjack", 3 | "version": "2.1.0-beta", 4 | "license": "BSD", 5 | "summary": "A fast & simple, yet powerful & flexible logging framework for Mac and iOS.", 6 | "homepage": "https://github.com/CocoaLumberjack/CocoaLumberjack", 7 | "authors": { 8 | "Robbie Hanson": "robbiehanson@deusty.com" 9 | }, 10 | "source": { 11 | "git": "https://github.com/CocoaLumberjack/CocoaLumberjack.git", 12 | "tag": "2.1.0-beta" 13 | }, 14 | "description": "It is similar in concept to other popular logging frameworks such as log4j, yet is designed specifically for objective-c, and takes advantage of features such as multi-threading, grand central dispatch (if available), lockless atomic operations, and the dynamic nature of the objective-c runtime.", 15 | "requires_arc": true, 16 | "preserve_paths": [ 17 | "README.md", 18 | "Classes/CocoaLumberjack.swift", 19 | "Framework/Lumberjack/CocoaLumberjack.modulemap" 20 | ], 21 | "platforms": { 22 | "ios": "5.0", 23 | "osx": "10.7", 24 | "watchos": "2.0" 25 | }, 26 | "public_header_files": "Classes/*.h", 27 | "module_map": "Framework/Lumberjack/CocoaLumberjack.modulemap", 28 | "default_subspecs": [ 29 | "Default", 30 | "Extensions" 31 | ], 32 | "subspecs": [ 33 | { 34 | "name": "Default", 35 | "source_files": "Classes/CocoaLumberjack.{h,m}", 36 | "dependencies": { 37 | "CocoaLumberjack/Core": [ 38 | 39 | ] 40 | } 41 | }, 42 | { 43 | "name": "Core", 44 | "source_files": "Classes/DD*.{h,m}" 45 | }, 46 | { 47 | "name": "Extensions", 48 | "source_files": "Classes/Extensions/*.{h,m}", 49 | "dependencies": { 50 | "CocoaLumberjack/Default": [ 51 | 52 | ] 53 | } 54 | }, 55 | { 56 | "name": "CLI", 57 | "platforms": { 58 | "osx": "10.7" 59 | }, 60 | "source_files": "Classes/CLI/*.{h,m}", 61 | "dependencies": { 62 | "CocoaLumberjack/Default": [ 63 | 64 | ] 65 | } 66 | }, 67 | { 68 | "name": "Swift", 69 | "platforms": { 70 | "ios": "8.0", 71 | "osx": "10.10", 72 | "watchos": "2.0" 73 | }, 74 | "source_files": "Classes/CocoaLumberjack.swift", 75 | "dependencies": { 76 | "CocoaLumberjack/Extensions": [ 77 | 78 | ] 79 | } 80 | } 81 | ] 82 | } 83 | -------------------------------------------------------------------------------- /lib/cocoapods-core/vendor.rb: -------------------------------------------------------------------------------- 1 | module Pod 2 | # Namespaces the vendored modules. 3 | # 4 | module Vendor 5 | # Namespaces the classes of RubyGems used by CocoaPods. 6 | # 7 | # CocoaPods needs to vendor RubyGems because OS X ships with `v1.3.6` which 8 | # has a couple of bugs related to the comparison of pre-release versions. 9 | # 10 | # E.g. https://github.com/CocoaPods/CocoaPods/issues/398 11 | # 12 | # The following classes are copied from RubyGems `v2.6.3`. The changes 13 | # performed to the source files are the following: 14 | # 15 | # - Namespaced in `Pod::Vendor` 16 | # - commented all the `require` calls 17 | # - replaced `::Gem` with `Pod::Vendor::Gem` 18 | # 19 | module Gem 20 | require 'cocoapods-core/vendor/version' 21 | require 'cocoapods-core/vendor/requirement' 22 | 23 | #-----------------------------------------------------------------------# 24 | # RubyGems License # 25 | # https://github.com/rubygems/rubygems/blob/master/MIT.txt # 26 | #-----------------------------------------------------------------------# 27 | 28 | # Copyright (c) Chad Fowler, Rich Kilmer, Jim Weirich and others. 29 | # 30 | # Permission is hereby granted, free of charge, to any person obtaining 31 | # a copy of this software and associated documentation files (the 32 | # 'Software'), to deal in the Software without restriction, including 33 | # without limitation the rights to use, copy, modify, merge, publish, 34 | # distribute, sublicense, and/or sell copies of the Software, and to 35 | # permit persons to whom the Software is furnished to do so, subject to 36 | # the following conditions: 37 | # 38 | # The above copyright notice and this permission notice shall be 39 | # included in all copies or substantial portions of the Software. 40 | # 41 | # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, 42 | # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 43 | # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 44 | # IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 45 | # CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 46 | # TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 47 | # SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 48 | end 49 | end 50 | end 51 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/d/1/8/CocoaLumberjack/2.2.0/CocoaLumberjack.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CocoaLumberjack", 3 | "version": "2.2.0", 4 | "license": "BSD", 5 | "summary": "A fast & simple, yet powerful & flexible logging framework for Mac and iOS.", 6 | "homepage": "https://github.com/CocoaLumberjack/CocoaLumberjack", 7 | "authors": { 8 | "Robbie Hanson": "robbiehanson@deusty.com" 9 | }, 10 | "source": { 11 | "git": "https://github.com/CocoaLumberjack/CocoaLumberjack.git", 12 | "tag": "2.2.0" 13 | }, 14 | "description": "It is similar in concept to other popular logging frameworks such as log4j, yet is designed specifically for objective-c, and takes advantage of features such as multi-threading, grand central dispatch (if available), lockless atomic operations, and the dynamic nature of the objective-c runtime.", 15 | "requires_arc": true, 16 | "preserve_paths": [ 17 | "README.md", 18 | "Classes/CocoaLumberjack.swift", 19 | "Framework/Lumberjack/CocoaLumberjack.modulemap" 20 | ], 21 | "platforms": { 22 | "ios": "5.0", 23 | "osx": "10.7", 24 | "watchos": "2.0", 25 | "tvos": "9.0" 26 | }, 27 | "public_header_files": "Classes/*.h", 28 | "module_map": "Framework/Lumberjack/CocoaLumberjack.modulemap", 29 | "default_subspecs": [ 30 | "Default", 31 | "Extensions" 32 | ], 33 | "subspecs": [ 34 | { 35 | "name": "Default", 36 | "source_files": "Classes/CocoaLumberjack.{h,m}", 37 | "dependencies": { 38 | "CocoaLumberjack/Core": [ 39 | 40 | ] 41 | } 42 | }, 43 | { 44 | "name": "Core", 45 | "source_files": "Classes/DD*.{h,m}" 46 | }, 47 | { 48 | "name": "Extensions", 49 | "source_files": "Classes/Extensions/*.{h,m}", 50 | "dependencies": { 51 | "CocoaLumberjack/Default": [ 52 | 53 | ] 54 | } 55 | }, 56 | { 57 | "name": "CLI", 58 | "platforms": { 59 | "osx": "10.7" 60 | }, 61 | "source_files": "Classes/CLI/*.{h,m}", 62 | "dependencies": { 63 | "CocoaLumberjack/Default": [ 64 | 65 | ] 66 | } 67 | }, 68 | { 69 | "name": "Swift", 70 | "platforms": { 71 | "ios": "8.0", 72 | "osx": "10.10", 73 | "watchos": "2.0", 74 | "tvos": "9.0" 75 | }, 76 | "source_files": "Classes/CocoaLumberjack.swift", 77 | "dependencies": { 78 | "CocoaLumberjack/Extensions": [ 79 | 80 | ] 81 | } 82 | } 83 | ] 84 | } 85 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/d/1/8/CocoaLumberjack/2.3.0/CocoaLumberjack.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CocoaLumberjack", 3 | "version": "2.3.0", 4 | "license": "BSD", 5 | "summary": "A fast & simple, yet powerful & flexible logging framework for Mac and iOS.", 6 | "homepage": "https://github.com/CocoaLumberjack/CocoaLumberjack", 7 | "authors": { 8 | "Robbie Hanson": "robbiehanson@deusty.com" 9 | }, 10 | "source": { 11 | "git": "https://github.com/CocoaLumberjack/CocoaLumberjack.git", 12 | "tag": "2.3.0" 13 | }, 14 | "description": "It is similar in concept to other popular logging frameworks such as log4j, yet is designed specifically for objective-c, and takes advantage of features such as multi-threading, grand central dispatch (if available), lockless atomic operations, and the dynamic nature of the objective-c runtime.", 15 | "requires_arc": true, 16 | "preserve_paths": [ 17 | "README.md", 18 | "Classes/CocoaLumberjack.swift", 19 | "Framework/Lumberjack/CocoaLumberjack.modulemap" 20 | ], 21 | "platforms": { 22 | "ios": "5.0", 23 | "osx": "10.7", 24 | "watchos": "2.0", 25 | "tvos": "9.0" 26 | }, 27 | "public_header_files": "Classes/*.h", 28 | "module_map": "Framework/Lumberjack/CocoaLumberjack.modulemap", 29 | "default_subspecs": [ 30 | "Default", 31 | "Extensions" 32 | ], 33 | "subspecs": [ 34 | { 35 | "name": "Default", 36 | "source_files": "Classes/CocoaLumberjack.{h,m}", 37 | "dependencies": { 38 | "CocoaLumberjack/Core": [ 39 | 40 | ] 41 | } 42 | }, 43 | { 44 | "name": "Core", 45 | "source_files": "Classes/DD*.{h,m}" 46 | }, 47 | { 48 | "name": "Extensions", 49 | "source_files": "Classes/Extensions/*.{h,m}", 50 | "dependencies": { 51 | "CocoaLumberjack/Default": [ 52 | 53 | ] 54 | } 55 | }, 56 | { 57 | "name": "CLI", 58 | "platforms": { 59 | "osx": "10.7" 60 | }, 61 | "source_files": "Classes/CLI/*.{h,m}", 62 | "dependencies": { 63 | "CocoaLumberjack/Default": [ 64 | 65 | ] 66 | } 67 | }, 68 | { 69 | "name": "Swift", 70 | "platforms": { 71 | "ios": "8.0", 72 | "osx": "10.10", 73 | "watchos": "2.0", 74 | "tvos": "9.0" 75 | }, 76 | "source_files": "Classes/CocoaLumberjack.swift", 77 | "dependencies": { 78 | "CocoaLumberjack/Extensions": [ 79 | 80 | ] 81 | } 82 | } 83 | ] 84 | } 85 | -------------------------------------------------------------------------------- /spec/specification/dsl/platform_proxy_spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path('../../../spec_helper', __FILE__) 2 | 3 | module Pod 4 | describe Specification::DSL::PlatformProxy do 5 | before do 6 | @spec = Spec.new 7 | @proxy = Specification::DSL::PlatformProxy.new(@spec, :ios) 8 | end 9 | 10 | it 'forwards multi-platform attributes to the specification' do 11 | attrs = Specification::DSL.attributes.values.select(&:multi_platform?) 12 | attrs.each do |attr| 13 | @spec.expects(:store_attribute).with(attr.name, 'a_value', :ios).once 14 | @proxy.send(attr.writer_name, 'a_value') 15 | end 16 | end 17 | 18 | it 'supports the singular form of attributes' do 19 | attrs = Specification::DSL.attributes.values.select(&:multi_platform?) 20 | singular_attrs = attrs.select(&:writer_singular_form) 21 | singular_attrs.each do |attr| 22 | @spec.expects(:store_attribute).with(attr.name, 'a_value', :ios).once 23 | @proxy.send(attr.writer_singular_form, 'a_value') 24 | end 25 | end 26 | 27 | it 'does not respond to non multiplatform attributes' do 28 | attrs = Specification::DSL.attributes.values.select { |a| !a.multi_platform? } 29 | attrs.each do |attr| 30 | e = lambda { @proxy.send(attr.writer_name, 'a_value') }.should.raise NoMethodError 31 | e.message.should.include "`#{attr.name}` cannot be set per-platform" 32 | end 33 | end 34 | 35 | it 'does not respond to platform=' do 36 | lambda { @proxy.platform = :ios, '9.0' }.should.raise NoMethodError 37 | end 38 | 39 | it 'allows to specify a dependency' do 40 | @proxy.dependency('A-pod', '~> 1.0') 41 | @spec.attributes_hash['ios']['dependencies'].should == { 42 | 'A-pod' => ['~> 1.0'], 43 | } 44 | end 45 | 46 | it 'allows to specify a dependency without version requirements' do 47 | @proxy.dependency('A-pod') 48 | @spec.attributes_hash['ios']['dependencies'].should == { 49 | 'A-pod' => [], 50 | } 51 | end 52 | 53 | it 'allows to specify a dependency with multiple version requirements' do 54 | @proxy.dependency('A-pod', '~> 1.0', '< 2.0') 55 | @spec.attributes_hash['ios']['dependencies'].should == { 56 | 'A-pod' => ['~> 1.0', '< 2.0'], 57 | } 58 | end 59 | 60 | it 'allows to declare the deployment target' do 61 | @proxy.deployment_target = '6.0' 62 | @spec.attributes_hash['platforms']['ios'].should == '6.0' 63 | end 64 | end 65 | end 66 | -------------------------------------------------------------------------------- /spec/fixtures/Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - AFNetworking (2.0.3): 3 | - AFNetworking/NSURLConnection 4 | - AFNetworking/NSURLSession 5 | - AFNetworking/Reachability 6 | - AFNetworking/Security 7 | - AFNetworking/Serialization 8 | - AFNetworking/UIKit 9 | - AFNetworking/NSURLConnection (2.0.3): 10 | - AFNetworking/Reachability 11 | - AFNetworking/Security 12 | - AFNetworking/Serialization 13 | - AFNetworking/NSURLSession (2.0.3): 14 | - AFNetworking/NSURLConnection 15 | - AFNetworking/Reachability (2.0.3) 16 | - AFNetworking/Security (2.0.3) 17 | - AFNetworking/Serialization (2.0.3) 18 | - AFNetworking/UIKit (2.0.3): 19 | - AFNetworking/NSURLConnection 20 | - AGPhotoBrowser (1.0.6) 21 | - BButton (3.2.3) 22 | - Bolts (1.1.0) 23 | - Facebook-iOS-SDK (3.15.0): 24 | - Bolts 25 | - FXBlurView (1.4.4) 26 | - HPGrowingTextView (1.0.1) 27 | - MBProgressHUD (0.8) 28 | - Mixpanel (2.3.6) 29 | - pop (1.0.5) 30 | - SBJson (3.2) 31 | - SDWebImage (3.5.4): 32 | - SDWebImage/Core 33 | - SDWebImage/Core (3.5.4) 34 | - SVProgressHUD (HEAD based on 1.0) 35 | - SVPullToRefresh (0.4.1) 36 | - TestFlightSDK (3.0.2) 37 | 38 | DEPENDENCIES: 39 | - AFNetworking (~> 2.0.1) 40 | - AGPhotoBrowser (~> 1.0.2) 41 | - BButton (~> 3.2.3) 42 | - Facebook-iOS-SDK (~> 3.14) 43 | - FXBlurView (~> 1.4.4) 44 | - HPGrowingTextView (~> 1.0.1) 45 | - MBProgressHUD (~> 0.8) 46 | - Mixpanel (~> 2.3.1) 47 | - pop (~> 1.0) 48 | - SBJson (~> 3.2) 49 | - SDWebImage (~> 3.5.2) 50 | - SVProgressHUD (HEAD) 51 | - SVPullToRefresh (~> 0.4) 52 | - TestFlightSDK (~> 3.0) 53 | 54 | SPEC CHECKSUMS: 55 | AFNetworking: a4d0e9a64de9242986620dafd1b3cee3b413ac5c 56 | AGPhotoBrowser: 04ae5368da3ab003e2c27ac1058bd01d64858893 57 | BButton: 3aa14643d262a5ca62012462d3e27c6bbe843c85 58 | Bolts: 91c2af8eae1d44e1dd75946a5b0ae04a43ea43e4 59 | Facebook-iOS-SDK: d67a9aa373f28b581e00cefdfd5a1ab8f883ac14 60 | FXBlurView: 74d89486a2c93dbfed58f8e06ce5ae8b4c2ff92b 61 | HPGrowingTextView: 58b5caa61ff7f3d53b197d9da0361b1c7e09b110 62 | MBProgressHUD: c356980b0cd097f19acec959b49dca5eb8ec31be 63 | Mixpanel: 9aba38257fc4d2777ab5db1afc55e22bdfd57a4a 64 | pop: 75fa2b33934200a8a68abb449ac1726fcf7e43b9 65 | SBJson: 72d7da8a5bf6c236e87194abb10ac573a8bccbef 66 | SDWebImage: 571295c8acbb699505a0f68e54506147c3de9ea7 67 | SVProgressHUD: 5034c6e22b8c2ca3e09402e48d41ed0340aa1c50 68 | SVPullToRefresh: d5161ebc833a38b465364412e5e307ca80bbb190 69 | TestFlightSDK: 0c24c533748d0d84bfe7a3cb6036fa79124d84ee 70 | 71 | COCOAPODS: 0.33.1 72 | -------------------------------------------------------------------------------- /lib/cocoapods-core/specification/dsl/attribute_support.rb: -------------------------------------------------------------------------------- 1 | module Pod 2 | class Specification 3 | module DSL 4 | # @return [Array] The attributes of the class. 5 | # 6 | class << self 7 | attr_reader :attributes 8 | end 9 | 10 | # This module provides support for storing the runtime information of the 11 | # {Specification} DSL. 12 | # 13 | module AttributeSupport 14 | # Defines a root attribute for the extended class. 15 | # 16 | # Root attributes make sense only in root specification, they never are 17 | # multi-platform, they don't have inheritance, and they never have a 18 | # default value. 19 | # 20 | # @param [Symbol, String] name 21 | # The name of the attribute. 22 | # 23 | # @param [Hash] options 24 | # The options used to initialize the attribute. 25 | # 26 | # @return [void] 27 | # 28 | def root_attribute(name, options = {}) 29 | options[:root_only] = true 30 | options[:multi_platform] = false 31 | store_attribute(name, options) 32 | end 33 | 34 | # Defines an attribute for the extended class. 35 | # 36 | # Regular attributes in general support inheritance and multi-platform 37 | # values, so resolving them for a given specification is not trivial. 38 | # 39 | # @param [Symbol, String] name 40 | # The name of the attribute. 41 | # 42 | # @param [Hash] options 43 | # The options used to initialize the attribute. 44 | # 45 | # @return [void] 46 | # 47 | def attribute(name, options = {}) 48 | store_attribute(name, options) 49 | end 50 | 51 | #---------------------------------------------------------------------# 52 | 53 | # Creates an attribute with the given name and options and stores it in 54 | # the {DSL.attributes} hash. 55 | # 56 | # @param [String] name 57 | # The name of the attribute. 58 | # 59 | # @param [Hash] options 60 | # The options used to initialize the attribute. 61 | # 62 | # @return [void] 63 | # 64 | # @visibility private 65 | # 66 | def store_attribute(name, options) 67 | attr = Attribute.new(name, options) 68 | @attributes ||= {} 69 | @attributes[name] = attr 70 | end 71 | end 72 | end 73 | end 74 | end 75 | -------------------------------------------------------------------------------- /spec/fixtures/PodfileWithIncorrectYAML.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - AFNetworking (2.0.3): 3 | - AFNetworking/NSURLConnection 4 | - AFNetworking/NSURLSession 5 | - AFNetworking/Reachability 6 | - AFNetworking/Security 7 | - AFNetworking/Serialization 8 | - AFNetworking/UIKit 9 | - AFNetworking/NSURLConnection (2.0.3): 10 | - AFNetworking/Reachability 11 | - AFNetworking/Security 12 | - AFNetworking/Serialization 13 | ~~~Gibberish!~~~~ 14 | - AFNetworking/NSURLSession (2.0.3): 15 | - AFNetworking/NSURLConnection 16 | - AFNetworking/Reachability (2.0.3) 17 | - AFNetworking/Security (2.0.3) 18 | - AFNetworking/Serialization (2.0.3) 19 | - AFNetworking/UIKit (2.0.3): 20 | - AFNetworking/NSURLConnection 21 | - AGPhotoBrowser (1.0.6) 22 | - BButton (3.2.3) 23 | - Bolts (1.1.0) 24 | - Facebook-iOS-SDK (3.15.0): 25 | - Bolts 26 | - FXBlurView (1.4.4) 27 | - HPGrowingTextView (1.0.1) 28 | - MBProgressHUD (0.8) 29 | - Mixpanel (2.3.6) 30 | - pop (1.0.5) 31 | - SBJson (3.2) 32 | - SDWebImage (3.5.4): 33 | - SDWebImage/Core 34 | - SDWebImage/Core (3.5.4) 35 | - SVProgressHUD (HEAD based on 1.0) 36 | - SVPullToRefresh (0.4.1) 37 | - TestFlightSDK (3.0.2) 38 | 39 | DEPENDENCIES: 40 | - AFNetworking (~> 2.0.1) 41 | - AGPhotoBrowser (~> 1.0.2) 42 | - BButton (~> 3.2.3) 43 | - Facebook-iOS-SDK (~> 3.14) 44 | - FXBlurView (~> 1.4.4) 45 | - HPGrowingTextView (~> 1.0.1) 46 | - MBProgressHUD (~> 0.8) 47 | - Mixpanel (~> 2.3.1) 48 | - pop (~> 1.0) 49 | - SBJson (~> 3.2) 50 | - SDWebImage (~> 3.5.2) 51 | - SVProgressHUD (HEAD) 52 | - SVPullToRefresh (~> 0.4) 53 | - TestFlightSDK (~> 3.0) 54 | 55 | SPEC CHECKSUMS: 56 | AFNetworking: a4d0e9a64de9242986620dafd1b3cee3b413ac5c 57 | AGPhotoBrowser: 04ae5368da3ab003e2c27ac1058bd01d64858893 58 | BButton: 3aa14643d262a5ca62012462d3e27c6bbe843c85 59 | Bolts: 91c2af8eae1d44e1dd75946a5b0ae04a43ea43e4 60 | Facebook-iOS-SDK: d67a9aa373f28b581e00cefdfd5a1ab8f883ac14 61 | FXBlurView: 74d89486a2c93dbfed58f8e06ce5ae8b4c2ff92b 62 | HPGrowingTextView: 58b5caa61ff7f3d53b197d9da0361b1c7e09b110 63 | MBProgressHUD: c356980b0cd097f19acec959b49dca5eb8ec31be 64 | Mixpanel: 9aba38257fc4d2777ab5db1afc55e22bdfd57a4a 65 | pop: 75fa2b33934200a8a68abb449ac1726fcf7e43b9 66 | SBJson: 72d7da8a5bf6c236e87194abb10ac573a8bccbef 67 | SDWebImage: 571295c8acbb699505a0f68e54506147c3de9ea7 68 | SVProgressHUD: 5034c6e22b8c2ca3e09402e48d41ed0340aa1c50 69 | SVPullToRefresh: d5161ebc833a38b465364412e5e307ca80bbb190 70 | TestFlightSDK: 0c24c533748d0d84bfe7a3cb6036fa79124d84ee 71 | 72 | COCOAPODS: 0.33.1 -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/d/1/8/CocoaLumberjack/3.4.2/CocoaLumberjack.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CocoaLumberjack", 3 | "version": "3.4.2", 4 | "license": "BSD", 5 | "summary": "A fast & simple, yet powerful & flexible logging framework for Mac and iOS.", 6 | "homepage": "https://github.com/CocoaLumberjack/CocoaLumberjack", 7 | "authors": { 8 | "Robbie Hanson": "robbiehanson@deusty.com" 9 | }, 10 | "source": { 11 | "git": "https://github.com/CocoaLumberjack/CocoaLumberjack.git", 12 | "tag": "3.4.2" 13 | }, 14 | "description": "It is similar in concept to other popular logging frameworks such as log4j, yet is designed specifically for objective-c, and takes advantage of features such as multi-threading, grand central dispatch (if available), lockless atomic operations, and the dynamic nature of the objective-c runtime.", 15 | "requires_arc": true, 16 | "preserve_paths": [ 17 | "README.md", 18 | "Classes/CocoaLumberjack.swift", 19 | "Framework/Lumberjack/CocoaLumberjack.modulemap" 20 | ], 21 | "platforms": { 22 | "ios": "6.0", 23 | "osx": "10.8", 24 | "watchos": "2.0", 25 | "tvos": "9.0" 26 | }, 27 | "default_subspecs": [ 28 | "Default", 29 | "Extensions" 30 | ], 31 | "subspecs": [ 32 | { 33 | "name": "Default", 34 | "source_files": [ 35 | "Classes/CocoaLumberjack.h", 36 | "Classes/DD*.{h,m}" 37 | ], 38 | "public_header_files": [ 39 | "Classes/CocoaLumberjack.h", 40 | "Classes/DD*.h" 41 | ] 42 | }, 43 | { 44 | "name": "Core", 45 | "source_files": "Classes/DD*.{h,m}", 46 | "public_header_files": "Classes/DD*.h" 47 | }, 48 | { 49 | "name": "Extensions", 50 | "dependencies": { 51 | "CocoaLumberjack/Default": [ 52 | 53 | ] 54 | }, 55 | "source_files": "Classes/Extensions/*.{h,m}", 56 | "public_header_files": "Classes/Extensions/*.h" 57 | }, 58 | { 59 | "name": "CLI", 60 | "platforms": { 61 | "osx": "10.8" 62 | }, 63 | "osx": { 64 | "dependencies": { 65 | "CocoaLumberjack/Default": [ 66 | 67 | ] 68 | }, 69 | "source_files": "Classes/CLI/*.{h,m}", 70 | "public_header_files": "Classes/CLI/*.h" 71 | } 72 | }, 73 | { 74 | "name": "Swift", 75 | "platforms": { 76 | "ios": "8.0", 77 | "osx": "10.10", 78 | "watchos": "2.0", 79 | "tvos": "9.0" 80 | }, 81 | "dependencies": { 82 | "CocoaLumberjack/Default": [ 83 | 84 | ] 85 | }, 86 | "source_files": "Classes/CocoaLumberjack.swift" 87 | } 88 | ] 89 | } 90 | -------------------------------------------------------------------------------- /spec/fixtures/lint_podspec/RestKit.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | s.name = 'RestKit' 3 | s.version = '0.20.1' 4 | s.summary = 'RestKit is a framework for consuming and modeling RESTful web resources on iOS and OS X.' 5 | s.homepage = 'http://www.restkit.org' 6 | s.author = { 'Blake Watters' => 'blakewatters@gmail.com' } 7 | s.source = { :git => 'https://github.com/RestKit/RestKit.git', :tag => 'v0.20.1' } 8 | s.license = 'Apache License, Version 2.0' 9 | 10 | # Platform setup 11 | s.requires_arc = true 12 | s.ios.deployment_target = '5.0' 13 | s.osx.deployment_target = '10.7' 14 | 15 | # Exclude optional Search and Testing modules 16 | s.default_subspec = 'Core' 17 | 18 | # Add Core Data to the PCH (This should be part of the Core Data Subspec, but CocoaPods does not allow) 19 | s.prefix_header_contents = <<-EOS 20 | #ifdef __OBJC__ 21 | #import 22 | #endif /* __OBJC__*/ 23 | EOS 24 | 25 | ### Subspecs 26 | 27 | s.subspec 'Core' do |cs| 28 | cs.source_files = 'Code/*.h', 'Vendor/LibComponentLogging/Core', 'Vendor/LibComponentLogging/NSLog' 29 | cs.header_dir = 'RestKit' 30 | 31 | cs.dependency 'RestKit/ObjectMapping' 32 | cs.dependency 'RestKit/Network' 33 | cs.dependency 'RestKit/CoreData' 34 | end 35 | 36 | s.subspec 'ObjectMapping' do |os| 37 | os.header_dir = 'RestKit/ObjectMapping' 38 | os.source_files = 'Code/ObjectMapping' 39 | end 40 | 41 | s.subspec 'Network' do |ns| 42 | ns.header_dir = 'RestKit/Network' 43 | ns.source_files = 'Code/Network' 44 | ns.ios.frameworks = 'CFNetwork', 'Security', 'MobileCoreServices', 'SystemConfiguration' 45 | ns.osx.frameworks = 'CoreServices', 'Security', 'SystemConfiguration' 46 | ns.dependency 'SOCKit' 47 | ns.dependency 'AFNetworking', '~> 1.2.0' 48 | ns.dependency 'RestKit/ObjectMapping' 49 | ns.dependency 'RestKit/Support' 50 | end 51 | 52 | s.subspec 'CoreData' do |cdos| 53 | cdos.header_dir = 'RestKit/CoreData' 54 | cdos.source_files = 'Code/CoreData' 55 | cdos.frameworks = 'CoreData' 56 | end 57 | 58 | s.subspec 'Testing' do |ts| 59 | ts.header_dir = 'RestKit/Testing' 60 | ts.source_files = 'Code/Testing' 61 | end 62 | 63 | s.subspec 'Search' do |ss| 64 | ss.header_dir = 'RestKit/Search' 65 | ss.source_files = 'Code/Search' 66 | ss.dependency 'RestKit/CoreData' 67 | end 68 | 69 | s.subspec 'Support' do |ss| 70 | ss.header_dir = 'RestKit/Support' 71 | ss.source_files = 'Code/Support' 72 | ss.dependency 'TransitionKit', '1.1.0' 73 | end 74 | end 75 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/d/1/8/CocoaLumberjack/3.1.0/CocoaLumberjack.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CocoaLumberjack", 3 | "version": "3.1.0", 4 | "license": "BSD", 5 | "summary": "A fast & simple, yet powerful & flexible logging framework for Mac and iOS.", 6 | "homepage": "https://github.com/CocoaLumberjack/CocoaLumberjack", 7 | "authors": { 8 | "Robbie Hanson": "robbiehanson@deusty.com" 9 | }, 10 | "source": { 11 | "git": "https://github.com/CocoaLumberjack/CocoaLumberjack.git", 12 | "tag": "3.1.0" 13 | }, 14 | "description": "It is similar in concept to other popular logging frameworks such as log4j, yet is designed specifically for objective-c, and takes advantage of features such as multi-threading, grand central dispatch (if available), lockless atomic operations, and the dynamic nature of the objective-c runtime.", 15 | "requires_arc": true, 16 | "preserve_paths": [ 17 | "README.md", 18 | "Classes/CocoaLumberjack.swift", 19 | "Framework/Lumberjack/CocoaLumberjack.modulemap" 20 | ], 21 | "platforms": { 22 | "ios": "5.0", 23 | "osx": "10.7", 24 | "watchos": "2.0", 25 | "tvos": "9.0" 26 | }, 27 | "default_subspecs": [ 28 | "Default", 29 | "Extensions" 30 | ], 31 | "pushed_with_swift_version": "3.0.1", 32 | "subspecs": [ 33 | { 34 | "name": "Default", 35 | "source_files": [ 36 | "Classes/CocoaLumberjack.h", 37 | "Classes/DD*.{h,m}" 38 | ], 39 | "public_header_files": [ 40 | "Classes/CocoaLumberjack.h", 41 | "Classes/DD*.h" 42 | ] 43 | }, 44 | { 45 | "name": "Core", 46 | "source_files": "Classes/DD*.{h,m}", 47 | "public_header_files": "Classes/DD*.h" 48 | }, 49 | { 50 | "name": "Extensions", 51 | "dependencies": { 52 | "CocoaLumberjack/Default": [ 53 | 54 | ] 55 | }, 56 | "source_files": "Classes/Extensions/*.{h,m}", 57 | "public_header_files": "Classes/Extensions/*.h" 58 | }, 59 | { 60 | "name": "CLI", 61 | "platforms": { 62 | "osx": "10.7" 63 | }, 64 | "osx": { 65 | "dependencies": { 66 | "CocoaLumberjack/Default": [ 67 | 68 | ] 69 | }, 70 | "source_files": "Classes/CLI/*.{h,m}", 71 | "public_header_files": "Classes/CLI/*.h" 72 | } 73 | }, 74 | { 75 | "name": "Swift", 76 | "platforms": { 77 | "ios": "8.0", 78 | "osx": "10.10", 79 | "watchos": "2.0", 80 | "tvos": "9.0" 81 | }, 82 | "dependencies": { 83 | "CocoaLumberjack/Default": [ 84 | 85 | ] 86 | }, 87 | "source_files": "Classes/CocoaLumberjack.swift" 88 | } 89 | ] 90 | } 91 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/d/1/8/CocoaLumberjack/3.2.0/CocoaLumberjack.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CocoaLumberjack", 3 | "version": "3.2.0", 4 | "license": "BSD", 5 | "summary": "A fast & simple, yet powerful & flexible logging framework for Mac and iOS.", 6 | "homepage": "https://github.com/CocoaLumberjack/CocoaLumberjack", 7 | "authors": { 8 | "Robbie Hanson": "robbiehanson@deusty.com" 9 | }, 10 | "source": { 11 | "git": "https://github.com/CocoaLumberjack/CocoaLumberjack.git", 12 | "tag": "3.2.0" 13 | }, 14 | "description": "It is similar in concept to other popular logging frameworks such as log4j, yet is designed specifically for objective-c, and takes advantage of features such as multi-threading, grand central dispatch (if available), lockless atomic operations, and the dynamic nature of the objective-c runtime.", 15 | "requires_arc": true, 16 | "preserve_paths": [ 17 | "README.md", 18 | "Classes/CocoaLumberjack.swift", 19 | "Framework/Lumberjack/CocoaLumberjack.modulemap" 20 | ], 21 | "platforms": { 22 | "ios": "5.0", 23 | "osx": "10.7", 24 | "watchos": "2.0", 25 | "tvos": "9.0" 26 | }, 27 | "default_subspecs": [ 28 | "Default", 29 | "Extensions" 30 | ], 31 | "pushed_with_swift_version": "3.0", 32 | "subspecs": [ 33 | { 34 | "name": "Default", 35 | "source_files": [ 36 | "Classes/CocoaLumberjack.h", 37 | "Classes/DD*.{h,m}" 38 | ], 39 | "public_header_files": [ 40 | "Classes/CocoaLumberjack.h", 41 | "Classes/DD*.h" 42 | ] 43 | }, 44 | { 45 | "name": "Core", 46 | "source_files": "Classes/DD*.{h,m}", 47 | "public_header_files": "Classes/DD*.h" 48 | }, 49 | { 50 | "name": "Extensions", 51 | "dependencies": { 52 | "CocoaLumberjack/Default": [ 53 | 54 | ] 55 | }, 56 | "source_files": "Classes/Extensions/*.{h,m}", 57 | "public_header_files": "Classes/Extensions/*.h" 58 | }, 59 | { 60 | "name": "CLI", 61 | "platforms": { 62 | "osx": "10.7" 63 | }, 64 | "osx": { 65 | "dependencies": { 66 | "CocoaLumberjack/Default": [ 67 | 68 | ] 69 | }, 70 | "source_files": "Classes/CLI/*.{h,m}", 71 | "public_header_files": "Classes/CLI/*.h" 72 | } 73 | }, 74 | { 75 | "name": "Swift", 76 | "platforms": { 77 | "ios": "8.0", 78 | "osx": "10.10", 79 | "watchos": "2.0", 80 | "tvos": "9.0" 81 | }, 82 | "dependencies": { 83 | "CocoaLumberjack/Default": [ 84 | 85 | ] 86 | }, 87 | "source_files": "Classes/CocoaLumberjack.swift" 88 | } 89 | ] 90 | } 91 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/d/1/8/CocoaLumberjack/3.2.1/CocoaLumberjack.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CocoaLumberjack", 3 | "version": "3.2.1", 4 | "license": "BSD", 5 | "summary": "A fast & simple, yet powerful & flexible logging framework for Mac and iOS.", 6 | "homepage": "https://github.com/CocoaLumberjack/CocoaLumberjack", 7 | "authors": { 8 | "Robbie Hanson": "robbiehanson@deusty.com" 9 | }, 10 | "source": { 11 | "git": "https://github.com/CocoaLumberjack/CocoaLumberjack.git", 12 | "tag": "3.2.1" 13 | }, 14 | "description": "It is similar in concept to other popular logging frameworks such as log4j, yet is designed specifically for objective-c, and takes advantage of features such as multi-threading, grand central dispatch (if available), lockless atomic operations, and the dynamic nature of the objective-c runtime.", 15 | "requires_arc": true, 16 | "preserve_paths": [ 17 | "README.md", 18 | "Classes/CocoaLumberjack.swift", 19 | "Framework/Lumberjack/CocoaLumberjack.modulemap" 20 | ], 21 | "platforms": { 22 | "ios": "5.0", 23 | "osx": "10.7", 24 | "watchos": "2.0", 25 | "tvos": "9.0" 26 | }, 27 | "default_subspecs": [ 28 | "Default", 29 | "Extensions" 30 | ], 31 | "pushed_with_swift_version": "3.0", 32 | "subspecs": [ 33 | { 34 | "name": "Default", 35 | "source_files": [ 36 | "Classes/CocoaLumberjack.h", 37 | "Classes/DD*.{h,m}" 38 | ], 39 | "public_header_files": [ 40 | "Classes/CocoaLumberjack.h", 41 | "Classes/DD*.h" 42 | ] 43 | }, 44 | { 45 | "name": "Core", 46 | "source_files": "Classes/DD*.{h,m}", 47 | "public_header_files": "Classes/DD*.h" 48 | }, 49 | { 50 | "name": "Extensions", 51 | "dependencies": { 52 | "CocoaLumberjack/Default": [ 53 | 54 | ] 55 | }, 56 | "source_files": "Classes/Extensions/*.{h,m}", 57 | "public_header_files": "Classes/Extensions/*.h" 58 | }, 59 | { 60 | "name": "CLI", 61 | "platforms": { 62 | "osx": "10.7" 63 | }, 64 | "osx": { 65 | "dependencies": { 66 | "CocoaLumberjack/Default": [ 67 | 68 | ] 69 | }, 70 | "source_files": "Classes/CLI/*.{h,m}", 71 | "public_header_files": "Classes/CLI/*.h" 72 | } 73 | }, 74 | { 75 | "name": "Swift", 76 | "platforms": { 77 | "ios": "8.0", 78 | "osx": "10.10", 79 | "watchos": "2.0", 80 | "tvos": "9.0" 81 | }, 82 | "dependencies": { 83 | "CocoaLumberjack/Default": [ 84 | 85 | ] 86 | }, 87 | "source_files": "Classes/CocoaLumberjack.swift" 88 | } 89 | ] 90 | } 91 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/d/1/8/CocoaLumberjack/3.3.0/CocoaLumberjack.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CocoaLumberjack", 3 | "version": "3.3.0", 4 | "license": "BSD", 5 | "summary": "A fast & simple, yet powerful & flexible logging framework for Mac and iOS.", 6 | "homepage": "https://github.com/CocoaLumberjack/CocoaLumberjack", 7 | "authors": { 8 | "Robbie Hanson": "robbiehanson@deusty.com" 9 | }, 10 | "source": { 11 | "git": "https://github.com/CocoaLumberjack/CocoaLumberjack.git", 12 | "tag": "3.3.0" 13 | }, 14 | "description": "It is similar in concept to other popular logging frameworks such as log4j, yet is designed specifically for objective-c, and takes advantage of features such as multi-threading, grand central dispatch (if available), lockless atomic operations, and the dynamic nature of the objective-c runtime.", 15 | "requires_arc": true, 16 | "preserve_paths": [ 17 | "README.md", 18 | "Classes/CocoaLumberjack.swift", 19 | "Framework/Lumberjack/CocoaLumberjack.modulemap" 20 | ], 21 | "platforms": { 22 | "ios": "5.0", 23 | "osx": "10.7", 24 | "watchos": "2.0", 25 | "tvos": "9.0" 26 | }, 27 | "default_subspecs": [ 28 | "Default", 29 | "Extensions" 30 | ], 31 | "pushed_with_swift_version": "3.0", 32 | "subspecs": [ 33 | { 34 | "name": "Default", 35 | "source_files": [ 36 | "Classes/CocoaLumberjack.h", 37 | "Classes/DD*.{h,m}" 38 | ], 39 | "public_header_files": [ 40 | "Classes/CocoaLumberjack.h", 41 | "Classes/DD*.h" 42 | ] 43 | }, 44 | { 45 | "name": "Core", 46 | "source_files": "Classes/DD*.{h,m}", 47 | "public_header_files": "Classes/DD*.h" 48 | }, 49 | { 50 | "name": "Extensions", 51 | "dependencies": { 52 | "CocoaLumberjack/Default": [ 53 | 54 | ] 55 | }, 56 | "source_files": "Classes/Extensions/*.{h,m}", 57 | "public_header_files": "Classes/Extensions/*.h" 58 | }, 59 | { 60 | "name": "CLI", 61 | "platforms": { 62 | "osx": "10.7" 63 | }, 64 | "osx": { 65 | "dependencies": { 66 | "CocoaLumberjack/Default": [ 67 | 68 | ] 69 | }, 70 | "source_files": "Classes/CLI/*.{h,m}", 71 | "public_header_files": "Classes/CLI/*.h" 72 | } 73 | }, 74 | { 75 | "name": "Swift", 76 | "platforms": { 77 | "ios": "8.0", 78 | "osx": "10.10", 79 | "watchos": "2.0", 80 | "tvos": "9.0" 81 | }, 82 | "dependencies": { 83 | "CocoaLumberjack/Default": [ 84 | 85 | ] 86 | }, 87 | "source_files": "Classes/CocoaLumberjack.swift" 88 | } 89 | ] 90 | } 91 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/d/1/8/CocoaLumberjack/3.4.0/CocoaLumberjack.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CocoaLumberjack", 3 | "version": "3.4.0", 4 | "license": "BSD", 5 | "summary": "A fast & simple, yet powerful & flexible logging framework for Mac and iOS.", 6 | "homepage": "https://github.com/CocoaLumberjack/CocoaLumberjack", 7 | "authors": { 8 | "Robbie Hanson": "robbiehanson@deusty.com" 9 | }, 10 | "source": { 11 | "git": "https://github.com/CocoaLumberjack/CocoaLumberjack.git", 12 | "tag": "3.4.0" 13 | }, 14 | "description": "It is similar in concept to other popular logging frameworks such as log4j, yet is designed specifically for objective-c, and takes advantage of features such as multi-threading, grand central dispatch (if available), lockless atomic operations, and the dynamic nature of the objective-c runtime.", 15 | "requires_arc": true, 16 | "preserve_paths": [ 17 | "README.md", 18 | "Classes/CocoaLumberjack.swift", 19 | "Framework/Lumberjack/CocoaLumberjack.modulemap" 20 | ], 21 | "platforms": { 22 | "ios": "6.0", 23 | "osx": "10.8", 24 | "watchos": "2.0", 25 | "tvos": "9.0" 26 | }, 27 | "default_subspecs": [ 28 | "Default", 29 | "Extensions" 30 | ], 31 | "pushed_with_swift_version": "4.0", 32 | "subspecs": [ 33 | { 34 | "name": "Default", 35 | "source_files": [ 36 | "Classes/CocoaLumberjack.h", 37 | "Classes/DD*.{h,m}" 38 | ], 39 | "public_header_files": [ 40 | "Classes/CocoaLumberjack.h", 41 | "Classes/DD*.h" 42 | ] 43 | }, 44 | { 45 | "name": "Core", 46 | "source_files": "Classes/DD*.{h,m}", 47 | "public_header_files": "Classes/DD*.h" 48 | }, 49 | { 50 | "name": "Extensions", 51 | "dependencies": { 52 | "CocoaLumberjack/Default": [ 53 | 54 | ] 55 | }, 56 | "source_files": "Classes/Extensions/*.{h,m}", 57 | "public_header_files": "Classes/Extensions/*.h" 58 | }, 59 | { 60 | "name": "CLI", 61 | "platforms": { 62 | "osx": "10.8" 63 | }, 64 | "osx": { 65 | "dependencies": { 66 | "CocoaLumberjack/Default": [ 67 | 68 | ] 69 | }, 70 | "source_files": "Classes/CLI/*.{h,m}", 71 | "public_header_files": "Classes/CLI/*.h" 72 | } 73 | }, 74 | { 75 | "name": "Swift", 76 | "platforms": { 77 | "ios": "8.0", 78 | "osx": "10.10", 79 | "watchos": "2.0", 80 | "tvos": "9.0" 81 | }, 82 | "dependencies": { 83 | "CocoaLumberjack/Default": [ 84 | 85 | ] 86 | }, 87 | "source_files": "Classes/CocoaLumberjack.swift" 88 | } 89 | ] 90 | } 91 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/d/1/8/CocoaLumberjack/3.4.1/CocoaLumberjack.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CocoaLumberjack", 3 | "version": "3.4.1", 4 | "license": "BSD", 5 | "summary": "A fast & simple, yet powerful & flexible logging framework for Mac and iOS.", 6 | "homepage": "https://github.com/CocoaLumberjack/CocoaLumberjack", 7 | "authors": { 8 | "Robbie Hanson": "robbiehanson@deusty.com" 9 | }, 10 | "source": { 11 | "git": "https://github.com/CocoaLumberjack/CocoaLumberjack.git", 12 | "tag": "3.4.1" 13 | }, 14 | "description": "It is similar in concept to other popular logging frameworks such as log4j, yet is designed specifically for objective-c, and takes advantage of features such as multi-threading, grand central dispatch (if available), lockless atomic operations, and the dynamic nature of the objective-c runtime.", 15 | "requires_arc": true, 16 | "preserve_paths": [ 17 | "README.md", 18 | "Classes/CocoaLumberjack.swift", 19 | "Framework/Lumberjack/CocoaLumberjack.modulemap" 20 | ], 21 | "platforms": { 22 | "ios": "6.0", 23 | "osx": "10.8", 24 | "watchos": "2.0", 25 | "tvos": "9.0" 26 | }, 27 | "default_subspecs": [ 28 | "Default", 29 | "Extensions" 30 | ], 31 | "pushed_with_swift_version": "4.0", 32 | "subspecs": [ 33 | { 34 | "name": "Default", 35 | "source_files": [ 36 | "Classes/CocoaLumberjack.h", 37 | "Classes/DD*.{h,m}" 38 | ], 39 | "public_header_files": [ 40 | "Classes/CocoaLumberjack.h", 41 | "Classes/DD*.h" 42 | ] 43 | }, 44 | { 45 | "name": "Core", 46 | "source_files": "Classes/DD*.{h,m}", 47 | "public_header_files": "Classes/DD*.h" 48 | }, 49 | { 50 | "name": "Extensions", 51 | "dependencies": { 52 | "CocoaLumberjack/Default": [ 53 | 54 | ] 55 | }, 56 | "source_files": "Classes/Extensions/*.{h,m}", 57 | "public_header_files": "Classes/Extensions/*.h" 58 | }, 59 | { 60 | "name": "CLI", 61 | "platforms": { 62 | "osx": "10.8" 63 | }, 64 | "osx": { 65 | "dependencies": { 66 | "CocoaLumberjack/Default": [ 67 | 68 | ] 69 | }, 70 | "source_files": "Classes/CLI/*.{h,m}", 71 | "public_header_files": "Classes/CLI/*.h" 72 | } 73 | }, 74 | { 75 | "name": "Swift", 76 | "platforms": { 77 | "ios": "8.0", 78 | "osx": "10.10", 79 | "watchos": "2.0", 80 | "tvos": "9.0" 81 | }, 82 | "dependencies": { 83 | "CocoaLumberjack/Default": [ 84 | 85 | ] 86 | }, 87 | "source_files": "Classes/CocoaLumberjack.swift" 88 | } 89 | ] 90 | } 91 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/d/b/4/ReactiveObjC/1.0.2/ReactiveObjC.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ReactiveObjC", 3 | "version": "1.0.2", 4 | "summary": "The 2.x ReactiveCocoa Objective-C API: Streams of values over time", 5 | "description": "ReactiveObjC (formally ReactiveCocoa or RAC) is an Objective-C\nframework inspired by [Functional Reactive Programming](\nhttp://en.wikipedia.org/wiki/Functional_reactive_programming).\nIt provides APIs for composing and **transforming streams of values**.", 6 | "homepage": "https://reactivecocoa.io", 7 | "screenshots": "https://reactivecocoa.io/img/logo.png", 8 | "license": { 9 | "type": "MIT", 10 | "file": "LICENSE.md" 11 | }, 12 | "documentation_url": "https://github.com/ReactiveCocoa/ReactiveObjC/tree/master/Documentation#readme", 13 | "authors": "ReactiveCocoa", 14 | "social_media_url": "https://twitter.com/ReactiveCocoa", 15 | "platforms": { 16 | "ios": "8.0", 17 | "osx": "10.9", 18 | "watchos": "2.0", 19 | "tvos": "9.0" 20 | }, 21 | "source": { 22 | "git": "https://github.com/ReactiveCocoa/ReactiveObjC.git", 23 | "tag": "1.0.2" 24 | }, 25 | "source_files": [ 26 | "ReactiveObjC/*.{h,m,d}", 27 | "ReactiveObjC/extobjc/*.{h,m}" 28 | ], 29 | "private_header_files": [ 30 | "**/*Private.h", 31 | "**/*EXTRuntimeExtensions.h", 32 | "**/RACEmpty*.h" 33 | ], 34 | "ios": { 35 | "exclude_files": "ReactiveObjC/**/*{AppKit,NSControl,NSText,NSTable}*" 36 | }, 37 | "osx": { 38 | "exclude_files": "ReactiveObjC/**/*{UIActionSheet,UIAlertView,UIBarButtonItem,UIButton,UICollectionReusableView,UIControl,UIDatePicker,UIGestureRecognizer,UIImagePicker,UIRefreshControl,UISegmentedControl,UISlider,UIStepper,UISwitch,UITableViewCell,UITableViewHeaderFooterView,UIText,MK}*" 39 | }, 40 | "tvos": { 41 | "exclude_files": "ReactiveObjC/**/*{AppKit,NSControl,NSText,NSTable,UIActionSheet,UIAlertView,UIDatePicker,UIImagePicker,UIRefreshControl,UISlider,UIStepper,UISwitch,MK}*" 42 | }, 43 | "watchos": { 44 | "exclude_files": "ReactiveObjC/**/*{UIActionSheet,UIAlertView,UIBarButtonItem,UIButton,UICollectionReusableView,UIControl,UIDatePicker,UIGestureRecognizer,UIImagePicker,UIRefreshControl,UISegmentedControl,UISlider,UIStepper,UISwitch,UITableViewCell,UITableViewHeaderFooterView,UIText,MK,AppKit,NSControl,NSText,NSTable,NSURLConnection}*" 45 | }, 46 | "requires_arc": true, 47 | "frameworks": "Foundation", 48 | "prepare_command": "find -E . -type f -not -name 'RAC*' -regex '.*(EXT.*|metamacros)\\.[hm]$' \\\n -execdir mv '{}' RAC'{}' \\;\nfind . -regex '.*\\.[hm]' \\\n -exec perl -pi \\\n -e 's@\"(?:(?!RAC)(EXT.*|metamacros))\\.h\"@\"RAC\\1.h\"@' '{}' \\;\nfind . -regex '.*\\.[hm]' \\\n -exec perl -pi \\\n -e 's@@@' '{}' \\;" 49 | } 50 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/d/b/4/ReactiveObjC/2.0.0/ReactiveObjC.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ReactiveObjC", 3 | "version": "2.0.0", 4 | "summary": "The 2.x ReactiveCocoa Objective-C API: Streams of values over time", 5 | "description": "ReactiveObjC (formally ReactiveCocoa or RAC) is an Objective-C\nframework inspired by [Functional Reactive Programming](\nhttp://en.wikipedia.org/wiki/Functional_reactive_programming).\nIt provides APIs for composing and **transforming streams of values**.", 6 | "homepage": "https://reactivecocoa.io", 7 | "screenshots": "https://reactivecocoa.io/img/logo.png", 8 | "license": { 9 | "type": "MIT", 10 | "file": "LICENSE.md" 11 | }, 12 | "documentation_url": "https://github.com/ReactiveCocoa/ReactiveObjC/tree/master/Documentation#readme", 13 | "authors": "ReactiveCocoa", 14 | "social_media_url": "https://twitter.com/ReactiveCocoa", 15 | "platforms": { 16 | "ios": "8.0", 17 | "osx": "10.9", 18 | "watchos": "2.0", 19 | "tvos": "9.0" 20 | }, 21 | "source": { 22 | "git": "https://github.com/ReactiveCocoa/ReactiveObjC.git", 23 | "tag": "2.0.0" 24 | }, 25 | "source_files": [ 26 | "ReactiveObjC/*.{h,m,d}", 27 | "ReactiveObjC/extobjc/*.{h,m}" 28 | ], 29 | "private_header_files": [ 30 | "**/*Private.h", 31 | "**/*EXTRuntimeExtensions.h", 32 | "**/RACEmpty*.h" 33 | ], 34 | "ios": { 35 | "exclude_files": "ReactiveObjC/**/*{AppKit,NSControl,NSText,NSTable}*" 36 | }, 37 | "osx": { 38 | "exclude_files": "ReactiveObjC/**/*{UIActionSheet,UIAlertView,UIBarButtonItem,UIButton,UICollectionReusableView,UIControl,UIDatePicker,UIGestureRecognizer,UIImagePicker,UIRefreshControl,UISegmentedControl,UISlider,UIStepper,UISwitch,UITableViewCell,UITableViewHeaderFooterView,UIText,MK}*" 39 | }, 40 | "tvos": { 41 | "exclude_files": "ReactiveObjC/**/*{AppKit,NSControl,NSText,NSTable,UIActionSheet,UIAlertView,UIDatePicker,UIImagePicker,UIRefreshControl,UISlider,UIStepper,UISwitch,MK}*" 42 | }, 43 | "watchos": { 44 | "exclude_files": "ReactiveObjC/**/*{UIActionSheet,UIAlertView,UIBarButtonItem,UIButton,UICollectionReusableView,UIControl,UIDatePicker,UIGestureRecognizer,UIImagePicker,UIRefreshControl,UISegmentedControl,UISlider,UIStepper,UISwitch,UITableViewCell,UITableViewHeaderFooterView,UIText,MK,AppKit,NSControl,NSText,NSTable,NSURLConnection}*" 45 | }, 46 | "requires_arc": true, 47 | "frameworks": "Foundation", 48 | "prepare_command": "find -E . -type f -not -name 'RAC*' -regex '.*(EXT.*|metamacros)\\.[hm]$' \\\n -execdir mv '{}' RAC'{}' \\;\nfind . -regex '.*\\.[hm]' \\\n -exec perl -pi \\\n -e 's@\"(?:(?!RAC)(EXT.*|metamacros))\\.h\"@\"RAC\\1.h\"@' '{}' \\;\nfind . -regex '.*\\.[hm]' \\\n -exec perl -pi \\\n -e 's@@@' '{}' \\;" 49 | } 50 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/d/b/4/ReactiveObjC/2.1.0/ReactiveObjC.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ReactiveObjC", 3 | "version": "2.1.0", 4 | "summary": "The 2.x ReactiveCocoa Objective-C API: Streams of values over time", 5 | "description": "ReactiveObjC (formally ReactiveCocoa or RAC) is an Objective-C\nframework inspired by [Functional Reactive Programming](\nhttp://en.wikipedia.org/wiki/Functional_reactive_programming).\nIt provides APIs for composing and **transforming streams of values**.", 6 | "homepage": "https://reactivecocoa.io", 7 | "screenshots": "https://reactivecocoa.io/img/logo.png", 8 | "license": { 9 | "type": "MIT", 10 | "file": "LICENSE.md" 11 | }, 12 | "documentation_url": "https://github.com/ReactiveCocoa/ReactiveObjC/tree/master/Documentation#readme", 13 | "authors": "ReactiveCocoa", 14 | "social_media_url": "https://twitter.com/ReactiveCocoa", 15 | "platforms": { 16 | "ios": "8.0", 17 | "osx": "10.9", 18 | "watchos": "2.0", 19 | "tvos": "9.0" 20 | }, 21 | "source": { 22 | "git": "https://github.com/ReactiveCocoa/ReactiveObjC.git", 23 | "tag": "2.1.0" 24 | }, 25 | "source_files": [ 26 | "ReactiveObjC/*.{h,m,d}", 27 | "ReactiveObjC/extobjc/*.{h,m}" 28 | ], 29 | "private_header_files": [ 30 | "**/*Private.h", 31 | "**/*EXTRuntimeExtensions.h", 32 | "**/RACEmpty*.h" 33 | ], 34 | "ios": { 35 | "exclude_files": "ReactiveObjC/**/*{AppKit,NSControl,NSText,NSTable}*" 36 | }, 37 | "osx": { 38 | "exclude_files": "ReactiveObjC/**/*{UIActionSheet,UIAlertView,UIBarButtonItem,UIButton,UICollectionReusableView,UIControl,UIDatePicker,UIGestureRecognizer,UIImagePicker,UIRefreshControl,UISegmentedControl,UISlider,UIStepper,UISwitch,UITableViewCell,UITableViewHeaderFooterView,UIText,MK}*" 39 | }, 40 | "tvos": { 41 | "exclude_files": "ReactiveObjC/**/*{AppKit,NSControl,NSText,NSTable,UIActionSheet,UIAlertView,UIDatePicker,UIImagePicker,UIRefreshControl,UISlider,UIStepper,UISwitch,MK}*" 42 | }, 43 | "watchos": { 44 | "exclude_files": "ReactiveObjC/**/*{UIActionSheet,UIAlertView,UIBarButtonItem,UIButton,UICollectionReusableView,UIControl,UIDatePicker,UIGestureRecognizer,UIImagePicker,UIRefreshControl,UISegmentedControl,UISlider,UIStepper,UISwitch,UITableViewCell,UITableViewHeaderFooterView,UIText,MK,AppKit,NSControl,NSText,NSTable,NSURLConnection}*" 45 | }, 46 | "requires_arc": true, 47 | "frameworks": "Foundation", 48 | "prepare_command": "find -E . -type f -not -name 'RAC*' -regex '.*(EXT.*|metamacros)\\.[hm]$' \\\n -execdir mv '{}' RAC'{}' \\;\nfind . -regex '.*\\.[hm]' \\\n -exec perl -pi \\\n -e 's@\"(?:(?!RAC)(EXT.*|metamacros))\\.h\"@\"RAC\\1.h\"@' '{}' \\;\nfind . -regex '.*\\.[hm]' \\\n -exec perl -pi \\\n -e 's@@@' '{}' \\;" 49 | } 50 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/d/b/4/ReactiveObjC/2.1.1/ReactiveObjC.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ReactiveObjC", 3 | "version": "2.1.1", 4 | "summary": "The 2.x ReactiveCocoa Objective-C API: Streams of values over time", 5 | "description": "ReactiveObjC (formally ReactiveCocoa or RAC) is an Objective-C\nframework inspired by [Functional Reactive Programming](\nhttp://en.wikipedia.org/wiki/Functional_reactive_programming).\nIt provides APIs for composing and **transforming streams of values**.", 6 | "homepage": "https://reactivecocoa.io", 7 | "screenshots": "https://reactivecocoa.io/img/logo.png", 8 | "license": { 9 | "type": "MIT", 10 | "file": "LICENSE.md" 11 | }, 12 | "documentation_url": "https://github.com/ReactiveCocoa/ReactiveObjC/tree/master/Documentation#readme", 13 | "authors": "ReactiveCocoa", 14 | "social_media_url": "https://twitter.com/ReactiveCocoa", 15 | "platforms": { 16 | "ios": "8.0", 17 | "osx": "10.9", 18 | "watchos": "2.0", 19 | "tvos": "9.0" 20 | }, 21 | "source": { 22 | "git": "https://github.com/ReactiveCocoa/ReactiveObjC.git", 23 | "tag": "2.1.1" 24 | }, 25 | "source_files": [ 26 | "ReactiveObjC/*.{h,m,d}", 27 | "ReactiveObjC/extobjc/*.{h,m}" 28 | ], 29 | "private_header_files": [ 30 | "**/*Private.h", 31 | "**/*EXTRuntimeExtensions.h", 32 | "**/RACEmpty*.h" 33 | ], 34 | "ios": { 35 | "exclude_files": "ReactiveObjC/**/*{AppKit,NSControl,NSText,NSTable}*" 36 | }, 37 | "osx": { 38 | "exclude_files": "ReactiveObjC/**/*{UIActionSheet,UIAlertView,UIBarButtonItem,UIButton,UICollectionReusableView,UIControl,UIDatePicker,UIGestureRecognizer,UIImagePicker,UIRefreshControl,UISegmentedControl,UISlider,UIStepper,UISwitch,UITableViewCell,UITableViewHeaderFooterView,UIText,MK}*" 39 | }, 40 | "tvos": { 41 | "exclude_files": "ReactiveObjC/**/*{AppKit,NSControl,NSText,NSTable,UIActionSheet,UIAlertView,UIDatePicker,UIImagePicker,UIRefreshControl,UISlider,UIStepper,UISwitch,MK}*" 42 | }, 43 | "watchos": { 44 | "exclude_files": "ReactiveObjC/**/*{UIActionSheet,UIAlertView,UIBarButtonItem,UIButton,UICollectionReusableView,UIControl,UIDatePicker,UIGestureRecognizer,UIImagePicker,UIRefreshControl,UISegmentedControl,UISlider,UIStepper,UISwitch,UITableViewCell,UITableViewHeaderFooterView,UIText,MK,AppKit,NSControl,NSText,NSTable,NSURLConnection}*" 45 | }, 46 | "requires_arc": true, 47 | "frameworks": "Foundation", 48 | "prepare_command": "find -E . -type f -not -name 'RAC*' -regex '.*(EXT.*|metamacros)\\.[hm]$' \\\n -execdir mv '{}' RAC'{}' \\;\nfind . -regex '.*\\.[hm]' \\\n -exec perl -pi \\\n -e 's@\"(?:(?!RAC)(EXT.*|metamacros))\\.h\"@\"RAC\\1.h\"@' '{}' \\;\nfind . -regex '.*\\.[hm]' \\\n -exec perl -pi \\\n -e 's@@@' '{}' \\;" 49 | } 50 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/d/b/4/ReactiveObjC/2.1.2/ReactiveObjC.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ReactiveObjC", 3 | "version": "2.1.2", 4 | "summary": "The 2.x ReactiveCocoa Objective-C API: Streams of values over time", 5 | "description": "ReactiveObjC (formally ReactiveCocoa or RAC) is an Objective-C\nframework inspired by [Functional Reactive Programming](\nhttp://en.wikipedia.org/wiki/Functional_reactive_programming).\nIt provides APIs for composing and **transforming streams of values**.", 6 | "homepage": "https://reactivecocoa.io", 7 | "screenshots": "https://reactivecocoa.io/img/logo.png", 8 | "license": { 9 | "type": "MIT", 10 | "file": "LICENSE.md" 11 | }, 12 | "documentation_url": "https://github.com/ReactiveCocoa/ReactiveObjC/tree/master/Documentation#readme", 13 | "authors": "ReactiveCocoa", 14 | "social_media_url": "https://twitter.com/ReactiveCocoa", 15 | "platforms": { 16 | "ios": "8.0", 17 | "osx": "10.9", 18 | "watchos": "2.0", 19 | "tvos": "9.0" 20 | }, 21 | "source": { 22 | "git": "https://github.com/ReactiveCocoa/ReactiveObjC.git", 23 | "tag": "2.1.2" 24 | }, 25 | "source_files": [ 26 | "ReactiveObjC/*.{h,m,d}", 27 | "ReactiveObjC/extobjc/*.{h,m}" 28 | ], 29 | "private_header_files": [ 30 | "**/*Private.h", 31 | "**/*EXTRuntimeExtensions.h", 32 | "**/RACEmpty*.h" 33 | ], 34 | "ios": { 35 | "exclude_files": "ReactiveObjC/**/*{AppKit,NSControl,NSText,NSTable}*" 36 | }, 37 | "osx": { 38 | "exclude_files": "ReactiveObjC/**/*{UIActionSheet,UIAlertView,UIBarButtonItem,UIButton,UICollectionReusableView,UIControl,UIDatePicker,UIGestureRecognizer,UIImagePicker,UIRefreshControl,UISegmentedControl,UISlider,UIStepper,UISwitch,UITableViewCell,UITableViewHeaderFooterView,UIText,MK}*" 39 | }, 40 | "tvos": { 41 | "exclude_files": "ReactiveObjC/**/*{AppKit,NSControl,NSText,NSTable,UIActionSheet,UIAlertView,UIDatePicker,UIImagePicker,UIRefreshControl,UISlider,UIStepper,UISwitch,MK}*" 42 | }, 43 | "watchos": { 44 | "exclude_files": "ReactiveObjC/**/*{UIActionSheet,UIAlertView,UIBarButtonItem,UIButton,UICollectionReusableView,UIControl,UIDatePicker,UIGestureRecognizer,UIImagePicker,UIRefreshControl,UISegmentedControl,UISlider,UIStepper,UISwitch,UITableViewCell,UITableViewHeaderFooterView,UIText,MK,AppKit,NSControl,NSText,NSTable,NSURLConnection}*" 45 | }, 46 | "requires_arc": true, 47 | "frameworks": "Foundation", 48 | "prepare_command": "find -E . -type f -not -name 'RAC*' -regex '.*(EXT.*|metamacros)\\.[hm]$' \\\n -execdir mv '{}' RAC'{}' \\;\nfind . -regex '.*\\.[hm]' \\\n -exec perl -pi \\\n -e 's@\"(?:(?!RAC)(EXT.*|metamacros))\\.h\"@\"RAC\\1.h\"@' '{}' \\;\nfind . -regex '.*\\.[hm]' \\\n -exec perl -pi \\\n -e 's@@@' '{}' \\;" 49 | } 50 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/d/b/4/ReactiveObjC/3.0.0/ReactiveObjC.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ReactiveObjC", 3 | "version": "3.0.0", 4 | "summary": "The 2.x ReactiveCocoa Objective-C API: Streams of values over time", 5 | "description": "ReactiveObjC (formally ReactiveCocoa or RAC) is an Objective-C\nframework inspired by [Functional Reactive Programming](\nhttp://en.wikipedia.org/wiki/Functional_reactive_programming).\nIt provides APIs for composing and **transforming streams of values**.", 6 | "homepage": "https://reactivecocoa.io", 7 | "screenshots": "https://reactivecocoa.io/img/logo.png", 8 | "license": { 9 | "type": "MIT", 10 | "file": "LICENSE.md" 11 | }, 12 | "documentation_url": "https://github.com/ReactiveCocoa/ReactiveObjC/tree/master/Documentation#readme", 13 | "authors": "ReactiveCocoa", 14 | "social_media_url": "https://twitter.com/ReactiveCocoa", 15 | "platforms": { 16 | "ios": "8.0", 17 | "osx": "10.9", 18 | "watchos": "2.0", 19 | "tvos": "9.0" 20 | }, 21 | "source": { 22 | "git": "https://github.com/ReactiveCocoa/ReactiveObjC.git", 23 | "tag": "3.0.0" 24 | }, 25 | "source_files": [ 26 | "ReactiveObjC/*.{h,m,d}", 27 | "ReactiveObjC/extobjc/*.{h,m}" 28 | ], 29 | "private_header_files": [ 30 | "**/*Private.h", 31 | "**/*EXTRuntimeExtensions.h", 32 | "**/RACEmpty*.h" 33 | ], 34 | "ios": { 35 | "exclude_files": "ReactiveObjC/**/*{AppKit,NSControl,NSText,NSTable}*" 36 | }, 37 | "osx": { 38 | "exclude_files": "ReactiveObjC/**/*{UIActionSheet,UIAlertView,UIBarButtonItem,UIButton,UICollectionReusableView,UIControl,UIDatePicker,UIGestureRecognizer,UIImagePicker,UIRefreshControl,UISegmentedControl,UISlider,UIStepper,UISwitch,UITableViewCell,UITableViewHeaderFooterView,UIText,MK}*" 39 | }, 40 | "tvos": { 41 | "exclude_files": "ReactiveObjC/**/*{AppKit,NSControl,NSText,NSTable,UIActionSheet,UIAlertView,UIDatePicker,UIImagePicker,UIRefreshControl,UISlider,UIStepper,UISwitch,MK}*" 42 | }, 43 | "watchos": { 44 | "exclude_files": "ReactiveObjC/**/*{UIActionSheet,UIAlertView,UIBarButtonItem,UIButton,UICollectionReusableView,UIControl,UIDatePicker,UIGestureRecognizer,UIImagePicker,UIRefreshControl,UISegmentedControl,UISlider,UIStepper,UISwitch,UITableViewCell,UITableViewHeaderFooterView,UIText,MK,AppKit,NSControl,NSText,NSTable,NSURLConnection}*" 45 | }, 46 | "requires_arc": true, 47 | "frameworks": "Foundation", 48 | "prepare_command": "find -E . -type f -not -name 'RAC*' -regex '.*(EXT.*|metamacros)\\.[hm]$' \\\n -execdir mv '{}' RAC'{}' \\;\nfind . -regex '.*\\.[hm]' \\\n -exec perl -pi \\\n -e 's@\"(?:(?!RAC)(EXT.*|metamacros))\\.h\"@\"RAC\\1.h\"@' '{}' \\;\nfind . -regex '.*\\.[hm]' \\\n -exec perl -pi \\\n -e 's@@@' '{}' \\;" 49 | } 50 | -------------------------------------------------------------------------------- /spec/fixtures/spec-repos/trunk/Specs/d/b/4/ReactiveObjC/3.1.0/ReactiveObjC.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ReactiveObjC", 3 | "version": "3.1.0", 4 | "summary": "The 2.x ReactiveCocoa Objective-C API: Streams of values over time", 5 | "description": "ReactiveObjC (formally ReactiveCocoa or RAC) is an Objective-C\nframework inspired by [Functional Reactive Programming](\nhttp://en.wikipedia.org/wiki/Functional_reactive_programming).\nIt provides APIs for composing and **transforming streams of values**.", 6 | "homepage": "https://reactivecocoa.io", 7 | "screenshots": "https://reactivecocoa.io/img/logo.png", 8 | "license": { 9 | "type": "MIT", 10 | "file": "LICENSE.md" 11 | }, 12 | "documentation_url": "https://github.com/ReactiveCocoa/ReactiveObjC/tree/master/Documentation#readme", 13 | "authors": "ReactiveCocoa", 14 | "social_media_url": "https://twitter.com/ReactiveCocoa", 15 | "platforms": { 16 | "ios": "8.0", 17 | "osx": "10.9", 18 | "watchos": "2.0", 19 | "tvos": "9.0" 20 | }, 21 | "source": { 22 | "git": "https://github.com/ReactiveCocoa/ReactiveObjC.git", 23 | "tag": "3.1.0" 24 | }, 25 | "source_files": [ 26 | "ReactiveObjC/*.{h,m,d}", 27 | "ReactiveObjC/extobjc/*.{h,m}" 28 | ], 29 | "private_header_files": [ 30 | "**/*Private.h", 31 | "**/*EXTRuntimeExtensions.h", 32 | "**/RACEmpty*.h" 33 | ], 34 | "ios": { 35 | "exclude_files": "ReactiveObjC/**/*{AppKit,NSControl,NSText,NSTable}*" 36 | }, 37 | "osx": { 38 | "exclude_files": "ReactiveObjC/**/*{UIActionSheet,UIAlertView,UIBarButtonItem,UIButton,UICollectionReusableView,UIControl,UIDatePicker,UIGestureRecognizer,UIImagePicker,UIRefreshControl,UISegmentedControl,UISlider,UIStepper,UISwitch,UITableViewCell,UITableViewHeaderFooterView,UIText,MK}*" 39 | }, 40 | "tvos": { 41 | "exclude_files": "ReactiveObjC/**/*{AppKit,NSControl,NSText,NSTable,UIActionSheet,UIAlertView,UIDatePicker,UIImagePicker,UIRefreshControl,UISlider,UIStepper,UISwitch,MK}*" 42 | }, 43 | "watchos": { 44 | "exclude_files": "ReactiveObjC/**/*{UIActionSheet,UIAlertView,UIBarButtonItem,UIButton,UICollectionReusableView,UIControl,UIDatePicker,UIGestureRecognizer,UIImagePicker,UIRefreshControl,UISegmentedControl,UISlider,UIStepper,UISwitch,UITableViewCell,UITableViewHeaderFooterView,UIText,MK,AppKit,NSControl,NSText,NSTable,NSURLConnection}*" 45 | }, 46 | "requires_arc": true, 47 | "frameworks": "Foundation", 48 | "prepare_command": "find -E . -type f -not -name 'RAC*' -regex '.*(EXT.*|metamacros)\\.[hm]$' \\\n -execdir mv '{}' RAC'{}' \\;\nfind . -regex '.*\\.[hm]' \\\n -exec perl -pi \\\n -e 's@\"(?:(?!RAC)(EXT.*|metamacros))\\.h\"@\"RAC\\1.h\"@' '{}' \\;\nfind . -regex '.*\\.[hm]' \\\n -exec perl -pi \\\n -e 's@@@' '{}' \\;" 49 | } 50 | --------------------------------------------------------------------------------