Module: Mayu::Utils
- Extended by:
- T::Sig
- Defined in:
- lib/mayu/utils.rb
Defined Under Namespace
Classes: DeepDuper, DeepFreezer
Class Method Summary
collapse
Class Method Details
.deep_dup(obj) ⇒ Object
110
111
112
|
# File 'lib/mayu/utils.rb', line 110
def self.deep_dup(obj)
DeepDuper.new(obj).deep_dup
end
|
.deep_freeze(obj) ⇒ Object
101
102
103
|
# File 'lib/mayu/utils.rb', line 101
def self.deep_freeze(obj)
DeepFreezer.new(obj).deep_freeze
end
|
.flatten_props(hash, path = []) ⇒ Object
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
# File 'lib/mayu/utils.rb', line 25
def self.flatten_props(hash, path = [])
hash.reduce({}) do |obj, (k, v)|
next obj.merge(style: v) if k == :style && path.empty?
current_path = [*path, k]
obj.merge(
case v
when Hash
flatten_props(v, current_path)
else
{ current_path.join("_").to_sym => v }
end
)
end
end
|
.measure_time(unit = :float_millisecond, &block) ⇒ Object
13
14
15
16
17
|
# File 'lib/mayu/utils.rb', line 13
def self.measure_time(unit = :float_millisecond, &block)
start = monotonic_now
yield
monotonic_now - start
end
|
.monotonic_now(unit = :float_millisecond) ⇒ Object
8
9
10
|
# File 'lib/mayu/utils.rb', line 8
def self.monotonic_now(unit = :float_millisecond)
Process.clock_gettime(Process::CLOCK_MONOTONIC, unit).to_f
end
|