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