class Recipes::Redis

Public Instance Methods

add_redis() click to toggle source
# File lib/potassium/recipes/redis.rb, line 17
def add_redis
  run_action(:install_redis) do
    gather_gem("redis-actionpack")
    copy_file("../assets/redis.yml", "config/redis.yml", force: true)
  end
end
create() click to toggle source
# File lib/potassium/recipes/redis.rb, line 2
def create
  add_redis
  add_docker_compose_redis_config
  set_redis_dot_env
  add_session_store_config
end
install() click to toggle source
# File lib/potassium/recipes/redis.rb, line 9
def install
  create
end
installed?() click to toggle source
# File lib/potassium/recipes/redis.rb, line 13
def installed?
  gem_exists?(/redis-actionpack/)
end

Private Instance Methods

add_docker_compose_redis_config() click to toggle source
# File lib/potassium/recipes/redis.rb, line 26
  def add_docker_compose_redis_config
    compose = DockerHelpers.new('docker-compose.yml')

    service_definition =
      <<~YAML
        image: redis:6.2.12
        ports:
          - 6379
        volumes:
          - redis_data:/data
      YAML

    compose.add_service('redis', service_definition)
    compose.add_volume('redis_data')
  end
add_session_store_config() click to toggle source
# File lib/potassium/recipes/redis.rb, line 53
def add_session_store_config
  copy_file("../assets/config/initializers/session_store.rb",
            "config/initializers/session_store.rb", force: true)
end
set_redis_dot_env() click to toggle source
# File lib/potassium/recipes/redis.rb, line 42
  def set_redis_dot_env
    append_to_file(
      '.env.development',
      <<~TEXT
        REDIS_HOST=127.0.0.1
        REDIS_PORT=COMMAND_EXPAND(make services-port SERVICE=redis PORT=6379)
        REDIS_URL=redis://${REDIS_HOST}:${REDIS_PORT}/1
      TEXT
    )
  end