模块:Mongo::Lint Private

定义于:
构建/ruby-driver-v2.19/lib/ mongo /lint.rb

该模块是私有 API 的一部分。 您应尽可能避免使用此模块,因为它将来可能会被删除或更改。

类方法摘要折叠

类方法详细信息

assert_type (obj, cls) ⇒对象

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

如果obj不是cls类型,则引发 LintError。



10
11
12
13
14
15
# File ' 构建/ruby-driver-v2.19/lib/ mongo /lint.rb', line 10

def assert_type(obj, cls)
  return 除非 已启用?
  除非 obj.is_a?(cls)
    提高 错误::LintError, "应将#{ obj }#{ cls } "
  end
end

已启用?布尔

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

返回:

  • 布尔值


100
101
102
# File ' 构建/ruby-driver-v2.19/lib/ mongo /lint.rb', line 100

def 已启用?
  ENV['MONGO_RUBY_DRIVER_LINT'] && %w(1  true ).包括?(ENV['MONGO_RUBY_DRIVER_LINT'].Downcase)
end

validate_camel_case_read_preference (read_pref) ⇒对象

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。



38
39
40
41
42
43
44
45
# File ' 构建/ruby-driver-v2.19/lib/ mongo /lint.rb', line 38

def validate_camel_case_read_preference(read_pref)
  return 除非 已启用?
  return if read_pref.nil?
  除非 read_pref.is_a?(哈希)
    提高 错误::LintError, "读取偏好不是哈希值: #{ read_pref } "
  end
  validate_camel_case_read_preference_mode(read_pref[:mode] || read_pref['mode'])
end

validate_camel_case_read_preference_mode (模式) ⇒对象

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。



48
49
50
51
52
53
54
55
# File ' 构建/ruby-driver-v2.19/lib/ mongo /lint.rb', line 48

def validate_camel_case_read_preference_mode(模式)
  return 除非 已启用?
  if 模式
    除非 %w(主节点 primaryPreferred 从节点 secondaryPreferred nearest).包括?(模式.to_s)
      提高 错误::LintError, "无效的读取偏好(read preference)模式: #{ 模式 } "
    end
  end
end

validate_read_concern_option (read_concern) ⇒对象

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

根据读/写关注(write concern)规范,将提供的哈希验证为读关注(read concern)对象( github.com/mongodb/species/blob/master/source/read-write-concern/read-write-concern.rst#read-concern ) 。

为方便起见,此方法还接受 nil 作为输入。

发送到服务器的读关注(read concern)文档可能包含其他字段,示例afterClusterTime。 这些字段由驾驶员内部生成,用户无法指定(如果由用户指定,则可能会导致不正确的行为),因此此方法会禁止这些字段。

参数:

  • read_concern (哈希)

    读关注(read concern)选项哈希,具有以下可选键:

    • :level — 以符号表示的读取偏好(read preference)级别;有效值

      are *:local*, *:majority*, and *:snapshot*
      

引发:



76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
# File ' 构建/ruby-driver-v2.19/lib/ mongo /lint.rb', line 76

def validate_read_concern_option(read_concern)
  return 除非 已启用?
  return if read_concern.nil?
  除非 read_concern.is_a?(哈希)
    提高 错误::LintError, "读关注不是哈希: #{ read_concern } "
  end
  return if read_concern.空?
  密钥 = read_concern.密钥
  if read_concern.is_a?(BSON::文档)
    # 允许无关访问
    allowed_keys = ['level']
  else
    # 不允许无关紧要的访问权限
    allowed_keys = [:level]
  end
  if 密钥 != allowed_keys
    提高 错误::LintError, "读关注的键无效: #{ keys .inspect } } "
  end
  等级 = read_concern[:level]
  return if [:local, :available, : majority, :linearizable, :快照].包括?(等级)
  提高 错误::LintError, "读关注级别无效:值必须是符号: #{ level .inspect } } "
end

validate_underscore_read_preference (read_pref) ⇒对象

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。



18
19
20
21
22
23
24
25
# File ' 构建/ruby-driver-v2.19/lib/ mongo /lint.rb', line 18

def validate_underscore_read_preference(read_pref)
  return 除非 已启用?
  return if read_pref.nil?
  除非 read_pref.is_a?(哈希)
    提高 错误::LintError, "读取偏好不是哈希值: #{ read_pref } "
  end
  validate_underscore_read_preference_mode(read_pref[:mode] || read_pref['mode'])
end

.validate_underscore_read_preference_mode(mode) ⇒ Object

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。



28
29
30
31
32
33
34
35
# File ' 构建/ruby-driver-v2.19/lib/ mongo /lint.rb', line 28

def validate_underscore_read_preference_mode(模式)
  return 除非 已启用?
  if 模式
    除非 %w(主节点 primary_preferred 从节点 secondary_preferred nearest).包括?(模式.to_s)
      提高 错误::LintError, "无效的读取偏好(read preference)模式: #{ 模式 } "
    end
  end
end