class Inesita::CLI

Public Class Methods

source_root() click to toggle source
# File lib/inesita/cli/new.rb, line 25
def self.source_root
  File.dirname(__FILE__)
end

Public Instance Methods

assets_server() click to toggle source
# File lib/inesita/cli/build.rb, line 52
def assets_server
  Inesita::Server.new({
    dist: true,
    static_dir: options[:static_dir],
    app_dir: options[:source_dir],
    app_dist_dir: options[:app_dist_dir]
  }).assets_app
end
build() click to toggle source
# File lib/inesita/cli/build.rb, line 41
def build
  assets = assets_server
  empty_directory options[:destination_dir], force: options[:force]

  copy_static
  create_asset(assets, 'index.html',     ->(s) { Inesita::Minify.html(s) })
  create_asset(assets, 'application.js', ->(s) { Inesita::Minify.js(s) })
  create_asset(assets, 'stylesheet.css', ->(s) { Inesita::Minify.css(s) })
end
copy_static() click to toggle source
# File lib/inesita/cli/build.rb, line 61
def copy_static
  destination_dir = options[:destination_dir]
  force = options[:force]
  static_dir = options[:static_dir]

  Dir.glob("./#{static_dir}/**/*").each do |file|
    if File.directory?(file)
      empty_directory File.join(destination_dir, file), force: force
    else
      copy_file File.absolute_path(file), File.join(destination_dir, file.gsub(static_dir, 'static')), force: force
    end
  end
end
create_asset(assets, name, minify_proc) click to toggle source
# File lib/inesita/cli/build.rb, line 75
def create_asset(assets, name, minify_proc)
  create_file File.join(options[:destination_dir], name),
              minify_proc.call(assets[name].source),
              force: options[:force]
end
new(project_dir) click to toggle source
# File lib/inesita/cli/new.rb, line 17
def new(project_dir)
  directory('template', project_dir, project_name: project_dir, build_dir: Inesita::Config::BUILD_DIR)

  inside project_dir do
    run 'bundle install'
  end
end
safe_build() click to toggle source
# File lib/inesita/cli/watch.rb, line 54
def safe_build
  begin
    build
  rescue => e
    puts 'build error:'
    puts e
  end
end
server() click to toggle source
# File lib/inesita/cli/server.rb, line 20
def server
  Rack::Server.start config: 'config.ru', Port: options['port'], Host: options['host']
end
watch() click to toggle source
# File lib/inesita/cli/watch.rb, line 41
def watch
  puts 'building...'
  safe_build
  puts 'done.'
  Listen.to(options[:source_dir]) do |_modified, _added, _removed|
    puts "rebuilding..."
    safe_build
    puts "done."
  end.start
  loop { sleep 1000 }
end