u 1.0.0 → 1.0.2
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 +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.
|