Class: HerokuBackend

Inherits:
Object
  • Object
show all
Defined in:
lib/mobile_workflow_cli/heroku_backend.rb

Instance Method Summary collapse

Constructor Details

#initialize(app_name:) ⇒ HerokuBackend

Returns a new instance of HerokuBackend.



2
3
4
# File 'lib/mobile_workflow_cli/heroku_backend.rb', line 2

def initialize(app_name:)
  @heroku_app_name = app_name.gsub("_", "-")
end

Instance Method Details

#configure_activestorageObject



11
12
13
14
15
16
17
18
# File 'lib/mobile_workflow_cli/heroku_backend.rb', line 11

def configure_activestorage
  heroku_command "heroku buildpacks:add -i 1 https://github.com/heroku/heroku-buildpack-activestorage-preview --app #{@heroku_app_name}"
  heroku_command "heroku labs:enable runtime-dyno-metadata --app #{@heroku_app_name}" # Gives access to heroku variables which can be used to construct URLs
  
  # Force recompile after buildpacks change
  heroku_command "git commit --allow-empty -m 'empty commit'"
  deploy    
end

#createObject



6
7
8
9
# File 'lib/mobile_workflow_cli/heroku_backend.rb', line 6

def create
  heroku_command "heroku create #{@heroku_app_name}"
  heroku_command "git push --set-upstream heroku master"
end

#deployObject



20
21
22
# File 'lib/mobile_workflow_cli/heroku_backend.rb', line 20

def deploy
  heroku_command "git push"
end

#destroyObject



30
31
32
# File 'lib/mobile_workflow_cli/heroku_backend.rb', line 30

def destroy
  heroku_command "heroku destroy #{@heroku_app_name} --confirm #{@heroku_app_name}"
end

#notifications_endpointObject



34
35
36
# File 'lib/mobile_workflow_cli/heroku_backend.rb', line 34

def notifications_endpoint
  "https://#{@heroku_app_name}.herokuapp.com/sns_notifications"
end

#sync_dotenvObject



24
25
26
27
28
# File 'lib/mobile_workflow_cli/heroku_backend.rb', line 24

def sync_dotenv
  env = File.read(".env").split.join(" ")
  puts "Setting env: #{env}"
  heroku_command "heroku config:set #{env} --app #{@heroku_app_name}"
end