模块:Mongoid::Config::Options

包含在:
Mongoid::Config
定义于:
lib/mongoid/config/options.rb

Overview

封装用于设置选项的逻辑。

实例方法摘要折叠

实例方法详细信息

# defaults哈希

获取默认值或初始化新的空哈希。

例子:

获取默认值。

options.defaults

返回:

  • (哈希)

    默认选项。



13
14
15
# File 'lib/mongoid/config/options.rb', line 13

def defaults
  @defaults ||= {}
end

# log_level = " Integer "(整数)

获取日志级别。

例子:

获取日志级别。

config.log_level

返回:

  • ( Integer )

    日志级别。



89
90
91
92
93
94
95
96
97
# File 'lib/mongoid/config/options.rb', line 89

def log_level
  return 除非 等级 = 设置[:log_level]

  除非 等级.is_a?(整型)
    # JRuby String#constantize 在这里不起作用。
    等级 = 记录器.const_get(等级.upcase.to_s)
  end
  等级
end

# option (name, options = {}) ⇒对象

定义一个具有默认的配置选项。

例子:

定义选项。

Options.option(:logger, :default => Logger.new(STDERR, :warn))

参数:

  • 名称 (符号)

    配置选项的名称。

  • 选项 哈希 (默认为: {}

    该选项的附加功能。

选项哈希 ( options ):

  • :default 对象

    默认值。

  • :on_change (Proc | nil)

    调用 setter 时要调用的回调。



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
# File 'lib/mongoid/config/options.rb', line 28

def 选项(名称, 选项 = {})
  defaults[名称] = 设置[名称] = 选项[:default]

  class_eval do
    # log_level 访问器在下面专门定义
    除非 名称.to_sym == :log_level
      define_method(名称) do
        设置[名称]
      end
    end

    define_method(" #{ name } = ") do ||
      old_value = 设置[名称]
      设置[名称] = 

      开始
        选项[:on_change]&。调用()
      救援 StandardError
        # 如果 on_change回调引发错误,我们需要滚动
        # 改回。
        设置[名称] = old_value
        提高
      end
    end

    define_method(" #{ name } ? ") do
      !!发送(名称)
    end
  end
end

# reset哈希

将配置选项重置为默认值。

例子:

重置配置选项。

config.reset

返回:

  • (哈希)

    默认值。



65
66
67
68
69
70
71
# File 'lib/mongoid/config/options.rb', line 65

def 重置
  # 通过每个选项的 setter 执行此操作,以便任何定义的 on_change
  # 可以调用处理程序。
  defaults. do |设置, 访问|
    发送(:"#{设置}=", 访问)
  end
end

# settings哈希

获取设置或初始化新的空哈希。

例子:

获取设置。

options.settings

返回:

  • (哈希)

    设置选项。



79
80
81
# File 'lib/mongoid/config/options.rb', line 79

def 设置
  @settings ||= {}
end