cocoapods-plugins 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7c552838da447d326048d02eec308967695cec8f
4
- data.tar.gz: 2b0144ca6eea883bdb3e05bd847fa5e61fbea201
3
+ metadata.gz: 627b3a781e5eb3dcd8bab22e1c54fab8cd28195f
4
+ data.tar.gz: df053120c04bba449b761518c619f5843eac54ba
5
5
  SHA512:
6
- metadata.gz: dce8fd8cb5e3e86461b77ac2c8e23ea46282bbd2b9f319f06857db96d0749eb993dc2a65cad4159baf7827e84eb01db6905879e751afff5381229ca7034faa72
7
- data.tar.gz: 89da3e37f4788a30393fd6bae3f99657bb7a25d77ab9ff6fa0f4eb567878f1c41a1f299537ff62ab333df7557d0a173b3d63c9821177638b52a8a4c2414e4ce8
6
+ metadata.gz: 6cd540ae5191ef202aebf16877f9ba09e10213162eefa8abd3787a2f1a2fda32cf82c417a799b3ed0e910956477cf3556ffbadab168a1b58ef2060b7fa2c0cab
7
+ data.tar.gz: ee7c74aa53ab71e6be6b5652dfb165215a596cb4aa5f64f7ab625b5ff56f0b5eb12c21a0ddc91241677c8d8d30f71284c83f3ef079f794d804bcf08f5a7d98b1
@@ -44,18 +44,18 @@ Lambda:
44
44
  # Allow for `should.match /regexp/`.
45
45
  AmbiguousRegexpLiteral:
46
46
  Exclude:
47
- - spec/**
47
+ - spec/**/*
48
48
 
49
49
  # Allow `object.should == object` syntax.
50
50
  Void:
51
51
  Exclude:
52
- - spec/**
52
+ - spec/**/*
53
53
 
54
54
  ClassAndModuleChildren:
55
55
  Exclude:
56
- - spec/**
56
+ - spec/**/*
57
57
 
58
58
  UselessComparison:
59
59
  Exclude:
60
- - spec/**
60
+ - spec/**/*
61
61
 
data/CHANGELOG.md CHANGED
@@ -1,5 +1,16 @@
1
1
  # Cocoapods::Plugins Changelog
2
2
 
3
+ ## 0.2.0
4
+
5
+ * Migrating to new syntax of CLAide::Command#arguments (fix #23)
6
+ [Olivier Halligon](https://github.com/AliSoftware)
7
+
8
+ * Printing URL of template used (fixes #21) [Olivier Halligon]
9
+ [Olivier Halligon](https://github.com/AliSoftware)
10
+
11
+ * `create` subcommand now prefixes the given name if not already (fix #20)
12
+ [Olivier Halligon](https://github.com/AliSoftware)
13
+
3
14
  ## 0.1.1
4
15
 
5
16
  * Making `pod plugins` an abstract command, with `list` the default subcommand (#11, #12)
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- cocoapods-plugins (0.1.1)
4
+ cocoapods-plugins (0.2.0)
5
5
  nap
6
6
 
7
7
  GEM
data/Rakefile CHANGED
@@ -1,41 +1,59 @@
1
- require 'bundler/gem_tasks'
2
-
3
- task :default => 'spec'
4
-
5
1
  # Bootstrap
6
2
  #-----------------------------------------------------------------------------#
7
3
 
8
4
  task :bootstrap do
9
- sh 'bundle install'
5
+ if system('which bundle')
6
+ sh 'bundle install'
7
+ else
8
+ $stderr.puts "\033[0;31m" \
9
+ "[!] Please install the bundler gem manually:\n" \
10
+ " $ [sudo] gem install bundler" \
11
+ "\e[0m"
12
+ exit 1
13
+ end
10
14
  end
11
15
 
12
- # Spec
13
- #-----------------------------------------------------------------------------#
16
+ begin
14
17
 
15
- desc 'Runs all the specs'
16
- task :spec do
17
- start_time = Time.now
18
- sh "bundle exec bacon #{specs('**')}"
19
- duration = Time.now - start_time
20
- puts "Tests completed in #{duration}s"
21
- Rake::Task['rubocop'].invoke
22
- end
18
+ require 'bundler/gem_tasks'
23
19
 
24
- def specs(dir)
25
- FileList["spec/#{dir}/*_spec.rb"].shuffle.join(' ')
26
- end
20
+ task :default => 'spec'
27
21
 
28
- # Rubocop
29
- #-----------------------------------------------------------------------------#
30
22
 
31
- desc 'Checks code style'
32
- task :rubocop do
33
- if RUBY_VERSION >= '1.9.3'
34
- require 'rubocop'
35
- cli = Rubocop::CLI.new
36
- result = cli.run(FileList['{spec,lib}/**/*.rb'])
37
- abort('RuboCop failed!') unless result == 0
38
- else
39
- puts '[!] Ruby > 1.9 is required to run style checks'
23
+ # Spec
24
+ #-----------------------------------------------------------------------------#
25
+
26
+ desc 'Runs all the specs'
27
+ task :spec do
28
+ start_time = Time.now
29
+ sh "bundle exec bacon #{specs('**')}"
30
+ duration = Time.now - start_time
31
+ puts "Tests completed in #{duration}s"
32
+ Rake::Task['rubocop'].invoke
33
+ end
34
+
35
+ def specs(dir)
36
+ FileList["spec/#{dir}/*_spec.rb"].shuffle.join(' ')
40
37
  end
38
+
39
+ # Rubocop
40
+ #-----------------------------------------------------------------------------#
41
+
42
+ desc 'Checks code style'
43
+ task :rubocop do
44
+ if RUBY_VERSION >= '1.9.3'
45
+ require 'rubocop'
46
+ cli = Rubocop::CLI.new
47
+ result = cli.run(FileList['{spec,lib}/**/*.rb'])
48
+ abort('RuboCop failed!') unless result == 0
49
+ else
50
+ puts '[!] Ruby > 1.9 is required to run style checks'
51
+ end
52
+ end
53
+
54
+ rescue LoadError
55
+ $stderr.puts "\033[0;31m" \
56
+ '[!] Some Rake tasks haven been disabled because the environment' \
57
+ ' couldn’t be loaded. Be sure to run `rake bootstrap` first.' \
58
+ "\e[0m"
41
59
  end
@@ -2,5 +2,5 @@
2
2
  # The namespace of the Cocoapods plugins plugin.
3
3
  #
4
4
  module CocoapodsPlugins
5
- VERSION = '0.1.1'
5
+ VERSION = '0.2.0'
6
6
  end
@@ -6,6 +6,8 @@ module Pod
6
6
  # template
7
7
  #
8
8
  class Create < Plugins
9
+ NAME_PREFIX = 'cocoapods-'
10
+
9
11
  self.summary = 'Creates a new plugin'
10
12
  self.description = <<-DESC
11
13
  Creates a scaffold for the development of a new plugin
@@ -16,10 +18,16 @@ module Pod
16
18
  in place of the default one.
17
19
  DESC
18
20
 
19
- self.arguments = 'NAME [TEMPLATE_URL]'
21
+ self.arguments = [
22
+ ['NAME', :required],
23
+ ['TEMPLATE_URL', :optional]
24
+ ]
20
25
 
21
26
  def initialize(argv)
22
27
  @name = argv.shift_argument
28
+ unless @name.nil? || @name.empty? || @name.index(NAME_PREFIX) == 0
29
+ @name = @name.dup.prepend(NAME_PREFIX)
30
+ end
23
31
  @template_url = argv.shift_argument
24
32
  super
25
33
  end
@@ -59,7 +67,8 @@ module Pod
59
67
  # @return [void]
60
68
  #
61
69
  def clone_template
62
- UI.section("Creating `#{@name}` plugin") do
70
+ UI.section("-> Creating `#{@name}` plugin") do
71
+ UI.notice "using template '#{template_repo_url}'"
63
72
  git! "clone '#{template_repo_url}' #{@name}"
64
73
  end
65
74
  end
@@ -69,7 +78,7 @@ module Pod
69
78
  # @return [void]
70
79
  #
71
80
  def configure_template
72
- UI.section('Configuring template') do
81
+ UI.section('-> Configuring template') do
73
82
  Dir.chdir(@name) do
74
83
  if File.file? 'configure'
75
84
  system "./configure #{@name}"
@@ -16,7 +16,9 @@ module Pod
16
16
  With --full, it also searches by author and description.
17
17
  DESC
18
18
 
19
- self.arguments = 'QUERY'
19
+ self.arguments = [
20
+ ['QUERY', :required]
21
+ ]
20
22
 
21
23
  def self.options
22
24
  [
@@ -1,4 +1,5 @@
1
1
  require File.expand_path('../../../spec_helper', __FILE__)
2
+ require 'tmpdir'
2
3
 
3
4
  # The CocoaPods namespace
4
5
  #
@@ -19,29 +20,45 @@ module Pod
19
20
 
20
21
  it 'should require a name is passed in' do
21
22
  @command = create_command
22
- # rubocop:disable Lambda
23
- lambda { @command.validate! }
24
- .should.raise(CLAide::Help)
25
- .message.should.match(/A name for the plugin is required./)
26
- # rubocop:enable Lambda
23
+ should.raise(CLAide::Help) do
24
+ @command.validate!
25
+ end.message.should.match(/A name for the plugin is required./)
27
26
  end
28
27
 
29
28
  it 'should require a non-empty name is passed in' do
30
29
  @command = create_command('')
31
- # rubocop:disable Lambda
32
- lambda { @command.validate! }
33
- .should.raise(CLAide::Help)
34
- .message.should.match(/A name for the plugin is required./)
35
- # rubocop:enable Lambda
30
+ should.raise(CLAide::Help) do
31
+ @command.validate!
32
+ end.message.should.match(/A name for the plugin is required./)
36
33
  end
37
34
 
38
35
  it 'should require the name does not have spaces' do
39
36
  @command = create_command('my gem')
40
- # rubocop:disable Lambda
41
- lambda { @command.validate! }
42
- .should.raise(CLAide::Help)
43
- .message.should.match(/The plugin name cannot contain spaces./)
44
- # rubocop:enable Lambda
37
+ should.raise(CLAide::Help) do
38
+ @command.validate!
39
+ end.message.should.match(/The plugin name cannot contain spaces./)
40
+ end
41
+
42
+ #--- Naming
43
+
44
+ it 'should prefix the given name if not already' do
45
+ @command = create_command('unprefixed')
46
+ Dir.mktmpdir do |tmpdir|
47
+ Dir.chdir(tmpdir) do
48
+ @command.run
49
+ end
50
+ end
51
+ UI.output.should.include('Creating `cocoapods-unprefixed` plugin')
52
+ end
53
+
54
+ it 'should not prefix the name if already prefixed' do
55
+ @command = create_command('cocoapods-prefixed')
56
+ Dir.mktmpdir do |tmpdir|
57
+ Dir.chdir(tmpdir) do
58
+ @command.run
59
+ end
60
+ end
61
+ UI.output.should.include('Creating `cocoapods-prefixed` plugin')
45
62
  end
46
63
 
47
64
  #--- Template download
@@ -20,20 +20,16 @@ module Pod
20
20
 
21
21
  it 'should require a non-empty query' do
22
22
  @command = search_command
23
- # rubocop:disable Lambda
24
- lambda { @command.validate! }
25
- .should.raise(CLAide::Help)
26
- .message.should.match(/A search query is required./)
27
- # rubocop:enable Lambda
23
+ should.raise(CLAide::Help) do
24
+ @command.validate!
25
+ end.message.should.match(/A search query is required./)
28
26
  end
29
27
 
30
28
  it 'should require a valid RegExp as query' do
31
29
  @command = search_command('[invalid')
32
- # rubocop:disable Lambda
33
- lambda { @command.validate! }
34
- .should.raise(CLAide::Help)
35
- .message.should.match(/A valid regular expression is required./)
36
- # rubocop:enable Lambda
30
+ should.raise(CLAide::Help) do
31
+ @command.validate!
32
+ end.message.should.match(/A valid regular expression is required./)
37
33
  end
38
34
 
39
35
  #--- Output printing
@@ -16,21 +16,18 @@ module Pod
16
16
 
17
17
  it 'handles empty/bad JSON' do
18
18
  stub_plugins_json_request 'This is not JSON'
19
- # rubocop:disable Lambda
20
- lambda { Command::PluginsHelper.download_json }
21
- .should.raise(Pod::Informative)
22
- .message.should.match(/Invalid plugins list from cocoapods.org/)
23
- # rubocop:enable Lambda
19
+ expected_error = /Invalid plugins list from cocoapods.org/
20
+ should.raise(Pod::Informative) do
21
+ Command::PluginsHelper.download_json
22
+ end.message.should.match(expected_error)
24
23
  end
25
24
 
26
25
  it 'notifies the user if the download fails' do
27
26
  stub_plugins_json_request '', [404, 'Not Found']
28
- # rubocop:disable Lambda
29
- lambda { Command::PluginsHelper.download_json }
30
- .should.raise(Pod::Informative)
31
- .message.should
32
- .match(/Could not download plugins list from cocoapods.org/)
33
- # rubocop:enable Lambda
27
+ expected_error = /Could not download plugins list from cocoapods.org/
28
+ should.raise(Pod::Informative) do
29
+ Command::PluginsHelper.download_json
30
+ end.message.should.match(expected_error)
34
31
  end
35
32
 
36
33
  it 'detects if a gem is installed' do
data/spec/spec_helper.rb CHANGED
@@ -56,7 +56,7 @@ module Pod
56
56
  @output << "#{message}\n"
57
57
  end
58
58
 
59
- def warn(message = '', actions = [])
59
+ def warn(message = '', _actions = [])
60
60
  @warnings << "#{message}\n"
61
61
  end
62
62
 
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.1.1
4
+ version: 0.2.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-05-02 00:00:00.000000000 Z
12
+ date: 2014-05-20 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
- - .gitignore
67
- - .rubocop-cocoapods.yml
68
- - .rubocop.yml
69
- - .travis.yml
66
+ - ".gitignore"
67
+ - ".rubocop-cocoapods.yml"
68
+ - ".rubocop.yml"
69
+ - ".travis.yml"
70
70
  - CHANGELOG.md
71
71
  - Gemfile
72
72
  - Gemfile.lock
@@ -98,17 +98,17 @@ require_paths:
98
98
  - lib
99
99
  required_ruby_version: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - '>='
101
+ - - ">="
102
102
  - !ruby/object:Gem::Version
103
103
  version: '0'
104
104
  required_rubygems_version: !ruby/object:Gem::Requirement
105
105
  requirements:
106
- - - '>='
106
+ - - ">="
107
107
  - !ruby/object:Gem::Version
108
108
  version: '0'
109
109
  requirements: []
110
110
  rubyforge_project:
111
- rubygems_version: 2.0.6
111
+ rubygems_version: 2.2.2
112
112
  signing_key:
113
113
  specification_version: 4
114
114
  summary: CocoaPods plugin which shows info about available CocoaPods plugins.
@@ -120,3 +120,4 @@ test_files:
120
120
  - spec/command/plugins_spec.rb
121
121
  - spec/fixtures/plugins.json
122
122
  - spec/spec_helper.rb
123
+ has_rdoc: