Class: AsyncRequestReply::Config

Inherits:
Object
  • Object
show all
Defined in:
lib/async_request_reply/config.rb

Constant Summary collapse

DEFAULTS =
{
  repository_adapter: :io,
  redis_url_conection: 'redis://localhost:6379',
  async_engine: :simple_thread_pool,
  logger: Logger.new(STDOUT)
}
@@message_packer_factories =
[]

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfig

Returns a new instance of Config.



18
19
20
21
22
23
24
25
# File 'lib/async_request_reply/config.rb', line 18

def initialize
  @config ||= OpenStruct.new
  config.repository_adapter = DEFAULTS[:repository_adapter]
  config.redis_url_conection = DEFAULTS[:redis_url_conection]
  config.async_engine = DEFAULTS[:async_engine]
  config.logger = DEFAULTS[:logger]
  super
end

Instance Attribute Details

#configObject

Returns the value of attribute config.



16
17
18
# File 'lib/async_request_reply/config.rb', line 16

def config
  @config
end

Class Method Details

.instanceObject



27
28
29
# File 'lib/async_request_reply/config.rb', line 27

def self.instance
  @instance ||= new
end

Instance Method Details

#add_message_pack_factoryObject



72
73
74
75
76
77
78
79
80
# File 'lib/async_request_reply/config.rb', line 72

def add_message_pack_factory
  factory = yield({first_byte: nil, klass: nil, packer: nil, unpacker: nil})
  factory[:klass].class_eval do
    def as_json
      self
    end
  end
  @@message_packer_factories.push(factory)
end

#async_engineObject



45
46
47
48
49
50
# File 'lib/async_request_reply/config.rb', line 45

def async_engine
  return AsyncRequestReply::WorkersEngine::SimpleThreadPool if config.async_engine   == :simple_thread_pool
  return AsyncRequestReply::WorkersEngine::Sidekiq if config.async_engine == :sidekiq

  config.async_engine
end

#async_engine=(value) ⇒ Object



52
53
54
# File 'lib/async_request_reply/config.rb', line 52

def async_engine=(value)
  config.async_engine = value
end

#configure {|_self| ... } ⇒ Object

Yields:

  • (_self)

Yield Parameters:



31
32
33
# File 'lib/async_request_reply/config.rb', line 31

def configure
  yield(self)
end

#loggerObject



64
65
66
# File 'lib/async_request_reply/config.rb', line 64

def logger
  config.logger
end

#message_packer_factoriesObject



68
69
70
# File 'lib/async_request_reply/config.rb', line 68

def message_packer_factories
  @@message_packer_factories
end

#redis_url_conectionObject



41
42
43
# File 'lib/async_request_reply/config.rb', line 41

def redis_url_conection
  config.redis_url_conection
end

#redis_url_conection=(value) ⇒ Object



60
61
62
# File 'lib/async_request_reply/config.rb', line 60

def redis_url_conection=(value)
  config.redis_url_conection = value
end

#repository_adapterObject



35
36
37
38
39
# File 'lib/async_request_reply/config.rb', line 35

def repository_adapter
  return AsyncRequestReply::RepositoryAdapters::RedisRepositoryAdapter if config.repository_adapter == :redis
  return AsyncRequestReply::RepositoryAdapters::IORepositoryAdapter if config.repository_adapter == :io
  config.repository_adapter
end

#repository_adapter=(value) ⇒ Object



56
57
58
# File 'lib/async_request_reply/config.rb', line 56

def repository_adapter=(value)
  config.repository_adapter = value
end