homura-runtime 0.3.28 → 0.3.30

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: 6157c91e804deebc3400c37f1854696e271c36f16b5f92fd6a201a182c3fe377
4
- data.tar.gz: a99cdf2547fa59a85cb8cc3cbbe28c83626d2daec163634cf86d1675a704f4f4
3
+ metadata.gz: 1720f3afccbc5be15d7c6102fd3dff7e372d58fbce220b3493973da5cfaca285
4
+ data.tar.gz: 5e5b885496b775a795874ebaae607b8a922c6f0e8b801f6a004ecd0365b13eac
5
5
  SHA512:
6
- metadata.gz: 5d3c5eeaf352d50b0c14f3bfc5dd0425486478325136c5c1d7b75c794cdb5d9eff476e2efd55bfbda1afa88c3f7895319dc7765b26b92d491bd40bd182414ca4
7
- data.tar.gz: b943e7d0f0bb0a489f3a0bb8430deac4a04ecc83ca547b4cd0a9fbae2a797c040913331f270fcfc7d8f09cfdafe5b4baff2f2dbf189d4eefd359019bb18e24f0
6
+ metadata.gz: 22f86b8627d6d36f524f47862fee658ee489dde6ce7c9d3a5b24f0361cd2ea2008318172f0d66822cd5025b2fb03b0cefac6875a64f9be6dd98e94f85344fa08
7
+ data.tar.gz: c7c6a8ca0f854d5b81ba8ed3835508203f068de1e02ff16a61338fabaca5ef378a0c18688d5dee532947b0b5dd8037c65ed58568b0236143f0a429781a0a82a5
data/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.3.30 (2026-06-25)
4
+
5
+ - Provide Opal-safe non-frozen Literal singleton type instances for
6
+ `AnyType`, `BooleanType`, `FalsyType`, `NeverType`, `TruthyType`, and
7
+ `VoidType`, avoiding constant-cache writes against frozen upstream objects.
8
+
9
+ ## 0.3.29 (2026-06-25)
10
+
11
+ - Provide an Opal-safe `Literal::Types::JSONDataType` shim instead of loading
12
+ the upstream frozen singleton implementation, avoiding Opal constant-cache
13
+ writes against frozen objects during Worker boot.
14
+
3
15
  ## 0.3.28 (2026-06-25)
4
16
 
5
17
  - Bootstrap the `Literal::Types` namespace, load Literal's type classes, then
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module HomuraRuntime
4
- VERSION = "0.3.28"
4
+ VERSION = "0.3.30"
5
5
  end
@@ -7,23 +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
- require "literal/types/json_data_type"
24
100
  require "literal/types/kind_type"
25
101
  require "literal/types/map_type"
26
- require "literal/types/never_type"
27
102
  require "literal/types/nilable_type"
28
103
  require "literal/types/not_type"
29
104
  require "literal/types/predicate_type"
@@ -31,10 +106,30 @@ require "literal/types/range_type"
31
106
  require "literal/types/same_object_type"
32
107
  require "literal/types/set_type"
33
108
  require "literal/types/tagged_union_type"
34
- require "literal/types/truthy_type"
35
109
  require "literal/types/tuple_type"
36
110
  require "literal/types/union_type"
37
- require "literal/types/void_type"
111
+
112
+ class Literal::Types::JSONDataType
113
+ Instance = new
114
+
115
+ include Literal::Type
116
+
117
+ def inspect = "_JSONData"
118
+
119
+ def ===(value)
120
+ case value
121
+ when String, Integer, Float, true, false, nil
122
+ true
123
+ when Hash
124
+ value.all? { |key, item| String === key && self === item }
125
+ when Array
126
+ value.all?(self)
127
+ else
128
+ false
129
+ end
130
+ end
131
+ end
132
+
38
133
  require "literal/types"
39
134
 
40
135
  module Literal
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.28
4
+ version: 0.3.30
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kazuhiro Homma