typewriter 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,107 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ module Typewriter
5
+ class Template
6
+ JOIN_ERROR = T.let(T.unsafe(nil), String)
7
+
8
+ include Typewriter::Writer
9
+ include Typewriter::SpecElements::HTMLAllElements
10
+
11
+ sig { params(block: T.proc.params(arg0: T.attached_class).void).returns(T.attached_class) }
12
+ def self.start(&block); end
13
+
14
+ sig { params(templates: T::Array[Typewriter::Writer]).returns(T.self_type) }
15
+ def join(templates); end
16
+
17
+ sig do
18
+ params(blk: T.nilable(T.proc.params(arg0: Typewriter::Attribute).void)).returns(Typewriter::Attribute)
19
+ end
20
+ def attr(&blk); end
21
+
22
+ sig { params(value: String).returns(T.self_type) }
23
+ def text(value); end
24
+
25
+ sig { returns(T.self_type) }
26
+ def doctype; end
27
+
28
+ sig do
29
+ params(attributes: T.nilable(Typewriter::Attribute),
30
+ block: T.proc.returns(String)).returns(T.self_type)
31
+ end
32
+ def script(attributes, &block); end
33
+
34
+ sig { params(comment_text: T.nilable(String)).returns(T.self_type) }
35
+ def comment(comment_text = nil); end
36
+ end
37
+
38
+ module Writer
39
+ sig { void }
40
+ def initialize
41
+ @__buffer = T.let(+'', String)
42
+ end
43
+
44
+ sig { params(value: String).returns(T.self_type) }
45
+ def unsafe_text(value); end
46
+
47
+ sig { returns(String) }
48
+ def render; end
49
+
50
+ private
51
+
52
+ sig { returns(String) }
53
+ def new_string; end
54
+
55
+ sig do
56
+ params(open: String, close: String, attr: T.nilable(Typewriter::Attribute), closing_char: String,
57
+ block: T.nilable(T.proc.params(arg0: Typewriter::Writer).void)).returns(T.self_type)
58
+ end
59
+ def write(open, close, attr = nil, closing_char: CLOSE, &block); end
60
+
61
+ sig { params(open: String, attr: T.nilable(Typewriter::Attribute)).void }
62
+ def write_void(open, attr = nil); end
63
+ end
64
+
65
+ class Attribute
66
+ extend T::Sig
67
+
68
+ sig do
69
+ params(buffer: T::Hash[String, T.untyped], block: T.nilable(T.proc.params(arg0: Typewriter::Attribute).void)).void
70
+ end
71
+ def initialize(buffer = {}, &block) # rubocop:disable Lint/UnusedMethodArgument
72
+ @__buffer = buffer
73
+ end
74
+
75
+ sig { params(suffix: String, value: String).returns(Typewriter::Attribute) }
76
+ def data(suffix, value); end
77
+
78
+ sig { params(name: String, value: String).returns(Typewriter::Attribute) }
79
+ def attribute(name, value); end
80
+
81
+ sig { params(value: String).returns(Typewriter::Attribute) }
82
+ def klass(value); end
83
+
84
+ sig { params(attr: T.nilable(Typewriter::Attribute)).returns(String) }
85
+ def self.to_html(attr); end
86
+
87
+ sig { params(list: T::Hash[String, T::Boolean]).returns(Typewriter::Attribute) }
88
+ def classes(list); end
89
+
90
+ sig { params(list: T::Hash[String, T::Boolean]).returns(Typewriter::Attribute) }
91
+ def klasses(list); end
92
+
93
+ sig { params(other: Typewriter::Attribute).returns(Typewriter::Attribute) }
94
+ def merge(other); end
95
+
96
+ sig { returns(String) }
97
+ def safe_attribute; end
98
+
99
+ sig { params(name: String, value: T.untyped).returns(Typewriter::Attribute) }
100
+ def write(name, value); end
101
+
102
+ sig { params(name: String, print: T::Boolean).returns(Typewriter::Attribute) }
103
+ def write_boolean(name, print); end
104
+
105
+ include Typewriter::SpecAttributes
106
+ end
107
+ end
metadata ADDED
@@ -0,0 +1,59 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: typewriter
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - John Weir
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2025-09-07 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: It probably is not much fun, despite the name.
14
+ email:
15
+ - john.weir@pharos-ei.com
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - lib/typewriter.rb
21
+ - lib/typewriter/attribute.rb
22
+ - lib/typewriter/spec_attributes.rb
23
+ - lib/typewriter/spec_elements.rb
24
+ - lib/typewriter/template.rb
25
+ - lib/typewriter/version.rb
26
+ - lib/typewriter/writer.rb
27
+ - rbi/attributes.rbx
28
+ - rbi/elements.rbx
29
+ - rbi/typewriter.rbi
30
+ - rbi/typewriter.rbx
31
+ homepage: https://github.com/jweir/typewriter
32
+ licenses:
33
+ - MIT
34
+ metadata:
35
+ homepage_uri: https://github.com/jweir/typewriter
36
+ source_code_uri: https://github.com/jweir/typewriter
37
+ changelog_uri: https://github.com/jweir/typewriter/CHANGES.md
38
+ rubygems_mfa_required: 'true'
39
+ post_install_message:
40
+ rdoc_options: []
41
+ require_paths:
42
+ - lib
43
+ - rbi
44
+ required_ruby_version: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ">="
47
+ - !ruby/object:Gem::Version
48
+ version: 3.2.0
49
+ required_rubygems_version: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ requirements: []
55
+ rubygems_version: 3.4.19
56
+ signing_key:
57
+ specification_version: 4
58
+ summary: HTML Generator via Ruby classes, not templates.
59
+ test_files: []