class AlchemyI18n::Generators::InstallGenerator

Public Class Methods

description() click to toggle source
# File lib/generators/alchemy_i18n/install/install_generator.rb, line 11
def self.description
  locales = Alchemy::I18n.available_locales.reject { |l| l == :en }.to_sentence
  "Available locales are #{locales}"
end

Public Instance Methods

add_rails_i18n() click to toggle source
# File lib/generators/alchemy_i18n/install/install_generator.rb, line 58
def add_rails_i18n
  environment do
    "config.i18n.available_locales = #{locales.map(&:to_sym).inspect}"
  end
end
add_russian_gem() click to toggle source
# File lib/generators/alchemy_i18n/install/install_generator.rb, line 64
def add_russian_gem
  if locales.include?('ru')
    gem 'russian', '~> 0.6'
  end
end
append_assets() click to toggle source
# File lib/generators/alchemy_i18n/install/install_generator.rb, line 33
      def append_assets
        locales.each do |locale|
          append_file 'vendor/assets/javascripts/alchemy/admin/all.js', <<~ASSETS
            //= require alchemy_i18n/#{locale}
            //= require select2_locale_#{locale}
            //= require flatpickr/#{locale}
          ASSETS
        end
      end
append_manifest() click to toggle source
# File lib/generators/alchemy_i18n/install/install_generator.rb, line 50
      def append_manifest
        locales.each do |locale|
          append_file 'app/assets/config/manifest.js', <<~MANIFEST
            //= link tinymce/langs/#{locale}.js
          MANIFEST
        end
      end
copy_locales() click to toggle source
# File lib/generators/alchemy_i18n/install/install_generator.rb, line 23
def copy_locales
  locales.each do |locale|
    yml_filename = "alchemy.#{locale}.yml"
    copy_file File.join('locales', yml_filename), Rails.root.join('config', 'locales', yml_filename)
    js_filename = "#{locale}.js"
    copy_file File.join('app', 'assets', 'javascripts', 'alchemy_i18n', js_filename), Rails.root.join('vendor', 'assets', 'javascripts', 'alchemy_i18n', js_filename)
    copy_file File.join('vendor', 'assets', 'javascripts', 'flatpickr', js_filename), Rails.root.join('vendor', 'assets', 'javascripts', 'flatpickr', js_filename)
  end
end
copy_tinymce_locales() click to toggle source
# File lib/generators/alchemy_i18n/install/install_generator.rb, line 43
def copy_tinymce_locales
  locales.each do |locale|
    copy_file File.join("locales", "tinymce", "#{locale}.js"),
      Rails.root.join('vendor', 'assets', 'javascripts', 'tinymce', 'langs', "#{locale}.js")
  end
end

Private Instance Methods

ask_locales() click to toggle source
# File lib/generators/alchemy_i18n/install/install_generator.rb, line 78
      def ask_locales
        ask <<~LOCALES
          Which locales should we generate files for?
          #{self.class.description}
          (seperate multiple locales with space):
        LOCALES
      end
locales() click to toggle source
# File lib/generators/alchemy_i18n/install/install_generator.rb, line 72
def locales
  @_locales ||= begin
    options[:locales].presence || ask_locales.split(' ')
  end
end