cocoapods-square-stable 0.19.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +1296 -0
  3. data/LICENSE +20 -0
  4. data/README.md +94 -0
  5. data/bin/pod +16 -0
  6. data/bin/sandbox-pod +120 -0
  7. data/lib/cocoapods.rb +77 -0
  8. data/lib/cocoapods/command.rb +116 -0
  9. data/lib/cocoapods/command/help.rb +23 -0
  10. data/lib/cocoapods/command/inter_process_communication.rb +178 -0
  11. data/lib/cocoapods/command/list.rb +77 -0
  12. data/lib/cocoapods/command/outdated.rb +56 -0
  13. data/lib/cocoapods/command/podfile_info.rb +91 -0
  14. data/lib/cocoapods/command/project.rb +88 -0
  15. data/lib/cocoapods/command/push.rb +172 -0
  16. data/lib/cocoapods/command/repo.rb +145 -0
  17. data/lib/cocoapods/command/search.rb +61 -0
  18. data/lib/cocoapods/command/setup.rb +134 -0
  19. data/lib/cocoapods/command/spec.rb +590 -0
  20. data/lib/cocoapods/config.rb +231 -0
  21. data/lib/cocoapods/downloader.rb +59 -0
  22. data/lib/cocoapods/executable.rb +118 -0
  23. data/lib/cocoapods/external_sources.rb +363 -0
  24. data/lib/cocoapods/file_list.rb +36 -0
  25. data/lib/cocoapods/gem_version.rb +7 -0
  26. data/lib/cocoapods/generator/acknowledgements.rb +107 -0
  27. data/lib/cocoapods/generator/acknowledgements/markdown.rb +40 -0
  28. data/lib/cocoapods/generator/acknowledgements/plist.rb +64 -0
  29. data/lib/cocoapods/generator/bridge_support.rb +22 -0
  30. data/lib/cocoapods/generator/copy_resources_script.rb +54 -0
  31. data/lib/cocoapods/generator/dummy_source.rb +22 -0
  32. data/lib/cocoapods/generator/prefix_header.rb +82 -0
  33. data/lib/cocoapods/generator/target_environment_header.rb +86 -0
  34. data/lib/cocoapods/generator/xcconfig.rb +185 -0
  35. data/lib/cocoapods/hooks/installer_representation.rb +134 -0
  36. data/lib/cocoapods/hooks/library_representation.rb +94 -0
  37. data/lib/cocoapods/hooks/pod_representation.rb +74 -0
  38. data/lib/cocoapods/installer.rb +571 -0
  39. data/lib/cocoapods/installer/analyzer.rb +559 -0
  40. data/lib/cocoapods/installer/analyzer/sandbox_analyzer.rb +253 -0
  41. data/lib/cocoapods/installer/file_references_installer.rb +179 -0
  42. data/lib/cocoapods/installer/pod_source_installer.rb +248 -0
  43. data/lib/cocoapods/installer/target_installer.rb +379 -0
  44. data/lib/cocoapods/installer/user_project_integrator.rb +180 -0
  45. data/lib/cocoapods/installer/user_project_integrator/target_integrator.rb +224 -0
  46. data/lib/cocoapods/library.rb +202 -0
  47. data/lib/cocoapods/open_uri.rb +24 -0
  48. data/lib/cocoapods/project.rb +209 -0
  49. data/lib/cocoapods/resolver.rb +212 -0
  50. data/lib/cocoapods/sandbox.rb +343 -0
  51. data/lib/cocoapods/sandbox/file_accessor.rb +217 -0
  52. data/lib/cocoapods/sandbox/headers_store.rb +96 -0
  53. data/lib/cocoapods/sandbox/path_list.rb +208 -0
  54. data/lib/cocoapods/sources_manager.rb +276 -0
  55. data/lib/cocoapods/user_interface.rb +304 -0
  56. data/lib/cocoapods/user_interface/error_report.rb +101 -0
  57. data/lib/cocoapods/validator.rb +350 -0
  58. metadata +238 -0
data/LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2011 - 2012 Eloy Durán <eloy.de.enige@gmail.com>
2
+ Copyright (c) 2012 Fabio Pelosin <fabiopelosin@gmail.com>
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.
@@ -0,0 +1,94 @@
1
+ # CocoaPods – an Objective-C library manager
2
+
3
+ [![Build Status](https://travis-ci.org/CocoaPods/CocoaPods.png?branch=master)](https://travis-ci.org/CocoaPods/CocoaPods)
4
+ [![Code Climate](https://codeclimate.com/github/CocoaPods/CocoaPods.png)](https://codeclimate.com/github/CocoaPods/CocoaPods)
5
+ [![Dependency Status](https://gemnasium.com/CocoaPods/CocoaPods.png)](https://gemnasium.com/CocoaPods/CocoaPods)
6
+ [![Gem Version](https://badge.fury.io/rb/cocoapods.png)](http://badge.fury.io/rb/cocoapods)
7
+
8
+ CocoaPods manages library dependencies for your Xcode project.
9
+
10
+ You specify the dependencies for your project in one easy text file. CocoaPods
11
+ resolves dependencies between libraries, fetches source code for the
12
+ dependencies, and creates and maintains an Xcode workspace to build your
13
+ project.
14
+
15
+ Ultimately, the goal is to improve discoverability of, and engagement in, third
16
+ party open-source libraries, by creating a more centralized ecosystem.
17
+
18
+ Installing and updating CocoaPods is very easy. Don't miss the [Installation
19
+ guide](http://docs.cocoapods.org/guides/installing_cocoapods.html) and the
20
+ [Getting started guide](http://docs.cocoapods.org/guides/getting_started.html).
21
+ See the [NSScreencast](https://twitter.com/NSScreencast) episode about [using
22
+ CocoaPods](http://nsscreencast.com/episodes/5-cocoapods) for a quick overview.
23
+
24
+
25
+ ## Links
26
+
27
+ | Link | Description |
28
+ | :----- | :------ |
29
+ [CocoaPods.org](http://cocoapods.org/) | Homepage and search for Pods.
30
+ [@CocoaPods](http://twitter.com/CocoaPods) | Follow CocoaPods on Twitter to get up to date information about what's going on in the CocoaPods world.
31
+ [Mailing List](http://groups.google.com/group/cocoapods) | Announcements and support. Feel free to ask any kind of question.
32
+ [Documentation](http://docs.cocoapods.org) | Everything you want to know about CocoaPods.
33
+ [Changelog](https://github.com/CocoaPods/CocoaPods/blob/master/CHANGELOG.md) | See the changes introduced by each CocoaPods version.
34
+ [RSS feed](http://feeds.cocoapods.org/new-pods.rss) | Don't miss any new Pod.
35
+
36
+
37
+ ## Projects
38
+
39
+ CocoaPods is composed by the following projects:
40
+
41
+ | Status | Project | Description | Info |
42
+ | :----- | :------ | :--- | :--- |
43
+ | [![Build Status](https://secure.travis-ci.org/CocoaPods/CocoaPods.png?branch=master)](http://travis-ci.org/CocoaPods/CocoaPods) | [CocoaPods](https://github.com/CocoaPods/CocoaPods) | The CocoaPods command line tool. | [docs](http://docs.cocoapods.org/cocoapods)
44
+ | [![Build Status](https://secure.travis-ci.org/CocoaPods/Core.png?branch=master)](http://travis-ci.org/CocoaPods/Core) | [CocoaPods Core](https://github.com/CocoaPods/Core) | Support for working with specifications and podfiles. | [docs](http://docs.cocoapods.org/cocoapods_core)
45
+ | [![Build Status](https://secure.travis-ci.org/CocoaPods/cocoapods-downloader.png?branch=master)](http://travis-ci.org/CocoaPods/cocoapods-downloader) |[CocoaPods Downloader](https://github.com/CocoaPods/cocoapods-downloader) | A small library that provides downloaders for various source types. | [docs](http://docs.cocoapods.org/cocoapods_downloader/index.html)
46
+ | [![Build Status](https://travis-ci.org/CocoaPods/Xcodeproj.png?branch=master)](https://travis-ci.org/CocoaPods/Xcodeproj) | [Xcodeproj](https://github.com/CocoaPods/Xcodeproj) | Create and modify Xcode projects from Ruby. | [docs](http://docs.cocoapods.org/xcodeproj/index.html)
47
+ | [![Build Status](https://travis-ci.org/CocoaPods/CLAide.png?branch=master)](https://travis-ci.org/CocoaPods/CLAide) | [CLAide](https://github.com/CocoaPods/CLAide) | A small command-line interface framework. | [docs](http://docs.cocoapods.org/claide/index.html)
48
+ | [![Build Status](https://secure.travis-ci.org/CocoaPods/Specs.png?branch=master)](http://travis-ci.org/CocoaPods/Specs) | [Master Repo ](https://github.com/CocoaPods/Specs) | Master repository of specifications. | [guide](http://docs.cocoapods.org/guides/contributing_to_the_master_repo.html)
49
+
50
+
51
+ ## Collaborate
52
+
53
+ All CocoaPods development happens on GitHub, contributions make good karma and
54
+ we welcome with joy new contributors.
55
+
56
+ # Donations
57
+
58
+ - [@fngtps](http://twitter.com/fngtps) is donating time to work on the design
59
+ of the forthcoming cocoapods.org website and donated the money to hire [Max
60
+ Steenbergen](http://twitter.com/maxsteenbergen) to design [an
61
+ icon](http://drbl.in/cpmL) for it.
62
+ - [@sauspiel](http://twitter.com/Sauspiel) uses CocoaPods for their games and
63
+ have hired me to add features and specs they needed. These are Nimbus,
64
+ QuincyKit, and HockeyKit. For the [Nimbus
65
+ spec](https://github.com/CocoaPods/Specs/blob/master/Nimbus/0.9.0/Nimbus.podspec),
66
+ the ‘subspecs’ feature was added.
67
+
68
+ # Endorsements
69
+
70
+ - “I am crazy excited about this. With the growing number of Objective-C
71
+ libraries, this will make things so much better.” –– [Sam
72
+ Soffes](http://news.ycombinator.com/item?id=3009154)
73
+ - “Are you doing open source iOS components? You really should support
74
+ @CocoaPods!” –– [Matthias
75
+ Tretter](http://twitter.com/#!/myell0w/status/134955697740840961)
76
+ - “So glad someone has finally done this...” –– [Tom
77
+ Wilson](http://news.ycombinator.com/item?id=3009349)
78
+ - “Anybody who has tasted the coolness of RubyGems (and @gembundler)
79
+ understands how cool CocoaPods might be.” –– [StuFF
80
+ mc](http://twitter.com/#!/stuffmc/status/115374231591731200)
81
+ - “I will be working on getting several of my Objective-C libraries ready for
82
+ CocoaPods this week!” –– [Luke
83
+ Redpath](http://twitter.com/#!/lukeredpath/status/115510581921988608)
84
+ - “Really digg how @alloy is building a potential game changer” –– [Klaas
85
+ Speller](https://twitter.com/#!/spllr/status/115914209438601216)
86
+ - “@alloy's making an Objective-C package manager. This is fantastic news
87
+ kids!” –– [Josh
88
+ Abernathy](http://twitter.com/#!/joshaber/status/115273577703555073)
89
+ - “A package manager for Cocoa/Objective-C, built with @MacRuby. Awesomeness!”
90
+ –– [Johannes
91
+ Fahrenkrug](http://twitter.com/#!/jfahrenkrug/status/115303240286998528)
92
+ - “This is awesome, I love endorsements!” –– [Appie
93
+ Durán](http://twitter.com/#!/AppieDuran)
94
+
data/bin/pod ADDED
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ if $0 == __FILE__
4
+ ENV['BUNDLE_GEMFILE'] = File.expand_path('../../Gemfile', __FILE__)
5
+ require "rubygems"
6
+ require "bundler/setup"
7
+ $:.unshift File.expand_path('../../lib', __FILE__)
8
+ end
9
+
10
+ if (ENV['CP_STDOUT_SYNC'] == 'TRUE')
11
+ STDOUT.sync = true
12
+ end
13
+
14
+ require 'cocoapods'
15
+
16
+ Pod::Command.run(ARGV)
@@ -0,0 +1,120 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # This bin wrapper runs the `pod` command in a OS X sandbox. The reason for this
4
+ # is to ensure that people can’t use malicious code from pod specifications.
5
+ #
6
+ # It does this by creating a ‘seatbelt’ profile on the fly and executing the
7
+ # given command through `/usr/bin/sandbox-exec`. This profile format is an
8
+ # undocumented format, which uses TinyScheme to implement its DSL.
9
+ #
10
+ # Even though it uses a undocumented format, it’s actually very self-explanatory.
11
+ # Because we use a whitelist approach, `(deny default)`, any action that is
12
+ # denied is logged to `/var/log/system.log`. So tailing that should provide
13
+ # enough information on steps that need to be take to get something to work.
14
+ #
15
+ # For more information see:
16
+ #
17
+ # * https://github.com/CocoaPods/CocoaPods/issues/939
18
+ # * http://reverse.put.as/wp-content/uploads/2011/08/The-Apple-Sandbox-BHDC2011-Slides.pdf
19
+ # * http://reverse.put.as/wp-content/uploads/2011/08/The-Apple-Sandbox-BHDC2011-Paper.pdf
20
+ # * https://github.com/s7ephen/OSX-Sandbox--Seatbelt--Profiles
21
+ # * `$ man sandbox-exec`
22
+ # * `$ ls /usr/share/sandbox`
23
+
24
+ if $0 == __FILE__
25
+ $:.unshift File.expand_path('../../lib', __FILE__)
26
+ end
27
+ require 'pathname'
28
+ require 'cocoapods/config'
29
+
30
+
31
+ pod_bin = File.expand_path('../pod', __FILE__)
32
+ pod_prefix = File.expand_path('../..', pod_bin)
33
+
34
+ require 'rbconfig'
35
+ ruby_bin = File.join(RbConfig::CONFIG['bindir'], RbConfig::CONFIG['ruby_install_name'])
36
+ ruby_prefix = RbConfig::CONFIG['prefix']
37
+
38
+ prefixes = ['/bin', '/usr/bin', '/usr/libexec']
39
+ prefixes << `brew --prefix`.strip unless `which brew`.strip.empty?
40
+ # TODO add MacPorts. More?
41
+
42
+ developer_prefix = `xcode-select --print-path`.strip
43
+ xcode_app_path = File.expand_path('../..', developer_prefix)
44
+
45
+
46
+ require 'erb'
47
+ profile = ERB.new(DATA.read, 0, '>').result(TOPLEVEL_BINDING)
48
+ puts profile
49
+
50
+ command = ['/usr/bin/sandbox-exec', '-p', profile, pod_bin, *ARGV]
51
+ #puts command
52
+ exec *command
53
+
54
+
55
+ __END__
56
+ (version 1)
57
+ (debug allow)
58
+
59
+ (import "mDNSResponder.sb")
60
+
61
+ (allow file-ioctl)
62
+ (allow sysctl-read)
63
+ (allow mach-lookup)
64
+ (allow ipc-posix-shm)
65
+ (allow process-fork)
66
+ (allow system-socket)
67
+
68
+ ; TODO make this stricter if possible
69
+ (allow network-outbound)
70
+
71
+ (allow process-exec
72
+ (regex
73
+ #"^<%= pod_bin %>"
74
+ #"^<%= ruby_bin %>"
75
+ #"^<%= File.join(developer_prefix, 'usr/bin/xcrun') %>"
76
+ #"^<%= File.join(developer_prefix, 'usr/bin/xcodebuild') %>"
77
+ <% prefixes.each do |prefix| %>
78
+ #"^<%= prefix %>/*"
79
+ <% end %>
80
+ )
81
+ )
82
+
83
+ (allow file-read-metadata)
84
+ (allow file-read*
85
+ (regex
86
+ ; TODO see if we can restrict this more, but it's going to be hard
87
+ #"^/Users/[^.]+/*"
88
+ ;#"^/Users/[^.]+/.netrc"
89
+ ;#"^/Users/[^.]+/.gemrc"
90
+ ;#"^/Users/[^.]+/.gem/*"
91
+ ;#"^/Users/[^.]+/Library/.*"
92
+ #"^/Library/*"
93
+ #"^/System/Library/*"
94
+ #"^/usr/lib/*"
95
+ #"^/usr/share/*"
96
+ #"^/private/*"
97
+ #"^/dev/*"
98
+ #"^<%= ruby_prefix %>"
99
+ #"^<%= pod_prefix %>"
100
+ #"^<%= xcode_app_path %>"
101
+ #"^<%= Pod::Config.instance.repos_dir %>"
102
+ <% prefixes.each do |prefix| %>
103
+ #"^<%= prefix %>/*"
104
+ <% end %>
105
+ )
106
+ )
107
+
108
+ (allow file-write*
109
+ (regex
110
+ #"^<%= Pod::Config.instance.project_root %>"
111
+ #"^<%= Pod::Config.instance.repos_dir %>"
112
+ #"^/Users/[^.]+/Library/Caches/CocoaPods/*"
113
+ #"^/dev/dtracehelper"
114
+ #"^/dev/tty"
115
+ #"^/dev/null"
116
+ #"^/private/var"
117
+ )
118
+ )
119
+
120
+ (deny default)
@@ -0,0 +1,77 @@
1
+ require 'rubygems'
2
+
3
+ autoload :Xcodeproj, 'xcodeproj'
4
+
5
+ module Pod
6
+ require 'pathname'
7
+
8
+ require 'cocoapods/gem_version'
9
+ require 'cocoapods-core'
10
+ require 'cocoapods/file_list'
11
+ require 'cocoapods/config'
12
+
13
+ autoload :Downloader, 'cocoapods/downloader'
14
+
15
+ # Indicates an user error. This is defined in cocoapods-core.
16
+ #
17
+ class Informative < PlainInformative
18
+ def message
19
+ "[!] #{super}".red
20
+ end
21
+ end
22
+
23
+ # @return [Pathname] The directory where CocoaPods caches the downloads.
24
+ #
25
+ # @todo The {Installer::PodSourceInstaller} and the #{ExternalSources}
26
+ # classes build and configure the downloader from scratch.
27
+ #
28
+ CACHE_ROOT = Pathname.new(File.join(ENV['HOME'], 'Library/Caches/CocoaPods'))
29
+ CACHE_ROOT.mkpath unless CACHE_ROOT.exist?
30
+
31
+ # @return [Fixnum] The maximum size for the cache expressed in Mb.
32
+ #
33
+ # @todo The {Installer::PodSourceInstaller} and the #{ExternalSources}
34
+ # classes build and configure the downloader from scratch.
35
+ #
36
+ MAX_CACHE_SIZE = 500
37
+
38
+ # @return [Pathname] The file to use a cache of the statistics provider.
39
+ #
40
+ STATISTICS_CACHE_FILE = CACHE_ROOT + 'statistics.yml'
41
+
42
+ autoload :Command, 'cocoapods/command'
43
+ autoload :Executable, 'cocoapods/executable'
44
+ autoload :ExternalSources, 'cocoapods/external_sources'
45
+ autoload :Installer, 'cocoapods/installer'
46
+ autoload :SourcesManager, 'cocoapods/sources_manager'
47
+ autoload :Library, 'cocoapods/library'
48
+ autoload :Project, 'cocoapods/project'
49
+ autoload :Resolver, 'cocoapods/resolver'
50
+ autoload :Sandbox, 'cocoapods/sandbox'
51
+ autoload :UI, 'cocoapods/user_interface'
52
+ autoload :Validator, 'cocoapods/validator'
53
+
54
+ module Generator
55
+ autoload :Acknowledgements, 'cocoapods/generator/acknowledgements'
56
+ autoload :BridgeSupport, 'cocoapods/generator/bridge_support'
57
+ autoload :CopyResourcesScript, 'cocoapods/generator/copy_resources_script'
58
+ autoload :DummySource, 'cocoapods/generator/dummy_source'
59
+ autoload :Markdown, 'cocoapods/generator/acknowledgements/markdown'
60
+ autoload :Plist, 'cocoapods/generator/acknowledgements/plist'
61
+ autoload :PrefixHeader, 'cocoapods/generator/prefix_header'
62
+ autoload :TargetEnvironmentHeader, 'cocoapods/generator/target_environment_header'
63
+ autoload :XCConfig, 'cocoapods/generator/xcconfig'
64
+ end
65
+
66
+ module Hooks
67
+ autoload :InstallerRepresentation, 'cocoapods/hooks/installer_representation'
68
+ autoload :LibraryRepresentation, 'cocoapods/hooks/library_representation'
69
+ autoload :PodRepresentation, 'cocoapods/hooks/pod_representation'
70
+ end
71
+
72
+ end
73
+
74
+ if ENV['COCOA_PODS_ENV'] == 'development'
75
+ # require 'awesome_print'
76
+ # require 'pry'
77
+ end
@@ -0,0 +1,116 @@
1
+ require 'colored'
2
+ require 'claide'
3
+
4
+ module Pod
5
+ class PlainInformative
6
+ include CLAide::InformativeError
7
+ end
8
+
9
+ class Command < CLAide::Command
10
+
11
+ require 'cocoapods/command/list'
12
+ require 'cocoapods/command/outdated'
13
+ require 'cocoapods/command/project'
14
+ require 'cocoapods/command/push'
15
+ require 'cocoapods/command/repo'
16
+ require 'cocoapods/command/search'
17
+ require 'cocoapods/command/setup'
18
+ require 'cocoapods/command/spec'
19
+ require 'cocoapods/command/help'
20
+ require 'cocoapods/command/inter_process_communication'
21
+ require 'cocoapods/command/podfile_info'
22
+
23
+ self.abstract_command = true
24
+ self.command = 'pod'
25
+ self.description = 'CocoaPods, the Objective-C library package manager.'
26
+
27
+ def self.options
28
+ [
29
+ ['--silent', 'Show nothing'],
30
+ ['--version', 'Show the version of CocoaPods'],
31
+ ].concat(super)
32
+ end
33
+
34
+ def self.parse(argv)
35
+ command = super
36
+ unless SourcesManager.master_repo_functional? || command.is_a?(Setup) || command.is_a?(Repo::Add) || ENV['SKIP_SETUP']
37
+ Setup.new(CLAide::ARGV.new([])).run
38
+ end
39
+ command
40
+ end
41
+
42
+ def self.run(argv)
43
+ argv = CLAide::ARGV.new(argv)
44
+ if argv.flag?('version')
45
+ puts VERSION
46
+ exit!(0)
47
+ end
48
+ super(argv)
49
+ UI.print_warnings
50
+ end
51
+
52
+ def self.report_error(exception)
53
+ if exception.is_a?(Interrupt)
54
+ puts "[!] Cancelled".red
55
+ Config.instance.verbose? ? raise : exit(1)
56
+ else
57
+ if ENV['COCOA_PODS_ENV'] != 'development'
58
+ puts UI::ErrorReport.report(exception)
59
+ exit 1
60
+ else
61
+ raise exception
62
+ end
63
+ end
64
+ end
65
+
66
+ # @todo If a command is run inside another one some settings which where
67
+ # true might return false.
68
+ #
69
+ # @todo We should probably not even load colored unless needed.
70
+ #
71
+ # @todo Move silent flag to CLAide.
72
+ #
73
+ # @note It is important that the commands don't override the default
74
+ # settings if their flag is missing (i.e. their value is nil)
75
+ #
76
+ def initialize(argv)
77
+ super
78
+ config.silent = argv.flag?('silent', config.silent)
79
+ config.verbose = self.verbose? unless self.verbose.nil?
80
+ unless self.colorize_output?
81
+ String.send(:define_method, :colorize) { |string , _| string }
82
+ end
83
+ end
84
+
85
+ #-------------------------------------------------------------------------#
86
+
87
+ include Config::Mixin
88
+
89
+ private
90
+
91
+ # Checks that the podfile exists.
92
+ #
93
+ # @raise If the podfile does not exists.
94
+ #
95
+ # @return [void]
96
+ #
97
+ def verify_podfile_exists!
98
+ unless config.podfile
99
+ raise Informative, "No `Podfile' found in the current working directory."
100
+ end
101
+ end
102
+
103
+ # Checks that the lockfile exists.
104
+ #
105
+ # @raise If the lockfile does not exists.
106
+ #
107
+ # @return [void]
108
+ #
109
+ def verify_lockfile_exists!
110
+ unless config.lockfile
111
+ raise Informative, "No `Podfile.lock' found in the current working directory, run `pod install'."
112
+ end
113
+ end
114
+ end
115
+ end
116
+