cocoapods-plugins 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.rubocop.yml +1 -1
- data/{.rubocop-cocoapods.yml → .rubocop_cocoapods.yml} +30 -2
- data/.travis.yml +11 -13
- data/CHANGELOG.md +8 -0
- data/Gemfile +7 -2
- data/Gemfile.lock +77 -56
- data/README.md +4 -4
- data/Rakefile +2 -3
- data/lib/cocoapods_plugins.rb +1 -1
- data/lib/pod/command/gem_helper.rb +114 -0
- data/lib/pod/command/gem_index_cache.rb +87 -0
- data/lib/pod/command/plugins/create.rb +18 -7
- data/lib/pod/command/plugins/list.rb +2 -0
- data/lib/pod/command/plugins/search.rb +7 -5
- data/lib/pod/command/plugins_helper.rb +32 -23
- data/spec/command/gem_helper_spec.rb +40 -0
- data/spec/command/gem_index_cache_spec.rb +39 -0
- data/spec/command/plugins/create_spec.rb +2 -2
- data/spec/command/plugins/list_spec.rb +2 -2
- data/spec/command/plugins/search_spec.rb +2 -2
- data/spec/command/plugins_helper_spec.rb +1 -6
- data/spec/spec_helper.rb +19 -14
- metadata +21 -15
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 175693b505a342790eaf3cbcfab9fe7d6c927632
|
|
4
|
+
data.tar.gz: 1eb97667021a96671e34ee923e62240661435bfc
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7efb87c03471c63a0b594674a09cba9e8fe1360e494cb3d2a6c3f23e485fde14d2f948f97b39a382fa399039ec7ea4eb2c0cd50b9a3faba4eae220ca53ad0f35
|
|
7
|
+
data.tar.gz: b5bf88be513744b69e474ca6954d574074fb4e35adee075654eda5f5eda76e4e5d24243318495332b7a62b943a427d4db4fbe3248c6b24706c8667cb8a3e001c
|
data/.rubocop.yml
CHANGED
|
@@ -1,8 +1,15 @@
|
|
|
1
1
|
AllCops:
|
|
2
2
|
Include:
|
|
3
|
-
- Rakefile
|
|
3
|
+
- ./Rakefile
|
|
4
|
+
- ./Gemfile
|
|
5
|
+
- ./*.gemspec
|
|
4
6
|
Exclude:
|
|
5
|
-
- spec/fixtures
|
|
7
|
+
- ./spec/fixtures/**/*
|
|
8
|
+
|
|
9
|
+
# At the moment not ready to be used
|
|
10
|
+
# https://github.com/bbatsov/rubocop/issues/947
|
|
11
|
+
Documentation:
|
|
12
|
+
Enabled: false
|
|
6
13
|
|
|
7
14
|
#- CocoaPods -----------------------------------------------------------------#
|
|
8
15
|
|
|
@@ -30,6 +37,19 @@ SingleLineBlockParams:
|
|
|
30
37
|
Encoding:
|
|
31
38
|
Enabled: false
|
|
32
39
|
|
|
40
|
+
# Having these make it easier to *not* forget to add one when adding a new
|
|
41
|
+
# value and you can simply copy the previous line.
|
|
42
|
+
TrailingComma:
|
|
43
|
+
EnforcedStyleForMultiline: comma
|
|
44
|
+
|
|
45
|
+
# Clashes with CLAide Command#validate!
|
|
46
|
+
GuardClause:
|
|
47
|
+
Enabled: false
|
|
48
|
+
|
|
49
|
+
# Not always desirable: lib/claide/command/plugins_helper.rb:12:15
|
|
50
|
+
Next:
|
|
51
|
+
Enabled: false
|
|
52
|
+
|
|
33
53
|
#- CocoaPods support for Ruby 1.8.7 ------------------------------------------#
|
|
34
54
|
|
|
35
55
|
HashSyntax:
|
|
@@ -38,6 +58,14 @@ HashSyntax:
|
|
|
38
58
|
Lambda:
|
|
39
59
|
Enabled: false
|
|
40
60
|
|
|
61
|
+
DotPosition:
|
|
62
|
+
EnforcedStyle: trailing
|
|
63
|
+
|
|
64
|
+
EachWithObject:
|
|
65
|
+
Enabled: false
|
|
66
|
+
|
|
67
|
+
Style/SpecialGlobalVars:
|
|
68
|
+
Enabled: false
|
|
41
69
|
|
|
42
70
|
#- CocoaPods specs -----------------------------------------------------------#
|
|
43
71
|
|
data/.travis.yml
CHANGED
|
@@ -1,26 +1,24 @@
|
|
|
1
|
-
# Sets Travis to run the Ruby specs on OS X machines
|
|
2
|
-
#
|
|
1
|
+
# Sets Travis to run the Ruby specs on OS X machines to be as close as possible
|
|
2
|
+
# to the user environment.
|
|
3
3
|
#
|
|
4
4
|
language: objective-c
|
|
5
|
+
addons:
|
|
6
|
+
code_climate:
|
|
7
|
+
repo_token: 2926ae7ea0b2a6ced8b0d67efa235769ab85de1d9c9f6702f40d80bacec3c9c4
|
|
8
|
+
|
|
5
9
|
env:
|
|
6
|
-
# This is what 10.8.x comes with and we want to support that.
|
|
7
10
|
- RVM_RUBY_VERSION=system
|
|
8
|
-
- RVM_RUBY_VERSION=
|
|
11
|
+
# - RVM_RUBY_VERSION=1.8.7-p358
|
|
9
12
|
|
|
10
13
|
before_install:
|
|
14
|
+
- export LANG=en_US.UTF-8
|
|
11
15
|
- curl http://curl.haxx.se/ca/cacert.pem -o /usr/local/share/cacert.pem
|
|
12
|
-
- export SSL_CERT_FILE=/usr/local/share/cacert.pem
|
|
13
|
-
- export PYTHONPATH=/usr/local
|
|
14
|
-
- export GIT_AUTHOR_NAME=CocoaPods
|
|
15
|
-
- export GIT_AUTHOR_EMAIL=cocoapods@example.com
|
|
16
16
|
- source ~/.rvm/scripts/rvm
|
|
17
17
|
- if [[ $RVM_RUBY_VERSION != 'system' ]]; then rvm install $RVM_RUBY_VERSION; fi
|
|
18
18
|
- rvm use $RVM_RUBY_VERSION
|
|
19
|
-
- if [[ $RVM_RUBY_VERSION == 'system' ]]; then export ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future; fi
|
|
20
|
-
- if [[ $RVM_RUBY_VERSION == 'system' ]]; then sudo ln -s /usr/bin/llvm-gcc-4.2 /usr/bin/gcc-4.2; fi
|
|
21
19
|
- if [[ $RVM_RUBY_VERSION == 'system' ]]; then sudo gem install bundler --no-ri --no-rdoc; else gem install bundler --no-ri --no-rdoc; fi
|
|
22
|
-
|
|
20
|
+
|
|
23
21
|
install:
|
|
24
|
-
- bundle install --
|
|
25
|
-
|
|
22
|
+
- sudo bundle install --without=documentation
|
|
23
|
+
|
|
26
24
|
script: bundle exec rake spec
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# Cocoapods::Plugins Changelog
|
|
2
2
|
|
|
3
|
+
## 0.3.0
|
|
4
|
+
|
|
5
|
+
* Added a reminder to add plugin to `plugins.json` once released (fix #27)
|
|
6
|
+
[Olivier Halligon](https://github.com/AliSoftware)
|
|
7
|
+
|
|
8
|
+
* Print out the version of plugins when invoked with `--verbose`
|
|
9
|
+
[David Grandinetti](https://github.com/dbgrandi)
|
|
10
|
+
|
|
3
11
|
## 0.2.0
|
|
4
12
|
|
|
5
13
|
* Migrating to new syntax of CLAide::Command#arguments (fix #23)
|
data/Gemfile
CHANGED
|
@@ -3,13 +3,18 @@ source 'https://rubygems.org'
|
|
|
3
3
|
gemspec
|
|
4
4
|
|
|
5
5
|
group :development do
|
|
6
|
-
gem 'cocoapods'
|
|
6
|
+
gem 'cocoapods', :git => 'https://github.com/CocoaPods/CocoaPods.git', :branch => 'master'
|
|
7
|
+
gem 'cocoapods-core', :git => 'https://github.com/CocoaPods/Core.git', :branch => 'master'
|
|
8
|
+
gem 'claide', :git => 'https://github.com/CocoaPods/CLAide.git', :branch => 'master'
|
|
9
|
+
|
|
7
10
|
gem 'bacon'
|
|
8
|
-
gem 'coveralls', :require => false
|
|
9
11
|
gem 'mocha-on-bacon'
|
|
10
12
|
gem 'prettybacon'
|
|
13
|
+
gem 'vcr'
|
|
11
14
|
gem 'webmock'
|
|
15
|
+
|
|
12
16
|
if RUBY_VERSION >= '1.9.3'
|
|
17
|
+
gem 'codeclimate-test-reporter', :require => nil
|
|
13
18
|
gem 'rubocop'
|
|
14
19
|
end
|
|
15
20
|
end
|
data/Gemfile.lock
CHANGED
|
@@ -1,94 +1,112 @@
|
|
|
1
|
+
GIT
|
|
2
|
+
remote: https://github.com/CocoaPods/CLAide.git
|
|
3
|
+
revision: 31e74fae76461e9832e488f77a9e8116703c201b
|
|
4
|
+
branch: master
|
|
5
|
+
specs:
|
|
6
|
+
claide (0.7.0)
|
|
7
|
+
|
|
8
|
+
GIT
|
|
9
|
+
remote: https://github.com/CocoaPods/CocoaPods.git
|
|
10
|
+
revision: 576b10b9bf72c3aaded4e767bc0f8735a8e1fcca
|
|
11
|
+
branch: master
|
|
12
|
+
specs:
|
|
13
|
+
cocoapods (0.33.1)
|
|
14
|
+
activesupport (>= 3.2.15, < 4)
|
|
15
|
+
claide (~> 0.7.0)
|
|
16
|
+
cocoapods-core (= 0.33.1)
|
|
17
|
+
cocoapods-downloader (~> 0.6.1)
|
|
18
|
+
cocoapods-plugins (~> 0.3.0)
|
|
19
|
+
cocoapods-trunk (~> 0.1.4)
|
|
20
|
+
cocoapods-try (~> 0.3.0)
|
|
21
|
+
colored (~> 1.2)
|
|
22
|
+
escape (~> 0.0.4)
|
|
23
|
+
json_pure (~> 1.8)
|
|
24
|
+
nap (~> 0.8)
|
|
25
|
+
open4 (~> 1.3)
|
|
26
|
+
xcodeproj (~> 0.18.0)
|
|
27
|
+
|
|
28
|
+
GIT
|
|
29
|
+
remote: https://github.com/CocoaPods/Core.git
|
|
30
|
+
revision: 2c5be5dbb1157c10e86ff75223a119b74d01ae7f
|
|
31
|
+
branch: master
|
|
32
|
+
specs:
|
|
33
|
+
cocoapods-core (0.33.1)
|
|
34
|
+
activesupport (>= 3.2.15)
|
|
35
|
+
fuzzy_match (~> 2.0.4)
|
|
36
|
+
json_pure (~> 1.8)
|
|
37
|
+
nap (~> 0.8.0)
|
|
38
|
+
|
|
1
39
|
PATH
|
|
2
40
|
remote: .
|
|
3
41
|
specs:
|
|
4
|
-
cocoapods-plugins (0.
|
|
42
|
+
cocoapods-plugins (0.3.0)
|
|
5
43
|
nap
|
|
6
44
|
|
|
7
45
|
GEM
|
|
8
46
|
remote: https://rubygems.org/
|
|
9
47
|
specs:
|
|
10
|
-
|
|
48
|
+
CFPropertyList (2.2.8)
|
|
49
|
+
activesupport (3.2.19)
|
|
11
50
|
i18n (~> 0.6, >= 0.6.4)
|
|
12
51
|
multi_json (~> 1.0)
|
|
13
52
|
addressable (2.3.6)
|
|
14
53
|
ast (2.0.0)
|
|
54
|
+
astrolabe (1.3.0)
|
|
55
|
+
parser (>= 2.2.0.pre.3, < 3.0)
|
|
15
56
|
bacon (1.2.0)
|
|
16
|
-
|
|
17
|
-
cocoapods (0.
|
|
18
|
-
activesupport (>= 3.2.15, < 4)
|
|
19
|
-
claide (~> 0.5.0)
|
|
20
|
-
cocoapods-core (= 0.32.1)
|
|
21
|
-
cocoapods-downloader (~> 0.5.0)
|
|
22
|
-
cocoapods-try (~> 0.2.0)
|
|
23
|
-
colored (~> 1.2)
|
|
24
|
-
escape (~> 0.0.4)
|
|
25
|
-
json_pure (~> 1.8)
|
|
26
|
-
nap (~> 0.7)
|
|
27
|
-
open4 (~> 1.3)
|
|
28
|
-
xcodeproj (~> 0.16.1)
|
|
29
|
-
cocoapods-core (0.32.1)
|
|
30
|
-
activesupport (>= 3.2.15, < 4)
|
|
31
|
-
fuzzy_match (~> 2.0.4)
|
|
57
|
+
cocoapods-downloader (0.6.1)
|
|
58
|
+
cocoapods-trunk (0.1.4)
|
|
32
59
|
json_pure (~> 1.8)
|
|
33
|
-
nap (
|
|
34
|
-
|
|
35
|
-
cocoapods-try (0.
|
|
60
|
+
nap (>= 0.8)
|
|
61
|
+
netrc
|
|
62
|
+
cocoapods-try (0.3.0)
|
|
63
|
+
codeclimate-test-reporter (0.4.0)
|
|
64
|
+
simplecov (>= 0.7.1, < 1.0.0)
|
|
36
65
|
colored (1.2)
|
|
37
|
-
coveralls (0.7.0)
|
|
38
|
-
multi_json (~> 1.3)
|
|
39
|
-
rest-client
|
|
40
|
-
simplecov (>= 0.7)
|
|
41
|
-
term-ansicolor
|
|
42
|
-
thor
|
|
43
66
|
crack (0.4.2)
|
|
44
67
|
safe_yaml (~> 1.0.0)
|
|
45
|
-
docile (1.1.
|
|
68
|
+
docile (1.1.5)
|
|
46
69
|
escape (0.0.4)
|
|
47
70
|
fuzzy_match (2.0.4)
|
|
48
|
-
i18n (0.6.
|
|
49
|
-
json (1.8.1)
|
|
71
|
+
i18n (0.6.11)
|
|
50
72
|
json_pure (1.8.1)
|
|
51
73
|
metaclass (0.0.4)
|
|
52
|
-
|
|
53
|
-
mocha (1.0.0)
|
|
74
|
+
mocha (1.1.0)
|
|
54
75
|
metaclass (~> 0.0.1)
|
|
55
76
|
mocha-on-bacon (0.2.2)
|
|
56
77
|
mocha (>= 0.13.0)
|
|
57
|
-
multi_json (1.
|
|
58
|
-
nap (0.
|
|
59
|
-
|
|
60
|
-
|
|
78
|
+
multi_json (1.10.1)
|
|
79
|
+
nap (0.8.0)
|
|
80
|
+
netrc (0.7.7)
|
|
81
|
+
open4 (1.3.4)
|
|
82
|
+
parser (2.2.0.pre.4)
|
|
61
83
|
ast (>= 1.1, < 3.0)
|
|
62
84
|
slop (~> 3.4, >= 3.4.5)
|
|
63
85
|
powerpack (0.0.9)
|
|
64
|
-
prettybacon (0.0.
|
|
86
|
+
prettybacon (0.0.2)
|
|
65
87
|
bacon (~> 1.2)
|
|
66
88
|
rainbow (2.0.0)
|
|
67
|
-
rake (10.
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
json (>= 1.7.7, < 2)
|
|
72
|
-
parser (~> 2.1.7)
|
|
89
|
+
rake (10.3.2)
|
|
90
|
+
rubocop (0.26.0)
|
|
91
|
+
astrolabe (~> 1.3)
|
|
92
|
+
parser (>= 2.2.0.pre.4, < 3.0)
|
|
73
93
|
powerpack (~> 0.0.6)
|
|
74
94
|
rainbow (>= 1.99.1, < 3.0)
|
|
75
95
|
ruby-progressbar (~> 1.4)
|
|
76
|
-
ruby-progressbar (1.
|
|
77
|
-
safe_yaml (1.0.
|
|
78
|
-
simplecov (0.
|
|
96
|
+
ruby-progressbar (1.5.1)
|
|
97
|
+
safe_yaml (1.0.3)
|
|
98
|
+
simplecov (0.9.0)
|
|
79
99
|
docile (~> 1.1.0)
|
|
80
100
|
multi_json
|
|
81
101
|
simplecov-html (~> 0.8.0)
|
|
82
102
|
simplecov-html (0.8.0)
|
|
83
|
-
slop (3.
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
tins (1.1.0)
|
|
88
|
-
webmock (1.17.4)
|
|
89
|
-
addressable (>= 2.2.7)
|
|
103
|
+
slop (3.6.0)
|
|
104
|
+
vcr (2.9.3)
|
|
105
|
+
webmock (1.18.0)
|
|
106
|
+
addressable (>= 2.3.6)
|
|
90
107
|
crack (>= 0.3.2)
|
|
91
|
-
xcodeproj (0.
|
|
108
|
+
xcodeproj (0.18.0)
|
|
109
|
+
CFPropertyList (~> 2.2)
|
|
92
110
|
activesupport (~> 3.0)
|
|
93
111
|
colored (~> 1.2)
|
|
94
112
|
|
|
@@ -98,11 +116,14 @@ PLATFORMS
|
|
|
98
116
|
DEPENDENCIES
|
|
99
117
|
bacon
|
|
100
118
|
bundler (~> 1.3)
|
|
101
|
-
|
|
119
|
+
claide!
|
|
120
|
+
cocoapods!
|
|
121
|
+
cocoapods-core!
|
|
102
122
|
cocoapods-plugins!
|
|
103
|
-
|
|
123
|
+
codeclimate-test-reporter
|
|
104
124
|
mocha-on-bacon
|
|
105
125
|
prettybacon
|
|
106
126
|
rake
|
|
107
127
|
rubocop
|
|
128
|
+
vcr
|
|
108
129
|
webmock
|
data/README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Cocoapods plugins
|
|
2
2
|
|
|
3
|
-
[](https://travis-ci.org/CocoaPods/cocoapods-plugins)
|
|
4
|
-
[](https://codeclimate.com/github/CocoaPods/cocoapods-plugins)
|
|
3
|
+
[](https://travis-ci.org/CocoaPods/cocoapods-plugins)
|
|
4
|
+
[](https://codeclimate.com/github/CocoaPods/cocoapods-plugins)
|
|
5
|
+
[](https://codeclimate.com/github/CocoaPods/cocoapods-plugins)
|
|
6
6
|
|
|
7
7
|
CocoaPods plugin which shows info about available CocoaPods plugins or helps you get started developing a new plugin. Yeah, it's very meta.
|
|
8
8
|
|
|
@@ -33,7 +33,7 @@ If a `TEMPLATE_URL`, pointing to a git repo containing a compatible template, is
|
|
|
33
33
|
|
|
34
34
|
## Get your plugin listed
|
|
35
35
|
|
|
36
|
-
The list of plugins is in the cocoapods.org repository at [https://github.com/CocoaPods/cocoapods.org/blob/master/
|
|
36
|
+
The list of plugins is in the cocoapods.org repository at [https://github.com/CocoaPods/cocoapods.org/blob/master/plugins.json](https://github.com/CocoaPods/cocoapods.org/blob/master/plugins.json).
|
|
37
37
|
|
|
38
38
|
To have your plugin listed, submit a pull request that adds your plugin details.
|
|
39
39
|
|
data/Rakefile
CHANGED
|
@@ -7,7 +7,7 @@ task :bootstrap do
|
|
|
7
7
|
else
|
|
8
8
|
$stderr.puts "\033[0;31m" \
|
|
9
9
|
"[!] Please install the bundler gem manually:\n" \
|
|
10
|
-
|
|
10
|
+
' $ [sudo] gem install bundler' \
|
|
11
11
|
"\e[0m"
|
|
12
12
|
exit 1
|
|
13
13
|
end
|
|
@@ -19,7 +19,6 @@ begin
|
|
|
19
19
|
|
|
20
20
|
task :default => 'spec'
|
|
21
21
|
|
|
22
|
-
|
|
23
22
|
# Spec
|
|
24
23
|
#-----------------------------------------------------------------------------#
|
|
25
24
|
|
|
@@ -43,7 +42,7 @@ begin
|
|
|
43
42
|
task :rubocop do
|
|
44
43
|
if RUBY_VERSION >= '1.9.3'
|
|
45
44
|
require 'rubocop'
|
|
46
|
-
cli =
|
|
45
|
+
cli = RuboCop::CLI.new
|
|
47
46
|
result = cli.run(FileList['{spec,lib}/**/*.rb'])
|
|
48
47
|
abort('RuboCop failed!') unless result == 0
|
|
49
48
|
else
|
data/lib/cocoapods_plugins.rb
CHANGED
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
require 'pod/command/gem_index_cache'
|
|
2
|
+
|
|
3
|
+
module Pod
|
|
4
|
+
class Command
|
|
5
|
+
# This module is used by Command::PluginsHelper to download the Gem
|
|
6
|
+
# Specification data, check if a Gem is installed, and provide info
|
|
7
|
+
# on all versions of a Gem.
|
|
8
|
+
#
|
|
9
|
+
module GemHelper
|
|
10
|
+
# A GemIndexCache to manage downloading/caching the spec index.
|
|
11
|
+
#
|
|
12
|
+
@cache = nil
|
|
13
|
+
|
|
14
|
+
# Getter for GemIndexCache
|
|
15
|
+
#
|
|
16
|
+
# @return [GemIndexCache] a new or memoized GemIndexCache
|
|
17
|
+
#
|
|
18
|
+
def self.cache
|
|
19
|
+
@cache ||= GemIndexCache.new
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
# Instantiate a cache and download the spec index if it has
|
|
23
|
+
# not already been done.
|
|
24
|
+
#
|
|
25
|
+
def self.download_and_cache_specs
|
|
26
|
+
cache.download_and_cache_specs
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# Tells if a gem is installed
|
|
30
|
+
#
|
|
31
|
+
# @param [String] gem_name
|
|
32
|
+
# The name of the plugin gem to test
|
|
33
|
+
#
|
|
34
|
+
# @param [String] version_string
|
|
35
|
+
# An optional version string, used to check if a specific
|
|
36
|
+
# version of a gem is installed
|
|
37
|
+
#
|
|
38
|
+
# @return [Bool] true if the gem is installed, false otherwise.
|
|
39
|
+
#
|
|
40
|
+
def self.gem_installed?(gem_name, version_string = nil)
|
|
41
|
+
version = Gem::Version.new(version_string) if version_string
|
|
42
|
+
|
|
43
|
+
gems = Gem::Specification.find_all_by_name(gem_name)
|
|
44
|
+
return !gems.empty? unless version
|
|
45
|
+
|
|
46
|
+
gems.each do |gem|
|
|
47
|
+
return true if gem.version == version
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
false
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
# Get the version of a gem that is installed locally. If more than
|
|
54
|
+
# one version is installed, this returns the first version found,
|
|
55
|
+
# which MAY not be the highest/newest version.
|
|
56
|
+
#
|
|
57
|
+
# @return [String] The version of the gem that is installed,
|
|
58
|
+
# or nil if it is not installed.
|
|
59
|
+
#
|
|
60
|
+
def self.installed_version(gem_name)
|
|
61
|
+
gem = Gem::Specification.find_all_by_name(gem_name).first
|
|
62
|
+
gem ? gem.version.to_s : nil
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
# Create a string containing all versions of a plugin,
|
|
66
|
+
# colored to indicate if a specific version is installed
|
|
67
|
+
# locally.
|
|
68
|
+
#
|
|
69
|
+
# @param [String] plugin_name
|
|
70
|
+
# The name of the plugin gem
|
|
71
|
+
#
|
|
72
|
+
# @param [GemIndexCache] index_cache
|
|
73
|
+
# Optional index cache can be passed in, otherwise
|
|
74
|
+
# the module instance is used.
|
|
75
|
+
#
|
|
76
|
+
# @return [String] a string containing a comma separated
|
|
77
|
+
# concatenation of all versions of a plugin
|
|
78
|
+
# that were found on rubygems.org
|
|
79
|
+
#
|
|
80
|
+
def self.versions_string(plugin_name, index_cache = @cache)
|
|
81
|
+
name_tuples = index_cache.specs_with_name(plugin_name)
|
|
82
|
+
sorted_versions = name_tuples.sort_by(&:version)
|
|
83
|
+
version_strings = colorize_versions(sorted_versions)
|
|
84
|
+
version_strings.join ', '
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
#----------------#
|
|
88
|
+
|
|
89
|
+
private
|
|
90
|
+
|
|
91
|
+
# Colorize an Array of version strings so versions that are installed
|
|
92
|
+
# are green and uninstalled versions are yellow.
|
|
93
|
+
#
|
|
94
|
+
# @param [Array] versions
|
|
95
|
+
# sorted array of Gem::NameTuples representing all versions of
|
|
96
|
+
# a plugin gem.
|
|
97
|
+
#
|
|
98
|
+
# @return [Array] An array of strings, each one being the version
|
|
99
|
+
# string of the same plugin
|
|
100
|
+
#
|
|
101
|
+
def self.colorize_versions(versions)
|
|
102
|
+
colored_strings = []
|
|
103
|
+
versions.reverse_each do |name_tuple|
|
|
104
|
+
if gem_installed?(name_tuple.name, name_tuple.version.to_s)
|
|
105
|
+
colored_strings << name_tuple.version.to_s.green
|
|
106
|
+
else
|
|
107
|
+
colored_strings << name_tuple.version.to_s.yellow
|
|
108
|
+
end
|
|
109
|
+
end
|
|
110
|
+
colored_strings
|
|
111
|
+
end
|
|
112
|
+
end
|
|
113
|
+
end
|
|
114
|
+
end
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
require 'pod/command/gem_helper'
|
|
2
|
+
|
|
3
|
+
module Pod
|
|
4
|
+
class Command
|
|
5
|
+
# This class is used by Command::GemsHelper to download the Gem
|
|
6
|
+
# Specification index from rubygems.org and provide info about
|
|
7
|
+
# the index.
|
|
8
|
+
#
|
|
9
|
+
class GemIndexCache
|
|
10
|
+
# A memoized hash of all the rubygem specs. If it is nil, the specs will
|
|
11
|
+
# be downloaded, which will take a few seconds to download.
|
|
12
|
+
#
|
|
13
|
+
# @return [Hash] The hash of all rubygems
|
|
14
|
+
#
|
|
15
|
+
def specs
|
|
16
|
+
@specs ||= download_specs
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
# Alias to make the initial caching process more readable.
|
|
20
|
+
#
|
|
21
|
+
alias_method :download_and_cache_specs, :specs
|
|
22
|
+
|
|
23
|
+
# Get an Array of Gem::NameTuple objects that match a given
|
|
24
|
+
# spec name.
|
|
25
|
+
#
|
|
26
|
+
# @param [String] name
|
|
27
|
+
# The name of the gem to match on (e.g. 'cocoapods-try')
|
|
28
|
+
#
|
|
29
|
+
# @return [Array] Array of Gem::NameTuple that match the name
|
|
30
|
+
#
|
|
31
|
+
def specs_with_name(name)
|
|
32
|
+
matching_specs = @specs.select do |spec|
|
|
33
|
+
spec[0].name == name
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
name_tuples = []
|
|
37
|
+
matching_specs.each do |(name_tuple, _)|
|
|
38
|
+
name_tuples << name_tuple
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
name_tuples
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
#----------------#
|
|
45
|
+
|
|
46
|
+
private
|
|
47
|
+
|
|
48
|
+
# Force the rubygem spec index file
|
|
49
|
+
#
|
|
50
|
+
# @return [Hash] The hash of all rubygems
|
|
51
|
+
#
|
|
52
|
+
def download_specs
|
|
53
|
+
UI.puts 'Downloading Rubygem specification index...'
|
|
54
|
+
fetcher = Gem::SpecFetcher.fetcher
|
|
55
|
+
results, errors = fetcher.available_specs(:released)
|
|
56
|
+
|
|
57
|
+
unless errors.empty?
|
|
58
|
+
UI.puts 'Error downloading Rubygem specification index: ' +
|
|
59
|
+
errors.first.error.to_s
|
|
60
|
+
return []
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
flatten_fetcher_results(results)
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
# Flatten the dictionary returned from Gem::SpecFetcher
|
|
67
|
+
# to a simple array.
|
|
68
|
+
#
|
|
69
|
+
# @param [Hash] results
|
|
70
|
+
# the hash returned from the call to
|
|
71
|
+
# Gem::SpecFetcher.available_specs()
|
|
72
|
+
#
|
|
73
|
+
# @return [Array] Array of all spec results
|
|
74
|
+
#
|
|
75
|
+
def flatten_fetcher_results(results)
|
|
76
|
+
specs = []
|
|
77
|
+
results.each do |source, source_specs|
|
|
78
|
+
source_specs.each do |tuple|
|
|
79
|
+
specs << [tuple, source]
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
specs
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
end
|
|
87
|
+
end
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
require 'pod/command/plugins_helper'
|
|
2
|
+
|
|
1
3
|
module Pod
|
|
2
4
|
class Command
|
|
3
5
|
class Plugins
|
|
@@ -11,7 +13,7 @@ module Pod
|
|
|
11
13
|
self.summary = 'Creates a new plugin'
|
|
12
14
|
self.description = <<-DESC
|
|
13
15
|
Creates a scaffold for the development of a new plugin
|
|
14
|
-
according to the CocoaPods best practices.
|
|
16
|
+
named `NAME` according to the CocoaPods best practices.
|
|
15
17
|
|
|
16
18
|
If a `TEMPLATE_URL`, pointing to a git repo containing a
|
|
17
19
|
compatible template, is specified, it will be used
|
|
@@ -19,14 +21,14 @@ module Pod
|
|
|
19
21
|
DESC
|
|
20
22
|
|
|
21
23
|
self.arguments = [
|
|
22
|
-
|
|
23
|
-
|
|
24
|
+
CLAide::Argument.new('NAME', true),
|
|
25
|
+
CLAide::Argument.new('TEMPLATE_URL', false),
|
|
24
26
|
]
|
|
25
27
|
|
|
26
28
|
def initialize(argv)
|
|
27
29
|
@name = argv.shift_argument
|
|
28
30
|
unless @name.nil? || @name.empty? || @name.index(NAME_PREFIX) == 0
|
|
29
|
-
@name = @name.dup
|
|
31
|
+
@name = NAME_PREFIX + @name.dup
|
|
30
32
|
end
|
|
31
33
|
@template_url = argv.shift_argument
|
|
32
34
|
super
|
|
@@ -37,14 +39,14 @@ module Pod
|
|
|
37
39
|
if @name.nil? || @name.empty?
|
|
38
40
|
help! 'A name for the plugin is required.'
|
|
39
41
|
end
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
end
|
|
42
|
+
|
|
43
|
+
help! 'The plugin name cannot contain spaces.' if @name.match(/\s/)
|
|
43
44
|
end
|
|
44
45
|
|
|
45
46
|
def run
|
|
46
47
|
clone_template
|
|
47
48
|
configure_template
|
|
49
|
+
show_reminder
|
|
48
50
|
end
|
|
49
51
|
|
|
50
52
|
#----------------------------------------#
|
|
@@ -96,6 +98,15 @@ module Pod
|
|
|
96
98
|
def template_repo_url
|
|
97
99
|
@template_url || TEMPLATE_REPO
|
|
98
100
|
end
|
|
101
|
+
|
|
102
|
+
# Shows a reminder to the plugin author to make a Pull Request
|
|
103
|
+
# in order to update plugins.json once the plugin is released
|
|
104
|
+
#
|
|
105
|
+
def show_reminder
|
|
106
|
+
repo = PluginsHelper::PLUGINS_JSON_REPO
|
|
107
|
+
UI.notice "Don't forget to create a Pull Request on #{repo}\n" \
|
|
108
|
+
' to add your plugin to the plugins.json file once it is released!'
|
|
109
|
+
end
|
|
99
110
|
end
|
|
100
111
|
end
|
|
101
112
|
end
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
require 'pod/command/plugins_helper'
|
|
2
|
+
require 'pod/command/gem_helper'
|
|
2
3
|
|
|
3
4
|
module Pod
|
|
4
5
|
class Command
|
|
@@ -18,6 +19,7 @@ module Pod
|
|
|
18
19
|
|
|
19
20
|
def run
|
|
20
21
|
plugins = PluginsHelper.known_plugins
|
|
22
|
+
GemHelper.download_and_cache_specs if self.verbose?
|
|
21
23
|
|
|
22
24
|
UI.title 'Available CocoaPods Plugins:' do
|
|
23
25
|
plugins.each do |plugin|
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
require 'pod/command/plugins_helper'
|
|
2
|
+
require 'pod/command/gem_helper'
|
|
2
3
|
|
|
3
4
|
module Pod
|
|
4
5
|
class Command
|
|
@@ -10,19 +11,19 @@ module Pod
|
|
|
10
11
|
class Search < Plugins
|
|
11
12
|
self.summary = 'Search for known plugins'
|
|
12
13
|
self.description = <<-DESC
|
|
13
|
-
Searches plugins whose name contains the given
|
|
14
|
-
|
|
14
|
+
Searches plugins whose 'name' contains the given `QUERY`.
|
|
15
|
+
`QUERY` is a regular expression, ignoring case.
|
|
15
16
|
|
|
16
|
-
With
|
|
17
|
+
With `--full`, it also searches by 'author' and 'description'.
|
|
17
18
|
DESC
|
|
18
19
|
|
|
19
20
|
self.arguments = [
|
|
20
|
-
|
|
21
|
+
CLAide::Argument.new('QUERY', true),
|
|
21
22
|
]
|
|
22
23
|
|
|
23
24
|
def self.options
|
|
24
25
|
[
|
|
25
|
-
['--full', 'Search by name, author, and description']
|
|
26
|
+
['--full', 'Search by name, author, and description'],
|
|
26
27
|
].concat(super.reject { |option, _| option == '--silent' })
|
|
27
28
|
end
|
|
28
29
|
|
|
@@ -44,6 +45,7 @@ module Pod
|
|
|
44
45
|
|
|
45
46
|
def run
|
|
46
47
|
plugins = PluginsHelper.matching_plugins(@query, @full_text_search)
|
|
48
|
+
GemHelper.download_and_cache_specs if self.verbose?
|
|
47
49
|
|
|
48
50
|
UI.title "Available CocoaPods Plugins matching '#{@query}':"
|
|
49
51
|
plugins.each do |plugin|
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
require 'pod/command/gem_helper'
|
|
2
|
+
|
|
1
3
|
module Pod
|
|
2
4
|
class Command
|
|
3
5
|
# This module is used by Command::Plugins::List
|
|
@@ -5,8 +7,12 @@ module Pod
|
|
|
5
7
|
# the JSON describing the plugins list and manipulate it
|
|
6
8
|
#
|
|
7
9
|
module PluginsHelper
|
|
8
|
-
|
|
9
|
-
|
|
10
|
+
PLUGINS_JSON_REPO_NAME = 'CocoaPods/cocoapods.org'
|
|
11
|
+
PLUGINS_JSON_REPO = 'https://github.com/' + PLUGINS_JSON_REPO_NAME
|
|
12
|
+
PLUGINS_JSON_REL_URL = '/master/plugins.json'
|
|
13
|
+
|
|
14
|
+
PLUGINS_RAW_URL = 'https://raw.githubusercontent.com/' \
|
|
15
|
+
+ PLUGINS_JSON_REPO_NAME + PLUGINS_JSON_REL_URL
|
|
10
16
|
|
|
11
17
|
# Force-download the JSON
|
|
12
18
|
#
|
|
@@ -14,7 +20,7 @@ module Pod
|
|
|
14
20
|
#
|
|
15
21
|
def self.download_json
|
|
16
22
|
UI.puts 'Downloading Plugins list...'
|
|
17
|
-
response = REST.get(
|
|
23
|
+
response = REST.get(PLUGINS_RAW_URL)
|
|
18
24
|
if response.ok?
|
|
19
25
|
parse_json(response.body)
|
|
20
26
|
else
|
|
@@ -56,22 +62,6 @@ module Pod
|
|
|
56
62
|
end
|
|
57
63
|
end
|
|
58
64
|
|
|
59
|
-
# Tells if a gem is installed
|
|
60
|
-
#
|
|
61
|
-
# @param [String] gem_name
|
|
62
|
-
# The name of the plugin gem to test
|
|
63
|
-
#
|
|
64
|
-
# @return [Bool] true if the gem is installed, false otherwise.
|
|
65
|
-
#
|
|
66
|
-
def self.gem_installed?(gem_name)
|
|
67
|
-
if Gem::Specification.methods.include?(:find_all_by_name)
|
|
68
|
-
Gem::Specification.find_all_by_name(gem_name).any?
|
|
69
|
-
else
|
|
70
|
-
# Fallback to Gem.available? for old versions of rubygems
|
|
71
|
-
Gem.available?(gem_name)
|
|
72
|
-
end
|
|
73
|
-
end
|
|
74
|
-
|
|
75
65
|
# Display information about a plugin
|
|
76
66
|
#
|
|
77
67
|
# @param [Hash] plugin
|
|
@@ -86,9 +76,10 @@ module Pod
|
|
|
86
76
|
|
|
87
77
|
UI.title(plugin_colored_name, '', 1) do
|
|
88
78
|
UI.puts_indented plugin['description']
|
|
89
|
-
|
|
90
|
-
UI.labeled('
|
|
91
|
-
UI.labeled('
|
|
79
|
+
ljust = verbose ? 16 : 11
|
|
80
|
+
UI.labeled('Gem', plugin['gem'], ljust)
|
|
81
|
+
UI.labeled('URL', plugin['url'], ljust)
|
|
82
|
+
print_verbose_plugin(plugin, ljust) if verbose
|
|
92
83
|
end
|
|
93
84
|
end
|
|
94
85
|
|
|
@@ -96,6 +87,23 @@ module Pod
|
|
|
96
87
|
|
|
97
88
|
private
|
|
98
89
|
|
|
90
|
+
# Smaller helper to print out the verbose details
|
|
91
|
+
# for a plugin.
|
|
92
|
+
#
|
|
93
|
+
# @param [Hash] plugin
|
|
94
|
+
# The hash describing the plugin
|
|
95
|
+
#
|
|
96
|
+
# @param [Integer] ljust
|
|
97
|
+
# The left justification that is passed into UI.labeled
|
|
98
|
+
#
|
|
99
|
+
def self.print_verbose_plugin(plugin, ljust)
|
|
100
|
+
UI.labeled('Author', plugin['author'], ljust)
|
|
101
|
+
unless GemHelper.cache.specs.empty?
|
|
102
|
+
versions = GemHelper.versions_string(plugin['gem'])
|
|
103
|
+
UI.labeled('Versions', versions, ljust)
|
|
104
|
+
end
|
|
105
|
+
end
|
|
106
|
+
|
|
99
107
|
# Parse the given JSON data, handling parsing errors if any
|
|
100
108
|
#
|
|
101
109
|
# @param [String] json_str
|
|
@@ -117,7 +125,8 @@ module Pod
|
|
|
117
125
|
#
|
|
118
126
|
def self.plugin_title(plugin)
|
|
119
127
|
plugin_name = "-> #{plugin['name']}"
|
|
120
|
-
if gem_installed?(plugin['gem'])
|
|
128
|
+
if GemHelper.gem_installed?(plugin['gem'])
|
|
129
|
+
plugin_name += " (#{GemHelper.installed_version(plugin['gem'])})"
|
|
121
130
|
plugin_name.green
|
|
122
131
|
else
|
|
123
132
|
plugin_name.yellow
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
require File.expand_path('../spec_helper', File.dirname(__FILE__))
|
|
2
|
+
|
|
3
|
+
# The CocoaPods namespace
|
|
4
|
+
#
|
|
5
|
+
module Pod
|
|
6
|
+
describe Command::GemHelper do
|
|
7
|
+
before do
|
|
8
|
+
UI.output = ''
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
after do
|
|
12
|
+
mocha_teardown
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it 'detects if a gem is installed' do
|
|
16
|
+
Command::GemHelper.gem_installed?('bacon').should.be.true
|
|
17
|
+
Command::GemHelper.gem_installed?('fake-fake-fake-gem').should.be.false
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
it 'detects if a specific version of a gem is installed' do
|
|
21
|
+
Command::GemHelper.gem_installed?('bacon', Bacon::VERSION).should.be.true
|
|
22
|
+
impossibacon = Gem::Version.new(Bacon::VERSION).bump
|
|
23
|
+
Command::GemHelper.gem_installed?('bacon', impossibacon).should.be.false
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
it 'creates a version list that includes all versions of a single gem' do
|
|
27
|
+
spec2 = Gem::NameTuple.new('cocoapods-plugins', Gem::Version.new('0.2.0'))
|
|
28
|
+
spec1 = Gem::NameTuple.new('cocoapods-plugins', Gem::Version.new('0.1.0'))
|
|
29
|
+
response = [{ 1 => [spec2, spec1] }, []]
|
|
30
|
+
Gem::SpecFetcher.any_instance.stubs(:available_specs).returns(response)
|
|
31
|
+
|
|
32
|
+
@cache = Command::GemIndexCache.new
|
|
33
|
+
@cache.download_and_cache_specs
|
|
34
|
+
versions_string =
|
|
35
|
+
Command::GemHelper.versions_string('cocoapods-plugins', @cache)
|
|
36
|
+
versions_string.should.include('0.2.0')
|
|
37
|
+
versions_string.should.include('0.1.0')
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
require File.expand_path('../spec_helper', File.dirname(__FILE__))
|
|
2
|
+
|
|
3
|
+
# The CocoaPods namespace
|
|
4
|
+
#
|
|
5
|
+
module Pod
|
|
6
|
+
describe Command::GemIndexCache do
|
|
7
|
+
|
|
8
|
+
before do
|
|
9
|
+
@cache = Command::GemIndexCache.new
|
|
10
|
+
UI.output = ''
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
after do
|
|
14
|
+
mocha_teardown
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
it 'notifies the user that it is downloading the spec index' do
|
|
18
|
+
response = [{}, []]
|
|
19
|
+
Gem::SpecFetcher.any_instance.stubs(:available_specs).returns(response)
|
|
20
|
+
|
|
21
|
+
@cache.download_and_cache_specs
|
|
22
|
+
UI.output.should.include('Downloading Rubygem specification index...')
|
|
23
|
+
UI.output.should.not.include('Error downloading Rubygem specification')
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
it 'notifies the user when getting the spec index fails' do
|
|
27
|
+
error = Gem::RemoteFetcher::UnknownHostError.new('no host', 'bad url')
|
|
28
|
+
wrapper_error = stub(:error => error)
|
|
29
|
+
response = [[], [wrapper_error]]
|
|
30
|
+
Gem::SpecFetcher.any_instance.stubs(:available_specs).returns(response)
|
|
31
|
+
|
|
32
|
+
@cache.download_and_cache_specs
|
|
33
|
+
@cache.specs.should.be.empty?
|
|
34
|
+
UI.output.should.include('Downloading Rubygem specification index...')
|
|
35
|
+
UI.output.should.include('Error downloading Rubygem specification')
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
end
|
|
39
|
+
end
|
|
@@ -10,7 +10,7 @@ module Pod
|
|
|
10
10
|
stub_plugins_json_request
|
|
11
11
|
json = Command::PluginsHelper.download_json
|
|
12
12
|
json.should.not.be.nil?
|
|
13
|
-
json.should.be.
|
|
13
|
+
json.should.be.is_a? Hash
|
|
14
14
|
json['plugins'].size.should.eql? 3
|
|
15
15
|
end
|
|
16
16
|
|
|
@@ -30,10 +30,5 @@ module Pod
|
|
|
30
30
|
end.message.should.match(expected_error)
|
|
31
31
|
end
|
|
32
32
|
|
|
33
|
-
it 'detects if a gem is installed' do
|
|
34
|
-
Helper = Command::PluginsHelper
|
|
35
|
-
Helper.gem_installed?('bacon').should.be.true
|
|
36
|
-
Helper.gem_installed?('fake-fake-fake-gem').should.be.false
|
|
37
|
-
end
|
|
38
33
|
end
|
|
39
34
|
end
|
data/spec/spec_helper.rb
CHANGED
|
@@ -1,20 +1,15 @@
|
|
|
1
1
|
# Set up coverage analysis
|
|
2
2
|
#-----------------------------------------------------------------------------#
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
require '
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
SimpleCov.formatter = Coveralls::SimpleCov::Formatter
|
|
9
|
-
elsif ENV['GENERATE_COVERAGE']
|
|
10
|
-
SimpleCov.formatter = SimpleCov::Formatter::HTMLFormatter
|
|
11
|
-
end
|
|
12
|
-
SimpleCov.start do
|
|
13
|
-
add_filter '/travis_bundle_dir'
|
|
3
|
+
|
|
4
|
+
if RUBY_VERSION >= '1.9.3'
|
|
5
|
+
require 'codeclimate-test-reporter'
|
|
6
|
+
CodeClimate::TestReporter.configure do |config|
|
|
7
|
+
config.logger.level = Logger::WARN
|
|
14
8
|
end
|
|
9
|
+
CodeClimate::TestReporter.start
|
|
15
10
|
end
|
|
16
11
|
|
|
17
|
-
#
|
|
12
|
+
# Set up
|
|
18
13
|
#-----------------------------------------------------------------------------#
|
|
19
14
|
|
|
20
15
|
require 'pathname'
|
|
@@ -33,6 +28,16 @@ include WebMock::API
|
|
|
33
28
|
require 'cocoapods'
|
|
34
29
|
require 'cocoapods_plugin'
|
|
35
30
|
|
|
31
|
+
# VCR
|
|
32
|
+
#--------------------------------------#
|
|
33
|
+
|
|
34
|
+
require 'vcr'
|
|
35
|
+
VCR.configure do |c|
|
|
36
|
+
c.cassette_library_dir = ROOT + 'spec/fixtures/vcr_cassettes'
|
|
37
|
+
c.hook_into :webmock
|
|
38
|
+
c.ignore_hosts 'codeclimate.com'
|
|
39
|
+
end
|
|
40
|
+
|
|
36
41
|
#-----------------------------------------------------------------------------#
|
|
37
42
|
|
|
38
43
|
# The CocoaPods namespace
|
|
@@ -92,8 +97,8 @@ module SpecHelper
|
|
|
92
97
|
module PluginsStubs
|
|
93
98
|
def stub_plugins_json_request(json = nil, status = 200)
|
|
94
99
|
body = json || File.read(fixture('plugins.json'))
|
|
95
|
-
stub_request(:get, Pod::Command::PluginsHelper::
|
|
96
|
-
|
|
100
|
+
stub_request(:get, Pod::Command::PluginsHelper::PLUGINS_RAW_URL).
|
|
101
|
+
to_return(:status => status, :body => body, :headers => {})
|
|
97
102
|
end
|
|
98
103
|
end
|
|
99
104
|
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: cocoapods-plugins
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.3.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- David Grandinetti
|
|
@@ -9,48 +9,48 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2014-
|
|
12
|
+
date: 2014-09-11 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: nap
|
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
|
17
17
|
requirements:
|
|
18
|
-
- -
|
|
18
|
+
- - '>='
|
|
19
19
|
- !ruby/object:Gem::Version
|
|
20
20
|
version: '0'
|
|
21
21
|
type: :runtime
|
|
22
22
|
prerelease: false
|
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
|
24
24
|
requirements:
|
|
25
|
-
- -
|
|
25
|
+
- - '>='
|
|
26
26
|
- !ruby/object:Gem::Version
|
|
27
27
|
version: '0'
|
|
28
28
|
- !ruby/object:Gem::Dependency
|
|
29
29
|
name: bundler
|
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
|
31
31
|
requirements:
|
|
32
|
-
- -
|
|
32
|
+
- - ~>
|
|
33
33
|
- !ruby/object:Gem::Version
|
|
34
34
|
version: '1.3'
|
|
35
35
|
type: :development
|
|
36
36
|
prerelease: false
|
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
|
38
38
|
requirements:
|
|
39
|
-
- -
|
|
39
|
+
- - ~>
|
|
40
40
|
- !ruby/object:Gem::Version
|
|
41
41
|
version: '1.3'
|
|
42
42
|
- !ruby/object:Gem::Dependency
|
|
43
43
|
name: rake
|
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
|
45
45
|
requirements:
|
|
46
|
-
- -
|
|
46
|
+
- - '>='
|
|
47
47
|
- !ruby/object:Gem::Version
|
|
48
48
|
version: '0'
|
|
49
49
|
type: :development
|
|
50
50
|
prerelease: false
|
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
|
52
52
|
requirements:
|
|
53
|
-
- -
|
|
53
|
+
- - '>='
|
|
54
54
|
- !ruby/object:Gem::Version
|
|
55
55
|
version: '0'
|
|
56
56
|
description: |2
|
|
@@ -63,10 +63,10 @@ executables: []
|
|
|
63
63
|
extensions: []
|
|
64
64
|
extra_rdoc_files: []
|
|
65
65
|
files:
|
|
66
|
-
-
|
|
67
|
-
-
|
|
68
|
-
-
|
|
69
|
-
-
|
|
66
|
+
- .gitignore
|
|
67
|
+
- .rubocop.yml
|
|
68
|
+
- .rubocop_cocoapods.yml
|
|
69
|
+
- .travis.yml
|
|
70
70
|
- CHANGELOG.md
|
|
71
71
|
- Gemfile
|
|
72
72
|
- Gemfile.lock
|
|
@@ -76,11 +76,15 @@ files:
|
|
|
76
76
|
- cocoapods-plugins.gemspec
|
|
77
77
|
- lib/cocoapods_plugin.rb
|
|
78
78
|
- lib/cocoapods_plugins.rb
|
|
79
|
+
- lib/pod/command/gem_helper.rb
|
|
80
|
+
- lib/pod/command/gem_index_cache.rb
|
|
79
81
|
- lib/pod/command/plugins.rb
|
|
80
82
|
- lib/pod/command/plugins/create.rb
|
|
81
83
|
- lib/pod/command/plugins/list.rb
|
|
82
84
|
- lib/pod/command/plugins/search.rb
|
|
83
85
|
- lib/pod/command/plugins_helper.rb
|
|
86
|
+
- spec/command/gem_helper_spec.rb
|
|
87
|
+
- spec/command/gem_index_cache_spec.rb
|
|
84
88
|
- spec/command/plugins/create_spec.rb
|
|
85
89
|
- spec/command/plugins/list_spec.rb
|
|
86
90
|
- spec/command/plugins/search_spec.rb
|
|
@@ -98,21 +102,23 @@ require_paths:
|
|
|
98
102
|
- lib
|
|
99
103
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
100
104
|
requirements:
|
|
101
|
-
- -
|
|
105
|
+
- - '>='
|
|
102
106
|
- !ruby/object:Gem::Version
|
|
103
107
|
version: '0'
|
|
104
108
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
105
109
|
requirements:
|
|
106
|
-
- -
|
|
110
|
+
- - '>='
|
|
107
111
|
- !ruby/object:Gem::Version
|
|
108
112
|
version: '0'
|
|
109
113
|
requirements: []
|
|
110
114
|
rubyforge_project:
|
|
111
|
-
rubygems_version: 2.
|
|
115
|
+
rubygems_version: 2.0.14
|
|
112
116
|
signing_key:
|
|
113
117
|
specification_version: 4
|
|
114
118
|
summary: CocoaPods plugin which shows info about available CocoaPods plugins.
|
|
115
119
|
test_files:
|
|
120
|
+
- spec/command/gem_helper_spec.rb
|
|
121
|
+
- spec/command/gem_index_cache_spec.rb
|
|
116
122
|
- spec/command/plugins/create_spec.rb
|
|
117
123
|
- spec/command/plugins/list_spec.rb
|
|
118
124
|
- spec/command/plugins/search_spec.rb
|