Class: RedisCloudAutoUpgrade
- Inherits:
-
Object
- Object
- RedisCloudAutoUpgrade
- Defined in:
- lib/redis_cloud_auto_upgrade.rb,
lib/redis_cloud_auto_upgrade/version.rb,
lib/redis_cloud_auto_upgrade/exceptions.rb,
lib/redis_cloud_auto_upgrade/heroku_api.rb,
lib/redis_cloud_auto_upgrade/configuration.rb
Overview
Configuration part
Defined Under Namespace
Modules: HerokuAPI Classes: Configuration
Constant Summary collapse
- VERSION =
'0.2.3'
- IllegalConfiguration =
Class.new RuntimeError
Class Method Summary collapse
Instance Method Summary collapse
-
#configure(config) ⇒ Object
class << self.
- #current_redis_cloud_plan ⇒ Object
-
#current_redis_mem_usage ⇒ Object
Memoize from lab42_core gem?.
- #needs_to_upgrade? ⇒ Boolean
- #potential_upgrade! ⇒ Object
Class Method Details
.potential_upgrade!(conf, &blk) ⇒ Object
12 13 14 15 16 17 |
# File 'lib/redis_cloud_auto_upgrade.rb', line 12 def potential_upgrade!(conf, &blk) updated_conf = conf.merge(on_upgrade: blk) new .configure(updated_conf) .potential_upgrade! end |
Instance Method Details
#configure(config) ⇒ Object
class << self
20 21 22 23 |
# File 'lib/redis_cloud_auto_upgrade.rb', line 20 def configure(config) @config.configure config self end |
#current_redis_cloud_plan ⇒ Object
25 26 27 28 |
# File 'lib/redis_cloud_auto_upgrade.rb', line 25 def current_redis_cloud_plan @__current_redis_cloud_plan ||= HerokuAPI.current_redis_cloud_plan(**heroku_params) end |
#current_redis_mem_usage ⇒ Object
Memoize from lab42_core gem?
31 32 33 34 35 |
# File 'lib/redis_cloud_auto_upgrade.rb', line 31 def current_redis_mem_usage return @__current_redis_mem_usage__ if @__current_redis_mem_usage__ redis_instance = config.redis_instance || Redis.current @__current_redis_mem_usage__ = redis_instance.info['used_memory'].to_i end |
#needs_to_upgrade? ⇒ Boolean
37 38 39 |
# File 'lib/redis_cloud_auto_upgrade.rb', line 37 def needs_to_upgrade? !(current_redis_mem_usage < currently_available_memory * config.treshhold) end |
#potential_upgrade! ⇒ Object
41 42 43 44 45 46 47 |
# File 'lib/redis_cloud_auto_upgrade.rb', line 41 def potential_upgrade! if config.valid? do_potential_upgrade! else fail IllegalConfiguration, config.errors_human_readable end end |