hanami/lib/hanami.rb

82 lines
1.7 KiB
Ruby

require 'hanami/version'
require 'hanami/application'
require 'hanami/container'
require 'hanami/environment'
# A complete web framework for Ruby
#
# @since 0.1.0
#
# @see http://hanamirb.org
module Hanami
DEFAULT_PUBLIC_DIRECTORY = 'public'.freeze
# Return root of the project (top level directory).
#
# @return [Pathname] root path
#
# @since 0.3.2
#
# @example
# Hanami.root # => #<Pathname:/Users/luca/Code/bookshelf>
def self.root
environment.root
end
def self.public_directory
root.join(DEFAULT_PUBLIC_DIRECTORY)
end
# Return the current environment
#
# @return [String] the current environment
#
# @since 0.3.1
#
# @see Hanami::Environment#environment
#
# @example
# Hanami.env => "development"
def self.env
environment.environment
end
# Check to see if specified environment(s) matches the current environment.
#
# If multiple names are given, it returns true, if at least one of them
# matches the current environment.
#
# @return [TrueClass,FalseClass] the result of the check
#
# @since 0.3.1
#
# @see Hanami.env
#
# @example Single name
# puts ENV['HANAMI_ENV'] # => "development"
#
# Hanami.env?(:development) # => true
# Hanami.env?('development') # => true
#
# Hanami.env?(:production) # => false
#
# @example Multiple names
# puts ENV['HANAMI_ENV'] # => "development"
#
# Hanami.env?(:development, :test) # => true
# Hanami.env?(:production, :staging) # => false
def self.env?(*names)
environment.environment?(*names)
end
# Return environment
#
# @return [Hanami::Environment] environment
#
# @api private
# @since 0.3.2
def self.environment
Environment.new
end
end