Module: Helm

Defined in:
lib/helm.rb,
lib/helm/cli.rb,
lib/helm/query.rb,
lib/helm/record.rb,
lib/helm/persister.rb,
lib/helm/application.rb,
lib/helm/command-runner.rb,
lib/helm/queries/server.rb,
lib/helm/records/server.rb,
lib/helm/server-command.rb,
lib/helm/persisters/server.rb

Defined Under Namespace

Modules: CLI, Commands, Persistent, Persisters, Picky, Queries, Records Classes: CommandRunner, Config, Persister, Query, Record, ServerCommand

Class Method Summary collapse

Class Method Details

.check_db(db_string, directory) ⇒ Object



33
34
35
36
37
38
39
# File 'lib/helm.rb', line 33

def check_db(db_string, directory)
  require 'sequel/extensions/migration'

  unless Sequel::Migrator.is_current?(databases[db_string], directory)
    warn "Your servers database is out of date. You should run #$0 db update."
  end
end

.commands_valiseObject



47
48
49
# File 'lib/helm.rb', line 47

def commands_valise
  @commands_valise ||= valise.sub_set("commands")
end

.configObject



7
8
9
# File 'lib/helm/cli.rb', line 7

def self.config
  Config.new("sqlite://servers.sql", "vim", ".")
end

.databasesObject



16
17
18
19
20
21
22
# File 'lib/helm.rb', line 16

def databases
  @databases ||= Hash.new do |hash, conn_string|
    hash[conn_string] = Sequel::connect(conn_string, :logger => logger).tap do |db|
      db.extension(:pretty_table)
    end
  end
end

.load_commandsObject



51
52
53
54
55
56
57
58
# File 'lib/helm.rb', line 51

def load_commands
  commands_valise.glob("*.rb") do |file|
    require file.full_path
  end
  ServerCommand.valid_commands.each do |command_class|
    CLI::Main.define_from(command_class.new)
  end
end

.log_at(level) ⇒ Object



24
25
26
27
28
29
30
31
# File 'lib/helm.rb', line 24

def log_at(level)
  begin
    old_level, logger.level = logger.level, level
    yield
  ensure
    logger.level = old_level
  end
end

.loggerObject



10
11
12
13
14
# File 'lib/helm.rb', line 10

def logger
  @logger ||= Logger.new($stderr).tap do |logger|
    logger.level = Logger::ERROR
  end
end

.valiseObject



41
42
43
44
45
# File 'lib/helm.rb', line 41

def valise
  @valise ||= Valise.define do
    ro from_here(%w{.. default_configuration}, up_to("lib"))
  end
end