Class: Railsstrap::Generators::InstallGenerator

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

Instance Method Summary collapse

Instance Method Details

#add_assetsObject



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/generators/railsstrap/install/install_generator.rb', line 12

def add_assets

  js_manifest = 'app/assets/javascripts/application.js'
  css_manifest = 'app/assets/stylesheets/application.css'
  asset_initializer = 'config/initializers/assets.rb'
  config_asset_insert_line = "Rails.application.config.assets.precompile\s+=\s%w(.svg .eot .woff .ttf)"

  if File.exists?(asset_initializer) && Rails::VERSION::MAJOR >= 4 #Must be Rails 4
    content = File.read(asset_initializer)
    if content.match(config_asset_insert_line)
      #set up properly
      puts "Ensure config/initializers/assets.rb contains this line:\n" + config_asset_insert_line
    else
      insert_into_file asset_initializer, config_asset_insert_line, :after => 'config.assets.precompile\n'
    end
  else #Assumes Rails 3.1 then...
    rails_three_config = 'config/environments/production.rb'
    if File.exists?(rails_three_config) && Rails::VERSION::MAJOR <= 4
      insert_into_file rails_three_config, config_asset_insert_line, :after => 'config.assets.precompile\n'
    end
  end

  if File.exist?(js_manifest)
    insert_into_file js_manifest, "//= require bootstrap/dist/js/bootstrap\n", :after => "jquery_ujs\n"
  else
    copy_file "application.js", js_manifest
  end

  if File.exist?(css_manifest)
    # Add our own require:
    content = File.read(css_manifest)

    if content.match(/require_tree\s+\.\s*$/)
      # Good enough - that'll include our bootstrap_and_overrides.css.less
    else
      style_require_block = " *= require bootstrap_and_overrides\n*=require fontawesome"
      insert_into_file css_manifest, style_require_block, :after => "require_self\n"
    end
  else
    copy_file 'application.css', 'app/assets/stylesheets/application.css'
  end

end

#add_bootstrapObject



56
57
58
59
60
61
62
63
64
65
66
67
# File 'lib/generators/railsstrap/install/install_generator.rb', line 56

def add_bootstrap
  if use_coffeescript?
    copy_file "bootstrap.coffee", "app/assets/javascripts/bootstrap.js.coffee"
  else
    copy_file "bootstrap.js", "app/assets/javascripts/bootstrap.js"
  end
  if use_less?
    copy_file "bootstrap_and_overrides.less", "app/assets/stylesheets/bootstrap_and_overrides.css.less"
  else
    copy_file "bootstrap_and_overrides.css", "app/assets/stylesheets/bootstrap_and_overrides.css"
  end
end

#add_localeObject



69
70
71
72
73
74
75
76
# File 'lib/generators/railsstrap/install/install_generator.rb', line 69

def add_locale
  if File.exist?("config/locales/en.railsstrap.yml")
    localez = File.read("config/locales/en.railsstrap.yml")
    insert_into_file "config/locales/en.railsstrap.yml", localez, :after => "en\n"
  else
    copy_file "en.railsstrap.yml", "config/locales/en.railsstrap.yml"
  end
end

#cleanup_legacyObject



78
79
80
81
82
83
84
85
86
87
88
# File 'lib/generators/railsstrap/install/install_generator.rb', line 78

def cleanup_legacy
  # Remove old requires (if any) that included railsstrap/railsstrap directly:
  gsub_file("app/assets/stylesheets/application.css", %r|\s*\*=\s*bootstrap/bootstrap\s*\n|, "")
  if File.exist?('app/assets/stylesheets/bootstrap_override.css.less')
    puts "    Warning:\n      app/assets/stylesheets/bootstrap_override.css.less exists\n      It should be removed, as it has been superceded by app/assets/stylesheets/bootstrap_and_overrides.css.less\n    EOM\n  end\nend\n"