File: ruby_fallback.rb

package info (click to toggle)
ruby-character-set 1.8.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 416 kB
  • sloc: ansic: 2,597; ruby: 1,290; makefile: 7; sh: 4
file content (35 lines) | stat: -rw-r--r-- 1,143 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
require 'character_set/ruby_fallback/set_methods'
require 'character_set/ruby_fallback/character_set_methods'

class CharacterSet
  module RubyFallback
    include CharacterSet::RubyFallback::SetMethods
    include CharacterSet::RubyFallback::CharacterSetMethods

    def self.prepended(klass)
      klass.extend CharacterSet::RubyFallback::CharacterSetMethods::ClassMethods
    end

    def initialize(enum = [])
      @__set = CharacterSet::RubyFallback::SortedSet.new
      super
    end
  end
end

if RUBY_PLATFORM[/java/i]
  # JRuby has sorted_set in the stdlib.
  require 'set'
  CharacterSet::RubyFallback::Set       = ::Set
  CharacterSet::RubyFallback::SortedSet = ::SortedSet
else
  # For other rubies, set/sorted_set are vendored due to dependency issues:
  #
  # - issues with default vs. installed gems such as [#2]
  # - issues with the sorted_set dependency rb_tree
  # - long-standing issues in recent versions of sorted_set
  #
  # The RubyFallback, and thus these set classes, are only used for testing,
  # and for exotic rubies which use neither C nor Java.
  require 'character_set/ruby_fallback/vendored_set_classes'
end