How to install:
- Create a new command
- Paste the ruby code into it
- Output: "Insert as Snippet"
- Tab trigger: gemspec
- Scope: source.ruby
#!/usr/bin/env ruby | |
def git_config(key) | |
value = `git config #{key}`.chomp | |
value.empty?? nil : value | |
end | |
name = File.basename(ENV['TM_FILENAME'] || 'name').split('.').first | |
user = git_config('github.user') || ENV['USER'] || ENV['USERNAME'] || 'user' | |
email = git_config('user.email') || '[email protected]' | |
full_name = git_config('user.name') || 'Your Full Name' | |
puts <<-GEMSPEC | |
Gem::Specification.new do |gem| | |
gem.name = '${1:#{name}}' | |
gem.version = '${2:0.0.1}' | |
gem.date = Date.today.to_s | |
# gem.add_dependency 'hpricot', '~> 0.8.2' | |
# gem.add_development_dependency 'rspec', '~> 1.2.9' | |
gem.summary = "${3:summary}" | |
gem.description = "${4:Longer description.}" | |
gem.authors = ['${5:#{full_name}}'] | |
gem.email = '${6:#{email}}' | |
gem.homepage = 'http://github.com/#{user}/$1' | |
gem.rubyforge_project = nil | |
gem.has_rdoc = true | |
gem.rdoc_options = ['--main', 'README.rdoc', '--charset=UTF-8'] | |
gem.extra_rdoc_files = ['README.rdoc', 'LICENSE', 'CHANGELOG.rdoc'] | |
gem.files = Dir['Rakefile', '{bin,lib,man,test,spec}/**/*', 'README*', 'LICENSE*'] & \\`git ls-files -z\\`.split("\\0") | |
end | |
GEMSPEC |
How to install:
TextMate can't find your git. First check where it is:
$ which git
Then make sure it's in TextMate's PATH: "Settings → Advanced → Shell variables". If you don't have PATH there, create it by copying it from the shell:
$ echo $PATH | pbcopy
Thanks, that did the trick!
Hey Mislav, Thanks for the nice snippet!
It all seems to work, except for the part where I invoke the "git_config" method.
See Pastie Snippet: http://pastie.org/908210
First 3 lines error out for some reason, do you have any idea why?
When I manually execute "git config user.name" etc from the command line it does work, but something goes wrong when doing it from TextMate.
This isn't a big issue or anything, I can manually insert the variables of course, but if you know why this happens, please let me know. :)
Thanks!