Class: Epuber::Command::Server

Inherits:
Epuber::Command show all
Defined in:
lib/epuber/command/server.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Epuber::Command

run

Constructor Details

#initialize(args) ⇒ Server

Returns a new instance of Server.

Parameters:

  • args (CLAide::ARGV)


23
24
25
26
27
# File 'lib/epuber/command/server.rb', line 23

def initialize(args)
  super
  @selected_target_name = args.shift_argument
  @open_web_browser = args.flag?('open', false)
end

Class Method Details

.optionsObject



15
16
17
18
19
# File 'lib/epuber/command/server.rb', line 15

def self.options
  [
    ['--open',   'Opens the web page in default web browser, working only on OS X'],
  ].concat(super)
end

Instance Method Details

#runObject



34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/epuber/command/server.rb', line 34

def run
  super

  require_relative '../server'

  target = if @selected_target_name.nil?
             book.targets.first
           else
             book.target_named(@selected_target_name)
           end

  help!('Not existing target') if target.nil?

  Epuber::Server.run!(book, target, verbose: verbose?) do |uri|
    if OS.osx?
      if @open_web_browser
        system "open #{uri}"
      else
        puts 'Web browser can be automatically opened by adding --open flag, see --help'
      end
    end
  end
end

#validate!Object



29
30
31
32
# File 'lib/epuber/command/server.rb', line 29

def validate!
  super
  verify_one_bookspec_exists!
end