class CamaleonCms::Generators::ThemeGenerator

Public Class Methods

next_migration_number(_dir) click to toggle source
# File lib/generators/camaleon_cms/theme_generator.rb, line 48
def self.next_migration_number(_dir)
  Time.now.utc.strftime('%Y%m%d%H%M%S')
end

Public Instance Methods

create_initializer_file() click to toggle source
# File lib/generators/camaleon_cms/theme_generator.rb, line 10
def create_initializer_file
  theme_folder = Rails.root.join('app', 'apps', 'themes', get_theme_name)
  if behavior == :revoke
    if Dir.exist?(theme_folder)
      FileUtils.rm_rf(theme_folder)
      puts 'Theme destroyed successfully'
    else
      puts "This theme doesn't exist"
    end

  elsif Dir.exist?(theme_folder)

    puts 'This theme already exist'
  else

    theme_folder = Rails.root.join('app', 'apps', 'themes', get_theme_name)
    return puts("There is already a theme with the same name in: #{theme_folder}") if Dir.exist?(theme_folder)

    # tmp copy
    FileUtils.mkdir_p(theme_folder)
    FileUtils.copy_entry(File.join($camaleon_engine_dir, 'lib', 'generators', 'camaleon_cms', 'theme_template'),
                         theme_folder)

    # configuration
    t = fix_text(File.read(File.join(theme_folder, 'config', 'config.json')))
    File.open(File.join(theme_folder, 'config', 'config.json'), 'w') { |f| f << t }

    # helper
    t = fix_text(File.read(File.join(theme_folder, 'main_helper.rb')))
    File.open(File.join(theme_folder, 'main_helper.rb'), 'w') { |f| f << t }
    puts "Theme successfully created in: #{theme_folder}"
  end
end
fix_text(text = '') click to toggle source
# File lib/generators/camaleon_cms/theme_generator.rb, line 44
def fix_text(text = '')
  text.gsub('themeTitle', get_theme_title).gsub('ThemeClass', get_theme_class).gsub('themeKey', get_theme_name)
end

Private Instance Methods

get_theme_class() click to toggle source
# File lib/generators/camaleon_cms/theme_generator.rb, line 62
def get_theme_class
  get_theme_name.classify
end
get_theme_name() click to toggle source
# File lib/generators/camaleon_cms/theme_generator.rb, line 54
def get_theme_name
  theme_name.underscore.singularize
end
get_theme_title() click to toggle source
# File lib/generators/camaleon_cms/theme_generator.rb, line 58
def get_theme_title
  theme_name.titleize
end