Class: ShinyThemes::Generators::ThemeGenerator

Inherits:
Rails::Generators::NamedBase
  • Object
show all
Defined in:
lib/generators/shiny_themes/theme_generator.rb

Instance Method Summary collapse

Constructor Details

#initialize(args, *options) ⇒ ThemeGenerator

Returns a new instance of ThemeGenerator.



12
13
14
15
16
17
# File 'lib/generators/shiny_themes/theme_generator.rb', line 12

def initialize(args, *options)
  super
  @theme_directory = Pathname(Rails.application.config.theme.path).join(name)
  @views_directory = @theme_directory.join('views')
  @assets_directory = @theme_directory.join('assets')
end

Instance Method Details

#create_css_files ⇒ Object



35
36
37
38
# File 'lib/generators/shiny_themes/theme_generator.rb', line 35

def create_css_files
  return if options[:sass]
  copy_file 'manifest.css', "#{@assets_directory.join('stylesheets', name, 'manifest.css')}"
end

#create_js_files ⇒ Object



31
32
33
# File 'lib/generators/shiny_themes/theme_generator.rb', line 31

def create_js_files
  copy_file 'manifest.js', "#{@assets_directory.join('javascripts', name, 'manifest.js')}"
end

#create_layout_file ⇒ Object



45
46
47
# File 'lib/generators/shiny_themes/theme_generator.rb', line 45

def create_layout_file
  copy_file 'application.html.erb', "#{@views_directory.join('layouts', "#{options[:layout]}.html.erb")}"
end

#create_sass_files ⇒ Object



40
41
42
43
# File 'lib/generators/shiny_themes/theme_generator.rb', line 40

def create_sass_files
  return unless options[:sass]
  copy_file 'manifest.scss', "#{@assets_directory.join('stylesheets', name, 'manifest.scss')}"
end

#create_theme_directories ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
# File 'lib/generators/shiny_themes/theme_generator.rb', line 19

def create_theme_directories
  # Create views directories
  empty_directory @views_directory.join('layouts')
  # Create Assets directories
  empty_directory @assets_directory.join('images', name)
  create_file     @assets_directory.join('images', name, '.gitkeep'), nil
  empty_directory @assets_directory.join('javascripts', name)
  create_file     @assets_directory.join('javascripts', name, '.gitkeep'), nil
  empty_directory @assets_directory.join('stylesheets', name)
  create_file     @assets_directory.join('stylesheets', name, '.gitkeep'), nil
end