Sha256: 3f7cd42b74658b78bbdfd4f5f42ab7bf1a5f9b4441c04499385cacec804f91ef

Contents?: true

Size: 1.04 KB

Versions: 1

Compression:

Stored size: 1.04 KB

Contents

# frozen_string_literal: true

# A complete web framework for Ruby
#
# @since 0.1.0
#
# @see http://hanamirb.org
module Hanami
  require "hanami/version"
  require "hanami/application"

  @_mutex = Mutex.new

  def self.application
    @_mutex.synchronize do
      raise "Hanami.application not configured" unless defined?(@_application)

      @_application
    end
  end

  def self.application?
    defined?(@_application)
  end

  def self.application=(klass)
    @_mutex.synchronize do
      raise "Hanami.application already configured" if defined?(@_application)

      @_application = klass unless klass.name.nil?
    end
  end

  def self.rack_app
    application.rack_app
  end

  def self.env
    (ENV["HANAMI_ENV"] || "development").to_sym
  end

  def self.env?(*names)
    names.map(&:to_sym).include?(env)
  end

  def self.logger
    application[:logger]
  end

  def self.init
    application.init
  end

  def self.boot
    application.boot
  end

  def self.shutdown
    application.shutdown
  end

  def self.bundler_groups
    [:plugins]
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
hanami-2.0.0.alpha5 lib/hanami.rb