foobara 0.1.15 → 0.1.16

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: 8dd944e7f4507fadcfec80d3a79c7050f3cdce69b5dddbc7869183e865e0e1fc
4
- data.tar.gz: a5b8bead81dabbc63f239f9c51ef792f9a8e536f516266bd0c79a5ab05ed38b4
3
+ metadata.gz: 4b5f241d83e9591db56a0c1021eb2544bf701ba2ddb0c0a47f257fa6797bafbf
4
+ data.tar.gz: 98f0be44ed8abf5b4af0ef24da0e9c4e095956b24038726dabf369ad2051860a
5
5
  SHA512:
6
- metadata.gz: ac1a42bcc81cfdabfdb7b8af603f4992c273cf14ac58b974d03ec0e1cec4f997234e4a80ddd5bdfee016448c354c4f5e3b6fafff66282922b51e9fce8c94f609
7
- data.tar.gz: c728063369dd04a29c30fa13a98a15c47ecf896b49ab920091c70dfebecc054c9df7a21674069e3873de628884a31e020bc33f0c64bfd156dca7206de92ef578
6
+ metadata.gz: '08de40d305155c09dab3a0e513fa53bc06e11cd7c848a21104ff5dae158d4b09d13957ce1c697fec98291d98e9ef1db4b88e497d04c60664010edbf3ca0a8180'
7
+ data.tar.gz: 7b781e2547614126578f134adf0aab7465a0ecc79fa27b1cd34fbe54716019ec740327f94044861478d13c5e2bcf39fa0ebcb68a736a2b56ec0aa636364bbdbd
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 3.4.5
1
+ 3.4.6
data/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ # [0.1.16] - 2025-10-15
2
+
3
+ - Improve manifest processing performance by memoizing ManifestBase#hash
4
+ - Add Manifest::Type#type_symbol and memoize it
5
+
1
6
  # [0.1.15] - 2025-10-02
2
7
 
3
8
  - Make some more methods private
@@ -146,15 +146,19 @@ module Foobara
146
146
  end
147
147
 
148
148
  def ==(other)
149
- other.class == self.class && other.path.map(&:to_sym) == path.map(&:to_sym)
149
+ other.class == self.class && other.symbol_path == symbol_path
150
150
  end
151
151
 
152
152
  def eql?(other)
153
153
  self == other
154
154
  end
155
155
 
156
+ def symbol_path
157
+ @symbol_path ||= path.map(&:to_sym)
158
+ end
159
+
156
160
  def hash
157
- [root_manifest, path.map(&:to_sym)].hash
161
+ @hash ||= [self.class, symbol_path].hash
158
162
  end
159
163
  end
160
164
  end
@@ -66,6 +66,10 @@ module Foobara
66
66
  scoped_name
67
67
  end
68
68
 
69
+ def type_symbol
70
+ scoped_full_name.to_sym
71
+ end
72
+
69
73
  def full_type_name
70
74
  scoped_full_name
71
75
  end
@@ -28,6 +28,10 @@ module Foobara
28
28
  sensitive || sensitive_exposed
29
29
  end
30
30
 
31
+ def type_symbol
32
+ to_type.type_symbol
33
+ end
34
+
31
35
  # rubocop:disable Naming/MemoizedInstanceVariableName
32
36
  # TODO: create an Attribute class to encapsulate this situation
33
37
  def attribute?
data/version.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  module Foobara
2
2
  module Version
3
- VERSION = "0.1.15".freeze
3
+ VERSION = "0.1.16".freeze
4
4
  MINIMUM_RUBY_VERSION = ">= 3.4.0".freeze
5
5
  end
6
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: foobara
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.15
4
+ version: 0.1.16
5
5
  platform: ruby
6
6
  authors:
7
7
  - Miles Georgi