모듈: Mongoid::Matcher::Type Private

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

개요

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

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

클래스 메서드 요약 접기

클래스 메서드 세부 정보

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

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

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

매개변수:

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

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

  • value (객체)

    확인할 값입니다.

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

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

반환합니다:

  • (true | false)

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

  • (부울)


19
20
21
22
23
24
25
26
27
28
29
30
31
32
# 파일 'lib/mongoid/matcher/type.rb', 줄 19

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

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

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

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

매개변수:

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

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

  • value (객체)

    확인할 값입니다.

  • 조건 (정수)

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

반환합니다:

  • (true | false)

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

  • (부울)


45
46
47
48
49
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
# 파일 'lib/mongoid/matcher/type.rb', 줄 45

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