1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# Property and Line are Data classes, which the inline syntax cannot
# read — Data.define leaves them no constant super class — so their
# signatures live here. Parser itself is signed inline in parser.rb.
module ProTacts
  class VCard
    class Parser
      class Property
        attr_reader group: String?
        attr_reader name: String
        attr_reader parameters: Array[[String, String]]
        attr_reader value: String

        def self.new: (group: String?, name: String, parameters: Array[[String, String]], value: String) -> instance
      end

      class Line
        attr_reader property: Property?
        attr_reader verbatim: String
        attr_reader error: ParseError?

        def self.new: (property: Property?, verbatim: String, error: ParseError?) -> instance
      end
    end
  end
end