module ObservableObject::DeepWrap
Constants
- NonWrappable
Public Class Methods
is_unwrappable(elem)
click to toggle source
# File lib/observable_object.rb, line 25 def self.is_unwrappable(elem) NonWrappable.any? { |t| elem.is_a?(t) } end
map_obj(obj,notifier)
click to toggle source
# File lib/observable_object.rb, line 15 def self.map_obj(obj,notifier) case obj when Array then obj.map { |x| wrap_elem(x,notifier) } when Set then obj.clone.map! { |x| wrap_elem(x,notifier) } when Hash then obj.map { |k,v| [ k, wrap_elem(v,notifier) ] }.to_h else obj end end
wrap_elem(elem,notifier)
click to toggle source
# File lib/observable_object.rb, line 28 def self.wrap_elem(elem,notifier) is_unwrappable(elem) ? elem : Wrapper.new(elem,:detect,true,notifier) end