• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

mlange-42 / modo / 12820268563

17 Jan 2025 12:39AM CUT coverage: 36.563%. Remained the same
12820268563

Pull #51

github

web-flow
Merge c0aa9b89b into fe50b7496
Pull Request #51: Add Mojo and Modo emojis

468 of 1280 relevant lines covered (36.56%)

2.63 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

68.49
/document/document.go
1
package document
2

3
import (
4
        "bytes"
5
        "encoding/json"
6
        "unicode"
7

8
        "gopkg.in/yaml.v3"
9
)
10

11
const capitalFileMarker = "-"
12

13
var CaseSensitiveSystem = true
14

15
type Docs struct {
16
        Decl    *Package
17
        Version string
18
}
19

20
type Package struct {
21
        MemberKind         `yaml:",inline"`
22
        MemberName         `yaml:",inline"`
23
        *MemberSummary     `yaml:",inline"`
24
        *MemberDescription `yaml:",inline"`
25
        Modules            []*Module
26
        Packages           []*Package
27
        Exports            []*PackageExport // Additional field for package re-exports
28
        Functions          []*Function      // Additional field for package re-exports
29
        Structs            []*Struct        // Additional field for package re-exports
30
        Traits             []*Trait         // Additional field for package re-exports
31
}
32

33
func (p *Package) linkedCopy() *Package {
4✔
34
        return &Package{
4✔
35
                MemberName:        NewName(p.Name),
4✔
36
                MemberKind:        NewKind(p.Kind),
4✔
37
                MemberSummary:     p.MemberSummary,
4✔
38
                MemberDescription: p.MemberDescription,
4✔
39
                Exports:           p.Exports,
4✔
40
        }
4✔
41
}
4✔
42

43
type Module struct {
44
        MemberKind    `yaml:",inline"`
45
        MemberName    `yaml:",inline"`
46
        MemberSummary `yaml:",inline"`
47
        Description   string
48
        Aliases       []*Alias
49
        Functions     []*Function
50
        Structs       []*Struct
51
        Traits        []*Trait
52
}
53

54
type Alias struct {
55
        MemberKind    `yaml:",inline"`
56
        MemberName    `yaml:",inline"`
57
        MemberSummary `yaml:",inline"`
58
        Description   string
59
        Value         string
60
        Deprecated    string
61
}
62

63
type Struct struct {
64
        MemberKind    `yaml:",inline"`
65
        MemberName    `yaml:",inline"`
66
        MemberSummary `yaml:",inline"`
67
        Description   string
68
        Aliases       []*Alias
69
        Constraints   string
70
        Convention    string
71
        Deprecated    string
72
        Fields        []*Field
73
        Functions     []*Function
74
        Parameters    []*Parameter
75
        ParentTraits  []string
76
        Signature     string
77
}
78

79
type Function struct {
80
        MemberKind           `yaml:",inline"`
81
        MemberName           `yaml:",inline"`
82
        MemberSummary        `yaml:",inline"`
83
        Description          string
84
        Args                 []*Arg
85
        Overloads            []*Function
86
        Async                bool
87
        Constraints          string
88
        Deprecated           string
89
        IsDef                bool
90
        IsStatic             bool
91
        IsImplicitConversion bool
92
        Raises               bool
93
        RaisesDoc            string
94
        ReturnType           string
95
        ReturnsDoc           string
96
        Signature            string
97
        Parameters           []*Parameter
98
}
99

100
type Field struct {
101
        MemberKind    `yaml:",inline"`
102
        MemberName    `yaml:",inline"`
103
        MemberSummary `yaml:",inline"`
104
        Description   string
105
        Type          string
106
}
107

108
type Trait struct {
109
        MemberKind    `yaml:",inline"`
110
        MemberName    `yaml:",inline"`
111
        MemberSummary `yaml:",inline"`
112
        Description   string
113
        Fields        []*Field
114
        Functions     []*Function
115
        ParentTraits  []string
116
        Deprecated    string
117
}
118

119
type Arg struct {
120
        MemberKind  `yaml:",inline"`
121
        MemberName  `yaml:",inline"`
122
        Description string
123
        Convention  string
124
        Type        string
125
        PassingKind string
126
        Default     string
127
}
128

129
type Parameter struct {
130
        MemberKind  `yaml:",inline"`
131
        MemberName  `yaml:",inline"`
132
        Description string
133
        Type        string
134
        PassingKind string
135
        Default     string
136
}
137

138
func FromJson(data []byte) (*Docs, error) {
1✔
139
        reader := bytes.NewReader(data)
1✔
140
        dec := json.NewDecoder(reader)
1✔
141
        dec.DisallowUnknownFields()
1✔
142

1✔
143
        var docs Docs
1✔
144

1✔
145
        if err := dec.Decode(&docs); err != nil {
1✔
146
                return nil, err
×
147
        }
×
148

149
        cleanup(&docs)
1✔
150

1✔
151
        return &docs, nil
1✔
152
}
153

154
func FromYaml(data []byte) (*Docs, error) {
1✔
155
        reader := bytes.NewReader(data)
1✔
156
        dec := yaml.NewDecoder(reader)
1✔
157
        dec.KnownFields(true)
1✔
158

1✔
159
        var docs Docs
1✔
160

1✔
161
        if err := dec.Decode(&docs); err != nil {
1✔
162
                return nil, err
×
163
        }
×
164

165
        cleanup(&docs)
1✔
166

1✔
167
        return &docs, nil
1✔
168
}
169

170
type Kinded interface {
171
        GetKind() string
172
}
173

174
type Named interface {
175
        GetName() string
176
        GetFileName() string
177
}
178

179
type Summarized interface {
180
        GetSummary() string
181
}
182

183
type MemberKind struct {
184
        Kind string
185
}
186

187
func NewKind(kind string) MemberKind {
38✔
188
        return MemberKind{Kind: kind}
38✔
189
}
38✔
190

191
func (k *MemberKind) GetKind() string {
×
192
        return k.Kind
×
193
}
×
194

195
type MemberName struct {
196
        Name string
197
}
198

199
func NewName(name string) MemberName {
51✔
200
        return MemberName{Name: name}
51✔
201
}
51✔
202

203
func (k *MemberName) GetName() string {
28✔
204
        return k.Name
28✔
205
}
28✔
206

207
func (k *MemberName) GetFileName() string {
6✔
208
        if CaseSensitiveSystem {
12✔
209
                return k.Name
6✔
210
        }
6✔
211
        if isCap(k.Name) {
×
212
                return k.Name + capitalFileMarker
×
213
        }
×
214
        return k.Name
×
215
}
216

217
type MemberSummary struct {
218
        Summary string
219
}
220

221
func NewSummary(summary string) *MemberSummary {
2✔
222
        return &MemberSummary{Summary: summary}
2✔
223
}
2✔
224

225
func (k *MemberSummary) GetSummary() string {
×
226
        return k.Summary
×
227
}
×
228

229
type MemberDescription struct {
230
        Description string
231
}
232

233
func NewDescription(description string) *MemberDescription {
6✔
234
        return &MemberDescription{Description: description}
6✔
235
}
6✔
236

237
func (k *MemberDescription) GetDescription() string {
×
238
        return k.Description
×
239
}
×
240

241
func isCap(s string) bool {
×
242
        if len(s) == 0 {
×
243
                return false
×
244
        }
×
245
        firstRune := []rune(s)[0]
×
246
        return unicode.IsUpper(firstRune)
×
247
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc