Class: Sudojs::Generators::InstallGenerator

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

Instance Method Summary collapse

Instance Method Details

#create_dir_structureObject



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/generators/sudojs/install/install_generator.rb', line 23

def create_dir_structure
  %W{manifests models views}.each do |dir|
    directory = "app/assets/javascripts/#{dir}"
    css_directory = "app/assets/stylesheets/#{dir}"
    unless File.directory? directory
      empty_directory directory
    end

    unless options[:skip_css] || dir == 'models'
      unless File.directory? css_directory
        empty_directory css_directory
      end
    end
  end
  # place the application/ in the views/
  empty_directory 'app/assets/javascripts/views/application'
  empty_directory 'app/assets/stylesheets/views/application'
end

#create_yamlObject



14
15
16
17
18
19
20
21
# File 'lib/generators/sudojs/install/install_generator.rb', line 14

def create_yaml
  if options[:skip_css]
    @skip_css = 'true'
  else
    @skip_css = 'false'
  end
  template 'sudo_js.erb.yml', 'config/sudo_js.yml'
end

#place_install_filesObject



42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/generators/sudojs/install/install_generator.rb', line 42

def place_install_files
  template 'app_manifest.js.erb', 'app/assets/javascripts/manifests/application.js'
  unless options[:skip_css]
    template 'app_manifest.css.erb', 'app/assets/stylesheets/manifests/application.css'
  end

  # TODO templates for other javascript pre-processors 
  if js_extension_arg == '.js.coffee'
    template 'namespace.coffee.erb', "app/assets/javascripts/views/application/#{name}.js.coffee"
    template 'model.coffee.erb', 'app/assets/javascripts/models/base.js.coffee'
  else
    # for now any other js flavor gets the baseline .js 
    template 'namespace.js.erb', "app/assets/javascripts/views/application/#{name}#{js_extension_arg}"
    template 'model.js.erb', "app/assets/javascripts/models/base#{js_extension_arg}"
  end

end