cocoapods-modularization 0.0.2

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 (27) hide show
  1. checksums.yaml +7 -0
  2. data/lib/cocoapods-modularization/command/install.rb +98 -0
  3. data/lib/cocoapods-modularization/command/mod/add.rb +97 -0
  4. data/lib/cocoapods-modularization/command/mod/base.rb +35 -0
  5. data/lib/cocoapods-modularization/command/mod/binary.rb +82 -0
  6. data/lib/cocoapods-modularization/command/mod/config.rb +51 -0
  7. data/lib/cocoapods-modularization/command/mod/create.rb +34 -0
  8. data/lib/cocoapods-modularization/command/mod/inspect.rb +26 -0
  9. data/lib/cocoapods-modularization/command/mod/source.rb +81 -0
  10. data/lib/cocoapods-modularization/command/mod/sync.rb +29 -0
  11. data/lib/cocoapods-modularization/command/mod/update.rb +64 -0
  12. data/lib/cocoapods-modularization/command/mod.rb +28 -0
  13. data/lib/cocoapods-modularization/command.rb +2 -0
  14. data/lib/cocoapods-modularization/gem_version.rb +3 -0
  15. data/lib/cocoapods-modularization/generate/configuration.rb +364 -0
  16. data/lib/cocoapods-modularization/generate/installer.rb +388 -0
  17. data/lib/cocoapods-modularization/generate/podfile_generator.rb +398 -0
  18. data/lib/cocoapods-modularization/generate.rb +7 -0
  19. data/lib/cocoapods-modularization/meta/meta_accessor.rb +134 -0
  20. data/lib/cocoapods-modularization/meta/meta_constants.rb +135 -0
  21. data/lib/cocoapods-modularization/meta/meta_reference.rb +255 -0
  22. data/lib/cocoapods-modularization/meta.rb +7 -0
  23. data/lib/cocoapods-modularization/private/private_cache.rb +277 -0
  24. data/lib/cocoapods-modularization/private.rb +5 -0
  25. data/lib/cocoapods-modularization.rb +1 -0
  26. data/lib/cocoapods_plugin.rb +1 -0
  27. metadata +96 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 1cde6391ce2e9acbdfda733ce4ee1f7554efc154e25609497ed5e2c0311dc4ab
4
+ data.tar.gz: 1136a975ded5270f9b57f521c97cfce57e13d3ba184bc9057cf93562540cf5f3
5
+ SHA512:
6
+ metadata.gz: 6cdb49c8786470aafae93516037445123a3305f9c6f7ff1eb406cbfe317fb1e300bfee9daee93df70e9de7960d7e278fa9f3f9e6610561e9b02b5ded5c78f4f0
7
+ data.tar.gz: 6b22853de266f03dde6f0959ea24403dd7d8de592db92546449d034994bf9a5d64cb2436ab14fe89587e20ee72ecb00a7c854e36238a40ba303c892a6b25a3c7
@@ -0,0 +1,98 @@
1
+ require 'cocoapods-modularization/meta'
2
+
3
+ module Pod
4
+ class Command
5
+ class Install < Command
6
+
7
+ include RepoUpdate
8
+ include ProjectDirectory
9
+
10
+ self.summary = 'Install project dependencies according to versions from a Podfile.lock'
11
+
12
+ self.description = <<-DESC
13
+ Downloads all dependencies defined in `Podfile` and creates an Xcode
14
+ Pods library project in `./Pods`.
15
+
16
+ The Xcode project file should be specified in your `Podfile` like this:
17
+
18
+ project 'path/to/XcodeProject.xcodeproj'
19
+
20
+ If no project is specified, then a search for an Xcode project will
21
+ be made. If more than one Xcode project is found, the command will
22
+ raise an error.
23
+
24
+ This will configure the project to reference the Pods static library,
25
+ add a build configuration file, and add a post build script to copy
26
+ Pod resources.
27
+
28
+ This may return one of several error codes if it encounters problems.
29
+ * `1` Generic error code
30
+ * `31` Spec not found (i.e out-of-date source repos, mistyped Pod name etc...)
31
+ DESC
32
+
33
+ def self.options
34
+ [
35
+ ['--repo-update', 'Force running `pod repo update` before install'],
36
+ ['--deployment', 'Disallow any changes to the Podfile or the Podfile.lock during installation'],
37
+ ['--clean-install', 'Ignore the contents of the project cache and force a full pod installation. This only ' \
38
+ 'applies to projects that have enabled incremental installation'],
39
+ ['--enable-branch', 'Enable branch dependency'],
40
+ ].concat(super).reject { |(name, _)| name == '--no-repo-update' }
41
+ end
42
+
43
+ def initialize(argv)
44
+ super
45
+ @deployment = argv.flag?('deployment', false)
46
+ @clean_install = argv.flag?('clean-install', false)
47
+ @enable_branch = argv.flag?('enable-branch', false)
48
+ end
49
+
50
+ def run
51
+ # encode podfile
52
+ begin
53
+ Meta::MetaReference.encode_podfile(@enable_branch)
54
+ rescue StandardError => e
55
+ UI.puts "pod install error: #{e}"
56
+ end
57
+
58
+ # install
59
+ verify_podfile_exists!
60
+ installer = installer_for_config
61
+ installer.repo_update = repo_update?(:default => false)
62
+ installer.update = false
63
+ installer.deployment = @deployment
64
+ installer.clean_install = @clean_install
65
+ installer.install!
66
+
67
+ begin
68
+ add_modularization_into_xcode_reference
69
+ rescue StandardError => e
70
+ UI.puts e
71
+ end
72
+ end
73
+
74
+ private
75
+ def add_modularization_into_xcode_reference
76
+ project = Xcodeproj::Project.open('Pods/Pods.xcodeproj')
77
+
78
+ [Meta::MetaConstants.podfile_local_path, Meta::MetaConstants.meta_path, Meta::MetaConstants.data_path].each do |file|
79
+ next unless File.exists?(file)
80
+ project.new_file("#{Dir.pwd}/#{file}", :project).tap do |podfile_ref|
81
+ podfile_ref.xc_language_specification_identifier = 'xcode.lang.yaml'
82
+ podfile_ref.explicit_file_type = 'text.script.yaml'
83
+ podfile_ref.last_known_file_type = 'text'
84
+ podfile_ref.tab_width = '2'
85
+ podfile_ref.indent_width = '2'
86
+ end
87
+ end
88
+
89
+ if project.dirty?
90
+ project.save()
91
+ else
92
+ FileUtils.touch(project.path + 'project.pbxproj')
93
+ end
94
+ end
95
+
96
+ end
97
+ end
98
+ end
@@ -0,0 +1,97 @@
1
+ require 'cocoapods-modularization/meta'
2
+
3
+ module Pod
4
+ class Command
5
+ class Mod < Command
6
+ class Add < Mod
7
+
8
+ self.summary = 'Add a component into dependencies'
9
+
10
+ self.description = <<-DESC
11
+ DESC
12
+
13
+ self.arguments = [
14
+ CLAide::Argument.new('NAME', true)
15
+ ]
16
+
17
+ def self.options
18
+ [
19
+ ['--version=VERSION', 'Version of the component, default version is 0.1.0'],
20
+ ['--targets=TARGETA,TARGETB', 'Targets need to insert component.if this option not specified, this command will add component into all targets'],
21
+ ['--use-binary', 'Use this flag if the component supposed to be a binary, otherwise a source version will be added into dependencies']
22
+ ].concat(super)
23
+ end
24
+
25
+ def initialize(argv)
26
+ @name = argv.shift_argument
27
+ @version = argv.option('version', '0.1.0')
28
+ @targets = argv.option('targets', '').split(',')
29
+ @use_binary = argv.flag?('use-binary')
30
+ super
31
+ end
32
+
33
+ def validate!
34
+ super
35
+ help! "meta not found, run `pod sync` to fix this issue" unless File.exists?(Meta::MetaConstants.meta_path)
36
+ help! "data not found, run `pod sync` to fix this issue" unless File.exists?(Meta::MetaConstants.data_path)
37
+
38
+ help! 'A name for the Pod is required.' unless @name
39
+ help! 'The Pod name cannot contain spaces.' if @name =~ /\s/
40
+ help! 'The Pod name cannot contain plusses.' if @name =~ /\+/
41
+ help! "The Pod name cannot begin with a '.'" if @name[0, 1] == '.'
42
+
43
+ help! "version (#{@version}) illlegal" unless @version =~ /\d+\.\d+\.\d+/
44
+
45
+ return if @targets.empty?
46
+ podfile = Pod::Podfile.from_file(Meta::MetaReference.podfile_path_in_dir(Meta::MetaReference.installation_root))
47
+ target_definitions = podfile.target_definitions.map { |target| target.to_a.at(0) }
48
+ target_not_hits = Array.new
49
+ @targets.each do |target|
50
+ target_not_hits << target unless target_definitions.include?(target)
51
+ end
52
+ help! "Targets: #{target_not_hits} not found in Podfile" unless target_not_hits.empty?
53
+ end
54
+
55
+ def run
56
+ begin
57
+ UI.puts("Adding #{@name} into dependencies index")
58
+ Meta::MetaAccessor.edit_meta do |meta_hash|
59
+ # add index to dependencies
60
+ target_definitions = meta_hash['target_definitions']
61
+ target_definitions.each { |target| internal_add_dep(target, @name, @targets) } if target_definitions.kind_of?(Array)
62
+ end
63
+
64
+ UI.puts("Adding #{@name} into meta")
65
+ Meta::MetaAccessor.set_dep(@name, @use_binary, @version)
66
+ UI.puts("#{@name} added")
67
+
68
+ Meta::MetaReference.encode_podfile
69
+ UI.puts("Podfile encoded")
70
+ rescue Exception => e
71
+ UI.puts e
72
+ end
73
+ end
74
+
75
+ private
76
+ def internal_add_dep(map, key, targets)
77
+ children = map['children']
78
+ if children.kind_of?(Array)
79
+ children.each { |c| internal_add_dep(c, key, targets) }
80
+ end
81
+
82
+ target_name = map['name']
83
+
84
+ # if targets is not empty and targets not include target_name, return
85
+ return if !targets.empty? && !targets.include?(target_name)
86
+
87
+ dependencies = map['dependencies']
88
+ if dependencies.kind_of?(Array)
89
+ dependencies << key unless dependencies.include?(key)
90
+ else
91
+ map['dependencies'] = [key]
92
+ end
93
+ end
94
+ end
95
+ end
96
+ end
97
+ end
@@ -0,0 +1,35 @@
1
+ require 'cocoapods-modularization/private/private_cache'
2
+
3
+ module Pod
4
+ class Command
5
+ class Mod < Command
6
+ class Base < Mod
7
+
8
+ self.summary = 'Settle a base directory for pod specs'
9
+
10
+ self.description = <<-DESC
11
+ Settle a base directory for pod specs
12
+ DESC
13
+
14
+ self.arguments = [
15
+ CLAide::Argument.new('PATH', true),
16
+ ]
17
+
18
+ def initialize(argv)
19
+ @path = argv.shift_argument
20
+ super
21
+ end
22
+
23
+ def validate!
24
+ super
25
+ help! 'A Path for the Base is required.' unless @path
26
+ help! 'The Path illlegal.' unless @path =~ /\/([^\/]*)/
27
+ end
28
+
29
+ def run
30
+ Private::PrivateCache.set_search_path(@path)
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,82 @@
1
+ require 'cocoapods-modularization/meta'
2
+ require 'cocoapods-modularization/private'
3
+
4
+ module Pod
5
+ class Command
6
+ class Mod < Command
7
+ class Binary < Mod
8
+
9
+ self.summary = 'Use binary of a component'
10
+
11
+ self.description = <<-DESC
12
+ DESC
13
+
14
+ self.arguments = [
15
+ CLAide::Argument.new('NAME', true),
16
+ ]
17
+
18
+ def self.options
19
+ [
20
+ ["--path='./'", 'local_path of binary'],
21
+ ["--local", 'use local binary, if local path is not specified, will clone from remote']
22
+ ].concat(super)
23
+ end
24
+
25
+ def initialize(argv)
26
+ @name = argv.shift_argument
27
+ @path = argv.option('path', nil)
28
+ @use_local = argv.flag?('local')
29
+ super
30
+ end
31
+
32
+ def validate!
33
+ super
34
+ help! "meta not found, run `pod sync` to fix this issue" unless File.exists?(Meta::MetaConstants.meta_path)
35
+ help! "data not found, run `pod sync` to fix this issue" unless File.exists?(Meta::MetaConstants.data_path)
36
+
37
+ help! 'A name for the Pod is required.' unless @name
38
+ help! 'The Pod name cannot contain spaces.' if @name =~ /\s/
39
+ help! 'The Pod name cannot contain plusses.' if @name =~ /\+/
40
+ help! "The Pod name cannot begin with a '.'" if @name[0, 1] == '.'
41
+
42
+ dependencies = Meta::MetaAccessor.dependencies()
43
+ help! "#{@name} not found in dependencies: #{dependencies}" unless dependencies.include?(@name)
44
+
45
+ if @path.kind_of?(String) && @path.empty?
46
+ podspec_exists = false
47
+ if File::exists?(@path)
48
+ podspec_exists = true
49
+ elsif File::exists?("#{@path}/#{@name}.podspec")
50
+ podspec_exists = true
51
+ end
52
+ help! "#{@name}.podspec not found #{@path}" unless podspec_exists
53
+ end
54
+ end
55
+
56
+ def run
57
+ begin
58
+ Meta::MetaAccessor.set_binary(@name)
59
+ if @path && !@path.empty?
60
+ UI.puts("Switch #{@name} to local path")
61
+ # 写入缓存
62
+ Private::PrivateCache.write_path_into_cache(@name, @path)
63
+ Meta::MetaAccessor.set_local_path(@name, @path)
64
+ elsif @use_local
65
+ path = Private::PrivateCache.start(@name)
66
+ UI.puts("Switch #{@name} to local path: #{path}")
67
+ Meta::MetaAccessor.set_local_path(@name, path)
68
+ else
69
+ UI.puts("Switch #{@name} to remote")
70
+ Meta::MetaAccessor.remove_local_path(@name)
71
+ end
72
+
73
+ Meta::MetaReference.encode_podfile
74
+ UI.puts("Podfile encoded")
75
+ rescue Exception => e
76
+ UI.puts e
77
+ end
78
+ end
79
+ end
80
+ end
81
+ end
82
+ end
@@ -0,0 +1,51 @@
1
+ require 'cocoapods-modularization/private'
2
+
3
+ module Pod
4
+ class Command
5
+ class Mod < Command
6
+ class Config < Mod
7
+ self.summary = 'Config source repo and binary repo'
8
+
9
+ self.description = <<-DESC
10
+ 'pod mod config NAME URL --source' will add NAME into pod repo list, and cocoapods-modulization will use it as source repo.
11
+ So do 'pod mod config NAME URL --binary'
12
+ DESC
13
+
14
+ self.arguments = [
15
+ CLAide::Argument.new('NAME', true),
16
+ CLAide::Argument.new('URL', true)
17
+ ]
18
+
19
+ def self.options
20
+ [
21
+ ['--binary', 'Mark NAME as binary repo, is this options is not specified, repo will be marked as source repo']
22
+ ].concat(super)
23
+ end
24
+
25
+ def initialize(argv)
26
+ @name = argv.shift_argument
27
+ @url = argv.shift_argument
28
+ @binary = argv.flag?('binary')
29
+ @binary ||= false
30
+ super
31
+ end
32
+
33
+ def validate!
34
+ super
35
+ unless @name && @url
36
+ help! 'Adding a repo needs a `NAME` and a `URL`.'
37
+ end
38
+ if @name == 'trunk'
39
+ raise Informative,
40
+ "Repo name `trunk` is reserved for CocoaPods' main spec repo accessed via CDN."
41
+ end
42
+ end
43
+
44
+ def run
45
+ Private::PrivateCache.cache_repo(@name, @url, @binary)
46
+ `pod repo add #{@name} #{@url}`
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,34 @@
1
+ module Pod
2
+ class Command
3
+ class Mod < Command
4
+ class Create < Mod
5
+ self.summary = 'Create a template repo with modulization template.'
6
+
7
+ self.description = <<-DESC
8
+ Be sure that you hase access right to gitlab.appshahe.com.
9
+ DESC
10
+
11
+ self.arguments = [
12
+ CLAide::Argument.new('NAME', true)
13
+ ]
14
+
15
+ def initialize(argv)
16
+ @name = argv.shift_argument
17
+ super
18
+ end
19
+
20
+ def validate!
21
+ super
22
+ help! 'A name for the Pod is required.' unless @name
23
+ help! 'The Pod name cannot contain spaces.' if @name =~ /\s/
24
+ help! 'The Pod name cannot contain plusses.' if @name =~ /\+/
25
+ help! "The Pod name cannot begin with a '.'" if @name[0, 1] == '.'
26
+ end
27
+
28
+ def run
29
+ `pod lib create #{@name} --template-url='http://gitlab.appshahe.com/ios-specs/template.git'`
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,26 @@
1
+ require 'cocoapods-modularization/meta'
2
+
3
+ module Pod
4
+ class Command
5
+ class Mod < Command
6
+ class Inspect < Mod
7
+ self.summary = 'This command is for debug'
8
+
9
+ self.description = <<-DESC
10
+ DESC
11
+
12
+ def initialize(argv)
13
+ super
14
+ end
15
+
16
+ def validate!
17
+ super
18
+ end
19
+
20
+ def run
21
+ Meta::MetaReference.encode_podfile(true)
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,81 @@
1
+ require 'cocoapods-modularization/meta'
2
+ require 'cocoapods-modularization/private'
3
+
4
+ module Pod
5
+ class Command
6
+ class Mod < Command
7
+ class Source < Mod
8
+
9
+ self.summary = 'Use source of a component'
10
+
11
+ self.description = <<-DESC
12
+ DESC
13
+
14
+ self.arguments = [
15
+ CLAide::Argument.new('NAME', true)
16
+ ]
17
+
18
+ def self.options
19
+ [
20
+ ['--path=URL', 'local filePath of the component'],
21
+ ["--local", 'use local source, if local path is not specified, will clone from remote']
22
+ ].concat(super)
23
+ end
24
+
25
+ def initialize(argv)
26
+ @name = argv.shift_argument
27
+ @path = argv.option('path', nil)
28
+ @use_local = argv.flag?('local')
29
+ super
30
+ end
31
+
32
+ def validate!
33
+ super
34
+ help! "meta.yml not found, run `pod sync` to fix this issue" unless File.exists?(Meta::MetaConstants.meta_path)
35
+ help! "data.yml not found, run `pod sync` to fix this issue" unless File.exists?(Meta::MetaConstants.data_path)
36
+
37
+ help! 'A name for the Pod is required.' unless @name
38
+ help! 'The Pod name cannot contain spaces.' if @name =~ /\s/
39
+ help! 'The Pod name cannot contain plusses.' if @name =~ /\+/
40
+ help! "The Pod name cannot begin with a '.'" if @name[0, 1] == '.'
41
+
42
+ dependencies = Meta::MetaAccessor.dependencies()
43
+ help! "#{@name} not found in dependencies: #{dependencies}" unless dependencies.include?(@name)
44
+
45
+ if @path.kind_of?(String) && @path.empty?
46
+ podspec_exists = false
47
+ if File::exists?(@path)
48
+ podspec_exists = true
49
+ elsif File::exists?("#{@path}/#{@name}.podspec")
50
+ podspec_exists = true
51
+ end
52
+ help! "#{@name}.podspec not found #{@path}" unless podspec_exists
53
+ end
54
+ end
55
+
56
+ def run
57
+ begin
58
+ Meta::MetaAccessor.set_source(@name)
59
+ if @path && !@path.empty?
60
+ UI.puts("Switch #{@name} to local path")
61
+ Private::PrivateCache.write_path_into_cache(@name, @path)
62
+ Meta::MetaAccessor.set_local_path(@name, @path)
63
+ elsif @use_local
64
+ path = Private::PrivateCache.start(@name)
65
+ UI.puts("Switch #{@name} to local path: #{path}")
66
+ Meta::MetaAccessor.set_local_path(@name, path)
67
+ else
68
+ UI.puts("Switch #{@name} to remote")
69
+ Meta::MetaAccessor.remove_local_path(@name)
70
+ end
71
+
72
+ Meta::MetaReference.encode_podfile
73
+ UI.puts("Podfile encoded")
74
+ rescue Exception => e
75
+ UI.puts e
76
+ end
77
+ end
78
+ end
79
+ end
80
+ end
81
+ end
@@ -0,0 +1,29 @@
1
+ require 'cocoapods-modularization/meta'
2
+
3
+ module Pod
4
+ class Command
5
+ class Mod < Command
6
+ class Sync < Mod
7
+ self.summary = 'Generate meta.yml、data.yml、Podfile.yml with Podfile'
8
+
9
+ self.description = <<-DESC
10
+ In meta.yml, you can update structure of the Pod such as dependecies、sources、plugins.Meta.yml is jus like a index of a Pod.
11
+ There stores entities of all dependencies in data.yml such as version、source.
12
+ Podfile.yml is just similar with data.yml but Podfile.yml is git ignored.
13
+ DESC
14
+
15
+ def initialize(argv)
16
+ super
17
+ end
18
+
19
+ def validate!
20
+ super
21
+ end
22
+
23
+ def run
24
+ Meta::MetaReference.decode_podfile(config)
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,64 @@
1
+ module Pod
2
+ class Command
3
+ class Mod < Command
4
+ class Update < Mod
5
+
6
+ self.summary = 'Update a component'
7
+
8
+ self.description = <<-DESC
9
+ pod dep update specs --version=0.0.1
10
+ DESC
11
+
12
+ self.arguments = [
13
+ CLAide::Argument.new('NAME', true)
14
+ ]
15
+
16
+ def self.options
17
+ [
18
+ ['--version=VERSION', 'version of the component, if this option is not indicate, version will be auto increased']
19
+ ].concat(super)
20
+ end
21
+
22
+ def initialize(argv)
23
+ @name = argv.shift_argument
24
+
25
+ version = Meta::MetaAccessor.version(@name)
26
+ @version = argv.option('version', version_auto_increase(version))
27
+ super
28
+ end
29
+
30
+ def validate!
31
+ super
32
+ help! "meta not found, run `pod sync` to fix this issue" unless File.exists?(Meta::MetaConstants.meta_path)
33
+ help! "data not found, run `pod sync` to fix this issue" unless File.exists?(Meta::MetaConstants.data_path)
34
+
35
+ help! 'A component name is required.' unless @name
36
+ dependencies = Meta::MetaAccessor.dependencies()
37
+ help! "#{@name} not found in dependencies: #{dependencies}" unless dependencies.include?(@name)
38
+
39
+ help! "version (#{@version}) illlegal" unless @version =~ /\d+\.\d+\.\d+/
40
+ end
41
+
42
+ def run
43
+ Meta::MetaAccessor.update_dep(@name, @version)
44
+ UI.puts("#{@name} has been updated to #{@version}")
45
+
46
+ Meta::MetaReference.encode_podfile
47
+ UI.puts("Podfile encoded")
48
+ end
49
+
50
+ private
51
+ def version_auto_increase(version_input)
52
+ version = version_input
53
+ version_elements = version.to_s.split(".")
54
+ return nil unless version_elements.size == 3
55
+ last_version_element = version_elements.at(2)
56
+ last_version_num = last_version_element.to_i
57
+ last_version_num = last_version_num + 1
58
+ version_elements[2] = last_version_num
59
+ return version_elements.join(".")
60
+ end
61
+ end
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,28 @@
1
+ require 'cocoapods-modularization/command/mod/create'
2
+ require 'cocoapods-modularization/command/mod/sync'
3
+ require 'cocoapods-modularization/command/mod/inspect'
4
+ require 'cocoapods-modularization/command/mod/source'
5
+ require 'cocoapods-modularization/command/mod/binary'
6
+ require 'cocoapods-modularization/command/mod/config'
7
+ require 'cocoapods-modularization/command/mod/add'
8
+ require 'cocoapods-modularization/command/mod/update'
9
+ require 'cocoapods-modularization/command/mod/base'
10
+
11
+ module Pod
12
+ class Command
13
+ class Mod < Command
14
+ self.summary = 'cocoapods-modularization commands group'
15
+
16
+ def initialize(argv)
17
+ super
18
+ end
19
+
20
+ def validate!
21
+ super
22
+ end
23
+
24
+ def run
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,2 @@
1
+ require 'cocoapods-modularization/command/mod'
2
+ require 'cocoapods-modularization/command/install'
@@ -0,0 +1,3 @@
1
+ module CocoapodsModularization
2
+ VERSION = "0.0.2"
3
+ end