cocoapods-plugins 0.1.1 → 0.2.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 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: