cocoapods-bin 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +4 -0
  3. data/Gemfile +13 -0
  4. data/Gemfile.lock +100 -0
  5. data/LICENSE.txt +22 -0
  6. data/README.md +15 -0
  7. data/Rakefile +13 -0
  8. data/cocoapods-bin.gemspec +26 -0
  9. data/lib/cocoapods-bin/command/bin/init.rb +66 -0
  10. data/lib/cocoapods-bin/command/bin/lib/lint.rb +94 -0
  11. data/lib/cocoapods-bin/command/bin/lib.rb +12 -0
  12. data/lib/cocoapods-bin/command/bin/open.rb +60 -0
  13. data/lib/cocoapods-bin/command/bin/repo/push.rb +98 -0
  14. data/lib/cocoapods-bin/command/bin/repo.rb +12 -0
  15. data/lib/cocoapods-bin/command/bin/spec/create.rb +68 -0
  16. data/lib/cocoapods-bin/command/bin/spec/lint.rb +52 -0
  17. data/lib/cocoapods-bin/command/bin/spec.rb +13 -0
  18. data/lib/cocoapods-bin/command/bin.rb +52 -0
  19. data/lib/cocoapods-bin/command.rb +1 -0
  20. data/lib/cocoapods-bin/config/config.rb +52 -0
  21. data/lib/cocoapods-bin/config/config_asker.rb +50 -0
  22. data/lib/cocoapods-bin/gem_version.rb +9 -0
  23. data/lib/cocoapods-bin/helpers/sources_helper.rb +31 -0
  24. data/lib/cocoapods-bin/helpers/spec_files_helper.rb +17 -0
  25. data/lib/cocoapods-bin/helpers/spec_generator.rb +86 -0
  26. data/lib/cocoapods-bin/helpers.rb +3 -0
  27. data/lib/cocoapods-bin/native/analyzer.rb +28 -0
  28. data/lib/cocoapods-bin/native/installation_options.rb +24 -0
  29. data/lib/cocoapods-bin/native/installer.rb +73 -0
  30. data/lib/cocoapods-bin/native/linter.rb +29 -0
  31. data/lib/cocoapods-bin/native/pod_source_installer.rb +15 -0
  32. data/lib/cocoapods-bin/native/podfile.rb +67 -0
  33. data/lib/cocoapods-bin/native/resolver.rb +103 -0
  34. data/lib/cocoapods-bin/native/source.rb +35 -0
  35. data/lib/cocoapods-bin/native/source_provider_hook.rb +11 -0
  36. data/lib/cocoapods-bin/native/sources_manager.rb +18 -0
  37. data/lib/cocoapods-bin/native/validator.rb +16 -0
  38. data/lib/cocoapods-bin/native.rb +13 -0
  39. data/lib/cocoapods-bin.rb +1 -0
  40. data/lib/cocoapods_plugin.rb +3 -0
  41. data/spec/command/bin_spec.rb +12 -0
  42. data/spec/spec_helper.rb +50 -0
  43. metadata +143 -0
@@ -0,0 +1,35 @@
1
+ require 'cocoapods'
2
+
3
+ module Pod
4
+ class Source
5
+ # Returns the path of the specification with the given name and version.
6
+ #
7
+ # @param [String] name
8
+ # the name of the Pod.
9
+ #
10
+ # @param [Version,String] version
11
+ # the version for the specification.
12
+ #
13
+ # @return [Pathname] The path of the specification.
14
+ #
15
+ def specification_path(name, version)
16
+ raise ArgumentError, 'No name' unless name
17
+ raise ArgumentError, 'No version' unless version
18
+ path = pod_path(name) + version.to_s
19
+
20
+ specification_path =[
21
+ "#{name}.podspec.json",
22
+ "#{name}.podspec",
23
+ # 支持 binary 后缀
24
+ "#{name}.binary.podspec",
25
+ "#{name}.binary.podspec.json"
26
+ ].map { |file| path + file }.find { |path| path.exist? }
27
+
28
+ unless specification_path
29
+ raise StandardError, "Unable to find the specification #{name} " \
30
+ "(#{version}) in the #{self.name} source."
31
+ end
32
+ specification_path
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,11 @@
1
+ require 'cocoapods-bin/native/sources_manager'
2
+
3
+ Pod::HooksManager.register('cocoapods-bin', :source_provider) do |context, _|
4
+ sources_manager = Pod::Config.instance.sources_manager
5
+ podfile = Pod::Config.instance.podfile
6
+
7
+ # 添加二进制私有源 && 源码私有源
8
+ added_sources = [sources_manager.code_source, sources_manager.binary_source]
9
+ added_sources.reverse! if podfile.use_binaries? || podfile.use_binaries_selector
10
+ added_sources.each { |source| context.add_source(source) }
11
+ end
@@ -0,0 +1,18 @@
1
+ require 'cocoapods'
2
+ require 'cocoapods-bin/config/config'
3
+
4
+ module Pod
5
+ class Source
6
+ class Manager
7
+ # 源码 source
8
+ def code_source
9
+ source_with_name_or_url(CBin.config.code_repo_url)
10
+ end
11
+
12
+ # 二进制 source
13
+ def binary_source
14
+ source_with_name_or_url(CBin.config.binary_repo_url)
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,16 @@
1
+
2
+ module Pod
3
+ class Validator
4
+ # def validate_source_url(spec)
5
+ # return if spec.source.nil? || spec.source[:http].nil?
6
+ # url = URI(spec.source[:http])
7
+ # return if url.scheme == 'https' || url.scheme == 'file'
8
+ # warning('http', "The URL (`#{url}`) doesn't use the encrypted HTTPs protocol. " \
9
+ # 'It is crucial for Pods to be transferred over a secure protocol to protect your users from man-in-the-middle attacks. '\
10
+ # 'This will be an error in future releases. Please update the URL to use https.')
11
+ # end
12
+
13
+ def validate_source_url(spec)
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,13 @@
1
+ require 'cocoapods'
2
+
3
+ if Pod.match_version?('~> 1.4')
4
+ require 'cocoapods-bin/native/analyzer'
5
+ require 'cocoapods-bin/native/installer'
6
+ require 'cocoapods-bin/native/pod_source_installer'
7
+ require 'cocoapods-bin/native/linter'
8
+ require 'cocoapods-bin/native/resolver'
9
+ require 'cocoapods-bin/native/source'
10
+ require 'cocoapods-bin/native/validator'
11
+ end
12
+
13
+ require 'cocoapods-bin/native/source_provider_hook'
@@ -0,0 +1 @@
1
+ require 'cocoapods-bin/gem_version'
@@ -0,0 +1,3 @@
1
+ require 'cocoapods-bin/gem_version.rb'
2
+ require 'cocoapods-bin/command'
3
+ require 'cocoapods-bin/native'
@@ -0,0 +1,12 @@
1
+ require File.expand_path('../../spec_helper', __FILE__)
2
+
3
+ module Pod
4
+ describe Command::Bin do
5
+ describe 'CLAide' do
6
+ it 'registers it self' do
7
+ Command.parse(%w{ bin }).should.be.instance_of Command::Bin
8
+ end
9
+ end
10
+ end
11
+ end
12
+
@@ -0,0 +1,50 @@
1
+ require 'pathname'
2
+ ROOT = Pathname.new(File.expand_path('../../', __FILE__))
3
+ $:.unshift((ROOT + 'lib').to_s)
4
+ $:.unshift((ROOT + 'spec').to_s)
5
+
6
+ require 'bundler/setup'
7
+ require 'bacon'
8
+ require 'mocha-on-bacon'
9
+ require 'pretty_bacon'
10
+ require 'pathname'
11
+ require 'cocoapods'
12
+
13
+ Mocha::Configuration.prevent(:stubbing_non_existent_method)
14
+
15
+ require 'cocoapods_plugin'
16
+
17
+ #-----------------------------------------------------------------------------#
18
+
19
+ module Pod
20
+
21
+ # Disable the wrapping so the output is deterministic in the tests.
22
+ #
23
+ UI.disable_wrap = true
24
+
25
+ # Redirects the messages to an internal store.
26
+ #
27
+ module UI
28
+ @output = ''
29
+ @warnings = ''
30
+
31
+ class << self
32
+ attr_accessor :output
33
+ attr_accessor :warnings
34
+
35
+ def puts(message = '')
36
+ @output << "#{message}\n"
37
+ end
38
+
39
+ def warn(message = '', actions = [])
40
+ @warnings << "#{message}\n"
41
+ end
42
+
43
+ def print(message)
44
+ @output << message
45
+ end
46
+ end
47
+ end
48
+ end
49
+
50
+ #-----------------------------------------------------------------------------#
metadata ADDED
@@ -0,0 +1,143 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: cocoapods-bin
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - tripleCC
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2019-01-09 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: parallel
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: cocoapods
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.4'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.4'
41
+ - !ruby/object:Gem::Dependency
42
+ name: bundler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.3'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.3'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ description: 组件二进制化插件.
70
+ email:
71
+ - triplec.linux@gmail.com
72
+ executables: []
73
+ extensions: []
74
+ extra_rdoc_files: []
75
+ files:
76
+ - ".gitignore"
77
+ - Gemfile
78
+ - Gemfile.lock
79
+ - LICENSE.txt
80
+ - README.md
81
+ - Rakefile
82
+ - cocoapods-bin.gemspec
83
+ - lib/cocoapods-bin.rb
84
+ - lib/cocoapods-bin/command.rb
85
+ - lib/cocoapods-bin/command/bin.rb
86
+ - lib/cocoapods-bin/command/bin/init.rb
87
+ - lib/cocoapods-bin/command/bin/lib.rb
88
+ - lib/cocoapods-bin/command/bin/lib/lint.rb
89
+ - lib/cocoapods-bin/command/bin/open.rb
90
+ - lib/cocoapods-bin/command/bin/repo.rb
91
+ - lib/cocoapods-bin/command/bin/repo/push.rb
92
+ - lib/cocoapods-bin/command/bin/spec.rb
93
+ - lib/cocoapods-bin/command/bin/spec/create.rb
94
+ - lib/cocoapods-bin/command/bin/spec/lint.rb
95
+ - lib/cocoapods-bin/config/config.rb
96
+ - lib/cocoapods-bin/config/config_asker.rb
97
+ - lib/cocoapods-bin/gem_version.rb
98
+ - lib/cocoapods-bin/helpers.rb
99
+ - lib/cocoapods-bin/helpers/sources_helper.rb
100
+ - lib/cocoapods-bin/helpers/spec_files_helper.rb
101
+ - lib/cocoapods-bin/helpers/spec_generator.rb
102
+ - lib/cocoapods-bin/native.rb
103
+ - lib/cocoapods-bin/native/analyzer.rb
104
+ - lib/cocoapods-bin/native/installation_options.rb
105
+ - lib/cocoapods-bin/native/installer.rb
106
+ - lib/cocoapods-bin/native/linter.rb
107
+ - lib/cocoapods-bin/native/pod_source_installer.rb
108
+ - lib/cocoapods-bin/native/podfile.rb
109
+ - lib/cocoapods-bin/native/resolver.rb
110
+ - lib/cocoapods-bin/native/source.rb
111
+ - lib/cocoapods-bin/native/source_provider_hook.rb
112
+ - lib/cocoapods-bin/native/sources_manager.rb
113
+ - lib/cocoapods-bin/native/validator.rb
114
+ - lib/cocoapods_plugin.rb
115
+ - spec/command/bin_spec.rb
116
+ - spec/spec_helper.rb
117
+ homepage: https://github.com/EXAMPLE/cocoapods-bin
118
+ licenses:
119
+ - MIT
120
+ metadata: {}
121
+ post_install_message:
122
+ rdoc_options: []
123
+ require_paths:
124
+ - lib
125
+ required_ruby_version: !ruby/object:Gem::Requirement
126
+ requirements:
127
+ - - ">="
128
+ - !ruby/object:Gem::Version
129
+ version: '0'
130
+ required_rubygems_version: !ruby/object:Gem::Requirement
131
+ requirements:
132
+ - - ">="
133
+ - !ruby/object:Gem::Version
134
+ version: '0'
135
+ requirements: []
136
+ rubyforge_project:
137
+ rubygems_version: 2.6.14
138
+ signing_key:
139
+ specification_version: 4
140
+ summary: 组件二进制化插件。利用源码私有源与二进制私有源实现对组件依赖类型的切换.
141
+ test_files:
142
+ - spec/command/bin_spec.rb
143
+ - spec/spec_helper.rb