claide-plugins 0.9.1 → 0.9.2

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: 3bf05e511929565f0bf09a993816fcff77deb684
4
- data.tar.gz: d4acbe03d9b46f9d2e545bc5eb5059fd10ba88dd
3
+ metadata.gz: 062f959abe324c5726fd6cf97d621dddd0906313
4
+ data.tar.gz: a5f8a85a4543db6f099daf5eeccf503d9244284c
5
5
  SHA512:
6
- metadata.gz: 7075dfd3dba9626b5189591d00d48661bd7410728afb581d0a0b56cf8113c74c835adf97535bb94784d55ccf3d4fbc5fdea36fc5aa57875c6075b9ad102fbc3c
7
- data.tar.gz: 37e581149de86676added6f1f7ec62d39e74c8654c5f6784d8b44fd43e7bb6769b0a7827315842f7d8cf53bc459ebbe6a89860124c7d803646085fbe2358af54
6
+ metadata.gz: 3e56726dd288585396189349599cad7fd11d47e26f85c8f2992f1772d28b8fe8761ec48e7f8eeda322ae40074e7d169fca98ce33e07d669546d9e3f06090c093
7
+ data.tar.gz: d825a6f0928a6a3ca588b974e53c14176e8bb2086eb788cd8c5c0a1982867abd5d7fba91d480c5a021bc098aa67dd98f14e6ff1bd59ab6dd585ec8ae9b35fdf0
@@ -8,7 +8,7 @@ GIT
8
8
  PATH
9
9
  remote: .
10
10
  specs:
11
- claide-plugins (0.9.0)
11
+ claide-plugins (0.9.1)
12
12
  cork
13
13
  nap
14
14
  open4 (~> 1.3)
@@ -25,7 +25,7 @@ GEM
25
25
  simplecov (>= 0.7.1, < 1.0.0)
26
26
  coderay (1.1.1)
27
27
  colored (1.2)
28
- cork (0.1.0)
28
+ cork (0.2.0)
29
29
  colored (~> 1.2)
30
30
  crack (0.4.2)
31
31
  safe_yaml (~> 1.0.0)
@@ -87,4 +87,4 @@ DEPENDENCIES
87
87
  webmock
88
88
 
89
89
  BUNDLED WITH
90
- 1.12.5
90
+ 1.13.1
data/README.md CHANGED
@@ -1,44 +1,73 @@
1
- # Cocoapods plugins
1
+ # CLAide plugins
2
2
 
3
3
  [![Build Status](https://img.shields.io/travis/CocoaPods/cocoapods-plugins/master.svg?style=flat)](https://travis-ci.org/CocoaPods/cocoapods-plugins)
4
4
  [![Coverage](https://img.shields.io/codeclimate/coverage/github/CocoaPods/cocoapods-plugins.svg?style=flat)](https://codeclimate.com/github/CocoaPods/cocoapods-plugins)
5
5
  [![Code Climate](https://img.shields.io/codeclimate/github/CocoaPods/cocoapods-plugins.svg?style=flat)](https://codeclimate.com/github/CocoaPods/cocoapods-plugins)
6
6
 
7
- CocoaPods plugin which shows info about available CocoaPods plugins or helps you get started developing a new plugin. Yeah, it's very meta.
7
+ CLAide plugin which shows info about available CLAide plugins or helps you get started developing a new plugin. Yeah, it's very meta.
8
+
9
+ It provides the foundations for CocoaPods and Danger's plugin infrastructure.
8
10
 
9
11
  ## Installation
10
12
 
11
- $ gem install cocoapods-plugins
13
+ This isn't really a user-facing gem, you need to add it to your library.
14
+
15
+ Here is how it is added into Danger:
16
+
17
+ ```ruby
18
+ module Danger
19
+ class Runner < CLAide::Command
20
+ require "danger/commands/init"
21
+ require "danger/commands/local"
22
+ require "danger/commands/systems"
23
+
24
+ # manually add claide plugins as subcommands
25
+ require "claide_plugin"
26
+ @subcommands << CLAide::Command::Plugins
27
+ CLAide::Plugins.config =
28
+ CLAide::Plugins::Configuration.new(
29
+ "Danger",
30
+ "danger",
31
+ "https://raw.githubusercontent.com/danger/danger.systems/master/plugins-search-generated.json",
32
+ "https://github.com/danger/danger-plugin-template"
33
+ )
34
+
35
+ require "danger/commands/plugins/plugin_lint"
36
+ require "danger/commands/plugins/plugin_json"
37
+ require "danger/commands/plugins/plugin_readme"
38
+
39
+ ```
12
40
 
13
41
  ## Usage
14
42
 
15
43
  ##### List installed plugins
16
44
 
17
- $ pod plugins installed
45
+ $ [your tool] plugins installed
18
46
 
19
- List all installed CocoaPods plugins with their respective version (and pre_install/post_insall hooks if any)
47
+ List all installed plugins with their respective version
20
48
 
21
49
  ##### List known plugins
22
50
 
23
- $ pod plugins list
51
+ $ [your tool] plugins list
24
52
 
25
- List all known CocoaPods plugins (according to the list hosted on `http://github.com/CocoaPods/cocoapods-plugins`)
53
+ List all known plugins (according to the list hosted on `http://github.com/CocoaPods/cocoapods-plugins`)
26
54
 
27
55
  ##### Search plugins
28
56
 
29
- $ pod plugins search QUERY
57
+ $ [your tool] plugins search QUERY
30
58
 
31
59
  Search plugins whose name contains the given text (ignoring case). With --full, it searches by name but also by author and description.
32
60
 
33
61
  ##### Create a new plugin
34
62
 
35
- $ pod plugins create NAME [TEMPLATE_URL]
63
+ $ [your tool] plugins create NAME [TEMPLATE_URL]
64
+
65
+ Create a scaffold for the development of a new plugin according to the your tool's best practices.
36
66
 
37
- Create a scaffold for the development of a new plugin according to the CocoaPods best practices.
38
67
  If a `TEMPLATE_URL`, pointing to a git repo containing a compatible template, is specified, it will be used in place of the default one.
39
68
 
40
69
  ## Get your plugin listed
41
70
 
42
- $ pod plugins publish
71
+ $ [your tool] plugins publish
43
72
 
44
- Create an issue in the `cocoapods-plugins` GitHub repository to ask for your plugin to be added to the official list (with the proper JSON fragment to be added to `plugins.json` so we just have to copy/paste it).
73
+ Create an issue in the plugins search GitHub repository to ask for your plugin to be added to the official list (with the proper JSON fragment to be added to `plugins.json` so we just have to copy/paste it).
data/Rakefile CHANGED
@@ -29,7 +29,9 @@ begin
29
29
  duration = Time.now - start_time
30
30
  puts "Tests completed in #{duration}s"
31
31
  Rake::Task['rubocop'].invoke
32
- Rake::Task['validate_json'].invoke
32
+
33
+ # This is not used in this library
34
+ # Rake::Task['validate_json'].invoke
33
35
  end
34
36
 
35
37
  def specs(dir)
@@ -1,5 +1,6 @@
1
1
  require 'claide/command/plugins_helper'
2
- require 'claide/executable'
2
+ require 'claide/command/gem_helper'
3
+ require 'claide/command/template_runner'
3
4
 
4
5
  module CLAide
5
6
  class Command
@@ -46,8 +47,9 @@ module CLAide
46
47
  end
47
48
 
48
49
  def run
49
- clone_template
50
- configure_template
50
+ runner = TemplateRunner.new @name, @template_url
51
+ runner.clone_template
52
+ runner.configure_template
51
53
  show_reminder
52
54
  end
53
55
 
@@ -55,48 +57,6 @@ module CLAide
55
57
 
56
58
  private
57
59
 
58
- # !@group Private helpers
59
-
60
- extend CLAide::Executable
61
- executable :git
62
-
63
- # Clones the template from the remote in the working directory using
64
- # the name of the plugin.
65
- #
66
- # @return [void]
67
- #
68
- def clone_template
69
- UI.section("-> Creating `#{@name}` plugin") do
70
- UI.notice "using template '#{template_repo_url}'"
71
- command = ['clone', template_repo_url, @name]
72
- git! command
73
- end
74
- end
75
-
76
- # Runs the template configuration utilities.
77
- #
78
- # @return [void]
79
- #
80
- def configure_template
81
- UI.section('-> Configuring template') do
82
- Dir.chdir(@name) do
83
- if File.file? 'configure'
84
- system "./configure #{@name}"
85
- else
86
- UI.warn 'Template does not have a configure file.'
87
- end
88
- end
89
- end
90
- end
91
-
92
- # Checks if a template URL is given else returns the Plugins.config URL
93
- #
94
- # @return String
95
- #
96
- def template_repo_url
97
- @template_url || CLAide::Plugins.config.plugin_template_url
98
- end
99
-
100
60
  # Shows a reminder to the plugin author to make a Pull Request
101
61
  # in order to update plugins.json once the plugin is released
102
62
  #
@@ -0,0 +1,51 @@
1
+ require 'claide/command/plugins_helper'
2
+ require 'claide/executable'
3
+
4
+ module CLAide
5
+ class TemplateRunner
6
+ extend CLAide::Executable
7
+ executable :git
8
+
9
+ def initialize(name, template_url)
10
+ @name = name
11
+ @template_url = template_url
12
+ end
13
+
14
+ # Clones the template from the remote in the working directory using
15
+ # the name of the plugin.
16
+ #
17
+ # @return [void]
18
+ #
19
+ def clone_template
20
+ UI.section("-> Creating `#{@name}` plugin") do
21
+ UI.notice "using template '#{template_repo_url}'"
22
+ command = ['clone', template_repo_url, @name]
23
+ git! command
24
+ end
25
+ end
26
+
27
+ # Runs the template configuration utilities.
28
+ #
29
+ # @return [void]
30
+ #
31
+ def configure_template
32
+ UI.section('-> Configuring template') do
33
+ Dir.chdir(@name) do
34
+ if File.file? 'configure'
35
+ system "./configure #{@name}"
36
+ else
37
+ UI.warn 'Template does not have a configure file.'
38
+ end
39
+ end
40
+ end
41
+ end
42
+
43
+ # Checks if a template URL is given else returns the Plugins.config URL
44
+ #
45
+ # @return String
46
+ #
47
+ def template_repo_url
48
+ @template_url || CLAide::Plugins.config.plugin_template_url
49
+ end
50
+ end
51
+ end
@@ -1,3 +1,3 @@
1
1
  module CLAidePlugins
2
- VERSION = '0.9.1'.freeze
2
+ VERSION = '0.9.2'.freeze
3
3
  end
@@ -84,8 +84,8 @@ module CLAide
84
84
  template_repo = 'https://github.com/danger/' \
85
85
  'danger-plugin-template'
86
86
  git_command = ['clone', template_repo, 'danger-banana']
87
- @command.expects(:git!).with(git_command)
88
- @command.expects(:configure_template)
87
+ CLAide::TemplateRunner.any_instance.expects(:git!).with(git_command)
88
+ CLAide::TemplateRunner.any_instance.expects(:configure_template)
89
89
  @command.run
90
90
  UI_OUT.string.should.include('Creating `danger-banana` plugin')
91
91
  end
@@ -95,8 +95,9 @@ module CLAide
95
95
  'danger-banana-plugin-template'
96
96
  @command = create_command('danger-banana', alt_repo)
97
97
 
98
- @command.expects(:git!).with(['clone', alt_repo, 'danger-banana'])
99
- @command.expects(:configure_template)
98
+ git_command = ['clone', alt_repo, 'danger-banana']
99
+ CLAide::TemplateRunner.any_instance.expects(:git!).with(git_command)
100
+ CLAide::TemplateRunner.any_instance.expects(:configure_template)
100
101
  @command.run
101
102
  UI_OUT.string.should.include('Creating `danger-banana` plugin')
102
103
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: claide-plugins
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.1
4
+ version: 0.9.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Grandinetti
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-07-24 00:00:00.000000000 Z
12
+ date: 2016-10-02 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: nap
@@ -125,6 +125,7 @@ files:
125
125
  - lib/claide/command/plugins/search.rb
126
126
  - lib/claide/command/plugins_config.rb
127
127
  - lib/claide/command/plugins_helper.rb
128
+ - lib/claide/command/template_runner.rb
128
129
  - lib/claide/executable.rb
129
130
  - lib/claide_plugin.rb
130
131
  - lib/claide_plugins.rb
@@ -160,7 +161,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
160
161
  version: '0'
161
162
  requirements: []
162
163
  rubyforge_project:
163
- rubygems_version: 2.4.8
164
+ rubygems_version: 2.2.2
164
165
  signing_key:
165
166
  specification_version: 4
166
167
  summary: CLAide plugin which shows info about available CLAide plugins.