Module: Onotole::DefaultFrontend

Included in:
AppBuilder
Defined in:
lib/onotole/default_frontend.rb

Instance Method Summary collapse

Instance Method Details

#add_fonts_autoloadObject



86
87
88
89
# File 'lib/onotole/default_frontend.rb', line 86

def add_fonts_autoload
  fonts = "\nRails.application.config.assets.precompile << /\.(?:svg|eot|woff|ttf|otf)\z/"
  append_file 'config/initializers/assets.rb', fonts
end

#add_vendor_css_pathObject



79
80
81
82
83
84
# File 'lib/onotole/default_frontend.rb', line 79

def add_vendor_css_path
  vendor_css_path = "\nRails.application.config.assets.paths += Dir"\
  "[(Rails.root.join('vendor/assets/stylesheets'))]\n"\
  "Rails.application.config.assets.paths += Dir[(Rails.root.join('vendor/assets/images'))]"
  append_file 'config/initializers/assets.rb', vendor_css_path
end

#configure_quiet_assetsObject



4
5
6
7
# File 'lib/onotole/default_frontend.rb', line 4

def configure_quiet_assets
  config = "\n    config.quiet_assets = true\n"
  inject_into_class 'config/application.rb', 'Application', config
end

#create_application_layoutObject



31
32
33
34
35
# File 'lib/onotole/default_frontend.rb', line 31

def create_application_layout
  template 'onotole_layout.html.erb.erb',
           'app/views/layouts/application.html.erb',
           force: true
end

#create_partials_directoryObject



65
66
67
# File 'lib/onotole/default_frontend.rb', line 65

def create_partials_directory
  empty_directory 'app/views/application'
end

#create_shared_flashesObject



26
27
28
29
# File 'lib/onotole/default_frontend.rb', line 26

def create_shared_flashes
  copy_file '_flashes.html.erb', 'app/views/application/_flashes.html.erb'
  copy_file 'flashes_helper.rb', 'app/helpers/flashes_helper.rb'
end

#create_shared_javascriptsObject



75
76
77
# File 'lib/onotole/default_frontend.rb', line 75

def create_shared_javascripts
  copy_file '_javascript.html.erb', 'app/views/application/_javascript.html.erb'
end

#customize_error_pagesObject



47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/onotole/default_frontend.rb', line 47

def customize_error_pages
  meta_tags = <<-EOS
  <meta charset="utf-8" />
  <meta name="ROBOTS" content="NOODP" />
  <meta name="viewport" content="initial-scale=1" />
  EOS

  %w(500 404 422).each do |page|
    inject_into_file "public/#{page}.html", meta_tags, after: "<head>\n"
    replace_in_file "public/#{page}.html", /<!--.+-->\n/, ''
  end
end

#install_bittersObject



43
44
45
# File 'lib/onotole/default_frontend.rb', line 43

def install_bitters
  bundle_command 'exec bitters install --path app/assets/stylesheets'
end

#install_refillsObject



69
70
71
72
73
# File 'lib/onotole/default_frontend.rb', line 69

def install_refills
  rails_generator 'refills:import flashes'
  run 'rm app/views/refills/_flashes.html.erb'
  run 'rmdir app/views/refills'
end

#setup_asset_hostObject



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/onotole/default_frontend.rb', line 9

def setup_asset_host
  replace_in_file 'config/environments/production.rb',
                  "# config.action_controller.asset_host = 'http://assets.example.com'",
                  "config.action_controller.asset_host = ENV.fetch('#{app_name.upcase}_ASSET_HOST',"\
                  " ENV.fetch('#{app_name.upcase}_APPLICATION_HOST'))"

  replace_in_file 'config/initializers/assets.rb',
                  "config.assets.version = '1.0'",
                  "config.assets.version = (ENV['#{app_name.upcase}_ASSETS_VERSION'] || '1.0')"

  inject_into_file(
    'config/environments/production.rb',
    '  config.static_cache_control = "public, max-age=#{1.year.to_i}"',
    after: serve_static_files_line
  )
end

#setup_segmentObject



60
61
62
63
# File 'lib/onotole/default_frontend.rb', line 60

def setup_segment
  copy_file '_analytics.html.erb',
            'app/views/application/_analytics.html.erb'
end

#setup_stylesheetsObject



37
38
39
40
41
# File 'lib/onotole/default_frontend.rb', line 37

def setup_stylesheets
  remove_file 'app/assets/stylesheets/application.css'
  copy_file 'application.scss',
            'app/assets/stylesheets/application.scss'
end