module Mqrb

Constants

VERSION

Private Class Methods

cp(src, dst) click to toggle source

cp

# File lib/mqrb/cli.rb, line 43
def self.cp(src, dst)
  puts "[COPY]: #{File.basename(src)} => #{dst}"
  FileUtils.cp src, dst
end
cp_erb(src, dst) click to toggle source

cp_erb

# File lib/mqrb/cli.rb, line 55
def self.cp_erb(src, dst)
  puts "[ERB]: #{File.basename(src)} => #{dst}"
  File.open(src) do |f|
    erb = ERB.new(f.read)
    File.open(dst, "w") do |f|
      begin
        f.puts erb.result(binding)
      rescue => e
        STDERR.puts "ERB Parse Error"
        raise e
      end
    end
  end
end
cp_r(src, dst) click to toggle source

cp_r

# File lib/mqrb/cli.rb, line 49
def self.cp_r(src, dst)
  puts "[COPY]: #{File.basename(src)} => #{dst}"
  FileUtils.cp_r src, dst
end
create_new_app(dir_pj, opt) click to toggle source

create_new_app

# File lib/mqrb/cli.rb, line 71
def self.create_new_app(dir_pj, opt)
  # check project name
  if Dir.exist? dir_pj # exist?
    puts "[ERROR] already exist #{dir_pj} directory."
    return
  elsif (dir_pj !~ /\A(\w|-)+\z/) # valid?
    puts "[ERROR] invalid project name. please use charactor '[A-Z][a-z][0-9]_-'"
    return
  end

  # set default config
  @@config.dir_pj = dir_pj
  @@config.dir_dist = File.expand_path("../..", __dir__) + "/dist"
  @@config.dir_runtime = opt["runtime-dir"].empty? ? "#{@@config.dir_dist}/runtime" : opt["runtime-dir"]
  @@config.runtime = opt["runtime"].empty? ? "mqrb" : opt["runtime"]
  @@config.loader = "#{@@config.dir_dist}/loader/mqrb.js"

  # check params
  raise "No such runtime directory #{@@config.dir_runtime}" unless Dir.exist?(@@config.dir_runtime)
  raise "No such runtime directory #{@@config.dir_runtime}/#{@@config.runtime}" unless Dir.exist?(@@config.dir_runtime + "/" + @@config.runtime)

  # input app name
  print "Full App Name: (MyApp) "
  @@config.name = STDIN.gets.chomp
  @@config.name = "MyApp" if (@@config.name.empty?)

  # === install ==

  # copy template
  cp_r "#{@@config.dir_runtime}/#{@@config.runtime}/template", @@config.dir_pj
  Dir.glob("#{@@config.dir_pj}/**/*.erb").each do |f|
    cp_erb f, "#{@@config.dir_pj}/#{File.basename(f, ".erb")}"
    FileUtils.rm f
  end

  # copy loader
  mkdir "#{@@config.dir_pj}/mqrb"
  cp @@config.loader, "#{@@config.dir_pj}/mqrb/mqrb.js"

  # copy mqrb-library
  cp_r "#{@@config.dir_runtime}/#{@@config.runtime}/asm", "#{@@config.dir_pj}/mqrb/"
  cp_r "#{@@config.dir_runtime}/#{@@config.runtime}/wasm", "#{@@config.dir_pj}/mqrb/"

  puts "[Success] Created #{@@config.name} Project to #{@@config.dir_pj}"
end
mkdir(dir) click to toggle source

mkdir

# File lib/mqrb/cli.rb, line 37
def self.mkdir(dir)
  puts "[MKDIR]: #{dir}"
  Dir.mkdir dir
end