homura-runtime 0.3.29 → 0.3.31

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 523d660c486440b910fded423765e28c7a00d0196ff30f08f41c81b76eb897bd
4
- data.tar.gz: 4e4adc4159f071b90329058c1f0a7638a2a6c52d29d4b344ff7c3d03633adc5d
3
+ metadata.gz: 813bb7a137e10066bb9ddb4e1914cf2df497851f63f78acff16484bc7ee69e57
4
+ data.tar.gz: 3103575e78a2ed9b79c315e8dfc825de8cdec8d1627488b5824b5dc0b04a19ab
5
5
  SHA512:
6
- metadata.gz: 37a0e501e9ef564074cc70a0b0284b6ed0046c482343353038148d8daabd1300f9a044c62e12a4451bf65caf4f8d9d8933b0f987c32a20bedf62886d5a423940
7
- data.tar.gz: 47b3d1af25629338706e4ca0481cc0dc98992eae4a96bb981fac036bfce569332c6c283d9e31c35ce97bb45d48c712a7c9640b66cdfdd49eefe56ac9b7466d03
6
+ metadata.gz: 42809f38eff2d31ada88798fdc4caff7b79a69c4bc2ebffc9a431a8f3b440e6811261ee02f6957d8ac0fe221cc5bc69d84a11cf352102884b561e63056c5cc29
7
+ data.tar.gz: 397f4e31c59dbfc89e84b151a6f5c2ede2cadde14945ce1d17baa3e066878ece9646f43c45416bb9542adc6dfe689b43342a6f4e52dbd78fa95ed19e14fb8675
data/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.3.31 (2026-06-25)
4
+
5
+ - Extend component classes with `Literal::Types` when they extend
6
+ `Literal::Properties`, preserving helpers such as `_String` and `_Integer`
7
+ under Opal.
8
+
9
+ ## 0.3.30 (2026-06-25)
10
+
11
+ - Provide Opal-safe non-frozen Literal singleton type instances for
12
+ `AnyType`, `BooleanType`, `FalsyType`, `NeverType`, `TruthyType`, and
13
+ `VoidType`, avoiding constant-cache writes against frozen upstream objects.
14
+
3
15
  ## 0.3.29 (2026-06-25)
4
16
 
5
17
  - Provide an Opal-safe `Literal::Types::JSONDataType` shim instead of loading
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module HomuraRuntime
4
- VERSION = "0.3.29"
4
+ VERSION = "0.3.31"
5
5
  end
@@ -7,22 +7,98 @@ require "literal/type"
7
7
  module Literal::Types
8
8
  end
9
9
 
10
- require "literal/types/any_type"
10
+ class Literal::Types::AnyType
11
+ Instance = new
12
+
13
+ include Literal::Type
14
+
15
+ def inspect = "_Any"
16
+
17
+ def ===(value) = !(nil === value)
18
+
19
+ def >=(other, context: nil) = !(other === nil)
20
+ end
21
+
22
+ class Literal::Types::BooleanType
23
+ Instance = new
24
+
25
+ include Literal::Type
26
+
27
+ def inspect = "_Boolean"
28
+
29
+ def ===(value) = true == value || false == value
30
+
31
+ def >=(other, context: nil)
32
+ true == other || false == other || Literal::Types::BooleanType === other
33
+ end
34
+ end
35
+
36
+ class Literal::Types::FalsyType
37
+ Instance = new
38
+
39
+ include Literal::Type
40
+
41
+ def inspect = "_Falsy"
42
+
43
+ def ===(value) = !value
44
+
45
+ def >=(other, context: nil)
46
+ !other || Literal::Types::FalsyType === other
47
+ end
48
+ end
49
+
50
+ class Literal::Types::NeverType
51
+ Instance = new
52
+
53
+ include Literal::Type
54
+
55
+ def inspect = "_Never"
56
+
57
+ def ===(_value) = false
58
+
59
+ def >=(other, context: nil) = Literal::Types::NeverType === other
60
+
61
+ def <=(_other, context: nil) = true
62
+ end
63
+
64
+ class Literal::Types::TruthyType
65
+ Instance = new
66
+
67
+ include Literal::Type
68
+
69
+ def inspect = "_Truthy"
70
+
71
+ def ===(value) = !!value
72
+
73
+ def >=(other, context: nil)
74
+ true == other || Literal::Types::TruthyType === other
75
+ end
76
+ end
77
+
78
+ class Literal::Types::VoidType
79
+ Instance = new
80
+
81
+ include Literal::Type
82
+
83
+ def inspect = "_Void"
84
+
85
+ def ===(_value) = true
86
+
87
+ def >=(_other, context: nil) = true
88
+ end
89
+
11
90
  require "literal/types/array_type"
12
- require "literal/types/boolean_type"
13
91
  require "literal/types/class_type"
14
92
  require "literal/types/constraint_type"
15
93
  require "literal/types/deferred_type"
16
94
  require "literal/types/descendant_type"
17
95
  require "literal/types/enumerable_type"
18
- require "literal/types/falsy_type"
19
96
  require "literal/types/frozen_type"
20
97
  require "literal/types/hash_type"
21
98
  require "literal/types/interface_type"
22
99
  require "literal/types/intersection_type"
23
100
  require "literal/types/kind_type"
24
101
  require "literal/types/map_type"
25
- require "literal/types/never_type"
26
102
  require "literal/types/nilable_type"
27
103
  require "literal/types/not_type"
28
104
  require "literal/types/predicate_type"
@@ -30,10 +106,8 @@ require "literal/types/range_type"
30
106
  require "literal/types/same_object_type"
31
107
  require "literal/types/set_type"
32
108
  require "literal/types/tagged_union_type"
33
- require "literal/types/truthy_type"
34
109
  require "literal/types/tuple_type"
35
110
  require "literal/types/union_type"
36
- require "literal/types/void_type"
37
111
 
38
112
  class Literal::Types::JSONDataType
39
113
  Instance = new
@@ -98,6 +172,13 @@ module Literal
98
172
  end
99
173
 
100
174
  module Literal::Properties
175
+ def self.extended(base)
176
+ super
177
+ base.extend(Literal::Types)
178
+ base.include(DocString)
179
+ base.include(base.__send__(:__literal_extension__))
180
+ end
181
+
101
182
  private def __define_literal_methods__(new_property)
102
183
  extension = __literal_extension__
103
184
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: homura-runtime
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.29
4
+ version: 0.3.31
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kazuhiro Homma