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
# Type checking for lib/. Signatures live in the code as RBS comments
# (`#:` before a method, `# @rbs` for everything else), so the type and
# the implementation are read and changed together.
#
# sig/ holds only what inline comments cannot express, each file saying
# why (docs/plans/2026-08-20-type-checking.md).
target :lib do
check "lib", inline: true
# Phlex ships no RBS of its own, and the admin views are built on it —
# unlike Sequel, Roda, Nokogiri, and friends, which have hand written
# stand-ins under sig/gems. Ignored rather than stubbed for now; add
# sig/gems/phlex.rbs and drop this once the admin surface is worth
# typing. Named file by file so that what lives beside the views
# without being one — card_form.rb, the forms read back into cards —
# stays checked; a new file there is checked until it is listed.
#
# inline: true is load-bearing: `ignore` keeps separate lists for
# plain and inline sources, and these files were enrolled by
# `check ... inline: true`. A bare `ignore` feeds the other list and
# the files stay checked.
ignore(*%w[
avatar contact_card contact_dialog contacts_edit contacts_index contacts_show dashboard device_setup format
group_dialog group_filter group_label group_tag groups_edit groups_index groups_members groups_new groups_show icons import_groups import_original import_saved import_sidebar
import_target import_upload layout list_item member_picker phlex recent_row record_card search_dialog search_field search_page search_results upcoming_birthdays
].map { "lib/pro_tacts/admin/#{it}.rb" }, inline: true)
signature "sig"
library "date", "digest", "fileutils", "json", "logger", "net-http", "open3", "pathname", "securerandom", "strscan", "time", "uri", "yaml"
end