gemsmith 2.0.0 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
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.