Module: Zashoku

Defined in:
lib/core/view.rb,
lib/daemon.rb,
lib/viewer.rb,
lib/zashoku.rb,
lib/core/item.rb,
lib/generator.rb,
lib/core/module.rb,
lib/core/options.rb,
lib/core/formatter.rb,
lib/core/util/term.rb,
lib/core/util/util.rb,
lib/core/controller.rb,
lib/core/net/client.rb,
lib/core/net/server.rb,
lib/core/config/config.rb,
lib/core/util/readline.rb,
lib/core/statusline/widget.rb,
lib/core/config/view_config.rb,
lib/core/util/folder_listen.rb,
lib/generator/app_generator.rb,
lib/core/config/daemon_config.rb,
lib/core/modules/conf/lib/conf.rb,
lib/core/statusline/statusline.rb,
lib/generator/module_generator.rb,
lib/core/modules/conf/lib/conf/config_view.rb

Overview

watch for changes in a folder’s existance

Defined Under Namespace

Modules: Conf, Formatter, Generator, Module, Net, Statusline, Util Classes: Config, Controller, Daemon, DaemonConfig, Item, Options, View, ViewConfig, Viewer

Constant Summary collapse

Version =
[1, 3, 2].freeze
Root =
File.expand_path('../', __dir__)
AppRoot =
Root
AppName =
'zashoku'
ViewerModules =
[]
DaemonModules =
[]
Host =
'localhost'
Port =
26_119
LoadPaths =
[
  File.join(Zashoku::AppRoot, 'modules')
].freeze

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.clientObject

Returns the value of attribute client.



28
29
30
# File 'lib/viewer.rb', line 28

def client
  @client
end

.confObject

Returns the value of attribute conf.



25
26
27
# File 'lib/zashoku.rb', line 25

def conf
  @conf
end

.controllersObject

Returns the value of attribute controllers.



19
20
21
# File 'lib/daemon.rb', line 19

def controllers
  @controllers
end

.loggerObject

Returns the value of attribute logger.



25
26
27
# File 'lib/zashoku.rb', line 25

def logger
  @logger
end

.modulesObject

Returns the value of attribute modules.



25
26
27
# File 'lib/zashoku.rb', line 25

def modules
  @modules
end

Class Method Details

.command(message) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/daemon.rb', line 20

def command(message)
  Zashoku.logger.debug("command got #{message}")
  message = message.keys.map(&:to_sym).zip(message.values).to_h

  obj =
    if controllers.key?(message[:mod]) && controllers[message[:mod]].respond_to?(message[:meth])
      controllers[message[:mod]].send(message[:meth], *message[:args])
    else
      nil
    end
  Zashoku::Util.encode_object(obj)
end

.command_server(command) ⇒ Object



47
48
49
50
51
52
53
54
55
# File 'lib/zashoku.rb', line 47

def self.command_server(command)
  case command
  when 'start'
    Daemon.new.listen
  else
    require_relative 'core/net/client'
    print Net::Client.command(Zashoku::Host, Zashoku::Port, command)
  end
end

.main(args) ⇒ Object



34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/zashoku.rb', line 34

def self.main(args)
  options = Options.parse(args)
  Zashoku.modules = []

  if options[:generate]
    Generator.generate(options[:template], options[:generate_name])
  elsif options[:server_command]
    command_server(options[:server_command])
  else
    Viewer.new.run
  end
end