unicode-numeric_value 1.0.0
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/.gitignore +2 -0
- data/.travis.yml +21 -0
- data/CHANGELOG.md +6 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +5 -0
- data/MIT-LICENSE.txt +20 -0
- data/README.md +1500 -0
- data/Rakefile +37 -0
- data/data/numeric_value.marshal.gz +0 -0
- data/lib/unicode/numeric_value.rb +19 -0
- data/lib/unicode/numeric_value/constants.rb +9 -0
- data/lib/unicode/numeric_value/index.rb +7 -0
- data/lib/unicode/numeric_value/string_ext.rb +8 -0
- data/spec/unicode_numeric_value_spec.rb +30 -0
- data/unicode-numeric_value.gemspec +21 -0
- metadata +62 -0
data/Rakefile
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
# # #
|
2
|
+
# Get gemspec info
|
3
|
+
|
4
|
+
gemspec_file = Dir['*.gemspec'].first
|
5
|
+
gemspec = eval File.read(gemspec_file), binding, gemspec_file
|
6
|
+
info = "#{gemspec.name} | #{gemspec.version} | " \
|
7
|
+
"#{gemspec.runtime_dependencies.size} dependencies | " \
|
8
|
+
"#{gemspec.files.size} files"
|
9
|
+
|
10
|
+
# # #
|
11
|
+
# Gem build and install task
|
12
|
+
|
13
|
+
desc info
|
14
|
+
task :gem do
|
15
|
+
puts info + "\n\n"
|
16
|
+
print " "; sh "gem build #{gemspec_file}"
|
17
|
+
FileUtils.mkdir_p 'pkg'
|
18
|
+
FileUtils.mv "#{gemspec.name}-#{gemspec.version}.gem", 'pkg'
|
19
|
+
puts; sh %{gem install --no-document pkg/#{gemspec.name}-#{gemspec.version}.gem}
|
20
|
+
end
|
21
|
+
|
22
|
+
# # #
|
23
|
+
# Start an IRB session with the gem loaded
|
24
|
+
|
25
|
+
desc "#{gemspec.name} | IRB"
|
26
|
+
task :irb do
|
27
|
+
sh "irb -I ./lib -r #{gemspec.name.gsub '-','/'}"
|
28
|
+
end
|
29
|
+
|
30
|
+
# # #
|
31
|
+
# Run Specs
|
32
|
+
|
33
|
+
desc "#{gemspec.name} | Spec"
|
34
|
+
task :spec do
|
35
|
+
sh "for file in spec/*.rb; do ruby $file; done"
|
36
|
+
end
|
37
|
+
task default: :spec
|
Binary file
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require_relative "numeric_value/constants"
|
2
|
+
|
3
|
+
module Unicode
|
4
|
+
module NumericValue
|
5
|
+
def self.numeric_value(char)
|
6
|
+
codepoint = char.unpack("U")[0] or
|
7
|
+
raise(ArgumentError, "Unicode::NumericValue.numeric_value must be given a valid char")
|
8
|
+
require_relative "numeric_value/index" unless defined? ::Unicode::NumericValue::INDEX
|
9
|
+
INDEX[codepoint]
|
10
|
+
end
|
11
|
+
class << self; alias of numeric_value; end
|
12
|
+
|
13
|
+
def self.chars
|
14
|
+
require_relative "numeric_value/index" unless defined? ::Unicode::NumericValue::INDEX
|
15
|
+
INDEX.keys.map{ |codepoint| [codepoint].pack("U") }
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
@@ -0,0 +1,9 @@
|
|
1
|
+
module Unicode
|
2
|
+
module NumericValue
|
3
|
+
VERSION = "1.0.0".freeze
|
4
|
+
UNICODE_VERSION = "8.0.0".freeze
|
5
|
+
DATA_DIRECTORY = File.expand_path(File.dirname(__FILE__) + '/../../../data/').freeze
|
6
|
+
INDEX_FILENAME = (DATA_DIRECTORY + '/numeric_value.marshal.gz').freeze
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require_relative "../lib/unicode/numeric_value"
|
2
|
+
require "minitest/autorun"
|
3
|
+
|
4
|
+
describe Unicode::NumericValue do
|
5
|
+
describe ".numeric_value (alias .of)" do
|
6
|
+
it "will return integers values" do
|
7
|
+
assert_equal 1, Unicode::NumericValue.of("1")
|
8
|
+
assert_equal 8, Unicode::NumericValue.of("Ⅷ")
|
9
|
+
assert_equal 19, Unicode::NumericValue.of("⓳")
|
10
|
+
assert_equal 1000000000000, Unicode::NumericValue.of("𖭡")
|
11
|
+
end
|
12
|
+
|
13
|
+
it "will return rational values" do
|
14
|
+
assert_equal 3/4r, Unicode::NumericValue.of("¾")
|
15
|
+
assert_equal -1/2r, Unicode::NumericValue.of("༳")
|
16
|
+
end
|
17
|
+
|
18
|
+
it "will return nil if no numeric value associated" do
|
19
|
+
assert_equal nil, Unicode::NumericValue.of("A")
|
20
|
+
assert_equal nil, Unicode::NumericValue.of("\0")
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
describe ".chars" do
|
25
|
+
it "will return all characters that have an numerical value" do
|
26
|
+
assert_equal true, Unicode::NumericValue.chars.include?("⑸")
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
require File.dirname(__FILE__) + "/lib/unicode/numeric_value/constants"
|
4
|
+
|
5
|
+
Gem::Specification.new do |gem|
|
6
|
+
gem.name = "unicode-numeric_value"
|
7
|
+
gem.version = Unicode::NumericValue::VERSION
|
8
|
+
gem.summary = "Convert a Unicode character into its numeric value."
|
9
|
+
gem.description = "[Unicode #{Unicode::NumericValue::UNICODE_VERSION}] Convert a Unicode character into its numeric value."
|
10
|
+
gem.authors = ["Jan Lelis"]
|
11
|
+
gem.email = ["mail@janlelis.de"]
|
12
|
+
gem.homepage = "https://github.com/janlelis/unicode-numeric_value"
|
13
|
+
gem.license = "MIT"
|
14
|
+
|
15
|
+
gem.files = Dir["{**/}{.*,*}"].select{ |path| File.file?(path) && path !~ /^pkg/ }
|
16
|
+
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
17
|
+
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
18
|
+
gem.require_paths = ["lib"]
|
19
|
+
|
20
|
+
gem.required_ruby_version = "~> 2.0"
|
21
|
+
end
|
metadata
ADDED
@@ -0,0 +1,62 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: unicode-numeric_value
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Jan Lelis
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-04-16 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: "[Unicode 8.0.0] Convert a Unicode character into its numeric value."
|
14
|
+
email:
|
15
|
+
- mail@janlelis.de
|
16
|
+
executables: []
|
17
|
+
extensions: []
|
18
|
+
extra_rdoc_files: []
|
19
|
+
files:
|
20
|
+
- ".gitignore"
|
21
|
+
- ".travis.yml"
|
22
|
+
- CHANGELOG.md
|
23
|
+
- CODE_OF_CONDUCT.md
|
24
|
+
- Gemfile
|
25
|
+
- Gemfile.lock
|
26
|
+
- MIT-LICENSE.txt
|
27
|
+
- README.md
|
28
|
+
- Rakefile
|
29
|
+
- data/numeric_value.marshal.gz
|
30
|
+
- lib/unicode/numeric_value.rb
|
31
|
+
- lib/unicode/numeric_value/constants.rb
|
32
|
+
- lib/unicode/numeric_value/index.rb
|
33
|
+
- lib/unicode/numeric_value/string_ext.rb
|
34
|
+
- spec/unicode_numeric_value_spec.rb
|
35
|
+
- unicode-numeric_value.gemspec
|
36
|
+
homepage: https://github.com/janlelis/unicode-numeric_value
|
37
|
+
licenses:
|
38
|
+
- MIT
|
39
|
+
metadata: {}
|
40
|
+
post_install_message:
|
41
|
+
rdoc_options: []
|
42
|
+
require_paths:
|
43
|
+
- lib
|
44
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - "~>"
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '2.0'
|
49
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - ">="
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
54
|
+
requirements: []
|
55
|
+
rubyforge_project:
|
56
|
+
rubygems_version: 2.6.3
|
57
|
+
signing_key:
|
58
|
+
specification_version: 4
|
59
|
+
summary: Convert a Unicode character into its numeric value.
|
60
|
+
test_files:
|
61
|
+
- spec/unicode_numeric_value_spec.rb
|
62
|
+
has_rdoc:
|