module RedisCloudAutoUpgrade::HerokuAPI
A function wrapper accessing the Heroku Platform API in a functional way
Public Class Methods
available_memory(plan)
click to toggle source
# File lib/redis_cloud_auto_upgrade/heroku_api.rb, line 6 def available_memory(plan) plan_memory .fetch(plan) do raise ArgumentError, "the plan #{plan.inspect} does not exist" end end
current_redis_cloud_plan(heroku_api_key:, heroku_app_name:)
click to toggle source
# File lib/redis_cloud_auto_upgrade/heroku_api.rb, line 13 def current_redis_cloud_plan(heroku_api_key:, heroku_app_name:) heroku(heroku_api_key) .addon .list_by_app(heroku_app_name) .find(&select_redis_cloud_addon)['plan']['name'] end
currently_available_memory(heroku_api_key:, heroku_app_name:)
click to toggle source
# File lib/redis_cloud_auto_upgrade/heroku_api.rb, line 20 def currently_available_memory(heroku_api_key:, heroku_app_name:) available_memory( current_redis_cloud_plan( heroku_api_key: heroku_api_key, heroku_app_name: heroku_app_name ) ) end
next_plan_to_upgrade_to(heroku_api_key:, heroku_app_name:)
click to toggle source
# File lib/redis_cloud_auto_upgrade/heroku_api.rb, line 28 def next_plan_to_upgrade_to(heroku_api_key:, heroku_app_name:) next_plan( current_redis_cloud_plan( heroku_api_key: heroku_api_key, heroku_app_name: heroku_app_name ) ) end
upgrade_plan!(heroku_api_key:, heroku_app_name:)
click to toggle source
# File lib/redis_cloud_auto_upgrade/heroku_api.rb, line 36 def upgrade_plan!(heroku_api_key:, heroku_app_name:) next_plan = next_plan_to_upgrade_to(heroku_api_key: heroku_api_key, heroku_app_name: heroku_app_name) heroku(heroku_api_key) .addon .update(heroku_app_name, 'rediscloud', plan: next_plan) next_plan end
Private Class Methods
heroku(api_key)
click to toggle source
# File lib/redis_cloud_auto_upgrade/heroku_api.rb, line 47 def heroku(api_key) PlatformAPI.connect api_key end
next_plan(plan)
click to toggle source
# File lib/redis_cloud_auto_upgrade/heroku_api.rb, line 51 def next_plan(plan) plan_transitions .fetch(plan) do raise ArgumentError, "the plan #{plan.inspect} does not exist or cannot be upgraded" end end
plan_memory()
click to toggle source
# File lib/redis_cloud_auto_upgrade/heroku_api.rb, line 75 def plan_memory { 'rediscloud:30' => 30_000_000, 'rediscloud:100' => 100_000_000, 'rediscloud:250' => 250_000_000, 'rediscloud:500' => 500_000_000, 'rediscloud:1000' => 1_000_000_000, 'rediscloud:2500' => 2_500_000_000, 'rediscloud:5000' => 5_000_000_000, 'rediscloud:10000' => 10_000_000_000, 'rediscloud:15000' => 15_000_000_000, 'rediscloud:20000' => 20_000_000_000, 'rediscloud:25000' => 25_000_000_000, 'rediscloud:50000' => 50_000_000_000 } end
plan_transitions()
click to toggle source
rubocop:disable Metrics/MethodLength
# File lib/redis_cloud_auto_upgrade/heroku_api.rb, line 59 def plan_transitions { 'rediscloud:30' => 'rediscloud:100', 'rediscloud:100' => 'rediscloud:250', 'rediscloud:250' => 'rediscloud:500', 'rediscloud:500' => 'rediscloud:1000', 'rediscloud:1000' => 'rediscloud:2500', 'rediscloud:2500' => 'rediscloud:5000', 'rediscloud:5000' => 'rediscloud:10000', 'rediscloud:10000' => 'rediscloud:15000', 'rediscloud:15000' => 'rediscloud:20000', 'rediscloud:20000' => 'rediscloud:25000', 'rediscloud:25000' => 'rediscloud:50000' } end
select_redis_cloud_addon()
click to toggle source
# File lib/redis_cloud_auto_upgrade/heroku_api.rb, line 92 def select_redis_cloud_addon lambda do |addon| begin addon['addon_service']['name'] == 'rediscloud' rescue nil end end end