Class: Redwood::Console

Inherits:
Object show all
Defined in:
lib/sup/modes/console_mode.rb

Constant Summary collapse

RELOAD_WHITELIST =

files that won’t cause problems when reloaded TODO expand this list / convert to blacklist

%w(sup/index.rb sup/modes/console-mode.rb)

Instance Method Summary collapse

Constructor Details

#initialize(mode) ⇒ Console

Returns a new instance of Console.



8
9
10
11
# File 'lib/sup/modes/console_mode.rb', line 8

def initialize mode
  @mode = mode
  @label_service = LabelService.new
end

Instance Method Details

#add_labels(query, *labels) ⇒ Object



17
18
19
20
# File 'lib/sup/modes/console_mode.rb', line 17

def add_labels(query, *labels)
  count = @label_service.add_labels(query, *labels)
  print_buffer_dirty_msg count
end

#clear_hooksObject



73
74
75
76
# File 'lib/sup/modes/console_mode.rb', line 73

def clear_hooks
  HookManager.clear
  nil
end

#loglevelObject



35
# File 'lib/sup/modes/console_mode.rb', line 35

def loglevel; Redwood::Logger.level; end

#p(x) ⇒ Object



41
# File 'lib/sup/modes/console_mode.rb', line 41

def p x; puts x.inspect end

#puts(x) ⇒ Object



40
# File 'lib/sup/modes/console_mode.rb', line 40

def puts x; @mode << "#{x.to_s.rstrip}\n" end

#query(query) ⇒ Object



13
14
15
# File 'lib/sup/modes/console_mode.rb', line 13

def query(query)
  Index.instance.enum_for :each_message, Index.parse_query(query)
end

#reloadObject



47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'lib/sup/modes/console_mode.rb', line 47

def reload
  old_verbose = $VERBOSE
  $VERBOSE = nil
  old_features = $".dup
  begin
    fs = $".grep(/^sup\//)
    fs.reject! { |f| not RELOAD_WHITELIST.member? f }
    fs.each { |f| $".delete f }
    fs.each do |f|
      @mode << "reloading #{f}\n"
      begin
        require f
      rescue LoadError => e
        raise unless e.message =~ /no such file to load/
      end
    end
  rescue Exception
    $".clear
    $".concat old_features
    raise
  ensure
    $VERBOSE = old_verbose
  end
  true
end

#remove_labels(query, *labels) ⇒ Object



22
23
24
25
# File 'lib/sup/modes/console_mode.rb', line 22

def remove_labels(query, *labels)
  count = @label_service.remove_labels(query, *labels)
  print_buffer_dirty_msg count
end

#set_loglevel(level) ⇒ Object



36
# File 'lib/sup/modes/console_mode.rb', line 36

def set_loglevel(level); Redwood::Logger.level = level; end

#special_methodsObject



38
# File 'lib/sup/modes/console_mode.rb', line 38

def special_methods; public_methods - Object.methods end

#xapianObject



33
# File 'lib/sup/modes/console_mode.rb', line 33

def xapian; Index.instance.instance_variable_get :@xapian; end