gemsmith 2.0.0 → 2.1.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.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/{LICENSE.rdoc → LICENSE.md} +1 -1
  3. data/README.md +154 -0
  4. data/lib/gemsmith.rb +2 -2
  5. data/lib/gemsmith/cli.rb +32 -131
  6. data/lib/gemsmith/cli_helpers.rb +90 -0
  7. data/lib/gemsmith/cli_options.rb +94 -0
  8. data/lib/gemsmith/skeletons/base_skeleton.rb +35 -0
  9. data/lib/gemsmith/skeletons/cli_skeleton.rb +10 -0
  10. data/lib/gemsmith/skeletons/default_skeleton.rb +21 -0
  11. data/lib/gemsmith/skeletons/documentation_skeleton.rb +12 -0
  12. data/lib/gemsmith/skeletons/git_skeleton.rb +13 -0
  13. data/lib/gemsmith/skeletons/rails_skeleton.rb +51 -0
  14. data/lib/gemsmith/skeletons/rspec_skeleton.rb +17 -0
  15. data/lib/gemsmith/skeletons/travis_skeleton.rb +9 -0
  16. data/lib/gemsmith/templates/{gem.gemspec.tmp → %gem_name%/%gem_name%.gemspec.tt} +4 -3
  17. data/lib/gemsmith/templates/{gitignore.tmp → %gem_name%/.gitignore.tt} +2 -1
  18. data/lib/gemsmith/templates/{rspec.tmp → %gem_name%/.rspec.tt} +0 -0
  19. data/lib/gemsmith/templates/%gem_name%/.ruby-version.tt +1 -0
  20. data/lib/gemsmith/templates/{travis.yml.tmp → %gem_name%/.travis.yml.tt} +0 -2
  21. data/lib/gemsmith/templates/{CHANGELOG.rdoc.tmp → %gem_name%/CHANGELOG.md.tt} +1 -1
  22. data/lib/gemsmith/templates/{CONTRIBUTING.md.tmp → %gem_name%/CONTRIBUTING.md.tt} +0 -0
  23. data/lib/gemsmith/templates/{Gemfile.tmp → %gem_name%/Gemfile.tt} +0 -0
  24. data/lib/gemsmith/templates/{LICENSE.rdoc.tmp → %gem_name%/LICENSE.md.tt} +1 -1
  25. data/lib/gemsmith/templates/%gem_name%/README.md.tt +59 -0
  26. data/lib/gemsmith/templates/{Rakefile.tmp → %gem_name%/Rakefile.tt} +0 -0
  27. data/lib/gemsmith/templates/{bin/gem.tmp → %gem_name%/bin/%gem_name%.tt} +0 -0
  28. data/lib/gemsmith/templates/{gemfiles/rails-3.2.x.gemfile.tmp → %gem_name%/gemfiles/rails-3.2.x.gemfile.tt} +1 -1
  29. data/lib/gemsmith/templates/%gem_name%/lib/%gem_name%.rb.tt +33 -0
  30. data/lib/gemsmith/templates/{lib/gem/action_controller/class_methods.rb.tmp → %gem_name%/lib/%gem_name%/action_controller/class_methods.rb.tt} +2 -2
  31. data/lib/gemsmith/templates/{lib/gem/action_controller/instance_methods.rb.tmp → %gem_name%/lib/%gem_name%/action_controller/instance_methods.rb.tt} +0 -0
  32. data/lib/gemsmith/templates/{lib/gem/action_view/instance_methods.rb.tmp → %gem_name%/lib/%gem_name%/action_view/instance_methods.rb.tt} +0 -0
  33. data/lib/gemsmith/templates/{lib/gem/active_record/class_methods.rb.tmp → %gem_name%/lib/%gem_name%/active_record/class_methods.rb.tt} +2 -2
  34. data/lib/gemsmith/templates/{lib/gem/active_record/instance_methods.rb.tmp → %gem_name%/lib/%gem_name%/active_record/instance_methods.rb.tt} +0 -0
  35. data/lib/gemsmith/templates/{lib/gem/cli.rb.tmp → %gem_name%/lib/%gem_name%/cli.rb.tt} +1 -1
  36. data/lib/gemsmith/templates/{lib/gem/version.rb.tmp → %gem_name%/lib/%gem_name%/version.rb.tt} +0 -0
  37. data/lib/gemsmith/templates/{lib/generators/gem/install/USAGE.tmp → %gem_name%/lib/generators/%gem_name%/install/USAGE.tt} +0 -0
  38. data/lib/gemsmith/templates/{lib/generators/gem/install/install_generator.rb.tmp → %gem_name%/lib/generators/%gem_name%/install/install_generator.rb.tt} +0 -0
  39. data/lib/gemsmith/templates/{lib/generators/gem/upgrade/USAGE.tmp → %gem_name%/lib/generators/%gem_name%/upgrade/USAGE.tt} +0 -0
  40. data/lib/gemsmith/templates/{lib/generators/gem/upgrade/upgrade_generator.rb.tmp → %gem_name%/lib/generators/%gem_name%/upgrade/upgrade_generator.rb.tt} +0 -0
  41. data/lib/gemsmith/templates/{spec/gem_spec.rb.tmp → %gem_name%/spec/%gem_name%_spec.rb.tt} +0 -0
  42. data/lib/gemsmith/templates/{spec/spec_helper.rb.tmp → %gem_name%/spec/spec_helper.rb.tt} +2 -1
  43. data/lib/gemsmith/version.rb +1 -1
  44. metadata +61 -40
  45. data/CHANGELOG.rdoc +0 -134
  46. data/README.rdoc +0 -133
  47. data/lib/gemsmith/templates/README.rdoc.tmp +0 -59
  48. data/lib/gemsmith/templates/gemfiles/rails-3.0.x.gemfile.tmp +0 -5
  49. data/lib/gemsmith/templates/gemfiles/rails-3.1.x.gemfile.tmp +0 -5
  50. data/lib/gemsmith/templates/lib/gem.rb.tmp +0 -33
@@ -3,11 +3,11 @@ module <%= config[:gem_class] %>
3
3
  def self.included base
4
4
  base.extend ClassMethods
5
5
  end
6
-
6
+
7
7
  module ClassMethods
8
8
  def acts_as_<%= config[:gem_name] %> options = {}
9
9
  self.send :include, InstanceMethods
10
-
10
+
11
11
  # Default Options
12
12
  class_inheritable_reader :<%= config[:gem_name] %>_options
13
13
  write_inheritable_attribute :<%= config[:gem_name] %>_options, options
@@ -3,11 +3,11 @@ module <%= config[:gem_class] %>
3
3
  def self.included base
4
4
  base.extend ClassMethods
5
5
  end
6
-
6
+
7
7
  module ClassMethods
8
8
  def acts_as_<%= config[:gem_name] %> options = {}
9
9
  self.send :include, InstanceMethods
10
-
10
+
11
11
  # Default Options
12
12
  class_inheritable_reader :<%= config[:gem_name] %>_options
13
13
  write_inheritable_attribute :<%= config[:gem_name] %>_options, options
@@ -18,7 +18,7 @@ module <%= config[:gem_class] %>
18
18
  def version
19
19
  say "<%= config[:gem_class] %> " + VERSION
20
20
  end
21
-
21
+
22
22
  desc "-h, [help]", "Show this message."
23
23
  def help task = nil
24
24
  say and super
@@ -5,6 +5,7 @@ require "pry"
5
5
  <%- end -%>
6
6
 
7
7
  RSpec.configure do |config|
8
- config.filter_run focus: true
9
8
  config.run_all_when_everything_filtered = true
9
+ config.treat_symbols_as_metadata_keys_with_true_values = true
10
+ config.filter_run focus: true
10
11
  end
@@ -1,3 +1,3 @@
1
1
  module Gemsmith
2
- VERSION = "2.0.0"
2
+ VERSION = "2.1.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gemsmith
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brooke Kuhlmann
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-03-17 00:00:00.000000000 Z
11
+ date: 2013-06-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ~>
18
18
  - !ruby/object:Gem::Version
19
- version: '0.17'
19
+ version: '0.18'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ~>
25
25
  - !ruby/object:Gem::Version
26
- version: '0.17'
26
+ version: '0.18'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: thor_plus
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -67,7 +67,21 @@ dependencies:
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: pry-nav
70
+ name: pry-debugger
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: pry-rescue
71
85
  requirement: !ruby/object:Gem::Requirement
72
86
  requirements:
73
87
  - - '>='
@@ -171,45 +185,52 @@ executables:
171
185
  - gemsmith
172
186
  extensions: []
173
187
  extra_rdoc_files:
174
- - README.rdoc
175
- - CHANGELOG.rdoc
176
- - LICENSE.rdoc
188
+ - README.md
189
+ - LICENSE.md
177
190
  files:
178
191
  - lib/gemsmith/cli.rb
192
+ - lib/gemsmith/cli_helpers.rb
193
+ - lib/gemsmith/cli_options.rb
179
194
  - lib/gemsmith/kit.rb
180
- - lib/gemsmith/templates/bin/gem.tmp
181
- - lib/gemsmith/templates/CHANGELOG.rdoc.tmp
182
- - lib/gemsmith/templates/CONTRIBUTING.md.tmp
183
- - lib/gemsmith/templates/gem.gemspec.tmp
184
- - lib/gemsmith/templates/Gemfile.tmp
185
- - lib/gemsmith/templates/gemfiles/rails-3.0.x.gemfile.tmp
186
- - lib/gemsmith/templates/gemfiles/rails-3.1.x.gemfile.tmp
187
- - lib/gemsmith/templates/gemfiles/rails-3.2.x.gemfile.tmp
188
- - lib/gemsmith/templates/gitignore.tmp
189
- - lib/gemsmith/templates/lib/gem/action_controller/class_methods.rb.tmp
190
- - lib/gemsmith/templates/lib/gem/action_controller/instance_methods.rb.tmp
191
- - lib/gemsmith/templates/lib/gem/action_view/instance_methods.rb.tmp
192
- - lib/gemsmith/templates/lib/gem/active_record/class_methods.rb.tmp
193
- - lib/gemsmith/templates/lib/gem/active_record/instance_methods.rb.tmp
194
- - lib/gemsmith/templates/lib/gem/cli.rb.tmp
195
- - lib/gemsmith/templates/lib/gem/version.rb.tmp
196
- - lib/gemsmith/templates/lib/gem.rb.tmp
197
- - lib/gemsmith/templates/lib/generators/gem/install/install_generator.rb.tmp
198
- - lib/gemsmith/templates/lib/generators/gem/install/USAGE.tmp
199
- - lib/gemsmith/templates/lib/generators/gem/upgrade/upgrade_generator.rb.tmp
200
- - lib/gemsmith/templates/lib/generators/gem/upgrade/USAGE.tmp
201
- - lib/gemsmith/templates/LICENSE.rdoc.tmp
202
- - lib/gemsmith/templates/Rakefile.tmp
203
- - lib/gemsmith/templates/README.rdoc.tmp
204
- - lib/gemsmith/templates/rspec.tmp
205
- - lib/gemsmith/templates/spec/gem_spec.rb.tmp
206
- - lib/gemsmith/templates/spec/spec_helper.rb.tmp
207
- - lib/gemsmith/templates/travis.yml.tmp
195
+ - lib/gemsmith/skeletons/base_skeleton.rb
196
+ - lib/gemsmith/skeletons/cli_skeleton.rb
197
+ - lib/gemsmith/skeletons/default_skeleton.rb
198
+ - lib/gemsmith/skeletons/documentation_skeleton.rb
199
+ - lib/gemsmith/skeletons/git_skeleton.rb
200
+ - lib/gemsmith/skeletons/rails_skeleton.rb
201
+ - lib/gemsmith/skeletons/rspec_skeleton.rb
202
+ - lib/gemsmith/skeletons/travis_skeleton.rb
203
+ - lib/gemsmith/templates/%gem_name%/%gem_name%.gemspec.tt
204
+ - lib/gemsmith/templates/%gem_name%/bin/%gem_name%.tt
205
+ - lib/gemsmith/templates/%gem_name%/CHANGELOG.md.tt
206
+ - lib/gemsmith/templates/%gem_name%/CONTRIBUTING.md.tt
207
+ - lib/gemsmith/templates/%gem_name%/Gemfile.tt
208
+ - lib/gemsmith/templates/%gem_name%/gemfiles/rails-3.2.x.gemfile.tt
209
+ - lib/gemsmith/templates/%gem_name%/lib/%gem_name%/action_controller/class_methods.rb.tt
210
+ - lib/gemsmith/templates/%gem_name%/lib/%gem_name%/action_controller/instance_methods.rb.tt
211
+ - lib/gemsmith/templates/%gem_name%/lib/%gem_name%/action_view/instance_methods.rb.tt
212
+ - lib/gemsmith/templates/%gem_name%/lib/%gem_name%/active_record/class_methods.rb.tt
213
+ - lib/gemsmith/templates/%gem_name%/lib/%gem_name%/active_record/instance_methods.rb.tt
214
+ - lib/gemsmith/templates/%gem_name%/lib/%gem_name%/cli.rb.tt
215
+ - lib/gemsmith/templates/%gem_name%/lib/%gem_name%/version.rb.tt
216
+ - lib/gemsmith/templates/%gem_name%/lib/%gem_name%.rb.tt
217
+ - lib/gemsmith/templates/%gem_name%/lib/generators/%gem_name%/install/install_generator.rb.tt
218
+ - lib/gemsmith/templates/%gem_name%/lib/generators/%gem_name%/install/USAGE.tt
219
+ - lib/gemsmith/templates/%gem_name%/lib/generators/%gem_name%/upgrade/upgrade_generator.rb.tt
220
+ - lib/gemsmith/templates/%gem_name%/lib/generators/%gem_name%/upgrade/USAGE.tt
221
+ - lib/gemsmith/templates/%gem_name%/LICENSE.md.tt
222
+ - lib/gemsmith/templates/%gem_name%/Rakefile.tt
223
+ - lib/gemsmith/templates/%gem_name%/README.md.tt
224
+ - lib/gemsmith/templates/%gem_name%/spec/%gem_name%_spec.rb.tt
225
+ - lib/gemsmith/templates/%gem_name%/spec/spec_helper.rb.tt
208
226
  - lib/gemsmith/version.rb
209
227
  - lib/gemsmith.rb
210
- - README.rdoc
211
- - CHANGELOG.rdoc
212
- - LICENSE.rdoc
228
+ - lib/gemsmith/templates/%gem_name%/.gitignore.tt
229
+ - lib/gemsmith/templates/%gem_name%/.rspec.tt
230
+ - lib/gemsmith/templates/%gem_name%/.ruby-version.tt
231
+ - lib/gemsmith/templates/%gem_name%/.travis.yml.tt
232
+ - README.md
233
+ - LICENSE.md
213
234
  - bin/gemsmith
214
235
  homepage: http://www.redalchemist.com
215
236
  licenses:
@@ -231,7 +252,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
231
252
  version: '0'
232
253
  requirements: []
233
254
  rubyforge_project:
234
- rubygems_version: 2.0.0
255
+ rubygems_version: 2.0.2
235
256
  signing_key:
236
257
  specification_version: 4
237
258
  summary: Ruby gem skeleton generation for the professional gemsmith.
data/CHANGELOG.rdoc DELETED
@@ -1,134 +0,0 @@
1
- = v2.0.0
2
-
3
- * Added Railtie best practices to README.
4
- * Added Guard support.
5
- * Converted/detailed the CONTRIBUTING guidelines per GitHub requirements.
6
- * Updated the contribution details in the README template to point to the CONTRIBUTING template.
7
- * Added spec focus capability.
8
- * Added Gem Badge support.
9
- * Added Code Climate support.
10
- * Added Campfire notification support.
11
- * Switched from HTTP to HTTPS when sourcing from RubyGems.
12
- * Added Pry support.
13
- * Cleaned up Guard gem dependency requirements.
14
- * Added Guard support to gem generation.
15
- * Upgraded to Ruby 2.0.0.
16
-
17
- = v1.5.0
18
-
19
- * Added auto-linking to GitHub Issues via README template.
20
- * Relaxed Rails gem settings to 3.x.x.
21
- * Switched gem dependency to Thor 0.x.x range.
22
- * Switched gem dependency to Thor+ 0.x.x range.
23
-
24
- = v1.4.0
25
-
26
- * Added Travis CI templates for Rails build matrix that can support multiple version tests.
27
- * Added vendor files to gemspec template so they are included when building a new gem (especially Rails related).
28
- * Moved library requirements within the Rails conditional check so that requirements are only loaded if Rails is detected.
29
- * Modified the RSpec development dependency so that if Rails is detected, the rspec-rails gem is included instead.
30
- * Changed the Rails default version to 3.2.0.
31
-
32
- = v1.3.0
33
-
34
- * Specified Thor+ 0.2.x version dependency.
35
- * Added Travis CI support.
36
- * Added Travis CI template support (can be disable via your settings.yml or during new gem creation).
37
- * Added the spec/tmp directory to the gitignore template.
38
- * Added Gemsmith::Kit class with a supplementary utility method for obtaining .gitconfig values.
39
- * Added github user support - Defaults to github config file or settings.yml.
40
- * Updated RSpec format to better represent class and instance methods.
41
- * Removed the -w option from gem binary and the binary template.
42
- * No longer shell out to Git when referencing the gem/template files in gemspecs - This increases Rails boot performance.
43
- * Switched Gemfile and Gemfile.tmp reference from "http://rubygems.org" to :rubygems.
44
- * Moved documentation files to the extra_rdoc_files option for gem specifications
45
- * Removed the packaging of test files.
46
-
47
- = v1.2.0
48
-
49
- * Updated README and README template with new layout for test instructions.
50
- * Upgraded to Thor+ 0.2.0 and removed the settings_file, settings, and load_settings methods.
51
- * Added Why You Should Use a BSD license to the README Best Practices section.
52
- * Added the Best Practices While Cutting Gems to the Best Practices section of the README.
53
- * Added the ruby warning and encoding option formats to the binary template.
54
- * Removed the do block from RSpec template so that initial tests show pending instead of successful results.
55
-
56
- = v1.1.0
57
-
58
- * Fixed bug where args, options, and config were not being passed to super for CLI initialize for gem and gem template generation.
59
- * Updated gemspec settings and removed rubygem requirements from spec helper.
60
- * Defaulted RSpec output to documentation format for project and template generation.
61
- * Added Ruby on Rails Gem Packaging to Best Practices section of README.
62
- * Added the -o option for opening a gem in the default editor.
63
- * Added RSpec documentation to README and README template.
64
- * Added Tests, Contributions, and Credits section to README and README template.
65
-
66
- = v1.0.0
67
-
68
- * Upgraded to Ruby 1.9 and added Ruby 1.9 requirements.
69
- * Upgraded Rails defaults to 3.1.x.
70
- * Renamed ActionController and ActiveRecord class methods templates to be acts_as_* instead of is_*_enhanced.
71
- * Changed gem specifications to use singular form of author and email.
72
- * Added a gem_url setting (which is different from the author_url but does default to it).
73
- * Added a Company header to the README template.
74
- * Added the MIT license to the gemspec template.
75
- * Added the post_install_message option for adding custom messages to gem install output.
76
- * Simplified all TODO messages in the templates.
77
- * Added Thor+ gem requirement.
78
- * Removed the Utilities module and replaced all info and error messages with Thor+ actions.
79
- * Added requirements and includes for the Thor+ gem when generating binary-enabled gem skeletons.
80
- * Added the YAML requirement to the CLI template.
81
-
82
- = v0.5.0
83
-
84
- * Fixed bug with wrong definition of ActionView instance method include for main gem template.
85
- * Changed the ActionView template behavior so that instance methods are auto-included.
86
- * Renamed the execute methods for the install and upgrade generators to install and upgrade respectively.
87
- * Added Rails version options. Default: 3.0.0.
88
- * Added Ruby version option. Default: 1.9.2.
89
- * Made the module namespace optional when building gems specifically for Rails.
90
- * Relabeled the TODO helper text for all templates.
91
-
92
- = v0.4.0
93
-
94
- * Fixed bug with options not being supplied as second argument to write_inheritable_attribute for ActionController and ActiveRecord class method templates.
95
- * Changed the -R option to -r for Rails and added the -s option for RSpec.
96
- * Trimmed ERB whitespace from templates where apt.
97
- * Cleaned up the source_root code for both the install and upgrade generator templates.
98
- * Renamed the copy_files method to the execute method for both the install and upgrade generator templates.
99
- * Moved desc method next to execution method for both the install and upgrade generator templates.
100
- * Removed the banners from the install and upgrade generator templates since this is auto-generated by Thor.
101
-
102
- = v0.3.0
103
-
104
- * Added Best Practices section to the README.
105
- * Added the -e (edit) option for editing gem settings in default editor.
106
- * Added Thor utilities for info and error messaging.
107
- * Removed the classify and underscore methods since their equivalents are found in the Thor::Util class.
108
- * Removed the print_version method.
109
- * Added Rails generator USAGE documentation for the install and update generator templates.
110
- * Removed excess shell calls from the CLI template.
111
- * Added Thor::Actions to CLI class template.
112
- * Added "Built with Gemsmith" to README template.
113
- * Updated README template so that Gemfile mention is only provided when Rails is enabled.
114
-
115
- = v0.2.0
116
-
117
- * Fixed typo in upgrade generator doc.
118
- * Fixed README typo with command line options.
119
- * Added Ruby on Rails skeleton generation support.
120
- * Added RSpec skeleton generation support.
121
- * Added a cli.rb template with basic Thor setup for binary skeletons.
122
- * Added binary executable name to gemspec template for binary skeletons.
123
- * Added gem dependencies to gemspec template for binary and RSpec skeletons.
124
- * Added proper support for underscoring/camelcasing gem names and classes during skeleton generation.
125
- * Added common setup options to the README template.
126
- * Added Ruby on Rails requirements to the README template (only if the Rails options is used).
127
- * Added Ruby on Rails generator templates for installs and upgrades.
128
- * Added Git initialization, addition, and first commit message of all skeleton files during gem creation.
129
- * Updated the gem description.
130
- * Updated the documentation to include Bundler rake tasks.
131
-
132
- = v0.1.0
133
-
134
- * Initial version.
data/README.rdoc DELETED
@@ -1,133 +0,0 @@
1
- = Overview
2
-
3
- {<img src="https://badge.fury.io/rb/gemsmith.png" alt="Gem Version" />}[http://badge.fury.io/rb/gemsmith]
4
- {<img src="https://codeclimate.com/github/bkuhlmann/gemsmith.png" alt="Code Climate GPA" />}[https://codeclimate.com/github/bkuhlmann/gemsmith]
5
- {<img src="https://secure.travis-ci.org/bkuhlmann/gemsmith.png" alt="Travis CI Status" />}[http://travis-ci.org/bkuhlmann/gemsmith]
6
-
7
- Gemsmith allows you to easily craft new gems via the command line with custom settings (if desired). If you are
8
- a fan of Bundler[https://github.com/carlhuda/bundler], then you'll appreciate the additional capabilities of this
9
- gem. Gemsmith is essentially an enhanced version of Bundler's gem building capabilities.
10
-
11
- = Features
12
-
13
- * Builds a gem skeleton with Bundler functionality in mind.
14
- * Supports common settings that can be applied to new gem creations.
15
- * Supports binary skeletons with Thor[https://github.com/wycats/thor] command line functionality.
16
- * Supports {Ruby on Rails}[http://rubyonrails.org].
17
- * Supports RSpec[http://rspec.info].
18
- * Supports Pry[http://pryrepl.org].
19
- * Supports Guard[https://github.com/guard/guard].
20
- * Supports {Code Climate}[https://codeclimate.com].
21
- * Supports {Travis CI}[http://travis-ci.org] skeletons.
22
- * Adds commonly needed README, CHANGELOG, LICENSE, etc. template files.
23
- * Provides the ability to open any installed gem within your favorite editor.
24
-
25
- = Requirements
26
-
27
- 1. A UNIX-based system.
28
- 2. {Ruby 2.0.x}[http://www.ruby-lang.org].
29
- 3. RubyGems[http://rubygems.org].
30
- 4. Bundler[https://github.com/carlhuda/bundler].
31
-
32
- = Setup
33
-
34
- Type the following from the command line to install:
35
-
36
- gem install gemsmith
37
-
38
- You can configure common settings for future gem builds by creating the following file:
39
-
40
- ~/.gemsmith/settings.yml
41
-
42
- ...using the following settings (for example):
43
-
44
- ---
45
- :author_name: Brooke Kuhlmann
46
- :author_email: brooke@redalchemist.com
47
- :author_url: http://www.redalchemist.com
48
- :company_name: Red Alchemist
49
-
50
- If no options are configured, then the defaults are as follows:
51
-
52
- gem_platform: Gem::Platform::RUBY
53
- author_name: <git name>
54
- author_email: <git email>
55
- author_url: https://www.unknown.com
56
- gem_url: <author URL>
57
- company_name: <author name>
58
- company_url: <author URL>
59
- github_user: <github user>
60
- year: <current year>
61
- ruby_version: 2.0.0
62
- rails_version: 3.2.0
63
-
64
- = Usage
65
-
66
- From the command line, type: gemsmith help
67
-
68
- gemsmith -c, [create=GEM_NAME] # Create new gem.
69
- gemsmith -e, [edit] # Edit gem settings in default editor (assumes $EDITOR environment variable).
70
- gemsmith -h, [help] # Show this message.
71
- gemsmith -o, [open=NAME] # Opens gem in default editor (assumes $EDITOR environment variable).
72
- gemsmith -v, [version] # Show version.
73
-
74
- For more gem creation options, type: gemsmith help create
75
-
76
- -b, [--bin] # Add binary support.
77
- -r, [--rails] # Add Rails support.
78
- -p, [--pry] # Add Pry support.
79
- # Default: true
80
- -g, [--guard] # Add Guard support.
81
- # Default: true
82
- -s, [--rspec] # Add RSpec support.
83
- # Default: true
84
- -t, [--travis] # Add Travis CI support.
85
- # Default: true
86
- -c, [--code-climate] # Add Code Climate support.
87
- # Default: true
88
-
89
- Also, don't forget that once you have created your gem skeleton, the following rake tasks are also
90
- available to you via Bundler (i.e. rake -T):
91
-
92
- rake build # Build <gem>-<version>.gem into the pkg directory
93
- rake install # Build and install <gem>-<version>.gem into system gems
94
- rake release # Create tag v0.1.1 and build and push <gem>-<version>.gem to Rubygems
95
-
96
- = Best Practices
97
-
98
- 1. {Best Practices While Cutting Gems}[http://rubysource.com/crafting-rubies-best-practices-while-cutting-gems].
99
- 2. {Ruby on Rails Gem Packaging}[http://weblog.rubyonrails.org/2009/9/1/gem-packaging-best-practices].
100
- 3. {Why You Should Use a BSD Style License}[http://www.freebsd.org/doc/en/articles/bsdl-gpl/article.html].
101
- 4. Add -w to the RUBYOPT environment variable when testing. {Details}[http://avdi.org/devblog/2011/06/23/how-ruby-helps-you-fix-your-broken-code].
102
-
103
- == When To Include a Railtie (quoted from {Crafting Rails Applications}[http://pragprog.com/book/jvrails/crafting-rails-applications] - Page 93 by José Valim)
104
-
105
- * "Your gem needs to perform a given task while or after the Rails application is initialized."
106
- * "Your gem needs to change a configuration value, such as setting a generator."
107
- * "Your gem must provide Rake tasks and generators in nondefault locations (the default location for the former is lib/tasks and lib/gen- erators or lib/rails/generators for the latter)."
108
- * "You want your gem to provide configuration options to the appli- cation, such as config.my_gem.key = :value."
109
-
110
- = Tests
111
-
112
- To test, do the following:
113
-
114
- 1. cd to the gem root.
115
- 2. bundle install
116
- 3. bundle exec rspec spec
117
-
118
- = Contributions
119
-
120
- Read CONTRIBUTING for details.
121
-
122
- = Credits
123
-
124
- Developed by {Brooke Kuhlmann}[http://www.redalchemist.com] at {Red Alchemist}[http://www.redalchemist.com]
125
-
126
- = License
127
-
128
- Copyright (c) 2011 {Red Alchemist}[http://www.redalchemist.com].
129
- Read the LICENSE for details.
130
-
131
- = History
132
-
133
- Read the CHANGELOG for details.