rubygems_plugin_generator 0.1.0 → 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: 59ef2b9e36271b9e713133e90de63f1d802cdcd8
4
- data.tar.gz: b10e3f232ad24e287c6d50cc0437294360901957
3
+ metadata.gz: eed0549c5b971715f07b7954c041afe34bb48cc5
4
+ data.tar.gz: d310f4a33e5f0ebd8a3159a4067a17b6e13ac3ce
5
5
  SHA512:
6
- metadata.gz: 82adc241eb27d4cfe235c4e4ee26d89720e00dd2e40bbb90cb896382828539531693b1e243f65e6085b48b3f5fd29544f40b1520892f41ee5973cc505510d396
7
- data.tar.gz: 7373c15987a61e2f6256b824e606e908cb8790cf44649763ea72efdfd818a0ddb154d9b53a96c1723b8acaa29f4aa447ddc0ee72f2794784eed98fa3ca3d056e
6
+ metadata.gz: 522bfb1b37acbbdd976636a8db5ba8c714beb0886cd0a07996807e05a249936e52ecd81254bee6e1c70192b700ac647d1400f0a332f347d19058bb4968fd0386
7
+ data.tar.gz: 2d0a4c1f3a73d087bdf59e4604fb7ac7b6ee623781cb15e2236fc0194e5fd03abd2cac1f33fa9380be2e7dfbe27cf780075dc2d531184cb19f22263e3a0b3d78
data/README.md CHANGED
@@ -1,38 +1,22 @@
1
- # RubygemsPluginGenerator
1
+ # Rubygems plugin generator
2
2
 
3
- Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/rubygems_plugin_generator`. To experiment with that code, run `bin/console` for an interactive prompt.
4
-
5
- TODO: Delete this and the text above, and describe your gem
3
+ This is a `RubyGems` plugin to generate `RubyGems` plugins.
6
4
 
7
5
  ## Installation
8
6
 
9
- Add this line to your application's Gemfile:
10
-
11
- ```ruby
12
- gem 'rubygems_plugin_generator'
7
+ ```bash
8
+ $ gem install rubygems_plugin_generator
13
9
  ```
14
10
 
15
- And then execute:
16
-
17
- $ bundle
18
-
19
- Or install it yourself as:
20
-
21
- $ gem install rubygems_plugin_generator
22
-
23
11
  ## Usage
24
12
 
25
- TODO: Write usage instructions here
26
-
27
- ## Development
28
-
29
- After checking out the repo, run `bin/setup` to install dependencies. Then, run `bin/console` for an interactive prompt that will allow you to experiment.
13
+ `gem plugin <your-plugin-name>`
30
14
 
31
- To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release` to create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
15
+ This command should generate all the code you need to have a working `RubyGems` plugin. Just change the file `lib/rubygems/commands/<your-command>_command.rb` and you should be good to go.
32
16
 
33
17
  ## Contributing
34
18
 
35
- 1. Fork it ( https://github.com/[my-github-username]/rubygems_plugin_generator/fork )
19
+ 1. Fork it
36
20
  2. Create your feature branch (`git checkout -b my-new-feature`)
37
21
  3. Commit your changes (`git commit -am 'Add some feature'`)
38
22
  4. Push to the branch (`git push origin my-new-feature`)
data/Rakefile CHANGED
@@ -1,2 +1,6 @@
1
- require "bundler/gem_tasks"
1
+ require 'rake/testtask'
2
2
 
3
+ task default: :test
4
+ Rake::TestTask.new("test") do |t|
5
+ t.pattern = "test/*_test.rb"
6
+ end
@@ -5,7 +5,8 @@ class Gem::Commands::PluginCommand < Gem::Command
5
5
 
6
6
  def execute
7
7
  name = options[:args].first
8
- klass = name.tr('-', '_').split('_').map(&:capitalize).join
8
+ name = name.tr('-', '_')
9
+ klass = name.split('_').map(&:capitalize).join
9
10
 
10
11
  generator_args = []
11
12
  generator_args << name
@@ -30,5 +30,31 @@ module RubygemsPluginGenerator
30
30
  def create_command_file
31
31
  template('templates/command.tt', "#{name}/lib/rubygems/commands/#{name}_command.rb")
32
32
  end
33
+
34
+ def create_test_file
35
+ template('templates/test.tt', "#{name}/test/#{name}_command_test.rb")
36
+ end
37
+
38
+ def create_rakefile
39
+ template('templates/rakefile.tt', "#{name}/Rakefile")
40
+ end
41
+
42
+ def create_gitignore_file
43
+ template('templates/gitignore.tt', "#{name}/.gitignore")
44
+ end
45
+
46
+ def init_git_repo
47
+ `cd #{name} && git init && git add .`
48
+ end
49
+
50
+ def print_final_message
51
+ say "\n"
52
+ say "*****************************************************************************************"
53
+ say "Please edit #{name}.gemspec with your plugin information."
54
+ say "The file lib/rubygems/commands/#{name}_command.rb was created for you, there you will"
55
+ say "find a method called 'execute'. That's the method that will be called when someone runs"
56
+ say "'gem #{name}'"
57
+ say "*****************************************************************************************"
58
+ end
33
59
  end
34
60
  end
@@ -6,5 +6,6 @@ class Gem::Commands::<%= klass %>Command < Gem::Command
6
6
  def execute
7
7
  # here goes the code that will be executed
8
8
  # when someone runs "gem <%= name %>"
9
+ say "It works!"
9
10
  end
10
11
  end
@@ -1,4 +1,3 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
3
  gemspec
4
-
@@ -10,9 +10,8 @@ Gem::Specification.new do |spec|
10
10
  spec.authors = ["Your name here"]
11
11
  spec.email = ["Your email here"]
12
12
 
13
- spec.summary = "TODO: Add a summary"
14
- spec.description = "TODO: Add a description"
15
- spec.homepage = "TODO: Add a homepage"
13
+ spec.summary = "Add a summary"
14
+ spec.description = "Add a description"
16
15
  spec.license = "MIT"
17
16
 
18
17
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
@@ -22,4 +21,5 @@ Gem::Specification.new do |spec|
22
21
 
23
22
  spec.add_development_dependency "bundler", "~> 1.8"
24
23
  spec.add_development_dependency "rake", "~> 10.0"
24
+ spec.add_development_dependency "minitest", "~> 5.0"
25
25
  end
@@ -0,0 +1,6 @@
1
+ require 'rake/testtask'
2
+
3
+ task default: :test
4
+ Rake::TestTask.new("test") do |t|
5
+ t.pattern = "test/*_test.rb"
6
+ end
@@ -0,0 +1,23 @@
1
+ require 'minitest/autorun'
2
+ require 'rubygems/command_manager'
3
+ require 'rubygems/test_case'
4
+
5
+ require_relative '../lib/rubygems/commands/<%= name %>_command'
6
+
7
+ class <%= klass %>CommandTest < Gem::TestCase
8
+ def setup
9
+ super
10
+ @cmd = Gem::Commands::<%= klass %>Command.new
11
+ end
12
+
13
+ def test_execute
14
+ @cmd.handle_options %w[here goes you params]
15
+
16
+ ui = Gem::MockGemUi.new
17
+ use_ui(ui) do
18
+ @cmd.execute
19
+ end
20
+
21
+ assert_equal "It works!\n", ui.output
22
+ end
23
+ end
@@ -1,3 +1,3 @@
1
1
  module RubygemsPluginGenerator
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
@@ -11,7 +11,7 @@ Gem::Specification.new do |spec|
11
11
 
12
12
  spec.summary = %q{Generates skeleton for a rubygems plugin}
13
13
  spec.description = %q{Generates skeleton for a rubygems plugin when you run 'gem plugin <plugin-name>'}
14
- spec.homepage = "http://brianstorti.com"
14
+ spec.homepage = "https://github.com/brianstorti/rubygems_plugin_generator"
15
15
  spec.license = "MIT"
16
16
 
17
17
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
@@ -24,4 +24,5 @@ Gem::Specification.new do |spec|
24
24
  spec.add_development_dependency "bundler", "~> 1.8"
25
25
  spec.add_development_dependency "byebug", "~> 0"
26
26
  spec.add_development_dependency "rake", "~> 10.0"
27
+ spec.add_development_dependency "minitest", "~> 5.0"
27
28
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubygems_plugin_generator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brian Thomas Storti
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-03-13 00:00:00.000000000 Z
11
+ date: 2015-03-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '10.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: minitest
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '5.0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '5.0'
69
83
  description: Generates skeleton for a rubygems plugin when you run 'gem plugin <plugin-name>'
70
84
  email:
71
85
  - btstorti@gmail.com
@@ -87,11 +101,14 @@ files:
87
101
  - lib/rubygems_plugin_generator/templates/command.tt
88
102
  - lib/rubygems_plugin_generator/templates/gemfile.tt
89
103
  - lib/rubygems_plugin_generator/templates/gemspec.tt
104
+ - lib/rubygems_plugin_generator/templates/gitignore.tt
105
+ - lib/rubygems_plugin_generator/templates/rakefile.tt
90
106
  - lib/rubygems_plugin_generator/templates/rubygems_plugin.tt
107
+ - lib/rubygems_plugin_generator/templates/test.tt
91
108
  - lib/rubygems_plugin_generator/templates/version.tt
92
109
  - lib/rubygems_plugin_generator/version.rb
93
110
  - rubygems_plugin_generator.gemspec
94
- homepage: http://brianstorti.com
111
+ homepage: https://github.com/brianstorti/rubygems_plugin_generator
95
112
  licenses:
96
113
  - MIT
97
114
  metadata: {}