モジュール: Mongoid::Matcher::Bits Private

次のドキュメントに含まれます。
BitsAllClear, BitsAllSet, BitsAnyClear, BitsAnySet
定義:
lib/mongoid/matcher/bits.rb

Overview

このモジュールはプライベート API の一部です。 このモジュールは将来削除または変更される可能性があるため、可能な限り使用しないでください。

ビット単位の式マッチャーに含まれる混合モジュール。

クラスメソッドの概要を折りたたむ

インスタンス メソッドの概要を折りたたむ

クラスメソッドの詳細

。 Operator_name = string

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

式演算子の名前を返します。

次の値を返します。

  • ( string ) —

    演算子名。



60
61
62
# ファイル 'lib/mongoid/matcher/bits.rb', 行60

MongoDB_function デフォルト Operator_name
  name.サブ(/.*::/, '').サブ(/ $A(.) /) { |l| l.ダウンケース }
end

インスタンス メソッドの詳細

#一致する回数(_exists、値、条件) ⇒ true | false

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

値がビット式を満たすかどうかを返します。

パラメーター:

  • exists ( true | false ) —

    使用されません。

  • 価値 (オブジェクト) —

    確認する値。

  • 条件 (数値 | Array<Numeric> ) —

    式述語は、ビットマスクまたは位置リストとして。

次の値を返します。

  • ( true | false ) —

    値が一致するかどうか。



17
18
19
20
21
22
23
24
25
26
27
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
# ファイル 'lib/mongoid/matcher/bits.rb', 行17

デフォルト 一致するかどうか(_exists, 価値, 条件)
  ケース 価値
  次の場合: BSON::バイナリ
    価値 = 価値.データ.分裂('').map { |n| '%02x' % n.または }.join.to_i(16)
  end
  ケース 条件
  次の場合: 配列
    array_matches?(価値, 条件)
  次の場合: BSON::バイナリ
    int_cond = 条件.データ.分裂('').map { |n| '%02x' % n.または }.join.to_i(16)
    int_matches?(価値, int_cond)
  次の場合: 整数
    場合 条件 < 0
      発生 Errors::InvalidQuery,
            " $ #{ Operator_name }引数の無効な値: 負の整数は許可されません: #{条件} "
    end

    int_matches?(価値, 条件)
  次の場合: Float
    # 整数であるfloatを許可します(例:50.0)が、それらを拒否します
    小数部分(例:50.1)は、ビットごとの演算子が整数を必要とするためです。
    int_cond = 条件.to_i
    場合 int_cond == 条件
      場合 int_cond < 0
        発生 Errors::InvalidQuery,
              " $ #{ Operator_name }引数の無効な値です。負の数は許可されません: #{条件} "
      end

      int_matches?(価値, int_cond)
    else
      発生 Errors::InvalidQuery,
            " $ #{ Operator_name }引数の型が無効です: 整数として表現できません: #{条件} "
    end
  else
    発生 Errors::InvalidQuery, " $ #{ Operator_name }引数の型は無効です: #{条件} "
  end
end