Class: Expect::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/expect/configuration.rb

Overview

集中校验会话配置。类级默认值以冻结快照发布,每个会话再构造独立副本。 这里只保存策略值,不持有 IO、缓冲或日志对象;修改默认配置不会追溯影响已创建的会话。

Constant Summary collapse

ATTRIBUTES =

会话通过 Forwardable 委托这些属性;to_h 使用同一清单生成配置副本。

i[
  timeout write_timeout buffer_limit debug_level raw_pty preserve_buffer
  log_stdout log_listeners raw_terminal reset_timeout_on_read graceful_close
].freeze
PREDICATES =

布尔属性同时提供普通读方法和问号查询,写入统一采用 Ruby 真值规则。

i[
  raw_pty? preserve_buffer? log_stdout? log_listeners? raw_terminal?
  reset_timeout_on_read? graceful_close?
].freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(timeout: nil, write_timeout: nil, buffer_limit: nil, debug_level: 0, raw_pty: false, preserve_buffer: false, log_stdout: false, log_listeners: true, raw_terminal: true, reset_timeout_on_read: false, graceful_close: false) ⇒ Configuration

通过 setter 校验构造参数,确保默认值、构造覆盖和后续赋值遵守同一规则。



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/expect/configuration.rb', line 22

def initialize(timeout: nil, write_timeout: nil, buffer_limit: nil, debug_level: 0,
               raw_pty: false, preserve_buffer: false, log_stdout: false,
               log_listeners: true, raw_terminal: true, reset_timeout_on_read: false,
               graceful_close: false)
  self.timeout = timeout
  self.write_timeout = write_timeout
  self.buffer_limit = buffer_limit
  self.debug_level = debug_level
  self.raw_pty = raw_pty
  self.preserve_buffer = preserve_buffer
  self.log_stdout = log_stdout
  self.log_listeners = log_listeners
  self.raw_terminal = raw_terminal
  self.reset_timeout_on_read = reset_timeout_on_read
  self.graceful_close = graceful_close
end

Instance Attribute Details

#buffer_limit ⇒ Object

Returns the value of attribute buffer_limit.



18
19
20
# File 'lib/expect/configuration.rb', line 18

def buffer_limit
  @buffer_limit
end

#debug_level ⇒ Object

Returns the value of attribute debug_level.



18
19
20
# File 'lib/expect/configuration.rb', line 18

def debug_level
  @debug_level
end

#graceful_close ⇒ Object Also known as: graceful_close?

Returns the value of attribute graceful_close.



18
19
20
# File 'lib/expect/configuration.rb', line 18

def graceful_close
  @graceful_close
end

#log_listeners ⇒ Object Also known as: log_listeners?

Returns the value of attribute log_listeners.



18
19
20
# File 'lib/expect/configuration.rb', line 18

def log_listeners
  @log_listeners
end

#log_stdout ⇒ Object Also known as: log_stdout?

Returns the value of attribute log_stdout.



18
19
20
# File 'lib/expect/configuration.rb', line 18

def log_stdout
  @log_stdout
end

#preserve_buffer ⇒ Object Also known as: preserve_buffer?

Returns the value of attribute preserve_buffer.



18
19
20
# File 'lib/expect/configuration.rb', line 18

def preserve_buffer
  @preserve_buffer
end

#raw_pty ⇒ Object Also known as: raw_pty?

Returns the value of attribute raw_pty.



18
19
20
# File 'lib/expect/configuration.rb', line 18

def raw_pty
  @raw_pty
end

#raw_terminal ⇒ Object Also known as: raw_terminal?

Returns the value of attribute raw_terminal.



18
19
20
# File 'lib/expect/configuration.rb', line 18

def raw_terminal
  @raw_terminal
end

#reset_timeout_on_read ⇒ Object Also known as: reset_timeout_on_read?

Returns the value of attribute reset_timeout_on_read.



18
19
20
# File 'lib/expect/configuration.rb', line 18

def reset_timeout_on_read
  @reset_timeout_on_read
end

#timeout ⇒ Object

Returns the value of attribute timeout.



18
19
20
# File 'lib/expect/configuration.rb', line 18

def timeout
  @timeout
end

#write_timeout ⇒ Object

Returns the value of attribute write_timeout.



18
19
20
# File 'lib/expect/configuration.rb', line 18

def write_timeout
  @write_timeout
end

Instance Method Details

#to_h ⇒ Object

导出新的属性 Hash,用于构造会话副本或发布下一份默认配置。



118
119
120
# File 'lib/expect/configuration.rb', line 118

def to_h
  ATTRIBUTES.to_h { |name| [name, public_send(name)] }
end