Class: Boring::ActiveStorage::Google::InstallGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Defined in:
lib/generators/boring/active_storage/google/install/install_generator.rb

Instance Method Summary collapse

Instance Method Details

#add_active_storageObject



10
11
12
13
14
15
# File 'lib/generators/boring/active_storage/google/install/install_generator.rb', line 10

def add_active_storage
  unless options[:skip_active_storage]
    say "Adding ActiveStorage", :green
    run "bin/rails active_storage:install"
  end
end

#add_configuration_to_productionObject



30
31
32
33
34
# File 'lib/generators/boring/active_storage/google/install/install_generator.rb', line 30

def add_configuration_to_production
  gsub_file "config/environments/production.rb",
            "config.active_storage.service = :local",
            "config.active_storage.service = :google"
end

#add_google_cloud_storage_to_the_applicationObject



17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/generators/boring/active_storage/google/install/install_generator.rb', line 17

def add_google_cloud_storage_to_the_application
  say "Adding google cloud storage gem", :green
  Bundler.with_unbundled_env do
    google_cloud_storage_gem_content = <<~RUBY
      \n
      # for Google Cloud Storage Service
      gem "google-cloud-storage", require: false
    RUBY
    append_to_file "Gemfile", google_cloud_storage_gem_content
    run "bundle install"
  end
end

#add_google_storage_configurationObject



36
37
38
39
40
41
42
43
44
45
46
# File 'lib/generators/boring/active_storage/google/install/install_generator.rb', line 36

def add_google_storage_configuration
  google_storage_config_content = <<~RUBY
    google:
      service: GCS
      project: your_project
      credentials: <%= Rails.root.join("path/to/gcs.keyfile") %>
      bucket: your_own_bucket
  RUBY

  append_to_file "config/storage.yml", google_storage_config_content
end