Class: Inesita::CLI

Inherits:
Thor
  • Object
show all
Includes:
Thor::Actions
Defined in:
lib/inesita/cli/new.rb,
lib/inesita/cli/build.rb,
lib/inesita/cli/watch.rb,
lib/inesita/cli/server.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.source_rootObject



25
26
27
# File 'lib/inesita/cli/new.rb', line 25

def self.source_root
  File.dirname(__FILE__)
end

Instance Method Details

#buildObject



41
42
43
44
45
46
47
48
49
# 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

#new(project_dir) ⇒ Object



17
18
19
20
21
22
23
# 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

#serverObject



20
21
22
# File 'lib/inesita/cli/server.rb', line 20

def server
  Rack::Server.start config: 'config.ru', Port: options['port'], Host: options['host']
end

#watchObject



41
42
43
44
45
46
47
48
49
50
51
# 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