ree 1.2.7 → 1.2.9

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: c6f558ae43347082febc5e6f30be8afe0ec5340423b9e2cca23d9b412139ab4e
4
- data.tar.gz: 5a1dddb63ed9e12178ff17c3150eb8910fb29b63c564d78302dddf77dcc679a0
3
+ metadata.gz: de6715c1964888c0f86b25091de6b5ebf5f4e98bd58bf5f2834fad7ccde51d7f
4
+ data.tar.gz: 8504c2530d359f0a42ffc4e9c5099d209b6c56015edb5b0611acf08f40f8b25e
5
5
  SHA512:
6
- metadata.gz: f0f8936853687e6facfd21ea46bea355f593b6cf570ac20c6c3406e1764463432623664c829d207bc2e1ccd241baf4e99efc0e409518e596cfcbf5a20af4488a
7
- data.tar.gz: 5950203f5babaf701bd5a9c48e9e51fabda3844f9e7645f0912fcd98f1cb109c488211c39119f6af1bcb918c8c34c2e74c8d55e933cc8aabe046dd94c0013fdd
6
+ metadata.gz: 7d734ade6264c85f2f868bd65244ca9eec0f16d5e02973cb1a8be29553adee16595895a9f6998f38a07d3ce30f2b264327b4754c3bc8ad20fe27ccc80b4257e9
7
+ data.tar.gz: 3e847b8c19a32df59eef05cb1000c9fc117da80c56d3d5b77f122e1d9a46d85d14f8627deba3a81c0930bd2a406939e36469b380cc5cbc47b59014184b17338a
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ree (1.2.7)
4
+ ree (1.2.9)
5
5
  base64
6
6
  commander (~> 5.0.0)
7
7
  logger (~> 1.6.5)
@@ -29,6 +29,7 @@ class Ree::BenchmarkMethodPlugin
29
29
  def build_entry_point_wrapper(benchmark_name, config)
30
30
  output_proc = config[:output] || ->(res) { $stdout.puts(res) }
31
31
  deep = config.fetch(:deep, true)
32
+ hide_ree_lib = config.fetch(:hide_ree_lib, true)
32
33
  once = config.fetch(:once, false)
33
34
  benchmark_done = false
34
35
 
@@ -43,7 +44,7 @@ class Ree::BenchmarkMethodPlugin
43
44
  end
44
45
  else
45
46
  benchmark_done = true if once
46
- Ree::BenchmarkTracer.trace(benchmark_name, output_proc: output_proc, deep: deep) do
47
+ Ree::BenchmarkTracer.trace(benchmark_name, output_proc: output_proc, deep: deep, hide_ree_lib: hide_ree_lib) do
47
48
  next_layer.call(*args, **kwargs, &block)
48
49
  end
49
50
  end
@@ -7,7 +7,7 @@ class Ree::BenchmarkTracer
7
7
 
8
8
  class << self
9
9
  # Entry point trace — starts collection, outputs when root completes
10
- def trace(name, output_proc: nil, deep: true)
10
+ def trace(name, output_proc: nil, deep: true, hide_ree_lib: true)
11
11
  stack = Thread.current[THREAD_KEY] ||= []
12
12
  node = Node.new(name, Process.clock_gettime(Process::CLOCK_MONOTONIC), nil, [])
13
13
  stack.last.children.push(node) if stack.last
@@ -24,9 +24,9 @@ class Ree::BenchmarkTracer
24
24
  Thread.current[THREAD_KEY] = nil
25
25
 
26
26
  if output_proc
27
- output_proc.call(format_tree(node, deep: deep))
27
+ output_proc.call(format_tree(node, deep: deep, hide_ree_lib: hide_ree_lib))
28
28
  else
29
- $stdout.puts(format_tree(node, deep: deep))
29
+ $stdout.puts(format_tree(node, deep: deep, hide_ree_lib: hide_ree_lib))
30
30
  end
31
31
  end
32
32
  end
@@ -60,21 +60,32 @@ class Ree::BenchmarkTracer
60
60
 
61
61
  # Format tree as a string
62
62
  # deep: false → only root node, deep: true → full tree
63
- def format_tree(node, deep: true)
63
+ def format_tree(node, deep: true, hide_ree_lib: true)
64
64
  lines = []
65
- build_tree_lines(node, 0, lines, deep: deep)
65
+ build_tree_lines(node, 0, lines, deep: deep, hide_ree_lib: hide_ree_lib)
66
66
  lines.join("\n")
67
67
  end
68
68
 
69
69
  private
70
70
 
71
- def build_tree_lines(node, depth, lines, deep: true)
72
- indent = " " * depth
73
- duration_ms = (node.duration * 1000).round(2)
74
- lines << "#{indent}#{node.name} (#{duration_ms}ms)"
71
+ def build_tree_lines(node, depth, lines, deep: true, hide_ree_lib: true)
72
+ # Check if this node should be filtered (ree_ package)
73
+ should_filter = hide_ree_lib && node.name.start_with?('ree_')
75
74
 
76
- if deep
77
- node.children.each { |child| build_tree_lines(child, depth + 1, lines) }
75
+ if should_filter
76
+ # Skip this node but process its children at the current depth (promote them)
77
+ if deep
78
+ node.children.each { |child| build_tree_lines(child, depth, lines, deep: deep, hide_ree_lib: hide_ree_lib) }
79
+ end
80
+ else
81
+ # Normal path: show this node
82
+ indent = " " * depth
83
+ duration_ms = (node.duration * 1000).round(2)
84
+ lines << "#{indent}#{node.name} (#{duration_ms}ms)"
85
+
86
+ if deep
87
+ node.children.each { |child| build_tree_lines(child, depth + 1, lines, deep: deep, hide_ree_lib: hide_ree_lib) }
88
+ end
78
89
  end
79
90
  end
80
91
  end
@@ -170,15 +170,16 @@ class Ree::ObjectDsl
170
170
  @object.set_after_init(method_name)
171
171
  end
172
172
 
173
- def benchmark(once: false, deep: true, output: -> (res) { $stdout.puts(res) })
173
+ def benchmark(once: false, deep: true, hide_ree_lib: true, output: -> (res) { $stdout.puts(res) })
174
174
  if !@object.fn?
175
175
  raise_error("`benchmark` is only available for fn objects")
176
176
  end
177
177
 
178
178
  check_bool(once, :once)
179
179
  check_bool(deep, :deep)
180
+ check_bool(hide_ree_lib, :hide_ree_lib)
180
181
 
181
- config = { once: once, deep: deep, output: output }
182
+ config = { once: once, deep: deep, hide_ree_lib: hide_ree_lib, output: output }
182
183
  @object.set_benchmark_config(config)
183
184
 
184
185
  @object.klass.instance_variable_set(:@__ree_benchmark_config, config)
@@ -101,8 +101,6 @@ class Ree::SpecRunner::Runner
101
101
  print_message("#{failed_count} of #{total_count} packages failed:")
102
102
  print_message(failed.map(&:package_name))
103
103
  print_message("\n")
104
-
105
- exit(1)
106
104
  end
107
105
  end
108
106
 
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.7"
4
+ VERSION = "1.2.9"
5
5
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ree
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.7
4
+ version: 1.2.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ruslan Gatiyatov
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2026-02-09 00:00:00.000000000 Z
10
+ date: 2026-02-10 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: commander