ree 1.2.9 → 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: de6715c1964888c0f86b25091de6b5ebf5f4e98bd58bf5f2834fad7ccde51d7f
4
- data.tar.gz: 8504c2530d359f0a42ffc4e9c5099d209b6c56015edb5b0611acf08f40f8b25e
3
+ metadata.gz: 8b89ddc506fc7b0efeb7e6019a31f325b3896b46ce0096c54a7f068f77b7659f
4
+ data.tar.gz: 492df94aead33935edbb38e3532e6675354ab819207d236ba2b5c7efbea34a51
5
5
  SHA512:
6
- metadata.gz: 7d734ade6264c85f2f868bd65244ca9eec0f16d5e02973cb1a8be29553adee16595895a9f6998f38a07d3ce30f2b264327b4754c3bc8ad20fe27ccc80b4257e9
7
- data.tar.gz: 3e847b8c19a32df59eef05cb1000c9fc117da80c56d3d5b77f122e1d9a46d85d14f8627deba3a81c0930bd2a406939e36469b380cc5cbc47b59014184b17338a
6
+ metadata.gz: 2c724eb347845ec31010d0c1822cf7ddc2b9005110823fb28bb5185ceaeedef7369691e4274ba437f3383e4f36438d49069fa66c503f6fdaf5d3ce91ca130ffc
7
+ data.tar.gz: 3d6493a9b8e968db421ca54434d885e60f837516797214b140bfbc5f5c27cf55b56fae39af19566ad4829a8404fd1fc851d136b570d281200d9828179be10be0
data/.rubocop.yml CHANGED
@@ -1,5 +1,5 @@
1
1
  AllCops:
2
- TargetRubyVersion: 2.6
2
+ TargetRubyVersion: 4.0
3
3
 
4
4
  Style/StringLiterals:
5
5
  Enabled: true
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 3.4.1
1
+ 4.0.1
data/CHANGELOG.md CHANGED
@@ -1,5 +1,7 @@
1
1
  ## [Unreleased]
2
2
 
3
+ - Added `on_link` hook to `ObjectDsl`
4
+
3
5
  ## [1.1.2] - 2025-05-14
4
6
 
5
7
  - Forward compatibility fixes for ruby 3.4
data/Gemfile.lock CHANGED
@@ -1,10 +1,10 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ree (1.2.9)
4
+ ree (1.3.1)
5
5
  base64
6
- commander (~> 5.0.0)
7
- logger (~> 1.6.5)
6
+ commander
7
+ logger
8
8
 
9
9
  GEM
10
10
  remote: https://rubygems.org/
@@ -12,40 +12,53 @@ GEM
12
12
  base64 (0.3.0)
13
13
  commander (5.0.0)
14
14
  highline (~> 3.0.0)
15
- debug (1.9.1)
15
+ date (3.5.1)
16
+ debug (1.11.1)
16
17
  irb (~> 1.10)
17
18
  reline (>= 0.3.8)
18
- diff-lcs (1.5.0)
19
+ diff-lcs (1.6.2)
20
+ erb (6.0.1)
19
21
  highline (3.0.1)
20
- io-console (0.7.2)
21
- irb (1.11.1)
22
- rdoc
22
+ io-console (0.8.2)
23
+ irb (1.17.0)
24
+ pp (>= 0.6.0)
25
+ prism (>= 1.3.0)
26
+ rdoc (>= 4.0.0)
23
27
  reline (>= 0.4.2)
24
- logger (1.6.5)
25
- psych (5.1.2)
28
+ logger (1.7.0)
29
+ pp (0.6.3)
30
+ prettyprint
31
+ prettyprint (0.2.0)
32
+ prism (1.9.0)
33
+ psych (5.3.1)
34
+ date
26
35
  stringio
27
- rake (13.1.0)
28
- rdoc (6.6.2)
36
+ rake (13.3.1)
37
+ rdoc (7.2.0)
38
+ erb
29
39
  psych (>= 4.0.0)
30
- reline (0.4.2)
40
+ tsort
41
+ reline (0.6.3)
31
42
  io-console (~> 0.5)
32
- rspec (3.12.0)
33
- rspec-core (~> 3.12.0)
34
- rspec-expectations (~> 3.12.0)
35
- rspec-mocks (~> 3.12.0)
36
- rspec-core (3.12.2)
37
- rspec-support (~> 3.12.0)
38
- rspec-expectations (3.12.3)
43
+ rspec (3.13.2)
44
+ rspec-core (~> 3.13.0)
45
+ rspec-expectations (~> 3.13.0)
46
+ rspec-mocks (~> 3.13.0)
47
+ rspec-core (3.13.6)
48
+ rspec-support (~> 3.13.0)
49
+ rspec-expectations (3.13.5)
39
50
  diff-lcs (>= 1.2.0, < 2.0)
40
- rspec-support (~> 3.12.0)
41
- rspec-mocks (3.12.6)
51
+ rspec-support (~> 3.13.0)
52
+ rspec-mocks (3.13.7)
42
53
  diff-lcs (>= 1.2.0, < 2.0)
43
- rspec-support (~> 3.12.0)
44
- rspec-support (3.12.1)
45
- stringio (3.1.0)
54
+ rspec-support (~> 3.13.0)
55
+ rspec-support (3.13.7)
56
+ stringio (3.2.0)
57
+ tsort (0.2.0)
46
58
 
47
59
  PLATFORMS
48
60
  arm64-darwin-21
61
+ arm64-darwin-24
49
62
  x86_64-darwin-19
50
63
  x86_64-darwin-21
51
64
  x86_64-darwin-22
@@ -59,4 +72,4 @@ DEPENDENCIES
59
72
  rspec (~> 3.0)
60
73
 
61
74
  BUNDLED WITH
62
- 2.5.4
75
+ 4.0.6
@@ -5,7 +5,7 @@ class Ree::Object
5
5
  :package_name, :factory, :after_init,
6
6
  :class_name, :links, :mount_as, :freeze,
7
7
  :errors, :linked_const_list, :compiled_frozen,
8
- :singleton, :tags, :target, :with_caller,
8
+ :singleton, :tags, :target, :with_caller, :on_link,
9
9
  :benchmark_config
10
10
 
11
11
  # @param [Symbol] name Object name
@@ -27,6 +27,7 @@ class Ree::Object
27
27
  @linked_const_list = []
28
28
  @tags = []
29
29
  @benchmark_config = nil
30
+ @on_link = nil
30
31
  end
31
32
 
32
33
  def reset
@@ -42,6 +43,7 @@ class Ree::Object
42
43
  @errors = []
43
44
  @linked_const_list = []
44
45
  @benchmark_config = nil
46
+ @on_link = nil
45
47
  end
46
48
 
47
49
  # @param [ArrayOf[String]] list List of imported constants, modules and classes
@@ -168,4 +170,9 @@ class Ree::Object
168
170
  @tags += list
169
171
  @tags.uniq!
170
172
  end
171
- end
173
+
174
+ # @param [Proc, nil] block
175
+ def set_on_link(block)
176
+ @on_link = block
177
+ end
178
+ end
@@ -134,6 +134,11 @@ class Ree::ObjectDsl
134
134
  @object.set_as_with_caller
135
135
  end
136
136
 
137
+ # @param [Proc] block
138
+ def on_link(&block)
139
+ @object.set_on_link(block)
140
+ end
141
+
137
142
  # @param [Symbol] method_name
138
143
  def factory(method_name)
139
144
  if !@object.object?
data/lib/ree/link_dsl.rb CHANGED
@@ -125,6 +125,10 @@ module Ree::LinkDSL
125
125
  elsif target == :object
126
126
  mount_obj(obj, link_as, false)
127
127
  end
128
+
129
+ obj.on_link&.call(self)
130
+
131
+ nil
128
132
  end
129
133
 
130
134
  def mount_obj(obj, link_as, mount_self)
@@ -168,6 +168,8 @@ class Ree::ObjectCompiler
168
168
  if !obj.compiled?
169
169
  self.call(obj.package_name, obj.name)
170
170
  end
171
+
172
+ obj.on_link&.call(klass)
171
173
  end
172
174
 
173
175
  object
data/lib/ree/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Ree
4
- VERSION = "1.2.9"
4
+ VERSION = "1.3.1"
5
5
  end
metadata CHANGED
@@ -1,42 +1,42 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ree
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.9
4
+ version: 1.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ruslan Gatiyatov
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2026-02-10 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: commander
14
14
  requirement: !ruby/object:Gem::Requirement
15
15
  requirements:
16
- - - "~>"
16
+ - - ">="
17
17
  - !ruby/object:Gem::Version
18
- version: 5.0.0
18
+ version: '0'
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
- - - "~>"
23
+ - - ">="
24
24
  - !ruby/object:Gem::Version
25
- version: 5.0.0
25
+ version: '0'
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: logger
28
28
  requirement: !ruby/object:Gem::Requirement
29
29
  requirements:
30
- - - "~>"
30
+ - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: 1.6.5
32
+ version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
35
  version_requirements: !ruby/object:Gem::Requirement
36
36
  requirements:
37
- - - "~>"
37
+ - - ">="
38
38
  - !ruby/object:Gem::Version
39
- version: 1.6.5
39
+ version: '0'
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: base64
42
42
  requirement: !ruby/object:Gem::Requirement
@@ -236,14 +236,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
236
236
  requirements:
237
237
  - - ">="
238
238
  - !ruby/object:Gem::Version
239
- version: '3.1'
239
+ version: '3.4'
240
240
  required_rubygems_version: !ruby/object:Gem::Requirement
241
241
  requirements:
242
242
  - - ">="
243
243
  - !ruby/object:Gem::Version
244
244
  version: '0'
245
245
  requirements: []
246
- rubygems_version: 3.6.2
246
+ rubygems_version: 4.0.3
247
247
  specification_version: 4
248
248
  summary: Ruby framework to create modular applications
249
249
  test_files: []