Module: Houston

Defined in:
lib/configuration.rb,
lib/houston_server.rb,
lib/houston/version.rb,
lib/houston_observer.rb,
lib/houston_daemonize.rb,
app/adapters/houston/adapters.rb,
app/adapters/houston/adapters/ci_server/errors.rb,
app/adapters/houston/adapters/deployment/engineyard.rb,
app/adapters/houston/adapters/ticket_tracker/errors.rb,
app/adapters/houston/adapters/ci_server/none_adapter.rb,
app/adapters/houston/adapters/error_tracker/null_app.rb,
app/adapters/houston/adapters/version_control/commit.rb,
app/adapters/houston/adapters/version_control/errors.rb,
app/adapters/houston/adapters/ci_server/jenkins_adapter.rb,
app/adapters/houston/adapters/version_control/null_repo.rb,
app/adapters/houston/adapters/ci_server/none_adapter/job.rb,
app/adapters/houston/adapters/error_tracker/none_adapter.rb,
app/adapters/houston/adapters/ticket_tracker/null_ticket.rb,
app/adapters/houston/adapters/ticket_tracker/none_adapter.rb,
app/adapters/houston/adapters/version_control/git_adapter.rb,
app/adapters/houston/adapters/version_control/null_commit.rb,
app/adapters/houston/adapters/deployment/engineyard/config.rb,
app/adapters/houston/adapters/error_tracker/errbit_adapter.rb,
app/adapters/houston/adapters/version_control/none_adapter.rb,
app/adapters/houston/adapters/ci_server/jenkins_adapter/job.rb,
app/adapters/houston/adapters/ticket_tracker/github_adapter.rb,
app/adapters/houston/adapters/ticket_tracker/houston_adapter.rb,
app/adapters/houston/adapters/ticket_tracker/null_connection.rb,
app/adapters/houston/adapters/ticket_tracker/unfuddle_adapter.rb,
app/adapters/houston/adapters/error_tracker/errbit_adapter/app.rb,
app/adapters/houston/adapters/version_control/git_adapter/repo.rb,
app/adapters/houston/adapters/error_tracker/errbit_adapter/notice.rb,
app/adapters/houston/adapters/ticket_tracker/github_adapter/issue.rb,
app/adapters/houston/adapters/error_tracker/errbit_adapter/problem.rb,
app/adapters/houston/adapters/ticket_tracker/houston_adapter/ticket.rb,
app/adapters/houston/adapters/ticket_tracker/unfuddle_adapter/ticket.rb,
app/adapters/houston/adapters/error_tracker/errbit_adapter/connection.rb,
app/adapters/houston/adapters/version_control/git_adapter/github_repo.rb,
app/adapters/houston/adapters/version_control/git_adapter/remote_repo.rb,
app/adapters/houston/adapters/ticket_tracker/github_adapter/connection.rb,
app/adapters/houston/adapters/ticket_tracker/houston_adapter/connection.rb,
app/adapters/houston/adapters/ticket_tracker/unfuddle_adapter/milestone.rb,
app/adapters/houston/adapters/ticket_tracker/unfuddle_adapter/connection.rb

Defined Under Namespace

Modules: Adapters Classes: ColorValue, Configuration, Dependencies, FormBuilderDsl, HashDsl, Jobs, MissingConfiguration, Module, NotConfigured, Observer, ProjectFeature, ProjectFeatureDsl, ProjectFeatureForm

Constant Summary collapse

VERSION =
"0.5.0"

Class Method Summary collapse

Class Method Details

.config(&block) ⇒ Object



682
683
684
685
686
687
688
689
# File 'lib/configuration.rb', line 682

def config(&block)
  @configuration ||= Configuration.new
  if block_given?
    @configuration.instance_eval(&block)
    @configuration.validate!
  end
  @configuration
end

.daemonize(name) ⇒ Object



3
4
5
6
7
8
9
10
11
12
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/houston_daemonize.rb', line 3

def self.daemonize(name)
  unless Houston.server? or ENV["HOUSTON_DAEMONS"].to_s.split(",").member?(name)
    puts "\e[94m[daemon:#{name}] Skipping daemon since we're not running as a server\e[0m" if Rails.env.development?
    Rails.logger.info "\e[94m[daemon:#{name}] Skipping daemon since we're not running as a server\e[0m"
    return
  end

  puts "\e[94m[daemon:#{name}] Connecting\e[0m" if Rails.env.development?
  Rails.logger.info "\e[94m[daemon:#{name}] Connecting\e[0m"
  Thread.new do
    begin
      connected_at = Time.now
      Houston.observer.fire "daemon:#{name}:start"
      yield

    rescue Exception
      puts "\e[91m#{$!.class}: #{$!.message}\e[0m" if Rails.env.development?
      Houston.report_exception $!
      unless (Time.now - connected_at) < 60
        Houston.observer.fire "daemon:#{name}:restart"
        retry
      end
    end

    # This should never happen
    puts "\e[31m[daemon:#{name}] Disconnected\e[0m" if Rails.env.development?
    Rails.logger.error "\e[31m[daemon:#{name}] Disconnected\e[0m"

    # http://stackoverflow.com/a/3516003/731300
    Rails.logger.flush
    Houston.observer.fire "daemon:#{name}:stop"
  end
end

.githubObject



705
706
707
# File 'lib/configuration.rb', line 705

def github
  @github ||= Octokit::Client.new(access_token: config.github[:access_token], auto_paginate: true)
end

.jobsObject



701
702
703
# File 'lib/configuration.rb', line 701

def jobs
  @jobs ||= Jobs.new
end

.observerObject



697
698
699
# File 'lib/configuration.rb', line 697

def observer
  @observer ||= Observer.new
end

.rootObject



692
693
694
# File 'lib/configuration.rb', line 692

def self.root
  config.root
end

.serverObject



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

def self.server
  @server ||= discover_server
end

.server?Boolean

Returns:

  • (Boolean)


3
4
5
# File 'lib/houston_server.rb', line 3

def self.server?
  !!server
end