モジュール: Mongoid::Matcher::EqImpl Private
- 定義:
- lib/mongoid/matcher/eq_impl.rb
Overview
このモジュールはプライベート API の一部です。 このモジュールは将来削除または変更される可能性があるため、可能な限り使用しないでください。
このモジュールは、$eq および $eq が実行するマッチングを実行する必要がある他の演算子(たとえば、$eq の結果を否定する $ne)に使用されます。 $eq と違い、このモジュールは元の演算子をmatches?
の追加引数として受け取ります。これにより、最初に呼び出された演算子を反映する正しい例外メッセージが提供されます。
クラスメソッドの概要を折りたたむ
-
。一致するかどうか(exists、値、条件、元の演算子)=true| false、ブール値
private
値が $eq (または同様の)式を満たすかどうかを返します。
-
。 time_eq? (time_a、time_b) = true | false、ブール値
private
www.mongodb.com/ja-jp/docs/ruby-Driver/current/tunedtrials/bson-v 4 /#time-instances に従って、 > BSON(および MongoDB)の時間の精度はミリ秒のみです。
-
。 time_rounded_to_millis (時間)=true| false
private
時間値を最も近いミリ秒に丸めます。
クラスメソッドの詳細
。一致するかどうか(exists、値、条件、元の演算子)= true| false 、ブール値
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
値が $eq (または同様の)式を満たすかどうかを返します。
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 54 |
# ファイル 'lib/mongoid/matcher/eq_impl.rb' は、 24行を MongoDB_function デフォルト 一致するかどうか(exists, 価値, 条件, 元の演算子) ケース 条件 次の場合: Range(範囲) $ne は# $eq を呼び出すため、例外メッセージは次を処理する必要があります: # 両方の演算子。 発生 Errors::InvalidQuery, " 範囲は " #{ initial_operator } の 引数としてサポートされていません 。 " =begin 値.is_a?(配列) の場合 value.any? { |elt|条件.include?(elt) } else 条件.include?(value) end =end else # 時間オブジェクトと比較する場合は、ミリ秒の精度を使用して比較してください 場合 価値.kind_of?(時間) & & 条件.kind_of?(時間) time_eq?(価値, 条件) elsif 価値.is_a?(配列) & & 条件.kind_of?(時間) 価値.map 行う |v| 場合 v.kind_of?(時間) time_rounded_to_millis(v) else v end end.include?(time_rounded_to_millis(条件)) else 価値 == 条件 || 価値.is_a?(配列) & & 価値.include?(条件) end end end |
。 time_eq? (time_a、time_b) = true | false 、ブール値
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
www.mongodb.com/ja-jp/docs/ruby-Driver/current/tunedtrials/bson-v 4 /#time-instances に従って、 > BSON(および MongoDB)の時間の精度はミリ秒のみです。 Ruby Time インスタンスが BSON または拡張 JSON にシリアル化される場合、時間はミリ秒単位で切り捨てられます。
> このダウングレードのため、浮動小数点の計算が不正確になると予期しない結果が発生する可能性があるため、アプリケーションではすべての時間の計算を実行することが 強く推奨されます 。
そのため、 bson- Ruby gem が実行するのと同様の操作を実行します。
70 71 72 |
# ファイル 'lib/mongoid/matcher/eq_impl.rb' は、 70行を MongoDB_function デフォルト time_eq?(time_a, time_b) time_rounded_to_millis(time_a) == time_rounded_to_millis(time_b) end |
。 time_rounded_to_millis (時間)= true| false
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
時間値を最も近いミリ秒に丸めます。
79 80 81 |
# ファイル 'lib/mongoid/matcher/eq_impl.rb' は、 79行を MongoDB_function デフォルト time_rounded_to_millis(時間) return 時間._bson_to_i * 1000 + 時間.使用します.divmod(1000).最初に end |