ansel_iconv 1.1.6 → 1.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/CHANGELOG.md +3 -0
- data/{MIT-LICENSE → LICENSE} +1 -1
- data/README.md +18 -11
- data/ansel_iconv.gemspec +25 -0
- data/lib/ansel_iconv/converter.rb +14 -13
- data/lib/ansel_iconv/version.rb +1 -1
- metadata +54 -68
- data/Gemfile +0 -2
- data/Gemfile.lock +0 -24
- data/Rakefile +0 -15
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: d593449dba631156ac82a8f1581ea9c769578fd8f74c3c9192157f03625465a4
|
4
|
+
data.tar.gz: fbaa3bb8e75684b9539d6140f634d1013bfbda5320c85b8b0bd0105015fedded
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 034c69a1ba0621b2b0c4da10796d5b80d9c25582d0a03d2366ebf52848e099231663371a9ea1662477b8bb1c64c2a3b3a854f19422a0cafa6a2765641a6df5e3
|
7
|
+
data.tar.gz: 617a594283bf4e8bfc706f0bf8166823372b9ceeba2c3038a286425d20d351ae204ed82dff8c0c9536136a0b69229b817910b7d70e71b38782cc97742b178244
|
data/CHANGELOG.md
CHANGED
data/{MIT-LICENSE → LICENSE}
RENAMED
data/README.md
CHANGED
@@ -1,42 +1,49 @@
|
|
1
1
|
# ANSEL::Iconv
|
2
2
|
|
3
|
+
[](https://rubygems.org/gems/ansel_iconv)
|
4
|
+
[](https://github.com/infused/ansel_iconv)
|
5
|
+
|
6
|
+
|
3
7
|
ANSEL::Iconv is a wrapper for Iconv that adds ANSEL character set conversion.
|
4
8
|
|
5
|
-
Copyright (c) 2006-
|
9
|
+
Copyright (c) 2006-2015 Keith Morrison <mailto:keithm@infused.org>, <http://www.infused.org>
|
6
10
|
|
7
11
|
- Project page: <http://github.com/infused/ansel_iconv>
|
8
|
-
- API Documentation: <http://rubydoc.info/github/infused/ansel_iconv
|
12
|
+
- API Documentation: <http://rubydoc.info/github/infused/ansel_iconv>
|
9
13
|
- Report bugs: <http://github.com/infused/ansel_iconv/issues>
|
10
14
|
- Questions? Email [keithm@infused.org](mailto:keithm@infused.org?subject=ANSEL::Iconv)
|
11
15
|
with ANSEL::Iconv in the subject line
|
12
|
-
|
16
|
+
|
13
17
|
## Compatibility
|
14
18
|
|
15
|
-
ANSEL::Iconv is compatible with Ruby 1.8.6
|
19
|
+
ANSEL::Iconv is compatible with Ruby 1.8.6 and 1.8.7. Ruby must
|
20
|
+
be compiled with iconv support.
|
21
|
+
|
22
|
+
For ANSEL conversion under Ruby 1.9 and higher see my [ANSEL](https://github.com/infused/ansel) gem.
|
16
23
|
|
17
24
|
## Installation
|
18
25
|
|
19
26
|
gem install ansel_iconv
|
20
|
-
|
27
|
+
|
21
28
|
## Basic Usage
|
22
29
|
|
23
|
-
Conversion from ANSEL to any other encoding is fully supported, but you cannot
|
30
|
+
Conversion from ANSEL to any other encoding is fully supported, but you cannot
|
24
31
|
convert to ANSEL from another encoding. Two-way encoding may be added
|
25
32
|
in the future.
|
26
|
-
|
33
|
+
|
27
34
|
require 'ansel_iconv'
|
28
|
-
|
35
|
+
|
29
36
|
# convert ANSEL to UTF-8
|
30
37
|
converter = ANSEL::Iconv.new 'UTF-8'
|
31
38
|
converter.iconv("\xB9\x004.59") # => "£4.59"
|
32
|
-
|
39
|
+
|
33
40
|
You can use ANSEL::Iconv as a replacement for the built-in Iconv, because
|
34
41
|
non-ANSEL conversions are simply passed through to Iconv.
|
35
42
|
|
36
43
|
# convert UTF-8 to UTF-16
|
37
44
|
converter = ANSEL::Iconv.new 'UTF-16', 'UTF-8'
|
38
45
|
converter.iconv("£4.59") # => "\376\377\000\243\0004\000.\0005\0009"
|
39
|
-
|
46
|
+
|
40
47
|
## About the ANSEL character set
|
41
48
|
|
42
49
|
[ANSI/NISO
|
@@ -49,7 +56,7 @@ standard.
|
|
49
56
|
|
50
57
|
## LICENSE:
|
51
58
|
|
52
|
-
Copyright (c) 2006-
|
59
|
+
Copyright (c) 2006-2015 Keith Morrison <keithm@infused.org>
|
53
60
|
|
54
61
|
Permission is hereby granted, free of charge, to any person obtaining
|
55
62
|
a copy of this software and associated documentation files (the
|
data/ansel_iconv.gemspec
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
# encoding: ascii-8bit
|
2
|
+
|
3
|
+
lib = File.expand_path('../lib/', __FILE__)
|
4
|
+
$:.unshift lib unless $:.include?(lib)
|
5
|
+
require 'ansel_iconv/version'
|
6
|
+
|
7
|
+
Gem::Specification.new do |s|
|
8
|
+
s.name = 'ansel_iconv'
|
9
|
+
s.version = ANSEL::Iconv::VERSION
|
10
|
+
s.authors = ["Keith Morrison"]
|
11
|
+
s.email = 'keithm@infused.org'
|
12
|
+
s.homepage = 'http://github.com/infused/ansel_iconv'
|
13
|
+
s.summary = 'Convert ANSEL encoded text'
|
14
|
+
s.description = 'Convert ANSEL encoded text to any other encoding available to Iconv'
|
15
|
+
|
16
|
+
s.rdoc_options = ['--charset=UTF-8']
|
17
|
+
s.extra_rdoc_files = ['README.md', 'CHANGELOG.md', 'LICENSE']
|
18
|
+
s.files = Dir['README.md', 'CHANGELOG.md', 'LICENSE', 'lib/**/*', 'ansel_iconv.gemspec']
|
19
|
+
s.require_paths = ['lib']
|
20
|
+
|
21
|
+
s.required_rubygems_version = '>= 1.3.6'
|
22
|
+
s.add_development_dependency 'rspec', '~> 2.10.0'
|
23
|
+
s.add_development_dependency 'rake', '~> 0.9.2'
|
24
|
+
end
|
25
|
+
|
@@ -3,11 +3,11 @@
|
|
3
3
|
module ANSEL
|
4
4
|
class Convert
|
5
5
|
include ANSEL::CharacterMap
|
6
|
-
|
6
|
+
|
7
7
|
def initialize(to_charset = 'UTF-8')
|
8
8
|
@to_charset = to_charset
|
9
9
|
end
|
10
|
-
|
10
|
+
|
11
11
|
def ansi_to_utf8
|
12
12
|
@ansi_to_utf8 ||= @@non_combining.merge(@@combining)
|
13
13
|
end
|
@@ -18,32 +18,33 @@ module ANSEL
|
|
18
18
|
until scanner.eos? do
|
19
19
|
byte = scanner.get_byte
|
20
20
|
char = byte.unpack('C')[0]
|
21
|
-
|
22
|
-
|
21
|
+
|
22
|
+
case char
|
23
|
+
when 0x00..0x7F
|
23
24
|
output << byte
|
24
|
-
|
25
|
+
when 0x88..0xC8
|
25
26
|
hex_key = char.to_s(16).upcase
|
26
|
-
output << ::Iconv.conv(@to_charset, 'UTF-
|
27
|
+
output << ::Iconv.conv(@to_charset, 'UTF-16BE', ansi_to_utf8[hex_key] || ansi_to_utf8['ERR'])
|
27
28
|
scanner.get_byte # ignore the next byte
|
28
|
-
|
29
|
+
when 0xE0..0xFB
|
29
30
|
[2, 1, 0].each do |n| # try 3 bytes, then 2 bytes, then 1 byte
|
30
31
|
bytes = [char.to_s(16).upcase]
|
31
32
|
scanner.peek(n).each_byte {|b| bytes << b.to_s(16).upcase}
|
32
33
|
hex_key = bytes.join('+')
|
33
|
-
if ansi_to_utf8.has_key?(hex_key)
|
34
|
-
output << ::Iconv.conv(@to_charset, 'UTF-
|
34
|
+
if ansi_to_utf8.has_key?(hex_key)
|
35
|
+
output << ::Iconv.conv(@to_charset, 'UTF-16BE', ansi_to_utf8[hex_key])
|
35
36
|
n.times {scanner.get_byte}
|
36
37
|
break
|
37
38
|
end
|
38
39
|
end
|
39
40
|
else
|
40
|
-
output << ::Iconv.conv(@to_charset, 'UTF-
|
41
|
+
output << ::Iconv.conv(@to_charset, 'UTF-16BE', ansi_to_utf8['ERR'])
|
41
42
|
scanner.get_byte if scanner.get_byte.unpack('C')[0] >= 0xE0 # ignore the next byte
|
42
43
|
end
|
43
44
|
end
|
44
|
-
|
45
|
+
|
45
46
|
@to_charset == 'UTF-8' ? output : ::Iconv.conv(@to_charset, 'UTF-8', output)
|
46
47
|
end
|
47
|
-
|
48
|
+
|
48
49
|
end
|
49
|
-
end
|
50
|
+
end
|
data/lib/ansel_iconv/version.rb
CHANGED
metadata
CHANGED
@@ -1,96 +1,82 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: ansel_iconv
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease: false
|
6
|
-
segments:
|
7
|
-
- 1
|
8
|
-
- 1
|
9
|
-
- 6
|
10
|
-
version: 1.1.6
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.1.7
|
11
5
|
platform: ruby
|
12
|
-
authors:
|
6
|
+
authors:
|
13
7
|
- Keith Morrison
|
14
|
-
autorequire:
|
8
|
+
autorequire:
|
15
9
|
bindir: bin
|
16
10
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
dependencies:
|
21
|
-
- !ruby/object:Gem::Dependency
|
11
|
+
date: 2023-05-30 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
22
14
|
name: rspec
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 2.10.0
|
20
|
+
type: :development
|
23
21
|
prerelease: false
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 2.10.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 0.9.2
|
35
34
|
type: :development
|
36
|
-
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 0.9.2
|
37
41
|
description: Convert ANSEL encoded text to any other encoding available to Iconv
|
38
42
|
email: keithm@infused.org
|
39
43
|
executables: []
|
40
|
-
|
41
44
|
extensions: []
|
42
|
-
|
43
|
-
extra_rdoc_files:
|
45
|
+
extra_rdoc_files:
|
44
46
|
- README.md
|
45
47
|
- CHANGELOG.md
|
46
|
-
-
|
47
|
-
files:
|
48
|
+
- LICENSE
|
49
|
+
files:
|
48
50
|
- CHANGELOG.md
|
49
|
-
-
|
50
|
-
- Gemfile.lock
|
51
|
-
- MIT-LICENSE
|
52
|
-
- Rakefile
|
51
|
+
- LICENSE
|
53
52
|
- README.md
|
53
|
+
- ansel_iconv.gemspec
|
54
|
+
- lib/ansel_iconv.rb
|
54
55
|
- lib/ansel_iconv/character_map.rb
|
55
56
|
- lib/ansel_iconv/converter.rb
|
56
57
|
- lib/ansel_iconv/iconv.rb
|
57
58
|
- lib/ansel_iconv/version.rb
|
58
|
-
- lib/ansel_iconv.rb
|
59
|
-
has_rdoc: true
|
60
59
|
homepage: http://github.com/infused/ansel_iconv
|
61
60
|
licenses: []
|
62
|
-
|
63
|
-
post_install_message:
|
64
|
-
rdoc_options:
|
65
|
-
- --charset=UTF-8
|
66
|
-
require_paths:
|
61
|
+
metadata: {}
|
62
|
+
post_install_message:
|
63
|
+
rdoc_options:
|
64
|
+
- "--charset=UTF-8"
|
65
|
+
require_paths:
|
67
66
|
- lib
|
68
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
69
|
-
|
70
|
-
requirements:
|
67
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
68
|
+
requirements:
|
71
69
|
- - ">="
|
72
|
-
- !ruby/object:Gem::Version
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
version: "0"
|
77
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
78
|
-
none: false
|
79
|
-
requirements:
|
70
|
+
- !ruby/object:Gem::Version
|
71
|
+
version: '0'
|
72
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
80
74
|
- - ">="
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
|
83
|
-
segments:
|
84
|
-
- 1
|
85
|
-
- 3
|
86
|
-
- 0
|
87
|
-
version: 1.3.0
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: 1.3.6
|
88
77
|
requirements: []
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
signing_key:
|
93
|
-
specification_version: 3
|
78
|
+
rubygems_version: 3.4.13
|
79
|
+
signing_key:
|
80
|
+
specification_version: 4
|
94
81
|
summary: Convert ANSEL encoded text
|
95
82
|
test_files: []
|
96
|
-
|
data/Gemfile
DELETED
data/Gemfile.lock
DELETED
@@ -1,24 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
ansel_iconv (1.1.6)
|
5
|
-
|
6
|
-
GEM
|
7
|
-
remote: http://rubygems.org/
|
8
|
-
specs:
|
9
|
-
diff-lcs (1.1.2)
|
10
|
-
rspec (2.3.0)
|
11
|
-
rspec-core (~> 2.3.0)
|
12
|
-
rspec-expectations (~> 2.3.0)
|
13
|
-
rspec-mocks (~> 2.3.0)
|
14
|
-
rspec-core (2.3.1)
|
15
|
-
rspec-expectations (2.3.0)
|
16
|
-
diff-lcs (~> 1.1.2)
|
17
|
-
rspec-mocks (2.3.0)
|
18
|
-
|
19
|
-
PLATFORMS
|
20
|
-
ruby
|
21
|
-
|
22
|
-
DEPENDENCIES
|
23
|
-
ansel_iconv!
|
24
|
-
rspec (~> 2.3.0)
|
data/Rakefile
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
# encoding: ascii-8bit
|
2
|
-
|
3
|
-
require 'rubygems'
|
4
|
-
|
5
|
-
require 'rspec/core/rake_task'
|
6
|
-
RSpec::Core::RakeTask.new :spec do |t|
|
7
|
-
t.rspec_opts = %w(-fs --color)
|
8
|
-
end
|
9
|
-
|
10
|
-
task :default => :spec
|
11
|
-
|
12
|
-
desc "Open an irb session preloaded with this library"
|
13
|
-
task :console do
|
14
|
-
sh "irb -rubygems -I lib -r dbf.rb"
|
15
|
-
end
|