Class: CharacterSet::RubyFallback::SortedSet

Inherits:
Set
  • Object
show all
Defined in:
lib/character_set/ruby_fallback/vendored_set_classes.rb

Overview

sorted_set without rbtree dependency, vendored from github.com/ruby/set/blob/72f08c4/lib/set.rb#L731-L800

Constant Summary

Constants inherited from Set

CharacterSet::RubyFallback::Set::Set

Instance Method Summary collapse

Methods inherited from Set

#&, #-, #<=>, #==, [], #^, #add?, #classify, #delete?, #disjoint?, #divide, #empty?, #eql?, #hash, #include?, #initialize_clone, #initialize_dup, #intersect?, #proper_subset?, #proper_superset?, #reject!, #select!, #size, #subset?, #subtract, #superset?, #|

Constructor Details

#initialize(*args) ⇒ SortedSet

Returns a new instance of SortedSet.



327
328
329
330
# File 'lib/character_set/ruby_fallback/vendored_set_classes.rb', line 327

def initialize(*args)
  @keys = nil
  super
end

Instance Method Details

#add(o) ⇒ Object Also known as: <<



337
338
339
340
# File 'lib/character_set/ruby_fallback/vendored_set_classes.rb', line 337

def add(o)
  @keys = nil
  super
end

#clearObject



332
333
334
335
# File 'lib/character_set/ruby_fallback/vendored_set_classes.rb', line 332

def clear
  @keys = nil
  super
end

#delete(o) ⇒ Object



343
344
345
346
347
# File 'lib/character_set/ruby_fallback/vendored_set_classes.rb', line 343

def delete(o)
  @keys = nil
  @hash.delete(o)
  self
end

#delete_ifObject



349
350
351
352
353
354
355
# File 'lib/character_set/ruby_fallback/vendored_set_classes.rb', line 349

def delete_if
  block_given? or return enum_for(__method__) { size }
  n = @hash.size
  super
  @keys = nil if @hash.size != n
  self
end

#each(&block) ⇒ Object



370
371
372
373
374
# File 'lib/character_set/ruby_fallback/vendored_set_classes.rb', line 370

def each(&block)
  block or return enum_for(__method__) { size }
  to_a.each(&block)
  self
end

#freezeObject



381
382
383
384
# File 'lib/character_set/ruby_fallback/vendored_set_classes.rb', line 381

def freeze
  to_a
  super
end

#keep_ifObject



357
358
359
360
361
362
363
# File 'lib/character_set/ruby_fallback/vendored_set_classes.rb', line 357

def keep_if
  block_given? or return enum_for(__method__) { size }
  n = @hash.size
  super
  @keys = nil if @hash.size != n
  self
end

#merge(enum) ⇒ Object



365
366
367
368
# File 'lib/character_set/ruby_fallback/vendored_set_classes.rb', line 365

def merge(enum)
  @keys = nil
  super
end

#to_aObject



376
377
378
379
# File 'lib/character_set/ruby_fallback/vendored_set_classes.rb', line 376

def to_a
  (@keys = @hash.keys).sort! unless @keys
  @keys.dup
end