모듈: 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