Class: RubyPitaya::Main

Inherits:
Object
  • Object
show all
Defined in:
lib/rubypitaya/core/main.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeMain

Returns a new instance of Main.



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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
# File 'lib/rubypitaya/core/main.rb', line 32

def initialize
  @environment_name = ENV.fetch("RUBYPITAYA_ENV") { 'development' }
  @is_development_environment = @environment_name == 'development'

  @log = Logger.new('/proc/self/fd/1')
  @log.level = Logger::INFO
  @log.formatter = proc do |severity, datetime, progname, msg|
    "#{msg}\n"
  end

  @application_files_importer = ApplicationFilesImporter.new
  @application_files_importer.import
  @application_files_importer.auto_reload if @is_development_environment

  @server_name = ENV['SERVER_NAME']
  @service_uuid = SecureRandom.uuid
  @desktop_name = Socket.gethostname

  @etcd_prefix = ENV['ETCD_PREFIX']
  @etcd_address = ENV['ETCD_URL']
  @etcd_lease_seconds = ENV['ETCD_LEASE_SECONDS'].to_i
  @allow_reconnect = false
  @etcd_connector = EtcdConnector.new(@service_uuid, @desktop_name,
                                      @server_name, @etcd_prefix,
                                      @etcd_address, @allow_reconnect,
                                      @etcd_lease_seconds)
  @etcd_connector.connect

  @nats_address = ENV['NATS_URL']
  @nats_connector = NatsConnector.new(@nats_address, @service_uuid,
                                      @server_name)

  @redis_address = ENV['REDIS_URL']
  @redis_connector = RedisConnector.new(@redis_address)
  @redis_connector.connect

  @database_config = DatabaseConfig.new(@environment_name, Path::DATABASE_CONFIG_PATH)
  @database_connector = DatabaseConnector.new(@database_config)
  @database_connector.connect

  @session = Session.new
  @postman = Postman.new(@nats_connector)
  @config = Config.new
  @config.auto_reload if @is_development_environment
  @setup = Setup.new
  @setup.auto_reload if @is_development_environment

  @bll = InstanceHolder.new

  @initializer_content = InitializerContent.new(@bll,
                                                @log,
                                                @redis_connector.redis,
                                                @setup,
                                                @config)
  @initializer_broadcast = InitializerBroadcast.new
  @initializer_broadcast.run(@initializer_content)

  @handler_router = HandlerRouter.new()

  run_http
  run_server
end

Instance Attribute Details

#bllObject (readonly)

Returns the value of attribute bll.



30
31
32
# File 'lib/rubypitaya/core/main.rb', line 30

def bll
  @bll
end

#configObject (readonly)

Returns the value of attribute config.



30
31
32
# File 'lib/rubypitaya/core/main.rb', line 30

def config
  @config
end

#redis_connectorObject (readonly)

Returns the value of attribute redis_connector.



30
31
32
# File 'lib/rubypitaya/core/main.rb', line 30

def redis_connector
  @redis_connector
end