class CamaleonCms::Generators::ThemeGenerator

Public Class Methods

next_migration_number(dir) click to toggle source
# File lib/generators/camaleon_cms/theme_generator.rb, line 49
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

  else

    if 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
end
fix_text(text = "") click to toggle source
# File lib/generators/camaleon_cms/theme_generator.rb, line 45
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 61
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