模块:Mongoid::Config::Options

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

Overview

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

实例方法摘要折叠

实例方法详细信息

# defaults哈希

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

例子:

获取默认值。

options.defaults

返回:

  • (哈希)

    默认选项。



16
17
18
# File 'lib/mongoid/config/options.rb', line 16

def defaults
  @defaults ||= {}
end

# log_level = " Integer "(整数)

获取日志级别。

例子:

获取日志级别。

config.log_level

返回:

  • ( Integer )

    日志级别。



83
84
85
86
87
88
89
90
91
# File 'lib/mongoid/config/options.rb', line 83

def log_level
  if 等级 = 设置[:log_level]
    除非 等级.is_a?(整型)
      # JRuby String#constantize 在这里不起作用。
      等级 = 记录器.const_get(等级.upcase.to_s)
    end
    等级
  end
end

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

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

例子:

定义选项。

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

参数:

  • 名称 (符号)

    配置选项的名称。

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

    该选项的附加功能。

选项哈希 ( options ):

  • :default 对象

    默认值。

  • :on_change (Proc | nil)

    调用 setter 时要调用的回调。



31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/mongoid/config/options.rb', line 31

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

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

    define_method(" #{ name } = ") do ||
      设置[名称] = 
      选项[:on_change]&。调用()
    end

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

# reset哈希

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

例子:

重置配置选项。

config.reset

返回:

  • (哈希)

    默认值。



59
60
61
62
63
64
65
# File 'lib/mongoid/config/options.rb', line 59

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

# settings哈希

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

例子:

获取设置。

options.settings

返回:

  • (哈希)

    设置选项。



73
74
75
# File 'lib/mongoid/config/options.rb', line 73

def 设置
  @settings ||= {}
end