class Wrench::CLI
Public Class Methods
new(*args)
click to toggle source
Calls superclass method
# File lib/wrench/cli.rb, line 5 def initialize(*args) super @config = YAML.load_file( File.join( File.dirname(__FILE__), "../../config/config.yaml" ) ) end
Public Instance Methods
create_directories(name)
click to toggle source
# File lib/wrench/cli.rb, line 48 def create_directories(name) @config[DIRECTORIES].each do |d| dir = d if d.include?("@") dir = d.sub( "@", "#{name}" ) end unless File.directory?("#{name}/#{dir}") FileUtils.mkdir_p("#{name}/#{dir}") puts " created directory #{name}/#{dir}".green end end end
create_files(name)
click to toggle source
# File lib/wrench/cli.rb, line 69 def create_files(name) module_name = name.slice(0,1).capitalize + name.slice(1..-1) @config[FILES].each do |f| e = ERB.new( File.read( File.join( File.dirname(__FILE__), TEMPLATES, f[TEMPLATE] ) ) ) spec = "#{name}/" unless f[DESTINATION].include?(".") spec = spec + f[DESTINATION].sub( "@", name ) + "/" end filename = f[TEMPLATE].sub( ".erb", "" ) if filename == MAINRB filename = "#{name}.rb" end puts " created file #{spec + filename}".green n = File.open( spec + filename, "w" ) n.write(e.result(binding)) n.close end end
down(asset)
click to toggle source
# File lib/wrench/cli.rb, line 22 def down(asset) sel = @config[ASSETS].find {|a| a["name"] == asset } download(sel["url"]) unless sel.nil? end
download(url)
click to toggle source
# File lib/wrench/cli.rb, line 100 def download(url) ext = resource_ext(url) if ext == ".zip" download_binary(url) elsif ext == ".js" download_ascii(url) else puts "Unsupported resource type".red end end
download_ascii(url)
click to toggle source
# File lib/wrench/cli.rb, line 114 def download_ascii(url) ascii = open(url) filename = File.basename(url) unless File.exists?("./#{filename}") f = File.open( filename, "w" ) f.write(ascii.read) f.close end end
download_binary(url)
click to toggle source
# File lib/wrench/cli.rb, line 130 def download_binary(url) bin = open(url) Zip::ZipFile.open(bin.path) do |z| z.each do |f| path = File.join( ".", f.name ) FileUtils.mkdir_p(File.dirname(path)) z.extract( f, path ) unless File.exist?(path) end end end
list()
click to toggle source
# File lib/wrench/cli.rb, line 31 def list @config[ASSETS].each do |a| puts " + #{a[NAME]}" end end
resource_ext(url)
click to toggle source
# File lib/wrench/cli.rb, line 148 def resource_ext(url) return File.extname(url) end
test()
click to toggle source
# File lib/wrench/cli.rb, line 40 def test resource_ext("https://raw.github.com/douglascrockford/JSON-js/master/json2.js") end
up(name)
click to toggle source
# File lib/wrench/cli.rb, line 14 def up(name) create_directories(name) create_files(name) end