모듈: Mongoid::Matcher::Bits Private

포함 항목:
BitsAllClear, BitsAllSet, BitsAnyClear, BitsAnySet
다음에 정의됨:
lib/mongoid/matcher/bits.rb

개요

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

비트 표현식 매처에 포함된 Mixin 모듈.

클래스 메서드 요약 접기

인스턴스 메서드 요약 접기

클래스 메서드 세부 정보

.operator_namestring

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

표현식 연산자 의 이름을 반환합니다.

반환합니다:

  • (string)

    연산자 이름입니다.

[소스 보기]

55
56
57
# 파일 'lib/mongoid/matcher/bits.rb', 줄 55

module_function def operator_name
  이름.sub(/.*::/, '').sub(/\A(.)/) { |l| l.downcase }
end

인스턴스 메서드 세부 정보

일치하는 #개?(존재, 값, 조건) ⇒ true | false

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

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

매개변수:

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

    사용되지 않습니다.

  • value (객체)

    확인할 값입니다.

  • 조건 (숫자 | Array<Numeric>)

    표현식 조건자를 비트마스크 또는 위치 목록으로 사용합니다.

반환합니다:

  • (true | false)

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

[소스 보기]

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
# 파일 'lib/mongoid/matcher/bits.rb', 줄 20

def 일치합니까?(이 존재합니다, value, 조건)
  case value
  when BSON::바이너리
    value = value.데이터.split('').map { |n| '%02x' % n.ord }.가입.to_i(16)
  end
  case 조건
  when 배열
    array_match?(value, 조건)
  when BSON::바이너리
    int_cond = 조건.데이터.split('').map { |n| '%02x' % n.ord }.가입.to_i(16)
    int_match?(value, int_cond)
  when Integer
    만약 조건 < 0
      올리다 오류::InvalidQuery, "$#{연산자_이름} 인수에 대한 잘못된 값: 음의 정수는 허용되지 않습니다: #{조건}"
    end
    int_match?(value, 조건)
  when Float
    만약 (int_cond = 조건.to_i).to_f == 조건
      만약 int_cond < 0
        올리다 오류::InvalidQuery, "$#{연산자_이름} 인수에 대한 잘못된 값: 음수는 허용되지 않습니다: #{조건}"
      end
      int_match?(value, int_cond)
    other
      올리다 오류::InvalidQuery, "$#{연산자_이름} 인수의 잘못된 유형: 정수로 표현할 수 없습니다: #{조건}"
    end
  other
    올리다 오류::InvalidQuery, "$#{연산자_이름} 인수의 잘못된 유형: #{조건}"
  end
end