Module: TT::Attributes

Defined in:
TT_Lib2/attributes.rb

Overview

Collection of AttributeDictionary methods.

Since:

  • 2.5.0

Class Method Summary collapse

Class Method Details

.dictionaries_equal?(dictionaries1, dictionaries2) ⇒ Boolean

Compare two AttributeDictionaries objects.

Parameters:

  • dictionaries1 (Sketchup::AttributeDictionaries)
  • dictionaries2 (Sketchup::AttributeDictionaries)

Returns:

  • (Boolean)

Since:

  • 2.5.0



22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'TT_Lib2/attributes.rb', line 22

def self.dictionaries_equal?( dictionaries1, dictionaries2 )
  if dictionaries1.nil? || dictionaries2.nil?
    if dictionaries1.nil? && dictionaries2.nil?
      return true
    else
      return false
    end
  end
  for dictionary in dictionaries1
    return false unless d = dictionaries2[ dictionary.name ]
    return false unless self.dictionary_equal?( dictionary, d, false )
  end
  return true
end

.dictionary_equal?(dictionary1, dictionary2, compare_name = true) ⇒ Boolean

Compare two AttributeDictionary objects. By defaults their names must match, but one can set compare_name to false to only compare their content.

Parameters:

  • dictionary1 (Sketchup::AttributeDictionary)
  • dictionary2 (Sketchup::AttributeDictionary)
  • compare_name (Boolean) (defaults to: true)

Returns:

  • (Boolean)

Since:

  • 2.5.0



48
49
50
51
52
53
54
55
56
57
58
# File 'TT_Lib2/attributes.rb', line 48

def self.dictionary_equal?( dictionary1, dictionary2, compare_name = true )
  if compare_name
    return false unless dictionary1.name == dictionary2.name
  end
  return false unless dictionary1.length == dictionary2.length
  return false unless dictionary1.keys == dictionary2.keys
  for key in dictionary1.keys
    return false unless dictionary1[key] == dictionary2[key]
  end
  return true
end