Class: DevSystem::NotFoundCommand

Inherits:
SimpleCommand show all
Defined in:
lib/dev_system/subsystems/command/commands/not_found_command.rb

Instance Attribute Summary

Attributes inherited from Liza::Controller

#menv

Instance Method Summary collapse

Methods inherited from SimpleCommand

#after, #ask?, #default_args, #default_booleans, #default_strings, #given_args, #given_booleans, #given_strings, #input_args, #input_booleans, #input_strings, #set_arg, #set_boolean, #set_default_arg, #set_default_array, #set_default_boolean, #set_default_string, #set_input_arg, #set_input_array, #set_input_boolean, #set_input_string, #set_string, #simple_arg, #simple_arg_ask, #simple_arg_ask_snakecase, #simple_args, #simple_args_from_2, #simple_array, #simple_boolean, #simple_boolean_yes, #simple_booleans, #simple_color, #simple_controller_placement, #simple_string, #simple_strings

Methods inherited from BaseCommand

#action_method_name, #action_name, #after, #around, #call, call, #env, get_command_signatures, #not_found, typo, #typo

Methods inherited from Command

get_command_signatures

Methods inherited from Liza::Controller

#`, `, attr_accessor, attr_reader, attr_writer, #attrs, box, #box, call, color, division, division!, division?, inherited, menv_accessor, menv_reader, menv_writer, on_connected, panel, #panel, plural, require, requirements, sh, #sh, singular, subsystem, subsystem!, subsystem?, subsystem_token, token

Methods inherited from Liza::Unit

_erbs_for, #add, add, cl, #cl, class_methods_defined, const_added, const_missing, constants_defined, define_error, descendants_select, division, erbs_available, erbs_defined, erbs_for, errors, #fetch, fetch, get, #get, instance_methods_defined, log, #log, log?, #log?, #log_array, log_array, log_hash, #log_hash, #log_level, log_level, #log_level?, log_level?, log_levels, #log_levels, #log_render_convert, #log_render_format, #log_render_in, #log_render_out, method_added, methods_defined, namespace, part, raise_error, #raise_error, reload!, #reload!, #render, #render!, #render_stack, renderable_formats_for, renderable_names, section, sections, #set, set, #settings, settings, singleton_method_added, sleep, #sleep, stick, #stick, sticks, #sticks, subclasses_select, subunits, system, #system, system?, test_class, time_diff, #time_diff

Instance Method Details

#beforeObject



3
4
5
6
# File 'lib/dev_system/subsystems/command/commands/not_found_command.rb', line 3

def before
  super
  env[:command_action] = "default"
end

#call_defaultObject



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/dev_system/subsystems/command/commands/not_found_command.rb', line 8

def call_default
  is_global = App.global?
  self.log_level 1 if is_global

  app_shell = AppShell.new
  app_shell.filter_by_unit Command

  if is_global
    app_shell.filter_in_units NewCommand, NotFoundCommand
  else
    app_shell.filter_out_units BaseCommand, SimpleCommand, NewCommand
    failed_name = env[:command_name_original]
    app_shell.filter_by_name_including failed_name if failed_name
  end

  outputs(app_shell, failed_name)
end

#outputs(app_shell, failed_name) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/dev_system/subsystems/command/commands/not_found_command.rb', line 28

def outputs(app_shell, failed_name)
  domains = app_shell.get_domains.reject(&:empty?)
  log "domains: #{domains.count}"
  puts

  if domains.empty?
    log stick :black, :green, "No results found for '#{failed_name}'"
    app_shell.undo_filter!
    domains = app_shell.get_domains
  end

  domains.each do |domain|
    next if domain.empty?

    if log? :normal
      puts typo.h1 domain.name.snakecase.upcase, domain.color
    end

    puts
    domain.layers.each do |layer|
      next if layer.objects.empty?

      if log? :normal
        m = "h#{layer.level}"
        name = layer.level==1 ? domain.name.snakecase.upcase : layer.name.to_s
        puts typo.send m, name, layer.color unless layer.level==3

        puts stick layer.color, layer.path
        puts
      end

      layer.objects.each { print_class _1 }
      puts
    end
  end
end


65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# File 'lib/dev_system/subsystems/command/commands/not_found_command.rb', line 65

def print_class klass, description: nil
  return if [NotFoundCommand].include? klass

  sidebar_length = Log.panel.sidebar_size
  klass.get_command_signatures.each do |signature|
    signature[:name] =
      signature[:name].empty? \
        ? klass.token.to_s
        : "#{klass.token}:#{signature[:name]}"
    #
  end.sort_by { _1[:name] }.map do |signature|
    puts [
      "liza #{signature[:name]}".ljust(sidebar_length),
      (description or signature[:description])
    ].join ""
  end
end