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 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.