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
search(keyword)
click to toggle source
# File lib/cmd.rb, line 20 def self.search(keyword) BoilerPlater.search(keyword) 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