Class: AlchemyI18n::Generators::InstallGenerator

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

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.descriptionObject



11
12
13
14
# 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

Instance Method Details

#add_rails_i18nObject



58
59
60
61
62
# 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_gemObject



64
65
66
67
68
# 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_assetsObject



33
34
35
36
37
38
39
40
41
# 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_manifestObject



50
51
52
53
54
55
56
# 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_localesObject



23
24
25
26
27
28
29
30
31
# 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_localesObject



43
44
45
46
47
48
# 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