u 1.0.0 → 1.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/ext/u/extconf.rb +47 -30
- data/ext/u/rb_u.c +3 -3
- data/ext/u/rb_u_buffer.c +3 -3
- data/ext/u/rb_u_string_count.c +10 -10
- data/ext/u/u_collation_key.c +48 -9
- data/ext/u/u_recode.c +27 -0
- data/lib/u-1.0/version.rb +17 -5
- metadata +90 -78
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: af8acfbdf5a24debe145db794f00eb9d4596f9fa
|
4
|
+
data.tar.gz: fdc379ac77c9821fd4a5c9a81bbc9c812191b468
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b8b416d12b10b67a77fd18e10f356fc18d534bd81b96a56aaf549ea0b8f9e1ca60c578de42fb3c2e3590d421bd1c174a95c8b50c96a456db273305f49ad6ab27
|
7
|
+
data.tar.gz: fb7981d2d99501a0c3fa1b8153dd250410bb86544b62c718c01f2d461465af9b81cb0b8726c7933816c6fbceda06a6abc52d75b7e56fdd9fe1514d492392df43
|
data/ext/u/extconf.rb
CHANGED
@@ -1,10 +1,9 @@
|
|
1
1
|
require 'mkmf'
|
2
2
|
require 'optparse'
|
3
3
|
|
4
|
-
$CFLAGS = $CFLAGS.sub('$(cflags) ', '')
|
5
|
-
|
6
4
|
have_header 'assert.h'
|
7
5
|
have_header 'limits.h'
|
6
|
+
have_header 'langinfo.h'
|
8
7
|
have_header 'locale.h'
|
9
8
|
have_header 'stdarg.h'
|
10
9
|
have_header 'stdbool.h'
|
@@ -39,8 +38,10 @@ end
|
|
39
38
|
$defs.push '-D__USE_XOPEN2K'
|
40
39
|
$defs.push '-D__USE_XOPEN2K8'
|
41
40
|
|
42
|
-
headers =
|
41
|
+
headers = %w'locale.h'
|
43
42
|
headers << 'xlocale.h' if $xlocale_h
|
43
|
+
have_type 'locale_t', headers
|
44
|
+
have_func 'newlocale', headers
|
44
45
|
have_func 'strcoll_l', headers
|
45
46
|
have_func 'strxfrm_l', headers
|
46
47
|
|
@@ -84,6 +85,8 @@ have_func 'rb_vsprintf', 'ruby.h'
|
|
84
85
|
|
85
86
|
have_var 'rb_eKeyError', 'ruby.h'
|
86
87
|
|
88
|
+
$warnflags = ''
|
89
|
+
|
87
90
|
$enable_gcc_warnings = false
|
88
91
|
OptionParser.new{ |opts|
|
89
92
|
opts.banner = 'Usage: ruby extconf.rb [OPTION]...'
|
@@ -100,7 +103,10 @@ OptionParser.new{ |opts|
|
|
100
103
|
def try_compiler_option(opt, &block)
|
101
104
|
result = false
|
102
105
|
checking_for "#{opt} option to compiler" do
|
103
|
-
|
106
|
+
if result = try_cpp('', opt, &block)
|
107
|
+
$CFLAGS += ' ' unless $CFLAGS.empty?
|
108
|
+
$CFLAGS += opt
|
109
|
+
end
|
104
110
|
end
|
105
111
|
result
|
106
112
|
end
|
@@ -110,34 +116,45 @@ try_compiler_option '-finline-functions'
|
|
110
116
|
try_compiler_option '-fno-common'
|
111
117
|
try_compiler_option '-fvisibility=hidden'
|
112
118
|
|
119
|
+
def try_warning_option(opt, &block)
|
120
|
+
result = false
|
121
|
+
checking_for "#{opt} option to compiler" do
|
122
|
+
if result = try_cpp('', opt, &block)
|
123
|
+
$warnflags += ' ' unless $warnflags.empty?
|
124
|
+
$warnflags += opt
|
125
|
+
end
|
126
|
+
end
|
127
|
+
result
|
128
|
+
end
|
129
|
+
|
113
130
|
if $enable_gcc_warnings
|
114
131
|
try_compiler_option '-Werror'
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
#
|
135
|
-
|
136
|
-
#
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
132
|
+
try_warning_option '-Wall'
|
133
|
+
try_warning_option '-Waggregate-return'
|
134
|
+
try_warning_option '-Wcast-align'
|
135
|
+
try_warning_option '-Wextra'
|
136
|
+
try_warning_option '-Wformat=2'
|
137
|
+
try_warning_option '-Winit-self'
|
138
|
+
try_warning_option '-Winline'
|
139
|
+
try_warning_option '-Wmissing-declarations'
|
140
|
+
try_warning_option '-Wmissing-format-attribute'
|
141
|
+
try_warning_option '-Wmissing-include-dirs'
|
142
|
+
try_warning_option '-Wmissing-noreturn'
|
143
|
+
try_warning_option '-Wmissing-prototypes'
|
144
|
+
try_warning_option '-Wnested-externs'
|
145
|
+
try_warning_option '-Wold-style-definition'
|
146
|
+
try_warning_option '-Wpacked'
|
147
|
+
try_warning_option '-Wp,-D_FORTIFY_SOURCE=2'
|
148
|
+
try_warning_option '-Wpointer-arith'
|
149
|
+
try_warning_option '-Wsign-compare'
|
150
|
+
try_warning_option '-Wstrict-aliasing=2'
|
151
|
+
# try_warning_option '-Wsuggest-attribute=const'
|
152
|
+
try_warning_option '-Wsuggest-attribute=noreturn'
|
153
|
+
# try_warning_option '-Wsuggest-attribute=pure'
|
154
|
+
try_warning_option '-Wundef'
|
155
|
+
try_warning_option '-Wunsafe-loop-optimizations'
|
156
|
+
try_warning_option '-Wwrite-strings'
|
157
|
+
try_warning_option '-Wshorten-64-to-32' unless RUBY_VERSION < '1.9'
|
141
158
|
end
|
142
159
|
|
143
160
|
$defs.push '-DU_COMPILATION'
|
data/ext/u/rb_u.c
CHANGED
@@ -2,11 +2,11 @@
|
|
2
2
|
|
3
3
|
#include "extconf.h"
|
4
4
|
#include <errno.h>
|
5
|
+
#include <inttypes.h>
|
5
6
|
#include <ruby.h>
|
6
7
|
#include <stdarg.h>
|
7
8
|
#include <stdbool.h>
|
8
9
|
#include <stddef.h>
|
9
|
-
#include <stdint.h>
|
10
10
|
#include <stdlib.h>
|
11
11
|
#include <limits.h>
|
12
12
|
#include "u.h"
|
@@ -78,8 +78,8 @@ rb_u_validate(const char *string, long length)
|
|
78
78
|
const char *end;
|
79
79
|
if (!u_valid(string, length, &end))
|
80
80
|
rb_u_raise(rb_eArgError,
|
81
|
-
"invalid byte sequence at byte %
|
82
|
-
end - string);
|
81
|
+
"invalid byte sequence at byte %"PRIdMAX,
|
82
|
+
(intmax_t)(end - string));
|
83
83
|
}
|
84
84
|
|
85
85
|
VALUE
|
data/ext/u/rb_u_buffer.c
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
/* -*- coding: utf-8 -*- */
|
2
2
|
|
3
|
+
#include <inttypes.h>
|
3
4
|
#include <ruby.h>
|
4
5
|
#include <stdarg.h>
|
5
6
|
#include <stdbool.h>
|
6
7
|
#include <stddef.h>
|
7
|
-
#include <stdint.h>
|
8
8
|
#include <limits.h>
|
9
9
|
#include "u.h"
|
10
10
|
#include "private.h"
|
@@ -174,8 +174,8 @@ rb_u_buffer_append_printf(VALUE self, size_t needed, const char *format, ...)
|
|
174
174
|
|
175
175
|
if ((size_t)length >= needed)
|
176
176
|
rb_u_raise(rb_eNotImpError,
|
177
|
-
"format string buffer calculation is wrong: %s (%
|
178
|
-
format, needed, (
|
177
|
+
"format string buffer calculation is wrong: %s (%"PRIuMAX" < %"PRIuMAX")",
|
178
|
+
format, (uintmax_t)needed, (uintmax_t)length);
|
179
179
|
|
180
180
|
buffer->length += length;
|
181
181
|
|
data/ext/u/rb_u_string_count.c
CHANGED
@@ -3,19 +3,19 @@
|
|
3
3
|
|
4
4
|
/* @overload count(set, *sets)
|
5
5
|
*
|
6
|
-
*
|
7
|
-
*
|
6
|
+
* Returns the number of characters in the receiver that are included in the
|
7
|
+
* intersection of SET and any additional SETS of characters.
|
8
8
|
*
|
9
|
-
*
|
10
|
-
*
|
11
|
-
*
|
9
|
+
* The complement of all Unicode characters and a given set of characters may
|
10
|
+
* be specified by prefixing a non-empty set with ‘`^`’ (U+005E CIRCUMFLEX
|
11
|
+
* ACCENT).
|
12
12
|
*
|
13
|
-
*
|
14
|
-
*
|
13
|
+
* Any sequence of characters _a_-_b_ inside a set will expand to also
|
14
|
+
* include all characters whose code points lay between those of _a_ and _b_.
|
15
15
|
*
|
16
|
-
*
|
17
|
-
*
|
18
|
-
*
|
16
|
+
* @param [U::String, #to_str] set
|
17
|
+
* @param [Array<U::String, #to_str>] sets
|
18
|
+
* @return [Integer] */
|
19
19
|
VALUE
|
20
20
|
rb_u_string_count(int argc, VALUE *argv, VALUE self)
|
21
21
|
{
|
data/ext/u/u_collation_key.c
CHANGED
@@ -7,11 +7,21 @@
|
|
7
7
|
# include <xlocale.h>
|
8
8
|
#endif
|
9
9
|
#define __USE_XOPEN2K 1
|
10
|
-
#
|
10
|
+
#ifdef HAVE_LANGINFO_H
|
11
|
+
# include <langinfo.h>
|
12
|
+
#endif
|
11
13
|
#include <stdbool.h>
|
12
14
|
#include <stdint.h>
|
13
15
|
#include <stdlib.h>
|
14
16
|
#include <string.h>
|
17
|
+
|
18
|
+
#include "u.h"
|
19
|
+
#include "private.h"
|
20
|
+
|
21
|
+
#ifndef HAVE_TYPE_LOCALE_T
|
22
|
+
typedef struct { } *locale_t;
|
23
|
+
#endif
|
24
|
+
|
15
25
|
#ifndef HAVE_STRXFRM_L
|
16
26
|
static inline size_t
|
17
27
|
strxfrm_l(char *restrict s1, const char *restrict s2, size_t n,
|
@@ -20,7 +30,8 @@ strxfrm_l(char *restrict s1, const char *restrict s2, size_t n,
|
|
20
30
|
return strxfrm(s1, s2, n);
|
21
31
|
}
|
22
32
|
#endif
|
23
|
-
|
33
|
+
|
34
|
+
#if !defined(HAVE_NL_LANGINFO_L) && defined(HAVE_NL_LANGINFO_CODESET)
|
24
35
|
static inline char *
|
25
36
|
nl_langinfo_l(nl_item item, UNUSED(locale_t loc))
|
26
37
|
{
|
@@ -28,9 +39,33 @@ nl_langinfo_l(nl_item item, UNUSED(locale_t loc))
|
|
28
39
|
}
|
29
40
|
#endif
|
30
41
|
|
31
|
-
#
|
32
|
-
|
42
|
+
#ifdef HAVE_NEWLOCALE
|
43
|
+
static inline locale_t
|
44
|
+
collocale(const char *locale)
|
45
|
+
{
|
46
|
+
return locale == NULL ?
|
47
|
+
NULL :
|
48
|
+
newlocale(LC_COLLATE_MASK | LC_CTYPE_MASK, locale, NULL);
|
49
|
+
}
|
50
|
+
static inline void
|
51
|
+
delocale(locale_t locale)
|
52
|
+
{
|
53
|
+
if (locale != NULL)
|
54
|
+
freelocale(locale);
|
55
|
+
}
|
56
|
+
#else
|
57
|
+
static inline locale_t
|
58
|
+
collocale(UNUSED(const char *locale))
|
59
|
+
{
|
60
|
+
return NULL;
|
61
|
+
}
|
62
|
+
static inline void
|
63
|
+
delocale(UNUSED(locale_t locale))
|
64
|
+
{
|
65
|
+
}
|
66
|
+
#endif
|
33
67
|
|
68
|
+
#ifdef HAVE_NL_LANGINFO_CODESET
|
34
69
|
static inline const char *
|
35
70
|
codeset(locale_t locale)
|
36
71
|
{
|
@@ -38,6 +73,13 @@ codeset(locale_t locale)
|
|
38
73
|
nl_langinfo(CODESET) :
|
39
74
|
nl_langinfo_l(CODESET, locale);
|
40
75
|
}
|
76
|
+
#else
|
77
|
+
static inline const char *
|
78
|
+
codeset(UNUSED(locale_t locale))
|
79
|
+
{
|
80
|
+
return "UTF-8";
|
81
|
+
}
|
82
|
+
#endif
|
41
83
|
|
42
84
|
static inline size_t
|
43
85
|
transform(char *result, const char *string, size_t n, locale_t locale)
|
@@ -100,15 +142,12 @@ u_collation_key(char *result, size_t m, const char *string, size_t n,
|
|
100
142
|
{
|
101
143
|
assert(string != NULL);
|
102
144
|
assert(result != NULL || m == 0);
|
103
|
-
locale_t l =
|
104
|
-
if (locale != NULL)
|
105
|
-
l = newlocale(LC_COLLATE_MASK | LC_CTYPE_MASK, locale, NULL);
|
145
|
+
locale_t l = collocale(locale);
|
106
146
|
const char *cs = codeset(l);
|
107
147
|
size_t r = strcmp(cs, "UTF-8") != 0 ?
|
108
148
|
recode_ckey(result, m, string, n, l, cs) :
|
109
149
|
ckey(result, m, string, n, l);
|
110
|
-
|
111
|
-
freelocale(l);
|
150
|
+
delocale(l);
|
112
151
|
return r;
|
113
152
|
}
|
114
153
|
|
data/ext/u/u_recode.c
CHANGED
@@ -7,10 +7,37 @@
|
|
7
7
|
#include <string.h>
|
8
8
|
|
9
9
|
#include "u.h"
|
10
|
+
#include "private.h"
|
10
11
|
|
11
12
|
#ifdef HAVE_ICONV
|
12
13
|
# include <iconv.h>
|
13
14
|
# include <limits.h>
|
15
|
+
#else
|
16
|
+
typedef void *iconv_t;
|
17
|
+
|
18
|
+
static iconv_t
|
19
|
+
iconv_open(UNUSED(const char *restrict tocode),
|
20
|
+
UNUSED(const char *restrict fromcode))
|
21
|
+
{
|
22
|
+
errno = ENOSYS;
|
23
|
+
return (iconv_t)-1;
|
24
|
+
}
|
25
|
+
|
26
|
+
static size_t
|
27
|
+
iconv(UNUSED(iconv_t cd),
|
28
|
+
UNUSED(char **restrict inbuf), UNUSED(size_t *restrict inbytesleft),
|
29
|
+
UNUSED(char **restrict outbuf), UNUSED(size_t *restrict outbytesleft))
|
30
|
+
{
|
31
|
+
errno = ENOSYS;
|
32
|
+
return (size_t)-1;
|
33
|
+
}
|
34
|
+
|
35
|
+
static int
|
36
|
+
iconv_close(UNUSED(iconv_t cd))
|
37
|
+
{
|
38
|
+
errno = ENOSYS;
|
39
|
+
return -1;
|
40
|
+
}
|
14
41
|
#endif
|
15
42
|
|
16
43
|
size_t
|
data/lib/u-1.0/version.rb
CHANGED
@@ -3,15 +3,27 @@
|
|
3
3
|
require 'inventory-1.0'
|
4
4
|
|
5
5
|
module U
|
6
|
-
Version = Inventory.new(1, 0,
|
6
|
+
Version = Inventory.new(1, 0, 2){
|
7
|
+
authors{
|
8
|
+
author 'Nikolai Weibull', 'now@disu.se'
|
9
|
+
}
|
10
|
+
|
11
|
+
homepage 'http://disu.se/software/u-1.0/'
|
12
|
+
|
13
|
+
licenses{
|
14
|
+
license 'LGPLv3+',
|
15
|
+
'GNU Lesser General Public License, version 3 or later',
|
16
|
+
'http://www.gnu.org/licenses/'
|
17
|
+
}
|
18
|
+
|
7
19
|
def dependencies
|
8
20
|
super + Inventory::Dependencies.new{
|
9
|
-
development 'inventory-rake', 1,
|
10
|
-
development 'inventory-rake-tasks-yard', 1,
|
21
|
+
development 'inventory-rake', 1, 6, 0
|
22
|
+
development 'inventory-rake-tasks-yard', 1, 4, 0
|
11
23
|
development 'lookout', 3, 0, 0
|
12
|
-
development 'lookout-rake', 3,
|
24
|
+
development 'lookout-rake', 3, 1, 0
|
13
25
|
development 'yard', 0, 8, 0
|
14
|
-
development 'yard-heuristics', 1,
|
26
|
+
development 'yard-heuristics', 1, 2, 0
|
15
27
|
}
|
16
28
|
end
|
17
29
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: u
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nikolai Weibull
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-10-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: inventory
|
@@ -16,42 +16,42 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ~>
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '1.
|
19
|
+
version: '1.5'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ~>
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '1.
|
26
|
+
version: '1.5'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: inventory-rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - ~>
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '1.
|
33
|
+
version: '1.6'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - ~>
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '1.
|
40
|
+
version: '1.6'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: inventory-rake-tasks-yard
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - ~>
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '1.
|
47
|
+
version: '1.4'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '1.
|
54
|
+
version: '1.4'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: lookout
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -72,14 +72,14 @@ dependencies:
|
|
72
72
|
requirements:
|
73
73
|
- - ~>
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: '3.
|
75
|
+
version: '3.1'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - ~>
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: '3.
|
82
|
+
version: '3.1'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: yard
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -100,14 +100,14 @@ dependencies:
|
|
100
100
|
requirements:
|
101
101
|
- - ~>
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version: '1.
|
103
|
+
version: '1.2'
|
104
104
|
type: :development
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
108
|
- - ~>
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version: '1.
|
110
|
+
version: '1.2'
|
111
111
|
description: |2
|
112
112
|
U
|
113
113
|
|
@@ -122,7 +122,7 @@ description: |2
|
|
122
122
|
actually be preferable, as it’s a lot more explicit and complete than the
|
123
123
|
documentation that comes with Ruby.
|
124
124
|
|
125
|
-
¹ See http://disu.se/software/u/api/
|
125
|
+
¹ See http://disu.se/software/u-1.0/api/
|
126
126
|
|
127
127
|
§ Installation
|
128
128
|
|
@@ -154,9 +154,9 @@ description: |2
|
|
154
154
|
will only cover the extensions and differences that U::String exhibit from
|
155
155
|
Ruby’s built-in String class.
|
156
156
|
|
157
|
-
¹ See http://disu.se/software/u/api/U/String/
|
158
|
-
² See http://disu.se/software/u/api/U/Buffer/
|
159
|
-
³ See http://disu.se/software/u/api/
|
157
|
+
¹ See http://disu.se/software/u-1.0/api/U/String/
|
158
|
+
² See http://disu.se/software/u-1.0/api/U/Buffer/
|
159
|
+
³ See http://disu.se/software/u-1.0/api/
|
160
160
|
|
161
161
|
§ Unicode Properties
|
162
162
|
|
@@ -184,26 +184,26 @@ description: |2
|
|
184
184
|
• #xdigit?¹⁹
|
185
185
|
• #zero_width?²⁰
|
186
186
|
|
187
|
-
¹ See http://disu.se/software/u/api/U/String/#alnum-p-instance-method
|
188
|
-
² See http://disu.se/software/u/api/U/String/#alpha-p-instance-method
|
189
|
-
³ See http://disu.se/software/u/api/U/String/#assigned-p-instance-method
|
190
|
-
⁴ See http://disu.se/software/u/api/U/String/#case_ignorable-p-instance-method
|
191
|
-
⁵ See http://disu.se/software/u/api/U/String/#cased-p-instance-method
|
192
|
-
⁶ See http://disu.se/software/u/api/U/String/#cntrl-p-instance-method
|
193
|
-
⁷ See http://disu.se/software/u/api/U/String/#defined-p-instance-method
|
194
|
-
⁸ See http://disu.se/software/u/api/U/String/#digit-p-instance-method
|
195
|
-
⁹ See http://disu.se/software/u/api/U/String/#graph-p-instance-method
|
196
|
-
¹⁰ See http://disu.se/software/u/api/U/String/#newline-p-instance-method
|
197
|
-
¹¹ See http://disu.se/software/u/api/U/String/#print-p-instance-method
|
198
|
-
¹² See http://disu.se/software/u/api/U/String/#punct-p-instance-method
|
199
|
-
¹³ See http://disu.se/software/u/api/U/String/#soft_dotted-p-instance-method
|
200
|
-
¹⁴ See http://disu.se/software/u/api/U/String/#space-p-instance-method
|
201
|
-
¹⁵ See http://disu.se/software/u/api/U/String/#title-p-instance-method
|
202
|
-
¹⁶ See http://disu.se/software/u/api/U/String/#valid-p-instance-method
|
203
|
-
¹⁷ See http://disu.se/software/u/api/U/String/#wide-p-instance-method
|
204
|
-
¹⁸ See http://disu.se/software/u/api/U/String/#wide_cjk-p-instance-method
|
205
|
-
¹⁹ See http://disu.se/software/u/api/U/String/#xdigit-p-instance-method
|
206
|
-
²⁰ See http://disu.se/software/u/api/U/String/#zero_width-p-instance-method
|
187
|
+
¹ See http://disu.se/software/u-1.0/api/U/String/#alnum-p-instance-method
|
188
|
+
² See http://disu.se/software/u-1.0/api/U/String/#alpha-p-instance-method
|
189
|
+
³ See http://disu.se/software/u-1.0/api/U/String/#assigned-p-instance-method
|
190
|
+
⁴ See http://disu.se/software/u-1.0/api/U/String/#case_ignorable-p-instance-method
|
191
|
+
⁵ See http://disu.se/software/u-1.0/api/U/String/#cased-p-instance-method
|
192
|
+
⁶ See http://disu.se/software/u-1.0/api/U/String/#cntrl-p-instance-method
|
193
|
+
⁷ See http://disu.se/software/u-1.0/api/U/String/#defined-p-instance-method
|
194
|
+
⁸ See http://disu.se/software/u-1.0/api/U/String/#digit-p-instance-method
|
195
|
+
⁹ See http://disu.se/software/u-1.0/api/U/String/#graph-p-instance-method
|
196
|
+
¹⁰ See http://disu.se/software/u-1.0/api/U/String/#newline-p-instance-method
|
197
|
+
¹¹ See http://disu.se/software/u-1.0/api/U/String/#print-p-instance-method
|
198
|
+
¹² See http://disu.se/software/u-1.0/api/U/String/#punct-p-instance-method
|
199
|
+
¹³ See http://disu.se/software/u-1.0/api/U/String/#soft_dotted-p-instance-method
|
200
|
+
¹⁴ See http://disu.se/software/u-1.0/api/U/String/#space-p-instance-method
|
201
|
+
¹⁵ See http://disu.se/software/u-1.0/api/U/String/#title-p-instance-method
|
202
|
+
¹⁶ See http://disu.se/software/u-1.0/api/U/String/#valid-p-instance-method
|
203
|
+
¹⁷ See http://disu.se/software/u-1.0/api/U/String/#wide-p-instance-method
|
204
|
+
¹⁸ See http://disu.se/software/u-1.0/api/U/String/#wide_cjk-p-instance-method
|
205
|
+
¹⁹ See http://disu.se/software/u-1.0/api/U/String/#xdigit-p-instance-method
|
206
|
+
²⁰ See http://disu.se/software/u-1.0/api/U/String/#zero_width-p-instance-method
|
207
207
|
|
208
208
|
Similar to these methods are
|
209
209
|
|
@@ -213,14 +213,14 @@ description: |2
|
|
213
213
|
|
214
214
|
which check whether a ‹U::String› has been cased in a given manner.
|
215
215
|
|
216
|
-
¹ See http://disu.se/software/u/api/U/String/#folded-p-instance-method
|
217
|
-
² See http://disu.se/software/u/api/U/String/#lower-p-instance-method
|
218
|
-
³ See http://disu.se/software/u/api/U/String/#upper-p-instance-method
|
216
|
+
¹ See http://disu.se/software/u-1.0/api/U/String/#folded-p-instance-method
|
217
|
+
² See http://disu.se/software/u-1.0/api/U/String/#lower-p-instance-method
|
218
|
+
³ See http://disu.se/software/u-1.0/api/U/String/#upper-p-instance-method
|
219
219
|
|
220
220
|
There’s also a #normalized?¹ method that checks whether a ‹U::String› has
|
221
221
|
been normalized on a given form.
|
222
222
|
|
223
|
-
¹ See http://disu.se/software/u/api/U/String/#normalized-p-instance-method
|
223
|
+
¹ See http://disu.se/software/u-1.0/api/U/String/#normalized-p-instance-method
|
224
224
|
|
225
225
|
You can also access certain Unicode properties of the characters of a
|
226
226
|
U::String:
|
@@ -232,42 +232,42 @@ description: |2
|
|
232
232
|
• #script⁵
|
233
233
|
• #word_break⁶
|
234
234
|
|
235
|
-
¹ See http://disu.se/software/u/api/U/String/#canonical_combining_class-instance-method
|
236
|
-
² See http://disu.se/software/u/api/U/String/#general_category-instance-method
|
237
|
-
³ See http://disu.se/software/u/api/U/String/#grapheme_break-instance-method
|
238
|
-
⁴ See http://disu.se/software/u/api/U/String/#line_break-instance-method
|
239
|
-
⁵ See http://disu.se/software/u/api/U/String/#script-instance-method
|
240
|
-
⁶ See http://disu.se/software/u/api/U/String/#word_break-instance-method
|
235
|
+
¹ See http://disu.se/software/u-1.0/api/U/String/#canonical_combining_class-instance-method
|
236
|
+
² See http://disu.se/software/u-1.0/api/U/String/#general_category-instance-method
|
237
|
+
³ See http://disu.se/software/u-1.0/api/U/String/#grapheme_break-instance-method
|
238
|
+
⁴ See http://disu.se/software/u-1.0/api/U/String/#line_break-instance-method
|
239
|
+
⁵ See http://disu.se/software/u-1.0/api/U/String/#script-instance-method
|
240
|
+
⁶ See http://disu.se/software/u-1.0/api/U/String/#word_break-instance-method
|
241
241
|
|
242
242
|
§ Locale-specific Comparisons
|
243
243
|
|
244
244
|
Comparisons of U::Strings respect the current locale (and also allow you
|
245
245
|
to specify a locale to use): ‹#<=>›¹, #casecmp², and #collation_key³.
|
246
246
|
|
247
|
-
¹ See http://disu.se/software/u/api/U/String/#comparison-operator
|
248
|
-
² See http://disu.se/software/u/api/U/String/#casecmp-instance-method
|
249
|
-
³ See http://disu.se/software/u/api/U/String/#collation_key-instance-method
|
247
|
+
¹ See http://disu.se/software/u-1.0/api/U/String/#comparison-operator
|
248
|
+
² See http://disu.se/software/u-1.0/api/U/String/#casecmp-instance-method
|
249
|
+
³ See http://disu.se/software/u-1.0/api/U/String/#collation_key-instance-method
|
250
250
|
|
251
251
|
§ Additional Enumerators
|
252
252
|
|
253
253
|
There are a couple of additional enumerators in #each_grapheme_cluster¹
|
254
254
|
and #each_word² (along with aliases #grapheme_clusters³ and #words⁴).
|
255
255
|
|
256
|
-
¹ See http://disu.se/software/u/api/U/String/#each_grapheme_cluster-instance-method
|
257
|
-
² See http://disu.se/software/u/api/U/String/#each_word-instance-method
|
258
|
-
³ See http://disu.se/software/u/api/U/String/#grapheme_clusters-instance-method
|
259
|
-
⁴ See http://disu.se/software/u/api/U/String/#words-instance-method
|
256
|
+
¹ See http://disu.se/software/u-1.0/api/U/String/#each_grapheme_cluster-instance-method
|
257
|
+
² See http://disu.se/software/u-1.0/api/U/String/#each_word-instance-method
|
258
|
+
³ See http://disu.se/software/u-1.0/api/U/String/#grapheme_clusters-instance-method
|
259
|
+
⁴ See http://disu.se/software/u-1.0/api/U/String/#words-instance-method
|
260
260
|
|
261
261
|
§ Unicode-aware Sub-sequence Removal
|
262
262
|
|
263
263
|
#Chomp¹, #chop², #lstrip³, #rstrip⁴, and #strip⁵ all look for Unicode
|
264
264
|
newline and space characters, rather than only ASCII ones.
|
265
265
|
|
266
|
-
¹ See http://disu.se/software/u/api/U/String/#chomp-instance-method
|
267
|
-
² See http://disu.se/software/u/api/U/String/#chop-instance-method
|
268
|
-
³ See http://disu.se/software/u/api/U/String/#lstrip-instance-method
|
269
|
-
⁴ See http://disu.se/software/u/api/U/String/#rstrip-instance-method
|
270
|
-
⁵ See http://disu.se/software/u/api/U/String/#strip-instance-method
|
266
|
+
¹ See http://disu.se/software/u-1.0/api/U/String/#chomp-instance-method
|
267
|
+
² See http://disu.se/software/u-1.0/api/U/String/#chop-instance-method
|
268
|
+
³ See http://disu.se/software/u-1.0/api/U/String/#lstrip-instance-method
|
269
|
+
⁴ See http://disu.se/software/u-1.0/api/U/String/#rstrip-instance-method
|
270
|
+
⁵ See http://disu.se/software/u-1.0/api/U/String/#strip-instance-method
|
271
271
|
|
272
272
|
§ Unicode-aware Conversions
|
273
273
|
|
@@ -276,12 +276,12 @@ description: |2
|
|
276
276
|
#Mirror⁵ and #normalize⁶ do conversions similar in nature to the
|
277
277
|
case-shifting methods.
|
278
278
|
|
279
|
-
¹ See http://disu.se/software/u/api/U/String/#downcase-instance-method
|
280
|
-
² See http://disu.se/software/u/api/U/String/#upcase-instance-method
|
281
|
-
³ See http://disu.se/software/u/api/U/String/#foldcase-instance-method
|
282
|
-
⁴ See http://disu.se/software/u/api/U/String/#titlecase-instance-method
|
283
|
-
⁵ See http://disu.se/software/u/api/U/String/#mirror-instance-method
|
284
|
-
⁶ See http://disu.se/software/u/api/U/String/#normalize-instance-method
|
279
|
+
¹ See http://disu.se/software/u-1.0/api/U/String/#downcase-instance-method
|
280
|
+
² See http://disu.se/software/u-1.0/api/U/String/#upcase-instance-method
|
281
|
+
³ See http://disu.se/software/u-1.0/api/U/String/#foldcase-instance-method
|
282
|
+
⁴ See http://disu.se/software/u-1.0/api/U/String/#titlecase-instance-method
|
283
|
+
⁵ See http://disu.se/software/u-1.0/api/U/String/#mirror-instance-method
|
284
|
+
⁶ See http://disu.se/software/u-1.0/api/U/String/#normalize-instance-method
|
285
285
|
|
286
286
|
§ Width Calculations
|
287
287
|
|
@@ -292,21 +292,21 @@ description: |2
|
|
292
292
|
them much more useful for generating terminal output. #%⁵ (and its alias
|
293
293
|
#format⁶) similarly deal in width.
|
294
294
|
|
295
|
-
¹ See http://disu.se/software/u/api/U/String/#width-instance-method
|
296
|
-
² See http://disu.se/software/u/api/U/String/#center-instance-method
|
297
|
-
³ See http://disu.se/software/u/api/U/String/#ljust-instance-method
|
298
|
-
⁴ See http://disu.se/software/u/api/U/String/#rjust-instance-method
|
299
|
-
⁵ See http://disu.se/software/u/api/U/String/#modulo-operator
|
300
|
-
⁶ See http://disu.se/software/u/api/U/String/#format-instance-method
|
295
|
+
¹ See http://disu.se/software/u-1.0/api/U/String/#width-instance-method
|
296
|
+
² See http://disu.se/software/u-1.0/api/U/String/#center-instance-method
|
297
|
+
³ See http://disu.se/software/u-1.0/api/U/String/#ljust-instance-method
|
298
|
+
⁴ See http://disu.se/software/u-1.0/api/U/String/#rjust-instance-method
|
299
|
+
⁵ See http://disu.se/software/u-1.0/api/U/String/#modulo-operator
|
300
|
+
⁶ See http://disu.se/software/u-1.0/api/U/String/#format-instance-method
|
301
301
|
|
302
302
|
§ Extended Type Conversions
|
303
303
|
|
304
304
|
Finally, #hex¹, #oct², and #to_i³ use Unicode alpha-numerics for their
|
305
305
|
respective conversions.
|
306
306
|
|
307
|
-
¹ See http://disu.se/software/u/api/U/String/#hex-instance-method
|
308
|
-
² See http://disu.se/software/u/api/U/String/#oct-instance-method
|
309
|
-
³ See http://disu.se/software/u/api/U/String/#to_i-instance-method
|
307
|
+
¹ See http://disu.se/software/u-1.0/api/U/String/#hex-instance-method
|
308
|
+
² See http://disu.se/software/u-1.0/api/U/String/#oct-instance-method
|
309
|
+
³ See http://disu.se/software/u-1.0/api/U/String/#to_i-instance-method
|
310
310
|
|
311
311
|
§ News
|
312
312
|
|
@@ -327,7 +327,7 @@ description: |2
|
|
327
327
|
donation to now@disu.se¹. Thanks! Your support won’t go unnoticed!
|
328
328
|
|
329
329
|
¹ Send a donation:
|
330
|
-
https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=now
|
330
|
+
https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=now@disu.se&item_name=U
|
331
331
|
|
332
332
|
§ Reporting Bugs
|
333
333
|
|
@@ -339,7 +339,18 @@ description: |2
|
|
339
339
|
|
340
340
|
Nikolai Weibull wrote the code, the tests, the documentation, and this
|
341
341
|
README.
|
342
|
-
|
342
|
+
|
343
|
+
§ Licensing
|
344
|
+
|
345
|
+
U is free software: you may redistribute it and/or modify it under the
|
346
|
+
terms of the {GNU Lesser General Public License, version 3}¹ or later², as
|
347
|
+
published by the {Free Software Foundation}³.
|
348
|
+
|
349
|
+
¹ See http://disu.se/licenses/lgpl-3.0/
|
350
|
+
² See http://gnu.org/licenses/
|
351
|
+
³ See http://fsf.org/
|
352
|
+
email:
|
353
|
+
- now@disu.se
|
343
354
|
executables: []
|
344
355
|
extensions:
|
345
356
|
- ext/u/extconf.rb
|
@@ -603,8 +614,9 @@ files:
|
|
603
614
|
- ext/u/data/wide-cjk.h
|
604
615
|
- ext/u/data/wide.h
|
605
616
|
- ext/u/data/word-break.h
|
606
|
-
homepage:
|
607
|
-
licenses:
|
617
|
+
homepage: http://disu.se/software/u-1.0/
|
618
|
+
licenses:
|
619
|
+
- LGPLv3+
|
608
620
|
metadata: {}
|
609
621
|
post_install_message:
|
610
622
|
rdoc_options: []
|
@@ -622,7 +634,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
622
634
|
version: '0'
|
623
635
|
requirements: []
|
624
636
|
rubyforge_project:
|
625
|
-
rubygems_version: 2.0.
|
637
|
+
rubygems_version: 2.0.14
|
626
638
|
signing_key:
|
627
639
|
specification_version: 4
|
628
640
|
summary: U extends Ruby’s Unicode support.
|