class Voltron::Translate::Generators::InstallGenerator

Public Instance Methods

copy_migrations() click to toggle source
# File lib/generators/voltron/translate/install_generator.rb, line 45
def copy_migrations
  copy_migration 'create_voltron_translations'
end
inject_initializer() click to toggle source
# File lib/generators/voltron/translate/install_generator.rb, line 10
        def inject_initializer

          voltron_initialzer_path = Rails.root.join('config', 'initializers', 'voltron.rb')

          unless File.exist? voltron_initialzer_path
            unless system("cd #{Rails.root.to_s} && rails generate voltron:install")
              puts 'Voltron initializer does not exist. Please ensure you have the \'voltron\' gem installed and run `rails g voltron:install` to create it'
              return false
            end
          end

          current_initiailzer = File.read voltron_initialzer_path

          unless current_initiailzer.match(Regexp.new(/# === Voltron Translate Configuration ===/))
            inject_into_file(voltron_initialzer_path, after: "Voltron.setup do |config|\n") do
<<-CONTENT

  # === Voltron Translate Configuration ===

  # Whether or not translation is enabled
  # config.translate.enabled = true

  # Which locales to build translation files for. This setting also
  # determines the global default locales used with the `translates` class method
  # For example, if this is [:en, :es, :de], calling `translates :attribute` in a model
  # Will expose the methods `attribute_en`, `attribute_es`, and `attribute_de`
  # config.translate.locales = Rails.application.config.i18n.available_locales

  # In what environments can translation generation occur. Recommended to keep this as development (default)
  # config.translate.build_environment << :development
CONTENT
            end
          end
        end

Protected Instance Methods

copy_migration(filename) click to toggle source
# File lib/generators/voltron/translate/install_generator.rb, line 51
def copy_migration(filename)
  if migration_exists?(Rails.root.join('db', 'migrate'), filename)
    say_status('skipped', "Migration #{filename}.rb already exists")
  else
    copy_file "db/migrate/#{filename}.rb", Rails.root.join('db', 'migrate', "#{migration_number}_#{filename}.rb")
  end
end
migration_exists?(dirname, filename) click to toggle source
# File lib/generators/voltron/translate/install_generator.rb, line 59
def migration_exists?(dirname, filename)
  Dir.glob("#{dirname}/[0-9]*_*.rb").grep(/\d+_#{filename}.rb$/).first
end
migration_id_exists?(dirname, id) click to toggle source
# File lib/generators/voltron/translate/install_generator.rb, line 63
def migration_id_exists?(dirname, id)
  Dir.glob("#{dirname}/#{id}*").length > 0
end
migration_number() click to toggle source
# File lib/generators/voltron/translate/install_generator.rb, line 67
def migration_number
  @migration_number ||= Time.now.strftime('%Y%m%d%H%M%S').to_i

  while migration_id_exists?(Rails.root.join('db', 'migrate'), @migration_number) do
    @migration_number += 1
  end

  @migration_number
end