gemsmith 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --format documentation
@@ -1,3 +1,13 @@
1
+ = v1.1.0
2
+
3
+ * Fixed bug where args, options, and config were not being passed to super for CLI initialize for gem and gem template generation.
4
+ * Updated gemspec settings and removed rubygem requirements from spec helper.
5
+ * Defaulted RSpec output to documentation format for project and template generation.
6
+ * Added Ruby on Rails Gem Packaging to Best Practices section of README.
7
+ * Added the -o option for opening a gem in the default editor.
8
+ * Added RSpec documentation to README and README template.
9
+ * Added Tests, Contributions, and Credits section to README and README template.
10
+
1
11
  = v1.0.0
2
12
 
3
13
  * Upgraded to Ruby 1.9 and added Ruby 1.9 requirements.
@@ -7,11 +7,12 @@ gem. Gemsmith is essentially an enhanced version of Bundler's gem building capab
7
7
  = Features
8
8
 
9
9
  * Builds a gem skeleton with Bundler functionality in mind.
10
- * Allows for common settings that you can apply to new gem creations.
10
+ * Allows for common settings that can be applied 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.
14
14
  * Adds commonly needed README, CHANGELOG, LICENSE, etc. template files.
15
+ * Provides the ability to open any installed gem within your favorite editor.
15
16
 
16
17
  = Requirements
17
18
 
@@ -59,6 +60,7 @@ From the command line, type: gemsmith help
59
60
  gemsmith -c, [create=GEM_NAME] # Create new gem.
60
61
  gemsmith -e, [edit] # Edit gem settings in default editor (assumes $EDITOR environment variable).
61
62
  gemsmith -h, [help] # Show this message.
63
+ gemsmith -o, [open=NAME] # Opens gem in default editor (assumes $EDITOR environment variable).
62
64
  gemsmith -v, [version] # Show version.
63
65
 
64
66
  For more gem creation options, type: gemsmith help create
@@ -75,17 +77,24 @@ available to you via Bundler (i.e. rake -T):
75
77
  rake install # Build and install <gem>-<version>.gem into system gems
76
78
  rake release # Create tag v0.1.1 and build and push <gem>-<version>.gem to Rubygems
77
79
 
80
+ = Tests
81
+
82
+ To test, change directory to the gem root and run:
83
+
84
+ bundle exec rspec spec
85
+
78
86
  = Best Practices
79
87
 
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/].
88
+ 1. {Ruby on Rails Gem Packaging}[http://weblog.rubyonrails.org/2009/9/1/gem-packaging-best-practices]
89
+ 2. 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/].
81
90
 
82
- = Company
91
+ = Contributions
83
92
 
84
- {Red Alchemist}[http://www.redalchemist.com]
93
+ Please log all feedback/issues via {GitHub Issues}[https://github.com/bkuhlmann/gemsmith/issues] for the project. Thanks.
85
94
 
86
- = Author
95
+ = Credits
87
96
 
88
- {Brooke Kuhlmann}[http://www.redalchemist.com]
97
+ Developed by {Brooke Kuhlmann}[http://www.redalchemist.com] at {Red Alchemist}[http://www.redalchemist.com]
89
98
 
90
99
  = License
91
100
 
@@ -3,14 +3,16 @@ $:.push File.expand_path("../lib", __FILE__)
3
3
  require "gemsmith/version"
4
4
 
5
5
  Gem::Specification.new do |s|
6
- s.name = "gemsmith"
7
- s.version = Gemsmith::VERSION
8
- s.platform = Gem::Platform::RUBY
9
- s.author = "Brooke Kuhlmann"
10
- s.email = "brooke@redalchemist.com"
11
- s.homepage = "http://www.redalchemist.com"
12
- s.summary = "Ruby gem skeleton generation for the professional gemsmith."
13
- s.description = "Ruby gem skeleton generation for the professional gemsmith. Includes custom settings, binary, Ruby on Rails, and RSpec support. "
6
+ s.name = "gemsmith"
7
+ s.version = Gemsmith::VERSION
8
+ s.platform = Gem::Platform::RUBY
9
+ s.author = "Brooke Kuhlmann"
10
+ s.email = "brooke@redalchemist.com"
11
+ s.homepage = "http://www.redalchemist.com"
12
+ s.summary = "Ruby gem skeleton generation for the professional gemsmith."
13
+ s.description = "Ruby gem skeleton generation for the professional gemsmith. Includes custom settings, binary, Ruby on Rails, and RSpec support. "
14
+ s.license = "MIT"
15
+ s.post_install_message = "(W): www.redalchemist.com. (T): @ralchemist."
14
16
 
15
17
  s.rdoc_options << "CHANGELOG.rdoc"
16
18
  s.required_ruby_version = "~> 1.9.0"
@@ -15,7 +15,7 @@ module Gemsmith
15
15
 
16
16
  # Initialize.
17
17
  def initialize args = [], options = {}, config = {}
18
- super
18
+ super args, options, config
19
19
  load_settings settings_file
20
20
  end
21
21
 
@@ -88,6 +88,32 @@ module Gemsmith
88
88
  say
89
89
  end
90
90
 
91
+ desc "-o, [open=NAME]", "Opens gem in default editor (assumes $EDITOR environment variable)."
92
+ map "-o" => :open
93
+ def open name
94
+ specs = Gem::Specification.find_all_by_name name
95
+ case
96
+ when specs.size == 1
97
+ `$EDITOR #{specs.first.full_gem_path}`
98
+ when specs.size > 1
99
+ say "Multiple versions found:"
100
+ specs.each_with_index do |spec, index|
101
+ say "#{index + 1}. #{spec.name} #{spec.version.version}"
102
+ end
103
+ result = ask "Please pick one (or type 'q' to quit):"
104
+ unless result == 'q'
105
+ if (1..specs.size).include?(result.to_i)
106
+ spec = Gem::Specification.find_by_name(name, specs[result.to_i - 1].version.version)
107
+ `$EDITOR #{spec.full_gem_path}`
108
+ else
109
+ error "Invalid option: #{result}"
110
+ end
111
+ end
112
+ else
113
+ say "Unable to find gem: #{name}"
114
+ end
115
+ end
116
+
91
117
  desc "-e, [edit]", "Edit gem settings in default editor (assumes $EDITOR environment variable)."
92
118
  map "-e" => :edit
93
119
  def edit
@@ -22,13 +22,21 @@ Add the following to your Gemfile:
22
22
 
23
23
  = Usage
24
24
 
25
- = Company
25
+ <%- if config[:rspec] -%>
26
+ = Tests
26
27
 
27
- {<%= config[:company_name] %>}[<%= config[:company_url] %>]
28
+ To test, change directory to the gem root and run:
28
29
 
29
- = Author
30
+ bundle exec rspec spec
31
+ <%- end -%>
32
+
33
+ = Contributions
34
+
35
+ Please log all feedback/issues via GitHub Issues for the project. Thanks.
36
+
37
+ = Credits
30
38
 
31
- {<%= config[:author_name] %>}[<%= config[:author_url] %>]
39
+ Developed by {<%= config[:author_name] %>}[<%= config[:author_url] %>] at {<%= config[:company_name] %>}[<%= config[:company_url] %>]
32
40
 
33
41
  = License
34
42
 
@@ -10,7 +10,7 @@ module <%= config[:gem_class] %>
10
10
 
11
11
  # Initialize.
12
12
  def initialize args = [], options = {}, config = {}
13
- super
13
+ super args, options, config
14
14
  end
15
15
 
16
16
  desc "-v, [version]", "Show version."
@@ -1 +1,2 @@
1
1
  --color
2
+ --format documentation
@@ -1,4 +1,3 @@
1
- require "rubygems"
2
1
  require "bundler/setup"
3
2
  require "<%= config[:gem_name] %>"
4
3
 
@@ -1,3 +1,3 @@
1
1
  module Gemsmith
2
- VERSION = "1.0.0"
2
+ VERSION = "1.1.0"
3
3
  end
@@ -1,4 +1,3 @@
1
- require "rubygems"
2
1
  require "bundler/setup"
3
2
  require "gemsmith"
4
3
  require File.join "gemsmith", "cli"
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: gemsmith
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 1.0.0
5
+ version: 1.1.0
6
6
  platform: ruby
7
7
  authors:
8
8
  - Brooke Kuhlmann
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-10-29 00:00:00 Z
13
+ date: 2011-11-20 00:00:00 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: thor
@@ -66,6 +66,7 @@ extra_rdoc_files: []
66
66
 
67
67
  files:
68
68
  - .gitignore
69
+ - .rspec
69
70
  - CHANGELOG.rdoc
70
71
  - Gemfile
71
72
  - LICENSE.rdoc
@@ -103,9 +104,9 @@ files:
103
104
  - spec/spec_helper.rb
104
105
  - spec/support/settings.yml
105
106
  homepage: http://www.redalchemist.com
106
- licenses: []
107
-
108
- post_install_message:
107
+ licenses:
108
+ - MIT
109
+ post_install_message: "(W): www.redalchemist.com. (T): @ralchemist."
109
110
  rdoc_options:
110
111
  - CHANGELOG.rdoc
111
112
  require_paths: