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)