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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# Shim declarations for gems without RBS in this environment.
# Covers only the methods actually used in the Domus codebase.
module Sequel
def self.sqlite: (String) -> Sequel::Database
def self.desc: (Symbol) -> untyped
class Database
def []: (Symbol) -> Sequel::Dataset
def transaction: () { () -> void } -> void
end
class Dataset
def order: (*untyped) -> Sequel::Dataset
def limit: (Integer) -> Sequel::Dataset
def all: () -> Array[Hash[Symbol, untyped]]
def count: () -> Integer
def insert: (Hash[Symbol, untyped]) -> Integer
end
class Model
end
end
class Roda
# Class-level DSL
def self.plugin: (Symbol) ?{ (Class) -> void } -> void
def self.route: () { (Roda) -> void } -> void
# Instance-level DSL (used inside route blocks)
def db: () -> Sequel::Database
def response: () -> untyped
def opts: () -> Hash[Symbol, untyped]
end
module Domus
module Views
module Icons
def raw: (String) -> void
def safe: (String) -> String
end
end
end
module Phlex
class HTML
def self.new: (**untyped) -> instance
def view_template: () { () -> void } -> void
def render: (untyped) ?{ () -> void } -> void
def call: () -> String
# HTML elements used in views
def doctype: () -> void
def html: (?lang: String) { () -> void } -> void
def head: () { () -> void } -> void
def body: () ?{ () -> void } -> void
def meta: (?charset: String, ?name: String, ?content: String) -> void
def title: () { () -> void } -> void
def link: (?rel: String, ?type: String, ?href: String) -> void
def script: (?defer: bool, ?src: String) -> void
def div: (?class: String, **untyped) { () -> void } -> void
def span: (?class: String, **untyped) { () -> void } -> void
def a: (?href: String, ?class: String, **untyped) { () -> void } -> void
def h3: (**untyped) { () -> void } -> void
def p: (?class: String, **untyped) { () -> void } -> void
def section: (**untyped) { () -> void } -> void
def header: (?class: String, **untyped) { () -> void } -> void
def main: (?class: String, **untyped) { () -> void } -> void
def form: (?method: String, ?action: String, ?enctype: String, **untyped) { () -> void } -> void
def input: (?type: String, ?name: String, ?accept: String, ?capture: String, ?class: String, ?placeholder: String, **untyped) -> void
def button: (?type: String, ?class: String, **untyped) { () -> void } -> void
def img: (?alt: String, **untyped) -> void
def template: (**untyped) { () -> void } -> void
# Text output
def plain: (String) -> void
# Raw HTML
def raw: (String) -> void
def safe: (String) -> String
end
end