1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
|
# frozen_string_literal: true
require 'contracts'
require 'aruba/version'
require 'aruba/basic_configuration'
require 'aruba/in_config_wrapper'
require 'aruba/hooks'
require 'aruba/contracts/relative_path'
require 'aruba/contracts/absolute_path'
require 'aruba/contracts/enum'
require 'aruba/contracts/is_power_of_two'
# Aruba
module Aruba
# Aruba Configuration
#
# This defines the configuration options of aruba
class Configuration < BasicConfiguration
option_reader :root_directory, type: String, default: Dir.getwd
option_accessor :working_directory,
type: Aruba::Contracts::RelativePath,
default: 'tmp/aruba'
option_reader :fixtures_path_prefix, type: String, default: '%'
option_accessor :exit_timeout, type: Num, default: 15
option_accessor :stop_signal, type: Maybe[String], default: nil
option_accessor :io_wait_timeout, type: Num, default: 0.1
option_accessor :startup_wait_time, type: Num, default: 0
option_accessor :fixtures_directories,
type: ArrayOf[String],
default: %w[features/fixtures spec/fixtures test/fixtures fixtures]
option_accessor :command_runtime_environment, type: Hash, default: {}
option_accessor :command_search_paths,
type: ArrayOf[String] do |config|
[File.join(config.root_directory.value, 'bin'),
File.join(config.root_directory.value, 'exe')]
end
option_accessor :remove_ansi_escape_sequences, type: Bool, default: true
option_accessor :command_launcher,
type: Aruba::Contracts::Enum[:in_process, :spawn, :debug],
default: :spawn
option_accessor :main_class, type: Maybe[Class], default: nil
option_accessor :home_directory,
type: Or[Aruba::Contracts::AbsolutePath,
Aruba::Contracts::RelativePath] do |config|
File.join(config.root_directory.value, config.working_directory.value)
end
option_accessor :log_level,
type:
Aruba::Contracts::Enum[:fatal, :warn, :debug, :info,
:error, :unknown, :silent],
default: :info
# TODO: deprecate this value and replace with "filesystem allocation unit"
# equal to 4096 by default. "filesystem allocation unit" would represent
# the actual MINIMUM space taken in bytes by a 1-byte file
option_accessor :physical_block_size,
type: Aruba::Contracts::IsPowerOfTwo,
default: 512
option_accessor :console_history_file, type: String,
default: '~/.aruba_history'
option_accessor :activate_announcer_on_command_failure,
type: ArrayOf[Symbol],
default: []
option_accessor :allow_absolute_paths, type: Bool, default: false
end
end
# Aruba
module Aruba
@config = Configuration.new
class << self
attr_reader :config
# Configure aruba
#
# @example How to configure aruba
#
# Aruba.configure do |config|
# config.<option> = <value>
# end
#
def configure(&block)
@config.configure(&block)
self
end
end
end
|