char_size 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +18 -3
- data/Rakefile +3 -0
- data/char_size.gemspec +1 -0
- data/ext/char_size/char_size.c +16 -0
- data/lib/char_size/version.rb +1 -1
- data/lib/char_size.rb +8 -0
- metadata +15 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: deb464d4821edb234ea24d84c4e988eec0406ad1
|
4
|
+
data.tar.gz: 9f8c6ddf01450debbb369e16685802c8509c2ea5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e5800463806ea30caa0520a4d8f63a18920b43ec03dd821751a0bc0969a62fc69c09dd4f5aba335c328c9286668c5f832fb4c63531b232a02caa6679fbf05ebb
|
7
|
+
data.tar.gz: 9f0fe4db8706c3484d97e9f74fc90b6665c4f2f3a4b5934282f404f2a62dccf9cf13656ec2ac32d58326210d5c044e0e92e1f381ec3f4e13b3fe0815b4cd57d0
|
data/README.md
CHANGED
@@ -1,10 +1,12 @@
|
|
1
1
|
# CharSize
|
2
2
|
|
3
|
+
[![Gem Version](https://badge.fury.io/rb/char_size.svg)](http://github.com/haines/char_size/releases)
|
3
4
|
[![Build Status](https://travis-ci.org/haines/char_size.svg?branch=master)](https://travis-ci.org/haines/char_size)
|
4
5
|
[![Code Climate](https://codeclimate.com/github/haines/char_size/badges/gpa.svg)](https://codeclimate.com/github/haines/char_size)
|
5
6
|
|
6
7
|
Find an encoding's minimum and maximum character size.
|
7
8
|
|
9
|
+
|
8
10
|
## Installation
|
9
11
|
|
10
12
|
Add this line to your application's Gemfile:
|
@@ -15,15 +17,27 @@ gem "char_size"
|
|
15
17
|
|
16
18
|
And then execute:
|
17
19
|
|
18
|
-
|
20
|
+
```console
|
21
|
+
$ bundle
|
22
|
+
```
|
19
23
|
|
20
24
|
Or install it yourself as:
|
21
25
|
|
22
|
-
|
26
|
+
```console
|
27
|
+
$ gem install char_size
|
28
|
+
```
|
29
|
+
|
23
30
|
|
24
31
|
## Usage
|
25
32
|
|
26
|
-
|
33
|
+
```ruby
|
34
|
+
CharSize.min("UTF-8") # => 1
|
35
|
+
CharSize.max("UTF-8") # => 6
|
36
|
+
CharSize.minmax("UTF-8") # => [1, 6]
|
37
|
+
```
|
38
|
+
|
39
|
+
Like `Encoding.find`, methods take a string encoding name, or an instance of `Encoding`.
|
40
|
+
|
27
41
|
|
28
42
|
## Development
|
29
43
|
|
@@ -31,6 +45,7 @@ After checking out the repo, run `bin/setup` to install dependencies. Then, run
|
|
31
45
|
|
32
46
|
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
|
33
47
|
|
48
|
+
|
34
49
|
## Contributing
|
35
50
|
|
36
51
|
Bug reports and pull requests are welcome on GitHub at https://github.com/haines/char_size. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
|
data/Rakefile
CHANGED
@@ -3,6 +3,7 @@
|
|
3
3
|
require "bundler/gem_tasks"
|
4
4
|
require "rake/extensiontask"
|
5
5
|
require "rake/testtask"
|
6
|
+
require "yard"
|
6
7
|
|
7
8
|
CLEAN.include "lib/char_size/char_size.bundle"
|
8
9
|
|
@@ -15,4 +16,6 @@ Rake::TestTask.new :test do |t|
|
|
15
16
|
t.warning = true
|
16
17
|
end
|
17
18
|
|
19
|
+
YARD::Rake::YardocTask.new
|
20
|
+
|
18
21
|
task :default => [:compile, :test]
|
data/char_size.gemspec
CHANGED
data/ext/char_size/char_size.c
CHANGED
@@ -6,10 +6,26 @@ static rb_encoding* find_encoding(VALUE encoding_or_name) {
|
|
6
6
|
return encoding;
|
7
7
|
}
|
8
8
|
|
9
|
+
/*
|
10
|
+
* Gets the minimum character size (in bytes) for an encoding.
|
11
|
+
* @param encoding_or_name [Encoding, String] the encoding or its name
|
12
|
+
* @return [Integer] the minimum character size
|
13
|
+
* @example
|
14
|
+
* CharSize.min("UTF-8") # => 1
|
15
|
+
* CharSize.min(Encoding::UTF_8) # => 1
|
16
|
+
*/
|
9
17
|
static VALUE min(VALUE class, VALUE encoding_or_name) {
|
10
18
|
return INT2NUM(find_encoding(encoding_or_name)->min_enc_len);
|
11
19
|
}
|
12
20
|
|
21
|
+
/*
|
22
|
+
* Gets the maximum character size (in bytes) for an encoding.
|
23
|
+
* @param encoding_or_name [Encoding, String] the encoding or its name
|
24
|
+
* @return [Integer] the minimum character size
|
25
|
+
* @example
|
26
|
+
* CharSize.max("UTF-8") # => 6
|
27
|
+
* CharSize.max(Encoding::UTF_8) # => 6
|
28
|
+
*/
|
13
29
|
static VALUE max(VALUE class, VALUE encoding_or_name) {
|
14
30
|
return INT2NUM(find_encoding(encoding_or_name)->max_enc_len);
|
15
31
|
}
|
data/lib/char_size/version.rb
CHANGED
data/lib/char_size.rb
CHANGED
@@ -3,7 +3,15 @@
|
|
3
3
|
require "char_size/char_size"
|
4
4
|
require "char_size/version"
|
5
5
|
|
6
|
+
# The +CharSize+ module provides functions that return the character size limits
|
7
|
+
# of encodings.
|
6
8
|
module CharSize
|
9
|
+
# Gets the minimum and maximum character size (in bytes) for an encoding.
|
10
|
+
# @param encoding_or_name [Encoding, String] the encoding or its name
|
11
|
+
# @return [Array<(Integer, Integer)>] the minimum and maximum character size
|
12
|
+
# @example
|
13
|
+
# CharSize.minmax("UTF-8") # => [1, 6]
|
14
|
+
# CharSize.minmax(Encoding::UTF_8) # => [1, 6]
|
7
15
|
def self.minmax(encoding_or_name)
|
8
16
|
[min(encoding_or_name), max(encoding_or_name)]
|
9
17
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: char_size
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Haines
|
@@ -94,6 +94,20 @@ dependencies:
|
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '1.0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: yard
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0.9'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0.9'
|
97
111
|
description:
|
98
112
|
email:
|
99
113
|
- andrew@haines.org.nz
|