lib/wx/core/enum.rb in wxruby3-1.3.0 vs lib/wx/core/enum.rb in wxruby3-1.3.1

- old
+ new

@@ -8,13 +8,26 @@ class Wx::Enum class << self - def enumerators + def set_non_distinct(lst) + raise TypeError, 'Expected Array of Symbols' unless lst.is_a?(Array) && lst.all? { |e| e.is_a?(Symbol) } + @non_distinct = lst + end + alias :non_distinct= :set_non_distinct + + def non_distinct + @non_distinct || [] + end + + def enumerators(excludes = nil) + excludes ||= self.non_distinct self.constants(false).inject({}) do |tbl, cn| - cv = self.const_get(cn) - tbl[cv.to_i] = cn if self === cv + unless excludes&.include?(cn) + cv = self.const_get(cn) + tbl[cv.to_i] = cn if self === cv + end tbl end end def [](enum_name)