Class: RedisCloudAutoUpgrade

Inherits:
Object
  • Object
show all
Extended by:
selfself::ClassMethods
Includes:
selfself::DependentValues
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/configuration.rb

Overview

Configuration part

Defined Under Namespace

Modules: ClassMethods, DependentValues, HerokuAPI Classes: Configuration

Constant Summary collapse

VERSION =
'0.3.0'
IllegalConfiguration =
Class.new RuntimeError

Instance Method Summary collapse

Constructor Details

#initializeRedisCloudAutoUpgrade

Returns a new instance of RedisCloudAutoUpgrade.



17
18
19
# File 'lib/redis_cloud_auto_upgrade.rb', line 17

def initialize
  @config = Configuration.new
end

Instance Method Details

#configure(config) ⇒ Object



21
22
23
24
# File 'lib/redis_cloud_auto_upgrade.rb', line 21

def configure(config)
  @config.configure config
  self
end

#current_redis_cloud_planObject



26
27
28
29
# File 'lib/redis_cloud_auto_upgrade.rb', line 26

def current_redis_cloud_plan
  @__current_redis_cloud_plan ||=
    HerokuAPI.current_redis_cloud_plan(**heroku_params)
end

#current_redis_mem_usageObject

Memoize from lab42_core gem?



32
33
34
35
36
# File 'lib/redis_cloud_auto_upgrade.rb', line 32

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

Returns:

  • (Boolean)


38
39
40
# File 'lib/redis_cloud_auto_upgrade.rb', line 38

def needs_to_upgrade?
  !(current_redis_mem_usage < currently_available_memory * config.treshhold)
end

#potential_upgrade!Object



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

def potential_upgrade!
  raise IllegalConfiguration, config.errors_human_readable unless config.valid?
  do_potential_upgrade!
end