class RBS::Annotate::Annotations::Copy - rbs: Ruby Standard Library Documentation

# class RBS::Annotate::Annotations::Copy

### Attributes

annotation[R]
source[R]

### Public Class Methods

new(annotation:, source:) click to toggle source

    # File rbs-3.8.0/lib/rbs/annotate/annotations.rb, line 54
    def initialize(annotation:, source:)
      @annotation = annotation
      @source = source
    end

### Public Instance Methods

==(other) click to toggle source

    # File rbs-3.8.0/lib/rbs/annotate/annotations.rb, line 84
    def ==(other)
      other.is_a?(Copy) &&
        other.annotation == annotation &&
        other.source == source
    end

Also aliased as: eql?
eql?(other)
Alias for: ==
hash() click to toggle source

    # File rbs-3.8.0/lib/rbs/annotate/annotations.rb, line 80
    def hash
      self.class.hash ^ annotation.hash ^ source.hash
    end

method_name() click to toggle source

    # File rbs-3.8.0/lib/rbs/annotate/annotations.rb, line 64
    def method_name
      _, m = partition
      if m
        m[1]
      end
    end

partition() click to toggle source

    # File rbs-3.8.0/lib/rbs/annotate/annotations.rb, line 92
    def partition
      case
      when match = source.match(/(?<constant_name>[^#]+)#(?<method_name>.+)/)
        [
          TypeName.parse(match[:constant_name] || raise),
          [
            false,
            (match[:method_name] or raise).to_sym
          ]
        ]
      when match = source.match(/(?<constant_name>[^#]+)\.(?<method_name>.+)/)
        [
          TypeName.parse(match[:constant_name] || raise),
          [
            true,
            (match[:method_name] or raise).to_sym
          ]
        ]
      else
        [
          TypeName.parse(source),
          nil
        ]
      end
    end

singleton?() click to toggle source

    # File rbs-3.8.0/lib/rbs/annotate/annotations.rb, line 71
    def singleton?
      _, m = partition
      if m
        m[0]
      else
        false
      end
    end

type_name() click to toggle source

    # File rbs-3.8.0/lib/rbs/annotate/annotations.rb, line 59
    def type_name
      name, _ = partition
      name
    end