gemsmith 0.3.0 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.rdoc +10 -0
- data/README.rdoc +8 -10
- data/lib/gemsmith/cli.rb +2 -2
- data/lib/gemsmith/templates/README.rdoc.tmp +8 -4
- data/lib/gemsmith/templates/gem.gemspec.tmp +12 -4
- data/lib/gemsmith/templates/lib/gem.rb.tmp +5 -4
- data/lib/gemsmith/templates/lib/gem/action_controller/class_methods.rb.tmp +1 -1
- data/lib/gemsmith/templates/lib/gem/active_record/class_methods.rb.tmp +1 -1
- data/lib/gemsmith/templates/lib/generators/gem/install/install_generator.rb.tmp +3 -13
- data/lib/gemsmith/templates/lib/generators/gem/upgrade/upgrade_generator.rb.tmp +3 -13
- data/lib/gemsmith/version.rb +1 -1
- metadata +5 -5
data/CHANGELOG.rdoc
CHANGED
@@ -1,3 +1,13 @@
|
|
1
|
+
= v0.4.0
|
2
|
+
|
3
|
+
* Fixed bug with options not being supplied as second argument to write_inheritable_attribute for ActionController and ActiveRecord class method templates.
|
4
|
+
* Changed the -R option to -r for Rails and added the -s option for RSpec.
|
5
|
+
* Trimmed ERB whitespace from templates where apt.
|
6
|
+
* Cleaned up the source_root code for both the install and upgrade generator templates.
|
7
|
+
* Renamed the copy_files method to the execute method for both the install and upgrade generator templates.
|
8
|
+
* Moved desc method next to execution method for both the install and upgrade generator templates.
|
9
|
+
* Removed the banners from the install and upgrade generator templates since this is auto-generated by Thor.
|
10
|
+
|
1
11
|
= v0.3.0
|
2
12
|
|
3
13
|
* Added Best Practices section to the README.
|
data/README.rdoc
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
= Overview
|
2
2
|
|
3
|
-
Gemsmith allows you to easily craft new gems via the command line with custom settings (if desired). If you are
|
4
|
-
of Bundler[https://github.com/carlhuda/bundler]
|
5
|
-
|
3
|
+
Gemsmith allows you to easily craft new gems via the command line with custom settings (if desired). If you are
|
4
|
+
a fan of Bundler[https://github.com/carlhuda/bundler], then you'll appreciate the quick and easy setup. Gemsmith
|
5
|
+
is essentially an enhanced version of Bundler's gem building capabilities.
|
6
6
|
|
7
7
|
= Features
|
8
8
|
|
@@ -24,8 +24,7 @@ Type the following from the command line to install:
|
|
24
24
|
|
25
25
|
gem install gemsmith
|
26
26
|
|
27
|
-
You can also configure common
|
28
|
-
simply create the following file:
|
27
|
+
You can also configure common settings for future gem builds by creating the following file:
|
29
28
|
|
30
29
|
~/.gemsmith/settings.yml
|
31
30
|
|
@@ -39,8 +38,7 @@ simply create the following file:
|
|
39
38
|
:company_name: Red Alchmist
|
40
39
|
:company_url: http://www.redalchemist.com
|
41
40
|
|
42
|
-
NOTE: All options above are optional.
|
43
|
-
choose what options to define. Up to you. If no options are configured, then the default options are as follows:
|
41
|
+
NOTE: All options above are optional. If no options are configured, then the defaults are as follows:
|
44
42
|
|
45
43
|
gem_platform: Gem::Platform::RUBY
|
46
44
|
author_name: <git user name>
|
@@ -60,10 +58,10 @@ From the command line, type: gemsmith help
|
|
60
58
|
|
61
59
|
For more gem creation options, type: gemsmith help create
|
62
60
|
|
63
|
-
-
|
61
|
+
-b, [--bin] # Add binary support.
|
62
|
+
-r, [--rails] # Add Rails support.
|
63
|
+
-s, [--rspec] # Add RSpec support.
|
64
64
|
# Default: true
|
65
|
-
-b, [--bin] # Adds binary support.
|
66
|
-
-R, [--rails] # Adds Rails support.
|
67
65
|
|
68
66
|
Also, don't forget that once you have created your gem skeleton, the following rake tasks are also
|
69
67
|
available to you via Bundler (i.e. rake -T):
|
data/lib/gemsmith/cli.rb
CHANGED
@@ -22,8 +22,8 @@ module Gemsmith
|
|
22
22
|
desc "-c, [create=GEM_NAME]", "Create new gem."
|
23
23
|
map "-c" => :create
|
24
24
|
method_option :bin, :aliases => "-b", :desc => "Add binary support.", :type => :boolean, :default => false
|
25
|
-
method_option :rails, :aliases => "-
|
26
|
-
method_option :rspec, :aliases => "-
|
25
|
+
method_option :rails, :aliases => "-r", :desc => "Add Rails support.", :type => :boolean, :default => false
|
26
|
+
method_option :rspec, :aliases => "-s", :desc => "Add RSpec support.", :type => :boolean, :default => true
|
27
27
|
def create name
|
28
28
|
say
|
29
29
|
say_info "Creating gem..."
|
@@ -3,19 +3,23 @@
|
|
3
3
|
= Features
|
4
4
|
|
5
5
|
= Requirements
|
6
|
-
|
6
|
+
|
7
|
+
<%- if config[:rails] -%>
|
7
8
|
1. {Ruby on Rails}[http://rubyonrails.org].
|
8
|
-
|
9
|
+
<%- end -%>
|
10
|
+
|
9
11
|
= Setup
|
10
12
|
|
11
13
|
Type the following from the command line to install:
|
12
14
|
|
13
15
|
gem install <%= config[:gem_name] %>
|
14
|
-
|
16
|
+
|
17
|
+
<%- if config[:rails] -%>
|
15
18
|
Add the following to your Gemfile:
|
16
19
|
|
17
20
|
gem "<%= config[:gem_name] %>"
|
18
|
-
|
21
|
+
<%- end -%>
|
22
|
+
|
19
23
|
= Usage
|
20
24
|
|
21
25
|
= Author
|
@@ -13,10 +13,18 @@ Gem::Specification.new do |s|
|
|
13
13
|
s.description = "TODO: Write gem description."
|
14
14
|
|
15
15
|
s.rdoc_options << "CHANGELOG.rdoc"
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
16
|
+
<%- if config[:bin] -%>
|
17
|
+
s.add_dependency "thor"
|
18
|
+
<%- end -%>
|
19
|
+
<%- if config[:rspec] -%>
|
20
|
+
s.add_development_dependency "rspec"
|
21
|
+
<%- end -%>
|
22
|
+
<%- if config[:bin] -%>
|
23
|
+
s.add_development_dependency "aruba"
|
24
|
+
<%- end -%>
|
25
|
+
<%- if config[:bin] -%>
|
26
|
+
s.executables << "<%= config[:gem_name] %>"
|
27
|
+
<%- end -%>
|
20
28
|
|
21
29
|
s.files = `git ls-files`.split("\n")
|
22
30
|
s.test_files = `git ls-files -- {spec,features}/*`.split("\n")
|
@@ -1,18 +1,19 @@
|
|
1
1
|
# Dependencies
|
2
2
|
require File.join File.dirname(__FILE__), "<%= config[:gem_name] %>", "version.rb"
|
3
|
-
|
3
|
+
<%- if config[:rails] -%>
|
4
4
|
require File.join File.dirname(__FILE__), "<%= config[:gem_name] %>", "active_record", "class_methods.rb"
|
5
5
|
require File.join File.dirname(__FILE__), "<%= config[:gem_name] %>", "active_record", "instance_methods.rb"
|
6
6
|
require File.join File.dirname(__FILE__), "<%= config[:gem_name] %>", "action_view", "instance_methods.rb"
|
7
7
|
require File.join File.dirname(__FILE__), "<%= config[:gem_name] %>", "action_controller", "class_methods.rb"
|
8
8
|
require File.join File.dirname(__FILE__), "<%= config[:gem_name] %>", "action_controller", "instance_methods.rb"
|
9
|
-
|
9
|
+
<%- end -%>
|
10
10
|
|
11
11
|
# Namespace
|
12
12
|
module <%= config[:gem_class] %>
|
13
13
|
# Placeholder.
|
14
14
|
end
|
15
|
-
|
15
|
+
|
16
|
+
<%- if config[:rails] -%>
|
16
17
|
# Rails Enhancements
|
17
18
|
if defined? Rails
|
18
19
|
# Model
|
@@ -30,4 +31,4 @@ if defined? Rails
|
|
30
31
|
ActionController::Base.send :include, <%= config[:gem_class] %>::ActionController
|
31
32
|
end
|
32
33
|
end
|
33
|
-
|
34
|
+
<%- end -%>
|
@@ -11,7 +11,7 @@ module <%= config[:gem_class] %>
|
|
11
11
|
|
12
12
|
# Default Options
|
13
13
|
class_inheritable_reader :<%= config[:gem_name] %>_options
|
14
|
-
write_inheritable_attribute :<%= config[:gem_name] %>_options
|
14
|
+
write_inheritable_attribute :<%= config[:gem_name] %>_options, options
|
15
15
|
end
|
16
16
|
end
|
17
17
|
end
|
@@ -11,7 +11,7 @@ module <%= config[:gem_class] %>
|
|
11
11
|
|
12
12
|
# Default Options
|
13
13
|
class_inheritable_reader :<%= config[:gem_name] %>_options
|
14
|
-
write_inheritable_attribute :<%= config[:gem_name] %>_options
|
14
|
+
write_inheritable_attribute :<%= config[:gem_name] %>_options, options
|
15
15
|
end
|
16
16
|
end
|
17
17
|
end
|
@@ -1,19 +1,9 @@
|
|
1
1
|
module <%= config[:gem_class] %>
|
2
2
|
class InstallGenerator < Rails::Generators::Base
|
3
|
-
|
4
|
-
|
5
|
-
# Override the default source path by pulling from a shared templates directory for all generators.
|
6
|
-
def self.source_root
|
7
|
-
@source_root ||= File.join(File.dirname(__FILE__), "..", "templates")
|
8
|
-
end
|
3
|
+
source_root File.join(File.dirname(__FILE__), "..", "templates")
|
9
4
|
|
10
|
-
|
11
|
-
def
|
12
|
-
"rails generate <%= config[:gem_name] %>:install"
|
13
|
-
end
|
14
|
-
|
15
|
-
# TODO - Explain yourself.
|
16
|
-
def copy_files
|
5
|
+
desc "Installs additional <%= config[:gem_class] %> resources."
|
6
|
+
def execute
|
17
7
|
# TODO - Add your fancy/schmancy install code here.
|
18
8
|
end
|
19
9
|
end
|
@@ -1,19 +1,9 @@
|
|
1
1
|
module <%= config[:gem_class] %>
|
2
2
|
class UpgradeGenerator < Rails::Generators::Base
|
3
|
-
|
4
|
-
|
5
|
-
# Override the default source path by pulling from a shared templates directory for all generators.
|
6
|
-
def self.source_root
|
7
|
-
@source_root ||= File.join(File.dirname(__FILE__), "..", "templates")
|
8
|
-
end
|
3
|
+
source_root File.join(File.dirname(__FILE__), "..", "templates")
|
9
4
|
|
10
|
-
|
11
|
-
def
|
12
|
-
"rails generate <%= config[:gem_name] %>:upgrade"
|
13
|
-
end
|
14
|
-
|
15
|
-
# TODO - Explain yourself.
|
16
|
-
def copy_files
|
5
|
+
desc "Upgrades previously installed <%= config[:gem_class] %> resources."
|
6
|
+
def execute
|
17
7
|
# TODO - Add your fancy/schmancy upgrade code here.
|
18
8
|
end
|
19
9
|
end
|
data/lib/gemsmith/version.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gemsmith
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 15
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
8
|
+
- 4
|
9
9
|
- 0
|
10
|
-
version: 0.
|
10
|
+
version: 0.4.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Brooke Kuhlmann
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-07-
|
18
|
+
date: 2011-07-31 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: thor
|
@@ -135,7 +135,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
135
135
|
requirements: []
|
136
136
|
|
137
137
|
rubyforge_project:
|
138
|
-
rubygems_version: 1.8.
|
138
|
+
rubygems_version: 1.8.6
|
139
139
|
signing_key:
|
140
140
|
specification_version: 3
|
141
141
|
summary: Ruby gem skeleton generation for the professional gemsmith.
|