RMagick을 사용하면 Unresolved Ruby reference의 warning이 RubyMine에서 나오는 것을 어떻게하고 싶지만, 할 수 없다.

3444 단어 RMagickRubyMine루비

이 문서 정보



Ruby 개발 환경에 RubyMine을 사용하려고 시도하고 여러 가지를 확인하는 동안 "Code> Inspect Code"에서 정적 분석을 실행하면 "Unresolved Ruby reference"가 많이 나와 곤란했을 때의 메모

원인 및 해결 방법


  • 대상의 메소드가 Ruby의 확장 라이브러리로 구현되고 있기 (위해)때문에 경고 나 버린다
  • 해결할 수 없다. . .

  • 현상



    rmagick 사용해 그 관계의 오브젝트의 메소드등은 전부 나오고 있는 느낌. 아래 코드의 font pointsize get_multiline_type_metrics 의 전부에 경고 나온다. 왜?

    test.rb
        draw = Magick::Draw.new
        draw.font = font
        draw.pointsize = size
        metrics = draw.get_multiline_type_metrics(message)
    

    조사 중



    RMagick 구현 보기



    구현을 확인 ↓했지만 get_multiline_type_metrics가 정의되어 있지 않다. 확장 라이브러리로서 구현되고 있는 것 같다.

    magick_internal.rb
      class Draw
        # Thse hashes are used to map Magick constant
        # values to the strings used in the primitives.
        ALIGN_TYPE_NAMES = {
          LeftAlign.to_i => 'left',
          RightAlign.to_i => 'right',
          CenterAlign.to_i => 'center'
        }.freeze
    
    .... 省略
    

    확실히 구현되었습니다.

    rmmain.c
    rb_define_method(Class_Draw, "get_type_metrics", Draw_get_type_metrics, -1);
    rb_define_method(Class_Draw, "get_multiline_type_metrics", Draw_get_multiline_type_metrics, -1);
    

    좋은 웹페이지 즐겨찾기