Class: Hanami::Hanamirc Private

Inherits:
Object
  • Object
show all
Defined in:
lib/hanami/hanamirc.rb

Overview

This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.

Read the .hanamirc file in the root of the application

Since:

  • 0.3.0

Constant Summary collapse

FILE_NAME =

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.

Hanamirc name file

See Also:

  • #path_file

Since:

  • 0.3.0

'.hanamirc'.freeze
PROJECT_NAME =

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.

Project name for writing the hanamirc file

See Also:

Since:

  • 0.8.0

'project'.freeze
DEFAULT_TEST_SUITE =

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.

Test suite default value

See Also:

Since:

  • 0.3.0

'rspec'.freeze
TEST_KEY =

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.

Test suite key for writing the hanamirc file

See Also:

Since:

  • 0.3.0

'test'.freeze
DEFAULT_TEMPLATE =

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.

Template default value

See Also:

Since:

  • 0.3.0

'erb'.freeze
TEMPLATE_KEY =

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.

Template key for writing the hanamirc file

See Also:

Since:

  • 0.3.0

'template'.freeze
SEPARATOR =

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.

Key/value separator in hanamirc file

Since:

  • 0.8.0

'='.freeze

Instance Method Summary collapse

Constructor Details

#initialize(root) ⇒ Hanamirc

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.

Initialize Hanamirc class with application's root and environment options.

Parameters:

  • root (Pathname)

    Application's root

See Also:

Since:

  • 0.3.0


69
70
71
# File 'lib/hanami/hanamirc.rb', line 69

def initialize(root)
  @root = root
end

Instance Method Details

#default_optionsObject

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.

Default values for writing the hanamirc file

See Also:

Since:

  • 0.5.1


95
96
97
98
99
100
101
# File 'lib/hanami/hanamirc.rb', line 95

def default_options
  @default_options ||= Utils::Hash.symbolize({
                                       PROJECT_NAME     => project_name,
                                       TEST_KEY         => DEFAULT_TEST_SUITE,
                                       TEMPLATE_KEY     => DEFAULT_TEMPLATE
                                     }).freeze
end

#exists?Boolean

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 hanamirc file exists

Returns:

  • (Boolean)

    hanamirc file's path existing

Since:

  • 0.3.0


109
110
111
# File 'lib/hanami/hanamirc.rb', line 109

def exists?
  path_file.exist?
end

#options::Hash

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.

Read hanamirc file (if exists) and parse it's values or return default.

Examples:

Default values if file doesn't exist

Hanami::Hanamirc.new(Pathname.new(Dir.pwd)).options
 # => { test: 'minitest', template: 'erb' }

Custom values if file doesn't exist

options = { test: 'rspec', template: 'slim' }
Hanami::Hanamirc.new(Pathname.new(Dir.pwd), options).options
 # => { test: 'rspec', template: 'slim' }

Returns:

  • (::Hash)

    parsed values

Since:

  • 0.3.0


85
86
87
# File 'lib/hanami/hanamirc.rb', line 85

def options
  @options ||= symbolize(default_options.merge(file_options))
end