gemsmith 0.5.0 → 1.0.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.
- data/CHANGELOG.rdoc +24 -8
- data/README.rdoc +24 -17
- data/bin/gemsmith +2 -1
- data/gemsmith.gemspec +4 -2
- data/lib/gemsmith.rb +0 -1
- data/lib/gemsmith/cli.rb +61 -36
- data/lib/gemsmith/templates/README.rdoc.tmp +5 -1
- data/lib/gemsmith/templates/gem.gemspec.tmp +13 -8
- data/lib/gemsmith/templates/lib/gem.rb.tmp +1 -1
- data/lib/gemsmith/templates/lib/gem/action_controller/class_methods.rb.tmp +1 -2
- data/lib/gemsmith/templates/lib/gem/action_controller/instance_methods.rb.tmp +1 -1
- data/lib/gemsmith/templates/lib/gem/action_view/instance_methods.rb.tmp +1 -1
- data/lib/gemsmith/templates/lib/gem/active_record/class_methods.rb.tmp +1 -2
- data/lib/gemsmith/templates/lib/gem/active_record/instance_methods.rb.tmp +1 -1
- data/lib/gemsmith/templates/lib/gem/cli.rb.tmp +3 -0
- data/lib/gemsmith/templates/lib/generators/gem/install/install_generator.rb.tmp +1 -1
- data/lib/gemsmith/templates/lib/generators/gem/upgrade/upgrade_generator.rb.tmp +1 -1
- data/lib/gemsmith/version.rb +1 -1
- data/spec/settings_spec.rb +71 -0
- data/spec/spec_helper.rb +4 -0
- data/spec/support/settings.yml +12 -0
- metadata +28 -36
- data/lib/gemsmith/utilities.rb +0 -14
data/CHANGELOG.rdoc
CHANGED
@@ -1,12 +1,28 @@
|
|
1
|
+
= v1.0.0
|
2
|
+
|
3
|
+
* Upgraded to Ruby 1.9 and added Ruby 1.9 requirements.
|
4
|
+
* Upgraded Rails defaults to 3.1.x.
|
5
|
+
* Renamed ActionController and ActiveRecord class methods templates to be acts_as_* instead of is_*_enhanced.
|
6
|
+
* Changed gem specifications to use singular form of author and email.
|
7
|
+
* Added a gem_url setting (which is different from the author_url but does default to it).
|
8
|
+
* Added a Company header to the README template.
|
9
|
+
* Added the MIT license to the gemspec template.
|
10
|
+
* Added the post_install_message option for adding custom messages to gem install output.
|
11
|
+
* Simplified all TODO messages in the templates.
|
12
|
+
* Added Thor+ gem requirement.
|
13
|
+
* Removed the Utilities module and replaced all info and error messages with Thor+ actions.
|
14
|
+
* Added requirements and includes for the Thor+ gem when generating binary-enabled gem skeletons.
|
15
|
+
* Added the YAML requirement to the CLI template.
|
16
|
+
|
1
17
|
= v0.5.0
|
2
18
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
19
|
+
* Fixed bug with wrong definition of ActionView instance method include for main gem template.
|
20
|
+
* Changed the ActionView template behavior so that instance methods are auto-included.
|
21
|
+
* Renamed the execute methods for the install and upgrade generators to install and upgrade respectively.
|
22
|
+
* Added Rails version options. Default: 3.0.0.
|
23
|
+
* Added Ruby version option. Default: 1.9.2.
|
24
|
+
* Made the module namespace optional when building gems specifically for Rails.
|
25
|
+
* Relabeled the TODO helper text for all templates.
|
10
26
|
|
11
27
|
= v0.4.0
|
12
28
|
|
@@ -50,4 +66,4 @@
|
|
50
66
|
|
51
67
|
= v0.1.0
|
52
68
|
|
53
|
-
* Initial version.
|
69
|
+
* Initial version.
|
data/README.rdoc
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
= Overview
|
2
2
|
|
3
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
|
5
|
-
is essentially an enhanced version of Bundler's gem building capabilities.
|
4
|
+
a fan of Bundler[https://github.com/carlhuda/bundler], then you'll appreciate the additional capabilities of this
|
5
|
+
gem. Gemsmith is essentially an enhanced version of Bundler's gem building capabilities.
|
6
6
|
|
7
7
|
= Features
|
8
8
|
|
9
9
|
* Builds a gem skeleton with Bundler functionality in mind.
|
10
|
-
* Allows for common settings that you can
|
10
|
+
* Allows for common settings that you can apply to new gem creations.
|
11
11
|
* Supports binary skeletons with Thor[https://github.com/wycats/thor] command line functionality.
|
12
12
|
* Supports {Ruby on Rails}[http://rubyonrails.org] skeletons.
|
13
13
|
* Supports RSpec[http://rspec.info] test skeletons.
|
@@ -15,8 +15,10 @@ is essentially an enhanced version of Bundler's gem building capabilities.
|
|
15
15
|
|
16
16
|
= Requirements
|
17
17
|
|
18
|
-
|
19
|
-
|
18
|
+
1. Basic understanding of gem building.
|
19
|
+
2. A UNIX-based system.
|
20
|
+
3. {Ruby 1.9.x}[http://www.ruby-lang.org]
|
21
|
+
4. Bundler[https://github.com/carlhuda/bundler]
|
20
22
|
|
21
23
|
= Setup
|
22
24
|
|
@@ -24,30 +26,31 @@ Type the following from the command line to install:
|
|
24
26
|
|
25
27
|
gem install gemsmith
|
26
28
|
|
27
|
-
You can
|
29
|
+
You can configure common settings for future gem builds by creating the following file:
|
28
30
|
|
29
31
|
~/.gemsmith/settings.yml
|
30
32
|
|
31
|
-
...
|
33
|
+
...using the following settings (for example):
|
32
34
|
|
33
35
|
---
|
34
36
|
:author_name: Brooke Kuhlmann
|
35
37
|
:author_email: brooke@redalchemist.com
|
36
38
|
:author_url: http://www.redalchemist.com
|
37
|
-
:company_name: Red
|
38
|
-
:company_url: http://www.redalchemist.com
|
39
|
+
:company_name: Red Alchemist
|
39
40
|
|
40
|
-
|
41
|
+
If no options are configured, then the defaults are as follows:
|
41
42
|
|
42
43
|
gem_platform: Gem::Platform::RUBY
|
43
|
-
author_name: <git
|
44
|
+
author_name: <git name>
|
44
45
|
author_email: <git email>
|
45
|
-
author_url:
|
46
|
+
author_url: https://www.unknown.com
|
47
|
+
gem_url: <author URL>
|
46
48
|
company_name: <author name>
|
47
49
|
company_url: <author URL>
|
48
|
-
year: <current
|
49
|
-
ruby_version: 1.9.
|
50
|
-
rails_version: 3.
|
50
|
+
year: <current year>
|
51
|
+
ruby_version: 1.9.0
|
52
|
+
rails_version: 3.1.0
|
53
|
+
post_install_message: nil
|
51
54
|
|
52
55
|
= Usage
|
53
56
|
|
@@ -74,12 +77,16 @@ available to you via Bundler (i.e. rake -T):
|
|
74
77
|
|
75
78
|
= Best Practices
|
76
79
|
|
77
|
-
1. Ensure
|
80
|
+
1. Ensure the RUBYOPT env variable includes the -w option. {Details}[http://avdi.org/devblog/2011/06/23/how-ruby-helps-you-fix-your-broken-code/].
|
78
81
|
|
79
|
-
=
|
82
|
+
= Company
|
80
83
|
|
81
84
|
{Red Alchemist}[http://www.redalchemist.com]
|
82
85
|
|
86
|
+
= Author
|
87
|
+
|
88
|
+
{Brooke Kuhlmann}[http://www.redalchemist.com]
|
89
|
+
|
83
90
|
= License
|
84
91
|
|
85
92
|
Copyright (c) 2011 {Red Alchemist}[http://www.redalchemist.com].
|
data/bin/gemsmith
CHANGED
data/gemsmith.gemspec
CHANGED
@@ -6,14 +6,16 @@ Gem::Specification.new do |s|
|
|
6
6
|
s.name = "gemsmith"
|
7
7
|
s.version = Gemsmith::VERSION
|
8
8
|
s.platform = Gem::Platform::RUBY
|
9
|
-
s.
|
10
|
-
s.email =
|
9
|
+
s.author = "Brooke Kuhlmann"
|
10
|
+
s.email = "brooke@redalchemist.com"
|
11
11
|
s.homepage = "http://www.redalchemist.com"
|
12
12
|
s.summary = "Ruby gem skeleton generation for the professional gemsmith."
|
13
13
|
s.description = "Ruby gem skeleton generation for the professional gemsmith. Includes custom settings, binary, Ruby on Rails, and RSpec support. "
|
14
14
|
|
15
15
|
s.rdoc_options << "CHANGELOG.rdoc"
|
16
|
+
s.required_ruby_version = "~> 1.9.0"
|
16
17
|
s.add_dependency "thor", "~> 0.14.0"
|
18
|
+
s.add_dependency "thor_plus", ">= 0.1.0"
|
17
19
|
s.add_development_dependency "rspec"
|
18
20
|
s.add_development_dependency "aruba"
|
19
21
|
s.executables << "gemsmith"
|
data/lib/gemsmith.rb
CHANGED
data/lib/gemsmith/cli.rb
CHANGED
@@ -1,11 +1,12 @@
|
|
1
1
|
require "yaml"
|
2
2
|
require "thor"
|
3
3
|
require "thor/actions"
|
4
|
+
require "thor_plus/actions"
|
4
5
|
|
5
6
|
module Gemsmith
|
6
7
|
class CLI < Thor
|
7
8
|
include Thor::Actions
|
8
|
-
include
|
9
|
+
include ThorPlus::Actions
|
9
10
|
|
10
11
|
# Overwrites the Thor template source root.
|
11
12
|
def self.source_root
|
@@ -15,40 +16,21 @@ module Gemsmith
|
|
15
16
|
# Initialize.
|
16
17
|
def initialize args = [], options = {}, config = {}
|
17
18
|
super
|
18
|
-
|
19
|
-
load_settings
|
19
|
+
load_settings settings_file
|
20
20
|
end
|
21
21
|
|
22
22
|
desc "-c, [create=GEM_NAME]", "Create new gem."
|
23
23
|
map "-c" => :create
|
24
|
-
method_option :bin, :
|
25
|
-
method_option :rails, :
|
26
|
-
method_option :rspec, :
|
24
|
+
method_option :bin, aliases: "-b", desc: "Add binary support.", type: :boolean, default: false
|
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
|
+
info "Creating gem..."
|
30
30
|
|
31
31
|
# Initialize options.
|
32
|
-
|
33
|
-
|
34
|
-
author_name = @settings[:author_name] || `git config user.name`.chomp || "TODO: Add your full name here."
|
35
|
-
author_url = @settings[:author_url] || "TODO: Add your home page URL here."
|
36
|
-
template_options = {
|
37
|
-
:gem_name => gem_name,
|
38
|
-
:gem_class => gem_class,
|
39
|
-
:gem_platform => (@settings[:gem_platform] || "Gem::Platform::RUBY"),
|
40
|
-
:author_name => author_name,
|
41
|
-
:author_email => (@settings[:author_email] || `git config user.email`.chomp || "TODO: Add your email address here."),
|
42
|
-
:author_url => author_url,
|
43
|
-
:company_name => (@settings[:company_name] || author_name),
|
44
|
-
:company_url => (@settings[:company_url] || author_url),
|
45
|
-
:year => Time.now.year,
|
46
|
-
:bin => options[:bin],
|
47
|
-
:rails => options[:rails],
|
48
|
-
:rspec => options[:rspec],
|
49
|
-
:ruby_version => (@settings[:ruby_version] || "1.9.2"),
|
50
|
-
:rails_version => (@settings[:rails_version] || "3.0.0")
|
51
|
-
}
|
32
|
+
template_options = build_template_options name, options
|
33
|
+
gem_name = template_options[:gem_name]
|
52
34
|
|
53
35
|
# Configure templates.
|
54
36
|
target_path = File.join Dir.pwd, gem_name
|
@@ -65,13 +47,13 @@ module Gemsmith
|
|
65
47
|
template File.join("lib", "gem", "version.rb.tmp"), File.join(target_path, "lib", gem_name, "version.rb"), template_options
|
66
48
|
|
67
49
|
# Binary (optional).
|
68
|
-
if
|
50
|
+
if template_options[:bin]
|
69
51
|
template File.join("bin", "gem.tmp"), File.join(target_path, "bin", gem_name), template_options
|
70
52
|
template File.join("lib", "gem", "cli.rb.tmp"), File.join(target_path, "lib", gem_name, "cli.rb"), template_options
|
71
53
|
end
|
72
54
|
|
73
55
|
# Ruby on Rails (optional).
|
74
|
-
if
|
56
|
+
if template_options[:rails]
|
75
57
|
# ActionController
|
76
58
|
template File.join("lib", "gem", "action_controller", "class_methods.rb.tmp"), File.join(target_path, "lib", gem_name, "action_controller", "class_methods.rb"), template_options
|
77
59
|
template File.join("lib", "gem", "action_controller", "instance_methods.rb.tmp"), File.join(target_path, "lib", gem_name, "action_controller", "instance_methods.rb"), template_options
|
@@ -89,7 +71,7 @@ module Gemsmith
|
|
89
71
|
end
|
90
72
|
|
91
73
|
# RSpec (optional).
|
92
|
-
if
|
74
|
+
if template_options[:rspec]
|
93
75
|
template "rspec.tmp", File.join(target_path, ".rspec"), template_options
|
94
76
|
template File.join("spec", "spec_helper.rb.tmp"), File.join(target_path, "spec", "spec_helper.rb"), template_options
|
95
77
|
template File.join("spec", "gem_spec.rb.tmp"), File.join(target_path, "spec", "#{gem_name}_spec.rb"), template_options
|
@@ -102,14 +84,14 @@ module Gemsmith
|
|
102
84
|
`git commit -a -n -m "Gemsmith skeleton created."`
|
103
85
|
end
|
104
86
|
|
105
|
-
|
87
|
+
info "Gem created."
|
106
88
|
say
|
107
89
|
end
|
108
90
|
|
109
91
|
desc "-e, [edit]", "Edit gem settings in default editor (assumes $EDITOR environment variable)."
|
110
92
|
map "-e" => :edit
|
111
93
|
def edit
|
112
|
-
`$EDITOR #{
|
94
|
+
`$EDITOR #{settings_file}`
|
113
95
|
end
|
114
96
|
|
115
97
|
desc "-v, [version]", "Show version."
|
@@ -125,16 +107,59 @@ module Gemsmith
|
|
125
107
|
|
126
108
|
private
|
127
109
|
|
110
|
+
# Answers the default settings file path.
|
111
|
+
def settings_file
|
112
|
+
@settings_file ||= File.join ENV["HOME"], ".gemsmith", "settings.yml"
|
113
|
+
end
|
114
|
+
|
128
115
|
# Load settings.
|
129
|
-
|
130
|
-
|
116
|
+
# ==== Parameters
|
117
|
+
# * +file+ - Required. The path to the settings (YAML) file.
|
118
|
+
def load_settings file
|
119
|
+
if file && File.exists?(file)
|
131
120
|
begin
|
132
|
-
settings = YAML::load_file
|
121
|
+
settings = YAML::load_file file
|
133
122
|
@settings = settings.reject {|key, value| value.nil?}
|
134
123
|
rescue
|
135
|
-
|
124
|
+
error "Invalid settings: #{file}."
|
136
125
|
end
|
137
126
|
end
|
138
127
|
end
|
128
|
+
|
129
|
+
# Answers current settings.
|
130
|
+
def settings
|
131
|
+
@settings ||= {}
|
132
|
+
end
|
133
|
+
|
134
|
+
# Builds template options with default and/or custom settings (where the custom
|
135
|
+
# settings trump default settings).
|
136
|
+
# ==== Parameters
|
137
|
+
# * +name+ - Required. The gem name.
|
138
|
+
# * +options+ - Optional. Additional command line options. Default: {}
|
139
|
+
def build_template_options name, options = {}
|
140
|
+
gem_name = Thor::Util.snake_case name
|
141
|
+
gem_class = Thor::Util.camel_case name
|
142
|
+
author_name = settings[:author_name] || `git config user.name`.chomp || "TODO: Add full name here."
|
143
|
+
author_email = settings[:author_email] || `git config user.email`.chomp || "TODO: Add email address here."
|
144
|
+
author_url = settings[:author_url] || "https://www.unknown.com"
|
145
|
+
{
|
146
|
+
gem_name: gem_name,
|
147
|
+
gem_class: gem_class,
|
148
|
+
gem_platform: (settings[:gem_platform] || "Gem::Platform::RUBY"),
|
149
|
+
author_name: author_name,
|
150
|
+
author_email: author_email,
|
151
|
+
author_url: (author_url || "http://www.unknown.com"),
|
152
|
+
gem_url: (settings[:gem_url] || author_url),
|
153
|
+
company_name: (settings[:company_name] || author_name),
|
154
|
+
company_url: (settings[:company_url] || author_url),
|
155
|
+
year: (settings[:year] || Time.now.year),
|
156
|
+
ruby_version: (settings[:ruby_version] || "1.9.0"),
|
157
|
+
rails_version: (settings[:rails_version] || "3.1.0"),
|
158
|
+
post_install_message: settings[:post_install_message],
|
159
|
+
bin: (options[:bin] || false),
|
160
|
+
rails: (options[:rails] || false),
|
161
|
+
rspec: (options[:rspec].nil? ? true : options[:rspec]),
|
162
|
+
}
|
163
|
+
end
|
139
164
|
end
|
140
165
|
end
|
@@ -22,10 +22,14 @@ Add the following to your Gemfile:
|
|
22
22
|
|
23
23
|
= Usage
|
24
24
|
|
25
|
-
=
|
25
|
+
= Company
|
26
26
|
|
27
27
|
{<%= config[:company_name] %>}[<%= config[:company_url] %>]
|
28
28
|
|
29
|
+
= Author
|
30
|
+
|
31
|
+
{<%= config[:author_name] %>}[<%= config[:author_url] %>]
|
32
|
+
|
29
33
|
= License
|
30
34
|
|
31
35
|
Copyright (c) <%= config[:year] %> {<%= config[:company_name] %>}[<%= config[:company_url] %>].
|
@@ -3,19 +3,24 @@ $:.push File.expand_path("../lib", __FILE__)
|
|
3
3
|
require "<%=config[:gem_name]%>/version"
|
4
4
|
|
5
5
|
Gem::Specification.new do |s|
|
6
|
-
s.name
|
7
|
-
s.version
|
8
|
-
s.platform
|
9
|
-
s.
|
10
|
-
s.email
|
11
|
-
s.homepage
|
12
|
-
s.summary
|
13
|
-
s.description
|
6
|
+
s.name = "<%= config[:gem_name] %>"
|
7
|
+
s.version = <%= config[:gem_class] %>::VERSION
|
8
|
+
s.platform = <%= config[:gem_platform] %>
|
9
|
+
s.author = "<%= config[:author_name] %>"
|
10
|
+
s.email = "<%= config[:author_email] %>"
|
11
|
+
s.homepage = "<%= config[:gem_url] %>"
|
12
|
+
s.summary = "TODO: Add gem summary here."
|
13
|
+
s.description = "TODO: Add gem description here."
|
14
|
+
s.license = "MIT"
|
15
|
+
<%- if config[:post_install_message] -%>
|
16
|
+
s.post_install_message = "<%= config[:post_install_message] %>"
|
17
|
+
<%- end -%>
|
14
18
|
|
15
19
|
s.rdoc_options << "CHANGELOG.rdoc"
|
16
20
|
s.required_ruby_version = "~> <%= config[:ruby_version] %>"
|
17
21
|
<%- if config[:bin] -%>
|
18
22
|
s.add_dependency "thor"
|
23
|
+
s.add_dependency "thor_plus"
|
19
24
|
<%- end -%>
|
20
25
|
<%- if config[:rails] -%>
|
21
26
|
s.add_dependency "rails", "~> <%= config[:rails_version] %>"
|
@@ -5,8 +5,7 @@ module <%= config[:gem_class] %>
|
|
5
5
|
end
|
6
6
|
|
7
7
|
module ClassMethods
|
8
|
-
|
9
|
-
def is_<%= config[:gem_name] %>_enhanced options = {}
|
8
|
+
def acts_as_<%= config[:gem_name] %> options = {}
|
10
9
|
self.send :include, InstanceMethods
|
11
10
|
|
12
11
|
# Default Options
|
@@ -5,8 +5,7 @@ module <%= config[:gem_class] %>
|
|
5
5
|
end
|
6
6
|
|
7
7
|
module ClassMethods
|
8
|
-
|
9
|
-
def is_<%= config[:gem_name] %>_enhanced options = {}
|
8
|
+
def acts_as_<%= config[:gem_name] %> options = {}
|
10
9
|
self.send :include, InstanceMethods
|
11
10
|
|
12
11
|
# Default Options
|
@@ -1,9 +1,12 @@
|
|
1
|
+
require "yaml"
|
1
2
|
require "thor"
|
2
3
|
require "thor/actions"
|
4
|
+
require "thor_plus/actions"
|
3
5
|
|
4
6
|
module <%= config[:gem_class] %>
|
5
7
|
class CLI < Thor
|
6
8
|
include Thor::Actions
|
9
|
+
include ThorPlus::Actions
|
7
10
|
|
8
11
|
# Initialize.
|
9
12
|
def initialize args = [], options = {}, config = {}
|
data/lib/gemsmith/version.rb
CHANGED
@@ -0,0 +1,71 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe "Settings" do
|
4
|
+
before :each do
|
5
|
+
# Default settings.
|
6
|
+
class Gemsmith::CLI
|
7
|
+
private
|
8
|
+
def settings_file
|
9
|
+
nil
|
10
|
+
end
|
11
|
+
end
|
12
|
+
@cli_default = Gemsmith::CLI.new
|
13
|
+
|
14
|
+
# Custom settings.
|
15
|
+
class Gemsmith::CLI
|
16
|
+
private
|
17
|
+
def settings_file
|
18
|
+
File.join File.dirname(__FILE__), "support", "settings.yml"
|
19
|
+
end
|
20
|
+
end
|
21
|
+
@cli_custom = Gemsmith::CLI.new
|
22
|
+
end
|
23
|
+
|
24
|
+
context "Load" do
|
25
|
+
it "should be empty" do
|
26
|
+
@cli_default.send(:settings).should be_empty
|
27
|
+
end
|
28
|
+
|
29
|
+
it "should build defaults" do
|
30
|
+
author_name = `git config user.name`.chomp || "TODO: Add full name here."
|
31
|
+
author_url = "https://www.unknown.com"
|
32
|
+
options = @cli_default.send :build_template_options, "test"
|
33
|
+
options[:gem_name].should be == "test"
|
34
|
+
options[:gem_class].should be == "Test"
|
35
|
+
options[:gem_platform].should be == "Gem::Platform::RUBY"
|
36
|
+
options[:author_name].should be == author_name
|
37
|
+
options[:author_email].should be == (`git config user.email`.chomp || "TODO: Add email address here.")
|
38
|
+
options[:author_url].should be == author_url
|
39
|
+
options[:gem_url].should be == "https://www.unknown.com"
|
40
|
+
options[:company_name].should be == author_name
|
41
|
+
options[:company_url].should be == author_url
|
42
|
+
options[:year].should be == Time.now.year
|
43
|
+
options[:ruby_version].should be == "1.9.0"
|
44
|
+
options[:rails_version].should be == "3.1.0"
|
45
|
+
options[:post_install_message].should be == nil
|
46
|
+
options[:bin].should be_false
|
47
|
+
options[:rails].should be_false
|
48
|
+
options[:rspec].should be_true
|
49
|
+
end
|
50
|
+
|
51
|
+
it "should be custom" do
|
52
|
+
options = @cli_custom.send :build_template_options, "test"
|
53
|
+
options[:gem_name].should be == "test"
|
54
|
+
options[:gem_class].should be == "Test"
|
55
|
+
options[:gem_platform].should be == "Gem::Platform::CURRENT"
|
56
|
+
options[:author_name].should be == "Testy Tester"
|
57
|
+
options[:author_email].should be == "test@test.com"
|
58
|
+
options[:author_url].should be == "https://www.test.com"
|
59
|
+
options[:gem_url].should be == "https://www.gem.com"
|
60
|
+
options[:company_name].should be == "ACME"
|
61
|
+
options[:company_url].should be == "https://www.acme.com"
|
62
|
+
options[:year].should be == 1920
|
63
|
+
options[:ruby_version].should be == "1.8.0"
|
64
|
+
options[:rails_version].should be == "2.3.0"
|
65
|
+
options[:post_install_message].should be == "Follow @tester on Twitter for more info."
|
66
|
+
options[:bin].should be_false
|
67
|
+
options[:rails].should be_false
|
68
|
+
options[:rspec].should be_true
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
---
|
2
|
+
:gem_platform: Gem::Platform::CURRENT
|
3
|
+
:author_name: "Testy Tester"
|
4
|
+
:author_email: "test@test.com"
|
5
|
+
:author_url: "https://www.test.com"
|
6
|
+
:gem_url: "https://www.gem.com"
|
7
|
+
:company_name: "ACME"
|
8
|
+
:company_url: "https://www.acme.com"
|
9
|
+
:year: 1920
|
10
|
+
:ruby_version: 1.8.0
|
11
|
+
:rails_version: 2.3.0
|
12
|
+
:post_install_message: "Follow @tester on Twitter for more info."
|
metadata
CHANGED
@@ -1,13 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gemsmith
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash: 11
|
5
4
|
prerelease:
|
6
|
-
|
7
|
-
- 0
|
8
|
-
- 5
|
9
|
-
- 0
|
10
|
-
version: 0.5.0
|
5
|
+
version: 1.0.0
|
11
6
|
platform: ruby
|
12
7
|
authors:
|
13
8
|
- Brooke Kuhlmann
|
@@ -15,7 +10,7 @@ autorequire:
|
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
12
|
|
18
|
-
date: 2011-
|
13
|
+
date: 2011-10-29 00:00:00 Z
|
19
14
|
dependencies:
|
20
15
|
- !ruby/object:Gem::Dependency
|
21
16
|
name: thor
|
@@ -25,45 +20,44 @@ dependencies:
|
|
25
20
|
requirements:
|
26
21
|
- - ~>
|
27
22
|
- !ruby/object:Gem::Version
|
28
|
-
hash: 39
|
29
|
-
segments:
|
30
|
-
- 0
|
31
|
-
- 14
|
32
|
-
- 0
|
33
23
|
version: 0.14.0
|
34
24
|
type: :runtime
|
35
25
|
version_requirements: *id001
|
36
26
|
- !ruby/object:Gem::Dependency
|
37
|
-
name:
|
27
|
+
name: thor_plus
|
38
28
|
prerelease: false
|
39
29
|
requirement: &id002 !ruby/object:Gem::Requirement
|
40
30
|
none: false
|
41
31
|
requirements:
|
42
32
|
- - ">="
|
43
33
|
- !ruby/object:Gem::Version
|
44
|
-
|
45
|
-
|
46
|
-
- 0
|
47
|
-
version: "0"
|
48
|
-
type: :development
|
34
|
+
version: 0.1.0
|
35
|
+
type: :runtime
|
49
36
|
version_requirements: *id002
|
50
37
|
- !ruby/object:Gem::Dependency
|
51
|
-
name:
|
38
|
+
name: rspec
|
52
39
|
prerelease: false
|
53
40
|
requirement: &id003 !ruby/object:Gem::Requirement
|
54
41
|
none: false
|
55
42
|
requirements:
|
56
43
|
- - ">="
|
57
44
|
- !ruby/object:Gem::Version
|
58
|
-
hash: 3
|
59
|
-
segments:
|
60
|
-
- 0
|
61
45
|
version: "0"
|
62
46
|
type: :development
|
63
47
|
version_requirements: *id003
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
name: aruba
|
50
|
+
prerelease: false
|
51
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
52
|
+
none: false
|
53
|
+
requirements:
|
54
|
+
- - ">="
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: "0"
|
57
|
+
type: :development
|
58
|
+
version_requirements: *id004
|
64
59
|
description: "Ruby gem skeleton generation for the professional gemsmith. Includes custom settings, binary, Ruby on Rails, and RSpec support. "
|
65
|
-
email:
|
66
|
-
- brooke@redalchemist.com
|
60
|
+
email: brooke@redalchemist.com
|
67
61
|
executables:
|
68
62
|
- gemsmith
|
69
63
|
extensions: []
|
@@ -104,8 +98,10 @@ files:
|
|
104
98
|
- lib/gemsmith/templates/rspec.tmp
|
105
99
|
- lib/gemsmith/templates/spec/gem_spec.rb.tmp
|
106
100
|
- lib/gemsmith/templates/spec/spec_helper.rb.tmp
|
107
|
-
- lib/gemsmith/utilities.rb
|
108
101
|
- lib/gemsmith/version.rb
|
102
|
+
- spec/settings_spec.rb
|
103
|
+
- spec/spec_helper.rb
|
104
|
+
- spec/support/settings.yml
|
109
105
|
homepage: http://www.redalchemist.com
|
110
106
|
licenses: []
|
111
107
|
|
@@ -117,27 +113,23 @@ require_paths:
|
|
117
113
|
required_ruby_version: !ruby/object:Gem::Requirement
|
118
114
|
none: false
|
119
115
|
requirements:
|
120
|
-
- -
|
116
|
+
- - ~>
|
121
117
|
- !ruby/object:Gem::Version
|
122
|
-
|
123
|
-
segments:
|
124
|
-
- 0
|
125
|
-
version: "0"
|
118
|
+
version: 1.9.0
|
126
119
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
127
120
|
none: false
|
128
121
|
requirements:
|
129
122
|
- - ">="
|
130
123
|
- !ruby/object:Gem::Version
|
131
|
-
hash: 3
|
132
|
-
segments:
|
133
|
-
- 0
|
134
124
|
version: "0"
|
135
125
|
requirements: []
|
136
126
|
|
137
127
|
rubyforge_project:
|
138
|
-
rubygems_version: 1.8.
|
128
|
+
rubygems_version: 1.8.11
|
139
129
|
signing_key:
|
140
130
|
specification_version: 3
|
141
131
|
summary: Ruby gem skeleton generation for the professional gemsmith.
|
142
|
-
test_files:
|
143
|
-
|
132
|
+
test_files:
|
133
|
+
- spec/settings_spec.rb
|
134
|
+
- spec/spec_helper.rb
|
135
|
+
- spec/support/settings.yml
|
data/lib/gemsmith/utilities.rb
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
module Gemsmith
|
2
|
-
# Additional utilities for the command line.
|
3
|
-
module Utilities
|
4
|
-
# Prints info to the console.
|
5
|
-
def say_info message
|
6
|
-
say_status :info, message, :white
|
7
|
-
end
|
8
|
-
|
9
|
-
# Prints an error to the console.
|
10
|
-
def say_error message
|
11
|
-
say_status :error, message, :red
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|