template_class 1.2.2 → 1.3.1

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: 735dddf04d44a0c4c68d440b9bd03cce3492a2fc1cd9a3ebad7c5c45693ab105
4
- data.tar.gz: 769971cbd1122fbc11ac80e587bef01d76fc1a4c24708747d9978f5956fc609a
3
+ metadata.gz: 04740d36a74ebb180403184fef5051bd82e84fb3d1a541b6dce8975085978488
4
+ data.tar.gz: 1f6ddba16c05a876d6f7b5f9a49ffc30c99f7b1058b6d3a2642011ddad0f5fd4
5
5
  SHA512:
6
- metadata.gz: b317516970986d38dc1e8f637ea481c861a6e9d54f0de880fddcac129a74b857431177dcbdd7df10ec52861e13e9450e911bfde2ab06a58fe55063b79d898451
7
- data.tar.gz: 4f387baf8ab79ff206af4222df6cdb481af980a1283e6cc76343bb35fd5cc65f2a47a37786ae3a144acd609fc219de95ace09d29b4dd2e8415b17d4581309861
6
+ metadata.gz: 8db3d00ddbbb8e36a86620a9dd52a02668b4add6e123261dd07378aed837afb8ad7548f22c2ffee8c89cbec514de86d0dcdaf4bfbc4fe1058fb3e578e76229cd
7
+ data.tar.gz: 5fdc220273cc821b670c32531e45a97a5c35623721f63f93053fd6dcce0469ae47683fd192481add55edde420e1d6ea6d40e5f513ff605cfe58a81d75129de52
data/CHANGELOG.md CHANGED
@@ -8,6 +8,18 @@
8
8
  ### Bug fixes
9
9
  )-->
10
10
 
11
+ ## 1.3.1 2025-02-21
12
+
13
+ ### Bug fixes
14
+
15
+ - Make the overrides of `to_s` and `inspect` of specializations return the name of the class in case it has one. Before, they would return the C++ style name even if the class/module had its own name.
16
+
17
+ ## 1.3.0 2025-02-17
18
+
19
+ ### New features
20
+
21
+ - Allow for template classes to create instances with `new`.
22
+
11
23
  ## 1.2.2 2025-01-29
12
24
 
13
25
  ### Bug fixes
data/README.md CHANGED
@@ -26,7 +26,7 @@ gem install template_class
26
26
 
27
27
  ## Usage
28
28
 
29
- Include `TemplateClass::Template` in the class or module you want to make into a template. You can't make instances of a template; instead, you need to *specialize* it to some parameter. By default, any new specialization is an empty class. To define how a specialization is defined from a parameter, call `resolve_template_specialization`. The block you pass will be yielded the parameter that's specializing the template and a class constructor that makes it possible to recursively use the new specialization.
29
+ Include `TemplateClass::Template` in the class or module you want to make into a template. You can still make instances of a template, but you are expected to *specialize* it to some parameter. By default, any new specialization is an empty class. To define how a specialization is defined from a parameter, call `resolve_template_specialization`. The block you pass will be yielded the parameter that's specializing the template and a class constructor that makes it possible to recursively use the new specialization.
30
30
 
31
31
  ```ruby
32
32
  class List
@@ -12,7 +12,6 @@ module TemplateClass
12
12
  instance_accessor: false
13
13
 
14
14
  singleton_class.delegate :[], :[]=, to: :cache
15
- singleton_class.undef_method :new
16
15
  end
17
16
 
18
17
  class CacheClassConstructor
@@ -33,7 +32,11 @@ module TemplateClass
33
32
  outer_self = self
34
33
 
35
34
  klass.define_singleton_method :to_s do
36
- "#{outer_self.owner}<#{outer_self.key}>"
35
+ if respond_to?(:anonymous?) ? anonymous? : name.nil?
36
+ "#{outer_self.owner}<#{outer_self.key}>"
37
+ else
38
+ super()
39
+ end
37
40
  end
38
41
 
39
42
  klass.singleton_class.alias_method :inspect, :to_s
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module TemplateClass
4
- VERSION = '1.2.2'
4
+ VERSION = '1.3.1'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: template_class
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.2
4
+ version: 1.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Moku S.r.l.
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2025-01-29 00:00:00.000000000 Z
12
+ date: 2025-02-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport