모듈: Mongoid::Matcher::Type Private

다음에 정의됨:
lib/mongoid/matcher/type.rb

개요

이 모듈은 비공개 API의 일부입니다. 이 모듈은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

$type 표현식 에 대한 인메모리 매처입니다.

클래스 메서드 요약 접기

클래스 메서드 세부 정보

.일치합니까?(존재, 값, 조건) ⇒ true | false, 부울

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

값이 $type 표현식 을 충족하는지 여부를 반환합니다.

매개변수:

  • 이 존재합니다 (true | false)

    값이 존재하는지 여부입니다.

  • value (객체)

    확인할 값입니다.

  • 조건 (정수 | Array<Integer>)

    BSON 열거형에 해당하는 $type 조건 술어입니다.

반환합니다:

  • (true | false)

    값이 일치하는지 여부입니다.

  • (부울)


22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# 파일 'lib/mongoid/matcher/type.rb', 줄 22

module_function def 일치합니까?(이 존재합니다, value, 조건)
  조건 = case 조건
  when 배열
    조건
  when Integer
    [조건]
  other
    올리다 오류::InvalidQuery, "알 수 없는 $type 인수: #{조건}"
  end
  조건. do |조건|
    만약 one_match?(이 존재합니다, value, 조건)
      반환 true
    end
  end
  거짓
end

.one_match?(존재, 값, 조건) ⇒ true | false, 부울

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

값이 단일 $type 표현식 값을 충족하는지 여부를 반환합니다.

매개변수:

  • 이 존재합니다 (true | false)

    값이 존재하는지 여부입니다.

  • value (객체)

    확인할 값입니다.

  • 조건 (정수)

    BSON 열거형에 해당하는 $type 조건 술어입니다.

반환합니다:

  • (true | false)

    값이 일치하는지 여부입니다.

  • (부울)


50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
# 파일 'lib/mongoid/matcher/type.rb', 줄 50

module_function def one_match?(이 존재합니다, value, 조건)
  case 조건
  when 1
    # 더블
    Float === value
  when 2
    # string
    문자열 === value
  when 3
    # 객체
    해시 === value
  when 4
    # 배열
    배열 === value
  when 5
    # 바이너리 데이터
    BSON::바이너리 === value
  when 6
    # 정의되지 않음
    BSON::정의되지 않음 === value
  when 7
    # ObjectId
    BSON::ObjectId === value
  when 8
    # 부울
    TrueClass === value || FalseClass === value
  when 9
    # 날짜
    날짜 === value || 시간 === value || 날짜/시간 === value
  when 10
    # Null
    이 존재합니다 && NilClass === value
  when 11
    # 정규식
    정규 표현식::원시 === value || ::정규 표현식 === value
  when 12
    # DBPointer는 더 이상 사용되지 않음
    BSON::DB포인터 === value
  when 13
    # JavaScript
    BSON::코드 === value
  when 14
    # 기호 사용 중단
    기호 === value || BSON::기호::원시 === value
  when 15
    # 더 이상 사용되지 않는 코드가 포함된 JavaScript
    BSON::CodeWithScope === value
  when 16
    # 32-bit int
    BSON::Int32 === value || Integer === value && (-2**32..2**32-1).포함?(value)
  when 17
    # 타임스탬프
    BSON::타임스탬프 === value
  when 18
    # Long
    BSON::Int64 === value ||
      Integer === value &&
        (-2**64..2**64-1).포함?(value) &&
        !(-2**32..2**32-1).포함?(value)
  when 19
    # Decimal
    BSON::Decimal128 === value
  when -1
    # minKey
    BSON::최소 키 === value
  when 127
    # maxKey
    BSON::최대 키 === value
  other
    올리다 오류::InvalidQuery, "알 수 없는 $type 인수: #{조건}"
  end
end