Docs Menu
Docs Home
/ / /
몽고이드
/

코드 문서

이 페이지의 내용

  • 코드 문서
  • 구조
  • 서식 지정
  • 유형 선언

Mongoid는 YARD 의 고유한 맛을 사용합니다. 코드 문서의 경우. 이 문서 에 설명된 규칙에 유의하세요.

  • 모듈: 모든 클래스 및 모듈 정의 앞에는 문서 주석이 있어야 합니다.

    # This is the documentation for the class. It's amazing
    # what they do with corrugated cardboard these days.
    class CardboardBox
  • 메서드: 모든 메서드 정의 앞에는 문서 주석이 와야 합니다. @param, @yield@return 을 사용하여 입력과 출력을 지정합니다. 자세한 내용은 아래의 유형 선언 을 참조하세요.

    # Turn a person into whatever they'd like to be.
    #
    # @param [ Person ] person The human to transmogrify.
    #
    # @return [ Tiger ] The transmogrified result.
    def transmogrify(person)
  • 오류: @raise 를 사용하여 메서드와 관련된 오류를 설명합니다.

    # @raise [ Errors::Validations ] If validation failed.
    def validate!
  • 비공개 메서드: 비공개 메서드는 너무 간단하고 간단하여 수행하는 작업이 명확하지 않은 경우를 제외하고는 문서화해야 합니다. 예를 예시, 메서드는 간단하고 간단할 수 있지만 해당 매개변수의 유형이 명확하지 않을 수 있으며, 이 경우 매개변수를 적절하게 문서화해야 합니다.

    private
    # Documentation is optional here.
    def do_something_obvious
  • API 비공개: 외부에서 사용하기 위한 것이 아닌 클래스와 공개 메서드는 @api private 로 표시해야 합니다. 이 매크로에는 주석이 필요하지 않습니다.

    Mongoid의 모듈은 애플리케이션 클래스에 혼합되어 있기 때문에 메서드의 private 가시성이 반드시 API 비공개 메서드로서의 상태를 나타내는 것은 아닙니다.

    # This is an internal-only method.
    #
    # @api private
    def dont_call_me_from_outside
  • 참고 사항 및 TODO: @note 를 사용하여 사용자를 놀라게 할 수 있는 주의 사항, 예외 사례 및 동작을 설명합니다. @todo 을(를) 사용하여 향후 개선을 위한 후속 조치와 제안 사항을 기록 하세요.

    # Clear all stored data.
    #
    # @note This operation deletes data in the database.
    # @todo Refactor this method for performance.
    def erase_data!
  • 사용 중단: @deprecated 매크로를 사용하여 더 이상 사용되지 않는 기능을 나타냅니다. 이 매크로에는 주석이 필요하지 않습니다.

    # This is how we did things back in the day.
    #
    # @deprecated
    def the_old_way
  • 줄 바꿈: 매크로 줄을 줄 바꿈할 때 이중 공백 들여쓰기를 사용합니다. 설명에 줄 바꿈을 들여쓰기를 하지 마세요.

    # This is the description of the method. Line wraps in the description
    # should not be indented.
    #
    # @return [ Symbol ] For macros, wraps must be double-space indented
    # on the second, third, etc. lines.
  • 공백: 선행/후행 빈 주석 줄을 사용하거나 두 개 이상의 연속된 빈 주석 줄을 사용하지 마십시오.

    # GOOD:
    # @return [ Symbol ] The return value
    def my_method
    # BAD:
    # @return [ Symbol ] The return value
    #
    def my_method
    # BAD:
    # @param [ Symbol ] foo The input value
    #
    #
    # @return [ Symbol ] The return value
    def my_method(foo)
  • 유형 유니온: 허용된 유형의 유니온을 나타내려면 파이프 | 를 사용합니다.

    # @param [ Symbol | String ] name Either a Symbol or a String.
  • 중첩된 유형: 꺾쇠 괄호 < > 를 사용하여 유형 중첩을 표시합니다.

    # @param [ Array<Symbol> ] array An Array of symbols.
  • 해시: 쉼표 , 를 사용하여 키 및 값 유형을 표시합니다.

    # @param [ Hash<Symbol, Integer> ] hash A Hash whose keys are Symbols,
    # and whose values are Integers.
  • 배열: 파이프 | 를 사용하여 허용되는 유형의 결합을 나타냅니다.

    # @param [ Array<Symbol | String> ] array An Array whose members must
    # be either Symbols or Strings.
  • 배열: 튜플 내 각 위치의 유형을 나타내려면 쉼표 , 를 사용합니다.

    # @return [ Array<Symbol, Integer, Integer> ] A 3-member Array whose first
    # element is a Symbol, and whose second and third elements are Integers.
  • 배열: 배열 내에서 내부 유형을 혼합할 수 없는 경우 최상위 수준에서 파이프 | 를 사용합니다.

    # @param [ Array<Symbol> | Array<Hash> ] array An Array containing only
    # Symbols, or an Array containing only Hashes. The Array may not contain
    # a mix of Symbols and Hashes.
  • 중첩 유형: 쉼표도 사용되는 경우 명확성을 위해 대괄호 [ ] 를 사용하여 중첩된 유니온을 표시합니다.

    # @param [ Hash<Symbol, [ true | false ]> ] hash A Hash whose keys are Symbols,
    # and whose values are boolean values.
  • Ruby 값: Ruby 구문을 사용하여 특정 값을 유형에 표시할 수 있습니다.

    # @param [ :before | :after ] timing One of the Symbol values :before or :after.
  • True, False 및 Nil: TrueClass, FalseClassNilClass 대신 true, falsenil 를 사용합니다. Boolean 은(는) Ruby에 존재하지 않으므로 유형으로 사용하지 마세요.

    # GOOD:
    # @param [ true | false | nil ] bool A boolean or nil value.
    # BAD:
    # @param [ TrueClass | FalseClass | NilClass ] bool A boolean or nil value.
    # @param [ Boolean ] bool A boolean value.
  • 자체 반환: 메서드가 self 을 반환하는 경우 반환 값 self 를 지정합니다.

    # @return [ self ] Returns the object itself.
  • 표시 인수: 유형 선언에 점 3개로 된 타원 ... 을 사용하고 매개 변수 이름에 별표 * 를 사용하여 표시를 나타냅니다.

    # @param [ String... ] *items The list of items name(s) as Strings.
    def buy_groceries(*items)
  • 표시 인수: 각 인수가 실제로 배열이 아닌 경우 Array 을(를) 유형으로 사용하지 마세요.

    # BAD:
    # @param [ Array<String> ] *items The list of items name(s) as Strings.
    def buy_groceries(*items)
    buy_groceries("Cheese", "Crackers", "Wine")
    # OK:
    # @param [ Array<String>... ] *arrays One or more arrays containing name parts.
    def set_people_names(*arrays)
    set_people_names(["Harlan", "Sanders"], ["Jane", "K", ""Doe"], ["Jim", "Beam"])
  • 표시 인수: 쉼표 , 를 사용하여 표시 내 위치를 나타냅니다.

    # @param [ Symbol..., Hash ] *args A list of names, followed by a hash
    # as the optional last arg.
    def say_hello(*args)
  • Splat Args: 대괄호 [ ] 로 타입 유니온을 지정합니다.

    # @param [ [ String | Symbol ]... ] *fields A splat of mixed Symbols and Strings.
  • 키워드 인수: YARD 규칙에 따라 키워드 인수에 @param 를 사용하고 키워드 인수 이름을 기호로 지정합니다.

    # @param [ String ] query The search string
    # @param [ Boolean ] :exact_match Whether to do an exact match
    # @param [ Integer ] :results_per_page Number of results
    def search(query, exact_match: false, results_per_page: 10)
  • 해시 옵션: 해시 @param 바로 뒤에 오는 @option 매크로를 사용하여 해시 키-값 옵션을 정의합니다. 참고 @option 매개 변수 이름은 기호입니다.

    # @param opts [ Hash<Symbol, Object> ] The optional hash argument(s).
    # @option opts [ String | Array<String> ] :items The items(s) as Strings to include.
    # @option opts [ Integer ] :limit An Integer denoting the limit.
    def buy_groceries(opts = {})
  • Double Splats: 매개변수 이름에 더블 스타 ** 를 사용하여 키워드 arg splat(double splat)을 나타냅니다. 유형은 암시적으로 <Symbol, Object>이기 때문에 double-splat 요소에서 선언할 필요가 없습니다. 대신 아래의 @option 매크로를 사용하여 값 유형을 정의하세요. 참고 @option 매개 변수 이름은 기호입니다.

    # @param **kwargs The optional keyword argument(s).
    # @option **kwargs [ String | Array<String> ] :items The items(s) as Strings to include.
    # @option **kwargs [ Integer ] :limit An Integer denoting the limit.
    def buy_groceries(**kwargs)
  • 차단: @yield 를 사용하여 메서드가 차단 되는 시점을 지정합니다.

    # @yield [ Symbol, Symbol, Symbol ] Evaluate the guess of who did the crime.
    # Must take the person, location, and weapon used. Must return true or false.
    def whodunit
    yield(:mustard, :ballroom, :candlestick)
    end
  • 차단: 메서드가 차단 인수를 명시적으로 지정하는 경우 @param 앞에 앰퍼샌드 & 를 사용하여 차단 인수를 지정하고 @yield 도 지정합니다. 참고 @yield 는 메서드가 내부적으로 yield 가 아닌 block.call 를 호출하는 경우에도 사용해야 합니다.

    # @param &block The block.
    # @yield [ Symbol, Symbol, Symbol ] Evaluate the guess of who did the crime.
    # Must take the person, location, and weapon used. Must return true or false.
    def whodunit(&block)
    yield(:scarlet, :library, :rope)
    end
    # @param &block The block.
    # @yield [ Symbol, Symbol, Symbol ] Evaluate the guess of who did the crime.
    # Must take the person, location, and weapon used. Must return true or false.
    def whodunit(&block)
    block.call(:plum, :kitchen, :pipe)
    end
  • 차단: 명확성을 @yieldparam @yieldreturn 위해 대신 및 @yield 를 사용합니다.

    # @param &block The block.
    # @yieldparam [ Symbol ] The person.
    # @yieldparam [ Symbol ] The location.
    # @yieldparam [ Symbol ] The weapon used.
    # @yieldreturn [ true | false ] Whether the guess is correct.
    def whodunit(&block)
    yield(:peacock, :conservatory, :wrench)
    end
  • Proc 인수: Proc 인수는 @param ( @yield 아님)을 사용해야 합니다. proc에 대한 입력은 하위 유형으로 지정할 수 있습니다.

    # @param [ Proc<Integer, Integer, Integer> ] my_proc Proc argument which must
    # take 3 integers and must return true or false whether the guess is valid.
    def guess_three(my_proc)
    my_proc.call(42, 7, 88)
    end

돌아가기

기여