class ExternalServices::Generators::InstallGenerator

Installs ExternalServices in a rails app.

Public Class Methods

next_migration_number(dirname) click to toggle source
# File lib/generators/install_generator.rb, line 31
def self.next_migration_number(dirname)
  ::ActiveRecord::Generators::Base.next_migration_number(dirname)
end

Public Instance Methods

create_directories() click to toggle source
# File lib/generators/install_generator.rb, line 25
def create_directories
  create_directory 'app/models/external_services/api_actions'
  create_directory 'app/jobs/external_services'
  create_directory 'lib/external_services/api'
end
create_migration_files() click to toggle source
# File lib/generators/install_generator.rb, line 20
def create_migration_files
  add_migration('create_external_services')
  add_migration('create_external_services_api_actions')
end
migration_version() click to toggle source
# File lib/generators/install_generator.rb, line 14
 def migration_version
  return unless Rails::VERSION::MAJOR >= 5

  "[#{Rails::VERSION::MAJOR}.#{Rails::VERSION::MINOR}]"
end

Protected Instance Methods

add_migration(template) click to toggle source
# File lib/generators/install_generator.rb, line 43
def add_migration(template)
  migration_dir = File.expand_path('db/migrate')
  if self.class.migration_exists?(migration_dir, template)
    ::Kernel.warn "Migration already exists: #{template}"
  else
    migration_template "migrations/#{template}.rb", "db/migrate/#{template}.rb", migration_version: migration_version
  end
end
create_directory(dir) click to toggle source
# File lib/generators/install_generator.rb, line 37
def create_directory(dir)
  dir = File.expand_path(dir)
  empty_directory dir
  add_file File.join(dir, '.keep')
end