class RailsCloudTasks::Configuration
Attributes
app_engine[R]
google_auth[R]
host[RW]
location_id[RW]
project_id[W]
scheduler_file_path[RW]
scheduler_prefix_name[RW]
service_account_email[RW]
tasks_path[RW]
Public Class Methods
new(app_engine = AppEngine, google_auth = Google::Auth)
click to toggle source
# File lib/rails_cloud_tasks/configuration.rb, line 9 def initialize(app_engine = AppEngine, google_auth = Google::Auth) @service_account_email = ENV['GCP_SERVICE_ACCOUNT'] @location_id = ENV['GCP_LOCATION'] @project_id = ENV['GCP_PROJECT'] @host = ENV['GCP_APP_ENDPOINT'] @tasks_path = '/tasks' @scheduler_file_path = './config/scheduler.yml' @scheduler_prefix_name = 'rails-cloud' @app_engine = app_engine @google_auth = google_auth end
Public Instance Methods
auth()
click to toggle source
# File lib/rails_cloud_tasks/configuration.rb, line 35 def auth @auth ||= authenticate end
inject_routes()
click to toggle source
# File lib/rails_cloud_tasks/configuration.rb, line 22 def inject_routes tasks_path = @tasks_path Rails.application.routes.append do post "#{tasks_path}/:job_class", to: RailsCloudTasks::Rack::Jobs post tasks_path, to: RailsCloudTasks::Rack::Tasks end end
project_id()
click to toggle source
# File lib/rails_cloud_tasks/configuration.rb, line 31 def project_id @project_id ||= app_engine.project_id end
Private Instance Methods
authenticate()
click to toggle source
# File lib/rails_cloud_tasks/configuration.rb, line 41 def authenticate email = service_account_email || app_engine.service_account_email || google_auth.get_application_default.issuer { oidc_token: { service_account_email: email } } end