diff options
| author | naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-12-04 08:09:44 +0000 |
|---|---|---|
| committer | naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-12-04 08:09:44 +0000 |
| commit | 5bea08f7b7f3007bd60f9895603779b58238cb31 (patch) | |
| tree | fce260b670515f356a94d399fe97853b65ae1268 /lib/json/pure.rb | |
| parent | 6a51d5ebcb5d907d975e4c9a9803d4df6df4b46d (diff) | |
| download | ruby-5bea08f7b7f3007bd60f9895603779b58238cb31.tar.gz ruby-5bea08f7b7f3007bd60f9895603779b58238cb31.tar.xz ruby-5bea08f7b7f3007bd60f9895603779b58238cb31.zip | |
* lib/json.rb, lib/json/*: moved to ext/json/lib.
--
M trunk/ChangeLog
D trunk/lib/json
D trunk/lib/json.rb
A trunk/ext/json/lib
A trunk/ext/json/lib/json
A trunk/ext/json/lib/json.rb
A trunk/ext/json/extconf.rb
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@14100 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/json/pure.rb')
| -rw-r--r-- | lib/json/pure.rb | 75 |
1 files changed, 0 insertions, 75 deletions
diff --git a/lib/json/pure.rb b/lib/json/pure.rb deleted file mode 100644 index b86d90552..000000000 --- a/lib/json/pure.rb +++ /dev/null @@ -1,75 +0,0 @@ -require 'json/common' -require 'json/pure/parser' -require 'json/pure/generator' - -module JSON - begin - require 'iconv' - # An iconv instance to convert from UTF8 to UTF16 Big Endian. - UTF16toUTF8 = Iconv.new('utf-8', 'utf-16be') # :nodoc: - # An iconv instance to convert from UTF16 Big Endian to UTF8. - UTF8toUTF16 = Iconv.new('utf-16be', 'utf-8') # :nodoc: - UTF8toUTF16.iconv('no bom') - rescue Errno::EINVAL, Iconv::InvalidEncoding - # Iconv doesn't support big endian utf-16. Let's try to hack this manually - # into the converters. - begin - old_verbose, $VERBSOSE = $VERBOSE, nil - # An iconv instance to convert from UTF8 to UTF16 Big Endian. - UTF16toUTF8 = Iconv.new('utf-8', 'utf-16') # :nodoc: - # An iconv instance to convert from UTF16 Big Endian to UTF8. - UTF8toUTF16 = Iconv.new('utf-16', 'utf-8') # :nodoc: - UTF8toUTF16.iconv('no bom') - if UTF8toUTF16.iconv("\xe2\x82\xac") == "\xac\x20" - swapper = Class.new do - def initialize(iconv) # :nodoc: - @iconv = iconv - end - - def iconv(string) # :nodoc: - result = @iconv.iconv(string) - JSON.swap!(result) - end - end - UTF8toUTF16 = swapper.new(UTF8toUTF16) # :nodoc: - end - if UTF16toUTF8.iconv("\xac\x20") == "\xe2\x82\xac" - swapper = Class.new do - def initialize(iconv) # :nodoc: - @iconv = iconv - end - - def iconv(string) # :nodoc: - string = JSON.swap!(string.dup) - @iconv.iconv(string) - end - end - UTF16toUTF8 = swapper.new(UTF16toUTF8) # :nodoc: - end - rescue Errno::EINVAL, Iconv::InvalidEncoding - raise MissingUnicodeSupport, "iconv doesn't seem to support UTF-8/UTF-16 conversions" - ensure - $VERBOSE = old_verbose - end - rescue LoadError - raise MissingUnicodeSupport, - "iconv couldn't be loaded, which is required for UTF-8/UTF-16 conversions" - end - - # Swap consecutive bytes of _string_ in place. - def self.swap!(string) # :nodoc: - 0.upto(string.size / 2) do |i| - break unless string[2 * i + 1] - string[2 * i], string[2 * i + 1] = string[2 * i + 1], string[2 * i] - end - string - end - - # This module holds all the modules/classes that implement JSON's - # functionality in pure ruby. - module Pure - $DEBUG and warn "Using pure library for JSON." - JSON.parser = Parser - JSON.generator = Generator - end -end |
