Module: Minitwin::Utils

Defined in:
lib/minitwin.rb

Overview

Shared utility methods

Class Method Summary collapse

Class Method Details

.ivar_name(name) ⇒ Object

Normalize property name to instance variable name (handles ? suffix)



34
35
36
# File 'lib/minitwin.rb', line 34

def ivar_name(name)
  "@#{name}".delete_suffix("?")
end

.ivar_to_key(ivar) ⇒ Object

Convert instance variable to attribute key symbol



39
40
41
# File 'lib/minitwin.rb', line 39

def ivar_to_key(ivar)
  ivar.to_s.delete_prefix("@").to_sym
end

.traverse_path(obj, path) ⇒ Object

Traverse a nested path on an object



44
45
46
47
# File 'lib/minitwin.rb', line 44

def traverse_path(obj, path)
  path.each { |seg| obj = obj.public_send(seg) }
  obj
end