Module: Hanami
- Defined in:
- lib/hanami.rb,
lib/hanami/app.rb,
lib/hanami/env.rb,
lib/hanami/routes.rb,
lib/hanami/server.rb,
lib/hanami/static.rb,
lib/hanami/version.rb,
lib/hanami/welcome.rb,
lib/hanami/hanamirc.rb,
lib/hanami/components.rb,
lib/hanami/middleware.rb,
lib/hanami/application.rb,
lib/hanami/environment.rb,
lib/hanami/rake_helper.rb,
lib/hanami/assets/asset.rb,
lib/hanami/cli/commands.rb,
lib/hanami/assets/static.rb,
lib/hanami/common_logger.rb,
lib/hanami/config/mapper.rb,
lib/hanami/config/routes.rb,
lib/hanami/configuration.rb,
lib/hanami/views/default.rb,
lib/hanami/config/cookies.rb,
lib/hanami/cli/commands/db.rb,
lib/hanami/config/security.rb,
lib/hanami/config/sessions.rb,
lib/hanami/routing/default.rb,
lib/hanami/views/null_view.rb,
lib/hanami/application_name.rb,
lib/hanami/cli/commands/new.rb,
lib/hanami/rendering_policy.rb,
lib/hanami/config/load_paths.rb,
lib/hanami/cli/commands/assets.rb,
lib/hanami/cli/commands/routes.rb,
lib/hanami/cli/commands/server.rb,
lib/hanami/components/app/view.rb,
lib/hanami/cli/commands/command.rb,
lib/hanami/cli/commands/console.rb,
lib/hanami/cli/commands/db/drop.rb,
lib/hanami/cli/commands/destroy.rb,
lib/hanami/cli/commands/project.rb,
lib/hanami/cli/commands/version.rb,
lib/hanami/components/component.rb,
lib/hanami/application_namespace.rb,
lib/hanami/cli/commands/db/apply.rb,
lib/hanami/cli/commands/generate.rb,
lib/hanami/components/app/assets.rb,
lib/hanami/components/app/routes.rb,
lib/hanami/components/components.rb,
lib/hanami/action/csrf_protection.rb,
lib/hanami/action/routing_helpers.rb,
lib/hanami/cli/commands/db/create.rb,
lib/hanami/cli/commands/templates.rb,
lib/hanami/cli/commands/db/console.rb,
lib/hanami/cli/commands/db/migrate.rb,
lib/hanami/cli/commands/db/prepare.rb,
lib/hanami/cli/commands/db/version.rb,
lib/hanami/cli/commands/db/rollback.rb,
lib/hanami/cli/commands/destroy/app.rb,
lib/hanami/application_configuration.rb,
lib/hanami/cli/commands/generate/app.rb,
lib/hanami/components/app/controller.rb,
lib/hanami/cli/commands/destroy/model.rb,
lib/hanami/cli/commands/destroy/action.rb,
lib/hanami/cli/commands/destroy/mailer.rb,
lib/hanami/cli/commands/generate/model.rb,
lib/hanami/components/routes_inspector.rb,
lib/hanami/cli/commands/generate/action.rb,
lib/hanami/cli/commands/generate/mailer.rb,
lib/hanami/cli/commands/generate/secret.rb,
lib/hanami/views/default_template_finder.rb,
lib/hanami/cli/commands/assets/precompile.rb,
lib/hanami/cli/commands/destroy/migration.rb,
lib/hanami/config/framework_configuration.rb,
lib/hanami/cli/commands/generate/migration.rb,
lib/hanami/environment_application_configurations.rb
Overview
Copyright notice
This file contains a method copied from Rack::Static (rack gem).
Rack - Copyright © 2007 Christian Neukirchen Released under the MIT License
Defined Under Namespace
Modules: Action, Assets, Components, Config, Mailer, Routing, Version, Views Classes: App, Application, ApplicationConfiguration, ApplicationName, ApplicationNamespace, CLI, CommonLogger, Configuration, Env, Environment, EnvironmentApplicationConfigurations, Hanamirc, Middleware, RakeHelper, RenderingPolicy, Routes, Server, Static, Welcome
Constant Summary collapse
- DEFAULT_PUBLIC_DIRECTORY =
This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.
'public'.freeze
- VERSION =
Defines the full version
Version.version
Class Method Summary collapse
-
.app ⇒ Hanami::App
private
Main application that mounts many Rack and/or Hanami applications.
-
.app?(app) ⇒ TrueClass, FalseClass
Check if an application is allowed to load.
-
.boot ⇒ NilClass
Boot your Hanami project.
-
.code_reloading? ⇒ TrueClass, FalseClass
private
Check if code reloading is enabled.
-
.configuration ⇒ Hanami::Configuration
private
Hanami configuration.
-
.configure(&blk) ⇒ Object
Configure Hanami project.
-
.env ⇒ String
Return the current environment.
-
.env?(*names) ⇒ TrueClass, FalseClass
Check to see if specified environment(s) matches the current environment.
-
.environment ⇒ Hanami::Environment
private
Current environment.
-
.logger ⇒ Hanami::Logger
Project logger.
-
.public_directory ⇒ Pathname
Project public directory.
-
.root ⇒ Pathname
Return root of the project (top level directory).
Class Method Details
.app ⇒ Hanami::App
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Main application that mounts many Rack and/or Hanami applications.
This is used as integration point for:
* `config.ru` (`run Hanami.app`)
* Feature tests (`Capybara.app = Hanami.app`)
It lazily loads your Hanami project, in case it wasn’t booted on before. This is the case when ‘hanami server` isn’t invoked, but we use different ways to run the project (eg. ‘rackup`).
116 117 118 119 |
# File 'lib/hanami.rb', line 116 def self.app boot App.new(configuration, environment) end |
.app?(app) ⇒ TrueClass, FalseClass
Check if an application is allowed to load.
The list of applications to be loaded can be set via the ‘HANAMI_APPS` env variable. If the HANAMI_APPS env variable is not set, it defaults to loading all applications.
141 142 143 144 145 146 |
# File 'lib/hanami.rb', line 141 def self.app?(app) return true unless ENV.key?('HANAMI_APPS') allowed_apps = ENV['HANAMI_APPS'].to_s.split(',') allowed_apps.include?(app.to_s.downcase) end |
.boot ⇒ NilClass
Boot your Hanami project
NOTE: In case this is invoked many times, it guarantees that the boot
process happens only once.
NOTE: This MUST NOT be wrapped by a Mutex, because it would cause a deadlock.
90 91 92 93 94 95 |
# File 'lib/hanami.rb', line 90 def self.boot Components.release if code_reloading? Components.resolve('all') Hanami::Model.disconnect if defined?(Hanami::Model) nil end |
.code_reloading? ⇒ TrueClass, FalseClass
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Check if code reloading is enabled.
234 235 236 237 238 |
# File 'lib/hanami.rb', line 234 def self.code_reloading? environment Components.resolve('code_reloading') Components['code_reloading'] end |
.configuration ⇒ Hanami::Configuration
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Hanami configuration
73 74 75 76 77 78 |
# File 'lib/hanami.rb', line 73 def self.configuration @_mutex.synchronize do raise "Hanami not configured" unless defined?(@_configuration) @_configuration end end |
.configure(&blk) ⇒ Object
Configure Hanami project
Please note that the code for this method is generated by ‘hanami new`.
59 60 61 62 63 |
# File 'lib/hanami.rb', line 59 def self.configure(&blk) @_mutex.synchronize do @_configuration = Hanami::Configuration.new(&blk) end end |
.env ⇒ String
Return the current environment
182 183 184 |
# File 'lib/hanami.rb', line 182 def self.env environment.environment end |
.env?(*names) ⇒ TrueClass, FalseClass
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.
210 211 212 |
# File 'lib/hanami.rb', line 210 def self.env?(*names) environment.environment?(*names) end |
.environment ⇒ Hanami::Environment
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Current environment
220 221 222 223 224 |
# File 'lib/hanami.rb', line 220 def self.environment Components.resolved('environment') do Environment.new end end |
.logger ⇒ Hanami::Logger
Project logger
245 246 247 |
# File 'lib/hanami.rb', line 245 def self.logger Components['logger'] end |
.public_directory ⇒ Pathname
Project public directory
168 169 170 |
# File 'lib/hanami.rb', line 168 def self.public_directory root.join(DEFAULT_PUBLIC_DIRECTORY) end |
.root ⇒ Pathname
Return root of the project (top level directory).
156 157 158 |
# File 'lib/hanami.rb', line 156 def self.root environment.root end |