lib/hanami.rb in hanami-0.0.0 vs lib/hanami.rb in hanami-0.7.0
- old
+ new
@@ -1,5 +1,81 @@
-require "hanami/version"
+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
- # Your code goes here...
+ 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