Module: Qcmd

Extended by:
Plaintext
Defined in:
lib/qcmd.rb,
lib/qcmd/cli.rb,
lib/qcmd/parser.rb,
lib/qcmd/aliases.rb,
lib/qcmd/context.rb,
lib/qcmd/handler.rb,
lib/qcmd/history.rb,
lib/qcmd/machine.rb,
lib/qcmd/network.rb,
lib/qcmd/version.rb,
lib/qcmd/commands.rb,
lib/qcmd/qlab/cue.rb,
lib/qcmd/plaintext.rb,
lib/qcmd/qlab/reply.rb,
lib/qcmd/configuration.rb,
lib/qcmd/qlab/cue_list.rb,
lib/qcmd/actions/action.rb,
lib/qcmd/qlab/workspace.rb,
lib/qcmd/input_completer.rb,
lib/qcmd/actions/cue_action.rb,
lib/qcmd/actions/base_action.rb

Defined Under Namespace

Modules: Commands, InputCompleter, Parser, Plaintext, QLab Classes: Action, Aliases, BaseAction, CLI, Configuration, Context, CueAction, Handler, History, Machine, Network

Constant Summary collapse

LEVELS =
%w(debug info warning error none)
VERSION =
"0.2.0"

Class Attribute Summary collapse

Class Method Summary collapse

Methods included from Plaintext

ascii_qlab, centered_text, columns, joined_wrapped, log, pluralize, print, print_wrapped, right_text, set_columns, split_text, table, word_wrap, wrapped_text

Class Attribute Details

.contextObject

Returns the value of attribute context.



39
40
41
# File 'lib/qcmd.rb', line 39

def context
  @context
end

.debug_modeObject

Returns the value of attribute debug_mode.



38
39
40
# File 'lib/qcmd.rb', line 38

def debug_mode
  @debug_mode
end

Class Method Details

.available_versionObject



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/qcmd/version.rb', line 13

def available_version
  @available_version ||= begin
                          require "net/http"
                          require "uri"

                          begin
                            # Shortcut
                            response = Net::HTTP.get_response(rubygems_uri)
                          rescue => ex
                            Qcmd.debug "error loading #{ rubygems_uri }"
                            Qcmd.debug "couldn't load remote qcmd version: #{ ex.message }"
                            return false
                          end

                          begin
                            JSON.parse(response.body)['version']
                          rescue => ex
                            Qcmd.debug "error parsing #{ rubygems_uri }"
                            Qcmd.debug "couldn't parse remote qcmd version: #{ ex.message }"
                            false
                          end
                         end
end

.connected?Boolean

Returns:

  • (Boolean)


98
99
100
# File 'lib/qcmd.rb', line 98

def connected?
  !!context && !!context.machine && !context.machine.nil?
end

.debug(message) ⇒ Object



86
87
88
89
90
91
92
# File 'lib/qcmd.rb', line 86

def debug message
  # always write to log
  Qcmd::Configuration.log.puts "[%s] %s" % [Time.now.strftime('%T'), message]

  # forward message to log
  log(:debug, message)
end

.debug?Boolean

Returns:

  • (Boolean)


82
83
84
# File 'lib/qcmd.rb', line 82

def debug?
  !!debug_mode
end

.installed_versionObject



5
6
7
# File 'lib/qcmd/version.rb', line 5

def installed_version
  Gem.loaded_specs["qcmd"].version
end

.log_levelObject



43
44
45
# File 'lib/qcmd.rb', line 43

def log_level
  @log_level ||= :info
end

.log_level=(value) ⇒ Object



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

def log_level=(value)
  if LEVELS.include?(value.to_s)
    @log_level = value
  else
    raise "Invalid log_level value: #{ value.to_s }"
  end
end

.log_level_acheived?(level) ⇒ Boolean

Returns:

  • (Boolean)


94
95
96
# File 'lib/qcmd.rb', line 94

def log_level_acheived? level
  LEVELS.index(level.to_s) >= LEVELS.index(log_level.to_s)
end

.quiet!Object



59
60
61
# File 'lib/qcmd.rb', line 59

def quiet!
  self.log_level = :warning
end

.quiet?Boolean

Returns:

  • (Boolean)


71
72
73
# File 'lib/qcmd.rb', line 71

def quiet?
  self.log_level == :warning
end

.rubygems_uriObject



9
10
11
# File 'lib/qcmd/version.rb', line 9

def rubygems_uri
  @rubygems_uri ||= URI.parse("http://rubygems.org/api/v1/gems/qcmd.json")
end

.silent!Object



63
64
65
# File 'lib/qcmd.rb', line 63

def silent!
  self.log_level = :none
end

.silent?Boolean

Returns:

  • (Boolean)


67
68
69
# File 'lib/qcmd.rb', line 67

def silent?
  self.log_level == :none
end

.verbose!Object



55
56
57
# File 'lib/qcmd.rb', line 55

def verbose!
  self.log_level = :debug
end

.while_quietObject



75
76
77
78
79
80
# File 'lib/qcmd.rb', line 75

def while_quiet
  previous_level = self.log_level
  self.log_level = :warning
  yield
  self.log_level = previous_level
end