module BoilerPlater::Cmd

Public Class Methods

alias(action, gist_id, name) click to toggle source
# File lib/cmd.rb, line 56
def self.alias(action, gist_id, name)
  result = case action
    when 'create' then alias_create(gist_id, name)
    when 'delete' then alias_delete(name=gist_id)
    when 'list' then return aliases.map { |gist, n| "#{n}: #{gist}" }.join("\n")
  end
  "Alias '#{name}' was #{!result ? 'not' : ''}#{action}d."
end
alias_create(gist_id, name) click to toggle source
# File lib/cmd.rb, line 65
def self.alias_create(gist_id, name)
  return if find_alias(name) == gist_id
  update_aliases(aliases << [gist_id, name])
end
alias_delete(name) click to toggle source
# File lib/cmd.rb, line 75
def self.alias_delete(name)
  update_aliases(aliases.delete_if { |k, v| v == name })
end
alias_file() click to toggle source
# File lib/cmd.rb, line 83
def self.alias_file
  File.join(ENV['HOME'], '.bp_aliases.yaml')
end
aliases() click to toggle source
# File lib/cmd.rb, line 79
def self.aliases
  File.exists?(alias_file) ? YAML::load_file(alias_file) : []
end
find_alias(name) click to toggle source
# File lib/cmd.rb, line 70
def self.find_alias(name)
  res = aliases.find { |k, v| v == name.strip }
  res ? res.first : name
end
list() click to toggle source
# File lib/cmd.rb, line 24
def self.list
  BoilerPlater.list.map { |k, v| "#{v}: #{k}" }.join("\n")
end
show(id) click to toggle source
# File lib/cmd.rb, line 28
def self.show(id)
  data = BoilerPlater.show(find_alias(id))
  "\nDescription:   #{data['description']}\n" +
  "Author:        #{data['user']['login']}\n" +
  "URL:           #{data['url']}\n" +
  "\n"
end
update_aliases(arr) click to toggle source
# File lib/cmd.rb, line 87
def self.update_aliases(arr)
  File.open(alias_file, 'w') { |f| YAML::dump(arr, f) }
end
use(id, opts) click to toggle source
# File lib/cmd.rb, line 36
def self.use(id, opts)
  BoilerPlater.setup do |bp|
    bp.prefix = opts[:prefix]
  end
  id = find_alias(id)
  puts
  puts "Setting up new project using %s\n\n" % BoilerPlater.show(id)['description']
  BoilerPlater.sections(BoilerPlater.get(id)).each do |part|
    puts '  [%-8s] %s' % [(part.content? ? 'create  '.green : 'download'.yellow), part.path]
    part.download_content! unless part.content?
    if part.exists?
      print '  File already exists, overwrite? [y,N]: '
      part.save! if STDIN.gets.chop.strip == 'Y'
    else
      part.save!
    end
  end
  "\ndone.\n"
end