Class: Pindo::Options::OptionConfiguration
- Inherits:
-
Object
- Object
- Pindo::Options::OptionConfiguration
- Defined in:
- lib/pindo/options/core/option_configuration.rb
Overview
参数配置管理器(简化版)负责管理参数值的生命周期:默认值、类型转换、验证
Instance Method Summary collapse
-
#[](key) ⇒ Object
获取参数值(支持符号和字符串).
-
#[]=(key, value) ⇒ Object
设置参数值.
-
#each {|key, value| ... } ⇒ Object
遍历所有参数.
-
#initialize(available_options, raw_values = {}, command_instance: nil) ⇒ OptionConfiguration
constructor
初始化.
-
#key?(key) ⇒ Boolean
检查参数是否存在.
-
#keys ⇒ Array<Symbol>
获取所有参数键.
-
#to_hash ⇒ Hash
获取所有参数值.
Constructor Details
#initialize(available_options, raw_values = {}, command_instance: nil) ⇒ OptionConfiguration
初始化
13 14 15 16 17 18 19 20 21 22 |
# File 'lib/pindo/options/core/option_configuration.rb', line 13 def initialize(, raw_values = {}, command_instance: nil) = @raw_values = raw_values @command_instance = command_instance @values = {} = # 执行参数处理流程 end |
Instance Method Details
#[](key) ⇒ Object
获取参数值(支持符号和字符串)
27 28 29 30 |
# File 'lib/pindo/options/core/option_configuration.rb', line 27 def [](key) key = normalize_key(key) @values[key] end |
#[]=(key, value) ⇒ Object
设置参数值
35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/pindo/options/core/option_configuration.rb', line 35 def []=(key, value) key = normalize_key(key) option_item = [key] if option_item @values[key] = option_item.auto_convert_value(value) option_item.valid?(@values[key]) else @values[key] = value end end |
#each {|key, value| ... } ⇒ Object
遍历所有参数
68 69 70 |
# File 'lib/pindo/options/core/option_configuration.rb', line 68 def each(&block) @values.each(&block) end |
#key?(key) ⇒ Boolean
检查参数是否存在
56 57 58 |
# File 'lib/pindo/options/core/option_configuration.rb', line 56 def key?(key) @values.key?(normalize_key(key)) end |
#keys ⇒ Array<Symbol>
获取所有参数键
62 63 64 |
# File 'lib/pindo/options/core/option_configuration.rb', line 62 def keys @values.keys end |
#to_hash ⇒ Hash
获取所有参数值
49 50 51 |
# File 'lib/pindo/options/core/option_configuration.rb', line 49 def to_hash @values.dup end |