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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e341d655772c92627d05e82ba10d7ed1e51bd77c
4
- data.tar.gz: f48cabee19ae5775bd90baa63b7759e1e6335424
3
+ metadata.gz: af8acfbdf5a24debe145db794f00eb9d4596f9fa
4
+ data.tar.gz: fdc379ac77c9821fd4a5c9a81bbc9c812191b468
5
5
  SHA512:
6
- metadata.gz: 40a124a219c3a1b0755fa5b1b1386170bcf801e88cdf1de745abe4f6de7c6d51ba35423ded5c2d4c99cbe8c192b04579fa4b69b7e2611715615fd8e81e87c7b6
7
- data.tar.gz: e1803f13f2c604c5e48bdae6b0edf5564eb370dee52ae0c591f7bcc0677d66005fc7a3d59626f134f27e22abee42a371b5a0d07cc5e04550fcbdf5874f8a6257
6
+ metadata.gz: b8b416d12b10b67a77fd18e10f356fc18d534bd81b96a56aaf549ea0b8f9e1ca60c578de42fb3c2e3590d421bd1c174a95c8b50c96a456db273305f49ad6ab27
7
+ data.tar.gz: fb7981d2d99501a0c3fa1b8153dd250410bb86544b62c718c01f2d461465af9b81cb0b8726c7933816c6fbceda06a6abc52d75b7e56fdd9fe1514d492392df43
@@ -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
- $CFLAGS += " #{opt}" if result = try_cpp('', opt, &block)
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
- try_compiler_option '-Wall'
116
- try_compiler_option '-Waggregate-return'
117
- try_compiler_option '-Wcast-align'
118
- try_compiler_option '-Wextra'
119
- try_compiler_option '-Wformat=2'
120
- try_compiler_option '-Winit-self'
121
- try_compiler_option '-Winline'
122
- try_compiler_option '-Wmissing-declarations'
123
- try_compiler_option '-Wmissing-format-attribute'
124
- try_compiler_option '-Wmissing-include-dirs'
125
- try_compiler_option '-Wmissing-noreturn'
126
- try_compiler_option '-Wmissing-prototypes'
127
- try_compiler_option '-Wnested-externs'
128
- try_compiler_option '-Wold-style-definition'
129
- try_compiler_option '-Wpacked'
130
- try_compiler_option '-Wp,-D_FORTIFY_SOURCE=2'
131
- try_compiler_option '-Wpointer-arith'
132
- try_compiler_option '-Wsign-compare'
133
- try_compiler_option '-Wstrict-aliasing=2'
134
- # try_compiler_option '-Wsuggest-attribute=const'
135
- try_compiler_option '-Wsuggest-attribute=noreturn'
136
- # try_compiler_option '-Wsuggest-attribute=pure'
137
- try_compiler_option '-Wundef'
138
- try_compiler_option '-Wunsafe-loop-optimizations'
139
- try_compiler_option '-Wwrite-strings'
140
- try_compiler_option '-Wshorten-64-to-32' unless RUBY_VERSION < '1.9'
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'
@@ -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 %ld",
82
- end - string);
81
+ "invalid byte sequence at byte %"PRIdMAX,
82
+ (intmax_t)(end - string));
83
83
  }
84
84
 
85
85
  VALUE
@@ -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 (%zu < %zu)",
178
- format, needed, (size_t)length);
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
 
@@ -3,19 +3,19 @@
3
3
 
4
4
  /* @overload count(set, *sets)
5
5
  *
6
- * Returns the number of characters in the receiver that are included in the
7
- * intersection of SET and any additional SETS of characters.
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
- * 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).
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
- * 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_.
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
- * @param [U::String, #to_str] set
17
- * @param [Array<U::String, #to_str>] sets
18
- * @return [Integer] */
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
  {
@@ -7,11 +7,21 @@
7
7
  # include <xlocale.h>
8
8
  #endif
9
9
  #define __USE_XOPEN2K 1
10
- #include <langinfo.h>
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
- #ifndef HAVE_NL_LANGINFO_L
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
- #include "u.h"
32
- #include "private.h"
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 = NULL;
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
- if (l != NULL)
111
- freelocale(l);
150
+ delocale(l);
112
151
  return r;
113
152
  }
114
153
 
@@ -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
@@ -3,15 +3,27 @@
3
3
  require 'inventory-1.0'
4
4
 
5
5
  module U
6
- Version = Inventory.new(1, 0, 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, 5, 0
10
- development 'inventory-rake-tasks-yard', 1, 3, 0
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, 0, 0
24
+ development 'lookout-rake', 3, 1, 0
13
25
  development 'yard', 0, 8, 0
14
- development 'yard-heuristics', 1, 1, 0
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.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: 2013-06-04 00:00:00.000000000 Z
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.4'
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.4'
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.5'
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.5'
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.3'
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.3'
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.0'
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.0'
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.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.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%40disu%2ese&item_name=Nikolai%20Weibull%20Software%20Services
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
- email: now@bitwi.se
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: https://github.com/now/u
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.3
637
+ rubygems_version: 2.0.14
626
638
  signing_key:
627
639
  specification_version: 4
628
640
  summary: U extends Ruby’s Unicode support.