module Marfa::FileTemplates

Public Instance Methods

application_rb(project_path) click to toggle source

generates content for 'config/application.rb' file @param [String] project_path - path to create_file

# File lib/marfa/file_templates.rb, line 6
def application_rb(project_path)
  File.open("#{project_path}/config/application.rb", 'w') do |file|
    file.puts ''
  end
end
bootstrap_rb(project_path) click to toggle source

content for 'app/bootstrap.rb' @param [String] project_path - path to create_file

# File lib/marfa/file_templates.rb, line 105
    def bootstrap_rb(project_path)
      File.open("#{project_path}/app/bootstrap.rb", 'w') do |file|
        file.puts "require './config/application'

# requiring all blocks and controllers
Dir[File.dirname(__FILE__) + '/blocks/**/*.rb'].each { |file| require file }
Dir[File.dirname(__FILE__) + '/controllers/**/*.rb'].each { |file| require file }
      "
      end
    end
config_ru(project_path) click to toggle source

content for 'config.ru' file @param [String] project_path - path to create_file

# File lib/marfa/file_templates.rb, line 118
    def config_ru(project_path)
      File.open("#{project_path}/config.ru", 'w') do |file|
        file.puts "Encoding.default_external = Encoding::UTF_8
Encoding.default_internal = Encoding::UTF_8

require 'marfa'
require File.dirname(__FILE__) + '/app/bootstrap'
require File.dirname(__FILE__) + '/config/marfa/' + ENV['RACK_ENV']
require 'pp' if ENV['RACK_ENV'] == 'production'

p Using config #{File.dirname(__FILE__) + '/config/marfa/' + ENV['RACK_ENV']}

Marfa.configure_app

# Controllers auto-bootstrap
controllers = Object.constants.select { |c| c.to_s.include? 'Controller' }
controllers.map! { |controller| Object.const_get(controller) }
# controllers += Marfa::Controllers.controllers_list

app_map = {
  # '.css': CssController,
  '/': IndexController
}

run Rack::AppMapper.new(controllers, app_map)
      "
      end

    end
marfa_rb(project_path) click to toggle source

generates content for 'config/marfa.rb' file @param [String] project_path - path to create_file

# File lib/marfa/file_templates.rb, line 14
    def marfa_rb(project_path)
      File.open("#{project_path}/config/marfa.rb", 'w') do |file|
        file.puts "# Marfa configuration file
Marfa.configure do |cfg|
  # Environment
  cfg.environment = :development
  # Request logging
  cfg.logging = true
  # Logging level see Logger
  cfg.logging_level = Logger::INFO
  # Logging format time
  cfg.logging_datetime_format = '%d/%b/%Y:%H:%M:%S %z'
  # Show error page with backtrace
  cfg.show_exceptions = true
  # log exception backtraces to STDERR
  cfg.dump_errors = true

  # Mode (not implemented yet)
  cfg.mode = 'api'

  # Specifying API Server is needed
  cfg.api_server = ''

  # Paths settings
  cfg.content_path = '/images/content/'
  cfg.public_folder = File.expand_path('./static')
  cfg.views = File.expand_path('./app/views')
  cfg.block_templates_path = 'blocks'

  # Redis cache settings
  cfg.cache = {
    enabled: false,
    host: 'localhost',
    port: 6379,
    db: 0,
    expiration_time: 86_400
  }

  # Cache header
  cfg.static_cache_control = [public, max_age: 0]

  # CSS build
  cfg.use_css_build = false

  # CSS file cache
  cfg.cache_styles = false

  # CSRF protection
  cfg.csrf_enabled = false

  # HTML compression
  cfg.html_compression_options = {
    enabled: true,
    remove_intertag_spaces: true
  }

  # CSS/JS Minifying
  cfg.minify_css = false
  cfg.minify_js = true

  # Email settings
  cfg.email = {
    default: {
      address: '',
      port: '587',
      enable_starttls_auto: true,
      user_name: '',
      password: '',
      authentication: :plain,
      domain: 'localhost.localdomain'
    }
  }

  # Device detector
  cfg.device_detector = {
    enabled: true
  }

  # Pagination default template
  cfg.pagination_template = '/pagination'

  # Rack::Session secret
  cfg.session_secret = 'secret'
end

      "
      end
    end