module Marfa

requires all submodules

Extending Marfa

Redis-cache wrapper

Extending Marfa

CSS version

Extending Marfa

This module contains file templates for generate new project structure

Email adapter for Pony gem

see github.com/philipp-kempgen/sinatra-helpers-http-vary see Marfa

Sinatra SCSS customization

Rendering and caching style

Extending Marfa

Extend Marfa

Version constant

Constants

VERSION

The version constant for the current version of Marfa

Public Class Methods

cache() click to toggle source
# File lib/marfa/cache.rb, line 84
def self.cache
  @cache ||= Marfa::Cache.new
end
config() click to toggle source

Configuration

# File lib/marfa/configuration.rb, line 10
def self.config
  @config ||= OpenStruct.new
end
configure() { |config| ... } click to toggle source

Configure Marfa in block

# File lib/marfa/configuration.rb, line 25
def self.configure
  config if @config.nil?
  yield @config
end
configure_app() click to toggle source

Configure BaseController - configure Sinatra

# File lib/marfa/configuration.rb, line 15
def self.configure_app
  return if @config.to_h.empty?

  _configure_settings(Marfa::Controllers::BaseController)
  _configure_settings(Marfa::Controllers::CssController) if Marfa.config.use_css_build
  _configure_ext_modules(Marfa::Controllers::BaseController)
  _configure_logger
end
css_version() click to toggle source

return css version

# File lib/marfa/css_version.rb, line 4
def self.css_version
  @css_version ||= Time.now.to_i.to_s
end
version() click to toggle source

The current Marfa version. @return [String] The version number

# File lib/marfa/version.rb, line 8
def self.version
  VERSION
end

Private Class Methods

_configure_ext_modules(app) click to toggle source

Configure extending modules

# File lib/marfa/configuration.rb, line 42
def self._configure_ext_modules(app)
  # Compression options
  compression_opts = Marfa.config.html_compression_options
  # Session options
  session_opts = Marfa.config.session_options

  app.configure do
    app.use Rack::Csrf, raise: true if Marfa.config.csrf_enabled
    app.use HtmlCompressor::Rack, compression_opts if compression_opts && compression_opts[:enabled]
    app.use Rack::Session::Cookie,
            key: session_opts[:key],
            secret: session_opts[:secret],
            coder: session_opts[:coder] if session_opts && session_opts[:enabled]

  end
end
_configure_logger() click to toggle source
# File lib/marfa/configuration.rb, line 59
def self._configure_logger
  $logger = Logger.new(STDOUT)
  $logger.level = Marfa.config.logging_level
  $logger.datetime_format = Marfa.config.logging_datetime_format
end
_configure_settings(app) click to toggle source

Configure controller settings

# File lib/marfa/configuration.rb, line 33
def self._configure_settings(app)
  _default_settings

  @_default_settings.each do |setting|
    app.set setting.to_sym, Marfa.config[setting] unless Marfa.config[setting].nil?
  end
end
_default_settings() click to toggle source

Default settings fields for apps

# File lib/marfa/configuration.rb, line 66
def self._default_settings
  @_default_settings = %w[
    public_folder
    static_cache_control
    views
    environment
    logging
    logging_level
    dump_errors
    show_exceptions
  ]
end