Module: Ruwi::Utils::Objects

Defined in:
lib/ruwi/runtime/utils/objects.rb

Class Method Summary collapse

Class Method Details

.diff(old_obj, new_obj) ⇒ Hash

Parameters:

  • old_obj (Hash)
  • new_obj (Hash)

Returns:

  • (Hash)


11
12
13
14
15
16
17
18
19
20
# File 'lib/ruwi/runtime/utils/objects.rb', line 11

def diff(old_obj, new_obj)
  old_keys = old_obj.keys
  new_keys = new_obj.keys

  {
    added: new_keys.select { |key| !old_obj.key?(key) },
    removed: old_keys.select { |key| !new_obj.key?(key) },
    updated: new_keys.select { |key| old_obj.key?(key) && old_obj[key] != new_obj[key] }
  }
end

.has_own_property(obj, prop) ⇒ Boolean

Check if an object has its own property (not inherited)

Parameters:

  • obj (Hash, Object)

    The object to check

  • prop (Symbol, String)

    The property name to check

Returns:

  • (Boolean)

    true if the object has the property



26
27
28
29
30
31
32
33
34
# File 'lib/ruwi/runtime/utils/objects.rb', line 26

def has_own_property(obj, prop)
  case obj
  when Hash
    obj.key?(prop)
  else
    # For other objects, check if it's an instance variable
    obj.instance_variable_defined?("@#{prop}")
  end
end