Sha256: 44b75495b31c889a3661174767cf102455d412888341e70cc3744491d6c2fa00

Contents?: true

Size: 1.38 KB

Versions: 9

Compression:

Stored size: 1.38 KB

Contents

#!/usr/bin/env ruby

require 'gemplate'
require 'userinput'
require 'rugged'
require 'curb'

name = ARGV.first
name = UserInput.new(message: 'Gem name', default: name).ask

user = Rugged::Config.global['github.user'] || ENV['USER']
user = UserInput.new(message: 'GitHub username', default: user).ask

full_name = Rugged::Config.global['user.name']
full_name = UserInput.new(message: 'Full name', default: full_name).ask

email = Rugged::Config.global['user.email']
email = UserInput.new(message: 'Email address', default: email).ask

irc_command = `security find-generic-password -g -s TravisIRC 2>&1`.split "\n"
irc_stanza = irc_command.each_with_object(['', '']) do |x, o|
  o[1] = x.split[1][1..-2] if x.match(/^password/)
  o[0] = x.split('=')[1][1..-2] if x.match(/^[\s"]*acct/)
end.join(',')
irc_stanza = UserInput.new(
  message: 'IRC channel/key',
  default: irc_stanza
).ask

license_validation = proc do |lname|
  url = "https://raw.githubusercontent.com/akerl/licenses/master/#{lname}.txt"
  Curl::Easy.http_head(url).response_code == 200
end

puts 'Available licenses can be found here: https://github.com/akerl/licenses'
license = UserInput.new(
  message: 'License',
  default: 'MIT',
  validation: license_validation
).ask

Gemplate.new(
  name: name,
  user: user,
  full_name: full_name,
  email: email,
  irc_stanza: irc_stanza,
  license: license
).create

puts 'New gem has been created!'

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
gemplate-0.1.8 bin/gemplate
gemplate-0.1.7 bin/gemplate
gemplate-0.1.5 bin/gemplate
gemplate-0.1.4 bin/gemplate
gemplate-0.1.3 bin/gemplate
gemplate-0.1.2 bin/gemplate
gemplate-0.1.1 bin/gemplate
gemplate-0.1.0 bin/gemplate
gemplate-0.0.1 bin/gemplate