regexp_property_values 1.0.0 → 1.5.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/.github/workflows/tests.yml +22 -0
- data/.gitignore +1 -0
- data/CHANGELOG.md +37 -0
- data/Gemfile +6 -0
- data/README.md +6 -1
- data/Rakefile +6 -0
- data/bin/console +1 -0
- data/ext/regexp_property_values/regexp_property_values.c +46 -15
- data/lib/aliases +15 -0
- data/lib/regexp_property_values/updater.rb +18 -12
- data/lib/regexp_property_values/value/ext_adapter.rb +8 -2
- data/lib/regexp_property_values/version.rb +1 -1
- data/lib/regexp_property_values.rb +2 -2
- data/lib/values +60 -0
- data/regexp_property_values.gemspec +1 -7
- metadata +9 -79
- data/.travis.yml +0 -8
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: '0588e959f6bc0ad3ef9612a495cbd3485b079b45ed9c4a485a3bd533e3ee9c7a'
|
|
4
|
+
data.tar.gz: abf53c421d3c895e436e0a992236d1daccda73d1da15b73ca5a3f8a8b7f94724
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 769d89728bcf42382782b0b42d946de6af689108b0d0b6101092eacc209f2bf50787fb1290f90545a406677bfc4da270a846de8a0dab0ab5fe4f694b53d423c9
|
|
7
|
+
data.tar.gz: 982ee2f8811bf1989f3789b0a52b83c89610aa7a2d00d190e36a16d16eff2a47f2ba38881373b36ac771f3f294c235207ce460d8a26ac9aee120442a3e7fe07b
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
name: tests
|
|
2
|
+
|
|
3
|
+
on: [push, pull_request]
|
|
4
|
+
|
|
5
|
+
jobs:
|
|
6
|
+
build:
|
|
7
|
+
runs-on: ubuntu-latest
|
|
8
|
+
|
|
9
|
+
strategy:
|
|
10
|
+
matrix:
|
|
11
|
+
ruby: [ '2.3', '3.1', 'jruby-head' ] # TODO: 'ruby-head' after https://github.com/knu/sorted_set/issues/11
|
|
12
|
+
|
|
13
|
+
steps:
|
|
14
|
+
- uses: actions/checkout@v2
|
|
15
|
+
- name: Set up Ruby ${{ matrix.ruby }}
|
|
16
|
+
uses: ruby/setup-ruby@v1
|
|
17
|
+
with:
|
|
18
|
+
ruby-version: ${{ matrix.ruby }}
|
|
19
|
+
- name: Install dependencies
|
|
20
|
+
run: bundle install --jobs 4
|
|
21
|
+
- name: Test with Rake
|
|
22
|
+
run: bundle exec rake
|
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,43 @@ All notable changes to this project will be documented in this file.
|
|
|
4
4
|
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
|
|
5
5
|
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
|
|
6
6
|
|
|
7
|
+
## [1.5.2] - 2024-05-20
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
- fixed `#matched_characters` for properties containing surrogates
|
|
11
|
+
- improved speed of `#matched_codepoints`
|
|
12
|
+
|
|
13
|
+
## [1.5.1] - 2024-01-06
|
|
14
|
+
|
|
15
|
+
### Fixed
|
|
16
|
+
- added missing Grapheme_Cluster_Break properties
|
|
17
|
+
|
|
18
|
+
## [1.5.0] - 2024-01-06
|
|
19
|
+
|
|
20
|
+
### Added
|
|
21
|
+
- new properties of future Ruby 3.3.x / Unicode 15.1
|
|
22
|
+
|
|
23
|
+
## [1.4.0] - 2023-06-10
|
|
24
|
+
|
|
25
|
+
### Added
|
|
26
|
+
- new properties of Ruby 3.2 / Unicode 15.0
|
|
27
|
+
|
|
28
|
+
## [1.3.0] - 2022-04-07
|
|
29
|
+
|
|
30
|
+
### Added
|
|
31
|
+
- new properties of Ruby 3.2 / Unicode 14.0
|
|
32
|
+
|
|
33
|
+
## [1.2.0] - 2021-12-31
|
|
34
|
+
|
|
35
|
+
### Added
|
|
36
|
+
- support for usage in Ractors
|
|
37
|
+
|
|
38
|
+
## [1.1.0] - 2021-12-05
|
|
39
|
+
|
|
40
|
+
### Added
|
|
41
|
+
- added new properties from Ruby `3.1.0` to output of `::all`, `::all_for_current_ruby`
|
|
42
|
+
- added options to run `::update` with custom ucd/emoji source paths
|
|
43
|
+
|
|
7
44
|
## [1.0.0] - 2019-06-16
|
|
8
45
|
|
|
9
46
|
### Changed
|
data/Gemfile
CHANGED
|
@@ -4,3 +4,9 @@ git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
|
|
|
4
4
|
|
|
5
5
|
# Specify your gem's dependencies in regexp_property_values.gemspec
|
|
6
6
|
gemspec
|
|
7
|
+
|
|
8
|
+
gem 'character_set', '~> 1.8.0'
|
|
9
|
+
gem 'rake', '~> 13.0'
|
|
10
|
+
gem 'rake-compiler', '~> 1.0'
|
|
11
|
+
gem 'range_compressor', '~> 1.0'
|
|
12
|
+
gem 'rspec', '~> 3.0'
|
data/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# RegexpPropertyValues
|
|
2
2
|
|
|
3
3
|
[](http://badge.fury.io/rb/regexp_property_values)
|
|
4
|
-
[](https://github.com/jaynetics/regexp_property_values/actions)
|
|
5
5
|
|
|
6
6
|
This small library lets you see which property values are supported by the regular expression engine of the Ruby version you are running and directly reads out their codepoint ranges from there.
|
|
7
7
|
|
|
@@ -34,6 +34,10 @@ PV['foobar'].supported_by_current_ruby? # => false
|
|
|
34
34
|
PV['AHex'].matched_characters # => %w[0 1 2 3 4 5 6 7 8 9 A B C ...]
|
|
35
35
|
PV['AHex'].matched_codepoints # => [48, 49, 50, ...]
|
|
36
36
|
PV['AHex'].matched_ranges # => [48..57, 65..70, 97..102]
|
|
37
|
+
# Note: #matched_characters is slow for large properties and you
|
|
38
|
+
# may not want to use it in time-critical code. It also omits surrogates.
|
|
39
|
+
|
|
40
|
+
PV['foobar'].matched_ranges # => RegexpPropertyValues::Error
|
|
37
41
|
```
|
|
38
42
|
|
|
39
43
|
If [`character_set`](https://github.com/jaynetics/character_set) is installed, you can also do this:
|
|
@@ -49,5 +53,6 @@ PV['AHex'].character_set # => #<CharacterSet: {48, 49...} (size: 22)>
|
|
|
49
53
|
PV.alias_hash # => { <Value name='M'> => <Value name='Mark'>, ... }
|
|
50
54
|
|
|
51
55
|
# download a list of possible properties for the running Ruby version
|
|
56
|
+
# (only used for .all and .alias_hash, not needed for prop lookup via .[])
|
|
52
57
|
PV.update
|
|
53
58
|
```
|
data/Rakefile
CHANGED
data/bin/console
CHANGED
|
@@ -2,11 +2,13 @@
|
|
|
2
2
|
#include "ruby/encoding.h"
|
|
3
3
|
#include "ruby/oniguruma.h" // still in recent rubies f. backwards compatibility
|
|
4
4
|
|
|
5
|
-
static int prop_name_to_ctype(
|
|
5
|
+
static int prop_name_to_ctype(VALUE arg, rb_encoding *enc)
|
|
6
6
|
{
|
|
7
|
+
char *name;
|
|
7
8
|
UChar *uname;
|
|
8
9
|
int ctype;
|
|
9
10
|
|
|
11
|
+
name = StringValueCStr(arg);
|
|
10
12
|
uname = (UChar *)name;
|
|
11
13
|
ctype = ONIGENC_PROPERTY_NAME_TO_CTYPE(enc, uname, uname + strlen(name));
|
|
12
14
|
if (ctype < 0)
|
|
@@ -15,13 +17,26 @@ static int prop_name_to_ctype(char *name, rb_encoding *enc)
|
|
|
15
17
|
return ctype;
|
|
16
18
|
}
|
|
17
19
|
|
|
18
|
-
|
|
20
|
+
const OnigCodePoint *get_onig_ranges(VALUE prop_name)
|
|
21
|
+
{
|
|
22
|
+
int ctype;
|
|
23
|
+
const OnigCodePoint *ranges;
|
|
24
|
+
OnigCodePoint sb_out;
|
|
25
|
+
rb_encoding *enc;
|
|
26
|
+
|
|
27
|
+
enc = rb_utf8_encoding();
|
|
28
|
+
ctype = prop_name_to_ctype(prop_name, enc);
|
|
29
|
+
ONIGENC_GET_CTYPE_CODE_RANGE(enc, ctype, &sb_out, &ranges);
|
|
30
|
+
return ranges;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
VALUE onig_ranges_to_rb_ranges(const OnigCodePoint *onig_ranges)
|
|
19
34
|
{
|
|
20
35
|
unsigned int range_count, i;
|
|
21
36
|
VALUE result, sub_range;
|
|
22
37
|
|
|
23
38
|
range_count = onig_ranges[0];
|
|
24
|
-
result =
|
|
39
|
+
result = rb_ary_new_capa(range_count);
|
|
25
40
|
|
|
26
41
|
for (i = 0; i < range_count; i++)
|
|
27
42
|
{
|
|
@@ -34,29 +49,45 @@ VALUE onig_ranges_to_rb(const OnigCodePoint *onig_ranges)
|
|
|
34
49
|
return result;
|
|
35
50
|
}
|
|
36
51
|
|
|
37
|
-
VALUE
|
|
52
|
+
VALUE onig_ranges_to_rb_integers(const OnigCodePoint *onig_ranges)
|
|
38
53
|
{
|
|
39
|
-
int
|
|
40
|
-
|
|
41
|
-
OnigCodePoint sb_out;
|
|
42
|
-
rb_encoding *enc;
|
|
43
|
-
enc = rb_utf8_encoding();
|
|
54
|
+
unsigned int range_count, i, beg, end, j;
|
|
55
|
+
VALUE result;
|
|
44
56
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
57
|
+
range_count = onig_ranges[0];
|
|
58
|
+
result = rb_ary_new();
|
|
59
|
+
|
|
60
|
+
for (i = 0; i < range_count; i++)
|
|
61
|
+
{
|
|
62
|
+
beg = onig_ranges[(i * 2) + 1];
|
|
63
|
+
end = onig_ranges[(i * 2) + 2];
|
|
64
|
+
for (j = beg; j <= end; j++)
|
|
65
|
+
{
|
|
66
|
+
rb_ary_push(result, INT2FIX(j));
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
return result;
|
|
48
71
|
}
|
|
49
72
|
|
|
50
73
|
VALUE method_matched_ranges(VALUE self, VALUE arg)
|
|
51
74
|
{
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
75
|
+
return onig_ranges_to_rb_ranges(get_onig_ranges(arg));
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
VALUE method_matched_codepoints(VALUE self, VALUE arg)
|
|
79
|
+
{
|
|
80
|
+
return onig_ranges_to_rb_integers(get_onig_ranges(arg));
|
|
55
81
|
}
|
|
56
82
|
|
|
57
83
|
void Init_regexp_property_values()
|
|
58
84
|
{
|
|
85
|
+
#ifdef HAVE_RB_EXT_RACTOR_SAFE
|
|
86
|
+
rb_ext_ractor_safe(true);
|
|
87
|
+
#endif
|
|
88
|
+
|
|
59
89
|
VALUE module;
|
|
60
90
|
module = rb_define_module("OnigRegexpPropertyHelper");
|
|
61
91
|
rb_define_singleton_method(module, "matched_ranges", method_matched_ranges, 1);
|
|
92
|
+
rb_define_singleton_method(module, "matched_codepoints", method_matched_codepoints, 1);
|
|
62
93
|
}
|
data/lib/aliases
CHANGED
|
@@ -30,10 +30,12 @@ Cari;Carian
|
|
|
30
30
|
Cc;Control
|
|
31
31
|
Cf;Format
|
|
32
32
|
Cher;Cherokee
|
|
33
|
+
Chrs;Chorasmian
|
|
33
34
|
Cn;Unassigned
|
|
34
35
|
Co;Private_Use
|
|
35
36
|
Combining_Mark;Mark
|
|
36
37
|
Copt;Coptic
|
|
38
|
+
Cpmn;Cypro_Minoan
|
|
37
39
|
Cprt;Cypriot
|
|
38
40
|
Cs;Surrogate
|
|
39
41
|
Cyrl;Cyrillic
|
|
@@ -41,14 +43,20 @@ DI;Default_Ignorable_Code_Point
|
|
|
41
43
|
Dep;Deprecated
|
|
42
44
|
Deva;Devanagari
|
|
43
45
|
Dia;Diacritic
|
|
46
|
+
Diak;Dives_Akuru
|
|
44
47
|
Dogr;Dogra
|
|
45
48
|
Dsrt;Deseret
|
|
46
49
|
Dupl;Duployan
|
|
50
|
+
EBase;Emoji_Modifier_Base
|
|
51
|
+
EComp;Emoji_Component
|
|
52
|
+
EMod;Emoji_Modifier
|
|
53
|
+
EPres;Emoji_Presentation
|
|
47
54
|
Egyp;Egyptian_Hieroglyphs
|
|
48
55
|
Elba;Elbasan
|
|
49
56
|
Elym;Elymaic
|
|
50
57
|
Ethi;Ethiopic
|
|
51
58
|
Ext;Extender
|
|
59
|
+
ExtPict;Extended_Pictographic
|
|
52
60
|
Geor;Georgian
|
|
53
61
|
Glag;Glagolitic
|
|
54
62
|
Gong;Gunjala_Gondi
|
|
@@ -76,6 +84,7 @@ IDC;ID_Continue
|
|
|
76
84
|
IDS;ID_Start
|
|
77
85
|
IDSB;IDS_Binary_Operator
|
|
78
86
|
IDST;IDS_Trinary_Operator
|
|
87
|
+
IDSU;IDS_Unary_Operator
|
|
79
88
|
Ideo;Ideographic
|
|
80
89
|
Ital;Old_Italic
|
|
81
90
|
Java;Javanese
|
|
@@ -85,6 +94,7 @@ Kana;Katakana
|
|
|
85
94
|
Khar;Kharoshthi
|
|
86
95
|
Khmr;Khmer
|
|
87
96
|
Khoj;Khojki
|
|
97
|
+
Kits;Khitan_Small_Script
|
|
88
98
|
Knda;Kannada
|
|
89
99
|
Kthi;Kaithi
|
|
90
100
|
L;Letter
|
|
@@ -125,6 +135,7 @@ Mult;Multani
|
|
|
125
135
|
Mymr;Myanmar
|
|
126
136
|
N;Number
|
|
127
137
|
NChar;Noncharacter_Code_Point
|
|
138
|
+
Nagm;Nag_Mundari
|
|
128
139
|
Nand;Nandinagari
|
|
129
140
|
Narb;Old_North_Arabian
|
|
130
141
|
Nbat;Nabataean
|
|
@@ -147,6 +158,7 @@ Orkh;Old_Turkic
|
|
|
147
158
|
Orya;Oriya
|
|
148
159
|
Osge;Osage
|
|
149
160
|
Osma;Osmanya
|
|
161
|
+
Ougr;Old_Uyghur
|
|
150
162
|
P;Punctuation
|
|
151
163
|
PCM;Prepended_Concatenation_Mark
|
|
152
164
|
Palm;Palmyrene
|
|
@@ -211,10 +223,12 @@ Tglg;Tagalog
|
|
|
211
223
|
Thaa;Thaana
|
|
212
224
|
Tibt;Tibetan
|
|
213
225
|
Tirh;Tirhuta
|
|
226
|
+
Tnsa;Tangsa
|
|
214
227
|
UIdeo;Unified_Ideograph
|
|
215
228
|
Ugar;Ugaritic
|
|
216
229
|
VS;Variation_Selector
|
|
217
230
|
Vaii;Vai
|
|
231
|
+
Vith;Vithkuqi
|
|
218
232
|
WSpace;White_Space
|
|
219
233
|
Wara;Warang_Citi
|
|
220
234
|
Wcho;Wancho
|
|
@@ -222,6 +236,7 @@ XIDC;XID_Continue
|
|
|
222
236
|
XIDS;XID_Start
|
|
223
237
|
Xpeo;Old_Persian
|
|
224
238
|
Xsux;Cuneiform
|
|
239
|
+
Yezi;Yezidi
|
|
225
240
|
Yiii;Yi
|
|
226
241
|
Z;Separator
|
|
227
242
|
Zanb;Zanabazar_Square
|
|
@@ -5,7 +5,7 @@ module RegexpPropertyValues
|
|
|
5
5
|
require 'fileutils'
|
|
6
6
|
require 'set'
|
|
7
7
|
|
|
8
|
-
BASE_URL = '
|
|
8
|
+
BASE_URL = 'https://www.unicode.org/Public/UCD/latest/ucd'
|
|
9
9
|
|
|
10
10
|
UCD_FILES = %w[
|
|
11
11
|
Blocks.txt
|
|
@@ -15,6 +15,7 @@ module RegexpPropertyValues
|
|
|
15
15
|
PropertyValueAliases.txt
|
|
16
16
|
PropList.txt
|
|
17
17
|
Scripts.txt
|
|
18
|
+
auxiliary/GraphemeBreakProperty.txt
|
|
18
19
|
]
|
|
19
20
|
|
|
20
21
|
EMOJI_FILES = %w[
|
|
@@ -23,9 +24,9 @@ module RegexpPropertyValues
|
|
|
23
24
|
|
|
24
25
|
TMP_DIR = File.join(__dir__, 'tmp_ucd')
|
|
25
26
|
|
|
26
|
-
def call
|
|
27
|
+
def call(ucd_path: nil, emoji_path: nil)
|
|
27
28
|
prepare_tmp_dir
|
|
28
|
-
download_ucd_files
|
|
29
|
+
download_ucd_files(ucd_path: ucd_path, emoji_path: emoji_path)
|
|
29
30
|
write_values
|
|
30
31
|
write_aliases
|
|
31
32
|
remove_tmp_dir
|
|
@@ -37,17 +38,16 @@ module RegexpPropertyValues
|
|
|
37
38
|
FileUtils.mkdir(TMP_DIR)
|
|
38
39
|
end
|
|
39
40
|
|
|
40
|
-
def download_ucd_files
|
|
41
|
-
|
|
42
|
-
emoji_version = RbConfig::CONFIG.fetch('UNICODE_EMOJI_VERSION')
|
|
43
|
-
puts 'This will load ucd and emoji data for the CURRENT RUBY '\
|
|
44
|
-
"(#{unicode_version} / #{emoji_version}). Run this on the "\
|
|
45
|
-
'latest Ruby version you want to support. Continue? [y/n]'
|
|
41
|
+
def download_ucd_files(ucd_path: nil, emoji_path: nil)
|
|
42
|
+
puts 'This will try to load the latest UCD data. Continue? [y/n]'
|
|
46
43
|
return puts 'download skipped.' unless $stdin.gets =~ /^y/i
|
|
47
44
|
|
|
45
|
+
ucd_path ||= ENV['RPV_UCD_PATH'] || BASE_URL
|
|
46
|
+
emoji_path ||= ENV['RPV_EMOJI_PATH'] || "#{BASE_URL}/emoji/"
|
|
47
|
+
|
|
48
48
|
Dir.chdir(TMP_DIR) do
|
|
49
|
-
UCD_FILES.each { |f| `wget #{
|
|
50
|
-
EMOJI_FILES.each { |f| `wget #{
|
|
49
|
+
UCD_FILES.each { |f| `wget #{ucd_path}/#{f}` }
|
|
50
|
+
EMOJI_FILES.each { |f| `wget #{emoji_path}/#{f}` }
|
|
51
51
|
end
|
|
52
52
|
end
|
|
53
53
|
|
|
@@ -62,7 +62,9 @@ module RegexpPropertyValues
|
|
|
62
62
|
]
|
|
63
63
|
|
|
64
64
|
# special properties
|
|
65
|
-
@values += %w[
|
|
65
|
+
@values += %w[
|
|
66
|
+
Any Assigned Extended_Pictographic In_No_Block Unknown
|
|
67
|
+
]
|
|
66
68
|
|
|
67
69
|
# legacy properties
|
|
68
70
|
@values += %w[Newline]
|
|
@@ -87,6 +89,10 @@ module RegexpPropertyValues
|
|
|
87
89
|
@values << 'Age=' + caps[:age_num]
|
|
88
90
|
end
|
|
89
91
|
|
|
92
|
+
scan('GraphemeBreakProperty.txt', /; *(?<name>\w+) *#/) do |caps|
|
|
93
|
+
@values << 'Grapheme_Cluster_Break=' + caps[:name]
|
|
94
|
+
end
|
|
95
|
+
|
|
90
96
|
File.write(RegexpPropertyValues::VALUES_PATH, @values.sort.join("\n"))
|
|
91
97
|
end
|
|
92
98
|
|
|
@@ -2,11 +2,17 @@ module RegexpPropertyValues
|
|
|
2
2
|
class Value
|
|
3
3
|
module ExtAdapter
|
|
4
4
|
def matched_characters
|
|
5
|
-
|
|
5
|
+
acc = []
|
|
6
|
+
matched_codepoints.each do |cp|
|
|
7
|
+
acc << cp.chr('utf-8') if cp < 0xD800 || cp > 0xDFFF
|
|
8
|
+
end
|
|
9
|
+
acc
|
|
6
10
|
end
|
|
7
11
|
|
|
8
12
|
def matched_codepoints
|
|
9
|
-
|
|
13
|
+
OnigRegexpPropertyHelper.matched_codepoints(name)
|
|
14
|
+
rescue ArgumentError
|
|
15
|
+
raise_unsupported_or_unknown_error
|
|
10
16
|
end
|
|
11
17
|
|
|
12
18
|
def matched_ranges
|
data/lib/values
CHANGED
|
@@ -6,6 +6,10 @@ Age=10.0
|
|
|
6
6
|
Age=11.0
|
|
7
7
|
Age=12.0
|
|
8
8
|
Age=12.1
|
|
9
|
+
Age=13.0
|
|
10
|
+
Age=14.0
|
|
11
|
+
Age=15.0
|
|
12
|
+
Age=15.1
|
|
9
13
|
Age=2.0
|
|
10
14
|
Age=2.1
|
|
11
15
|
Age=3.0
|
|
@@ -60,6 +64,7 @@ Changes_When_Lowercased
|
|
|
60
64
|
Changes_When_Titlecased
|
|
61
65
|
Changes_When_Uppercased
|
|
62
66
|
Cherokee
|
|
67
|
+
Chorasmian
|
|
63
68
|
Close_Punctuation
|
|
64
69
|
Cntrl
|
|
65
70
|
Common
|
|
@@ -69,6 +74,7 @@ Coptic
|
|
|
69
74
|
Cuneiform
|
|
70
75
|
Currency_Symbol
|
|
71
76
|
Cypriot
|
|
77
|
+
Cypro_Minoan
|
|
72
78
|
Cyrillic
|
|
73
79
|
Dash
|
|
74
80
|
Dash_Punctuation
|
|
@@ -79,6 +85,7 @@ Deseret
|
|
|
79
85
|
Devanagari
|
|
80
86
|
Diacritic
|
|
81
87
|
Digit
|
|
88
|
+
Dives_Akuru
|
|
82
89
|
Dogra
|
|
83
90
|
Duployan
|
|
84
91
|
Egyptian_Hieroglyphs
|
|
@@ -91,6 +98,7 @@ Emoji_Modifier_Base
|
|
|
91
98
|
Emoji_Presentation
|
|
92
99
|
Enclosing_Mark
|
|
93
100
|
Ethiopic
|
|
101
|
+
Extended_Pictographic
|
|
94
102
|
Extender
|
|
95
103
|
Final_Punctuation
|
|
96
104
|
Format
|
|
@@ -100,6 +108,19 @@ Gothic
|
|
|
100
108
|
Grantha
|
|
101
109
|
Graph
|
|
102
110
|
Grapheme_Base
|
|
111
|
+
Grapheme_Cluster_Break=CR
|
|
112
|
+
Grapheme_Cluster_Break=Control
|
|
113
|
+
Grapheme_Cluster_Break=Extend
|
|
114
|
+
Grapheme_Cluster_Break=L
|
|
115
|
+
Grapheme_Cluster_Break=LF
|
|
116
|
+
Grapheme_Cluster_Break=LV
|
|
117
|
+
Grapheme_Cluster_Break=LVT
|
|
118
|
+
Grapheme_Cluster_Break=Prepend
|
|
119
|
+
Grapheme_Cluster_Break=Regional_Indicator
|
|
120
|
+
Grapheme_Cluster_Break=SpacingMark
|
|
121
|
+
Grapheme_Cluster_Break=T
|
|
122
|
+
Grapheme_Cluster_Break=V
|
|
123
|
+
Grapheme_Cluster_Break=ZWJ
|
|
103
124
|
Grapheme_Extend
|
|
104
125
|
Grapheme_Link
|
|
105
126
|
Greek
|
|
@@ -117,6 +138,9 @@ Hiragana
|
|
|
117
138
|
Hyphen
|
|
118
139
|
IDS_Binary_Operator
|
|
119
140
|
IDS_Trinary_Operator
|
|
141
|
+
IDS_Unary_Operator
|
|
142
|
+
ID_Compat_Math_Continue
|
|
143
|
+
ID_Compat_Math_Start
|
|
120
144
|
ID_Continue
|
|
121
145
|
ID_Start
|
|
122
146
|
Ideographic
|
|
@@ -132,6 +156,8 @@ In_Ancient_Greek_Numbers
|
|
|
132
156
|
In_Ancient_Symbols
|
|
133
157
|
In_Arabic
|
|
134
158
|
In_Arabic_Extended_A
|
|
159
|
+
In_Arabic_Extended_B
|
|
160
|
+
In_Arabic_Extended_C
|
|
135
161
|
In_Arabic_Mathematical_Alphabetic_Symbols
|
|
136
162
|
In_Arabic_Presentation_Forms_A
|
|
137
163
|
In_Arabic_Presentation_Forms_B
|
|
@@ -170,6 +196,9 @@ In_CJK_Unified_Ideographs_Extension_C
|
|
|
170
196
|
In_CJK_Unified_Ideographs_Extension_D
|
|
171
197
|
In_CJK_Unified_Ideographs_Extension_E
|
|
172
198
|
In_CJK_Unified_Ideographs_Extension_F
|
|
199
|
+
In_CJK_Unified_Ideographs_Extension_G
|
|
200
|
+
In_CJK_Unified_Ideographs_Extension_H
|
|
201
|
+
In_CJK_Unified_Ideographs_Extension_I
|
|
173
202
|
In_Carian
|
|
174
203
|
In_Caucasian_Albanian
|
|
175
204
|
In_Chakma
|
|
@@ -177,6 +206,7 @@ In_Cham
|
|
|
177
206
|
In_Cherokee
|
|
178
207
|
In_Cherokee_Supplement
|
|
179
208
|
In_Chess_Symbols
|
|
209
|
+
In_Chorasmian
|
|
180
210
|
In_Combining_Diacritical_Marks
|
|
181
211
|
In_Combining_Diacritical_Marks_Extended
|
|
182
212
|
In_Combining_Diacritical_Marks_Supplement
|
|
@@ -191,15 +221,19 @@ In_Cuneiform
|
|
|
191
221
|
In_Cuneiform_Numbers_and_Punctuation
|
|
192
222
|
In_Currency_Symbols
|
|
193
223
|
In_Cypriot_Syllabary
|
|
224
|
+
In_Cypro_Minoan
|
|
194
225
|
In_Cyrillic
|
|
195
226
|
In_Cyrillic_Extended_A
|
|
196
227
|
In_Cyrillic_Extended_B
|
|
197
228
|
In_Cyrillic_Extended_C
|
|
229
|
+
In_Cyrillic_Extended_D
|
|
198
230
|
In_Cyrillic_Supplement
|
|
199
231
|
In_Deseret
|
|
200
232
|
In_Devanagari
|
|
201
233
|
In_Devanagari_Extended
|
|
234
|
+
In_Devanagari_Extended_A
|
|
202
235
|
In_Dingbats
|
|
236
|
+
In_Dives_Akuru
|
|
203
237
|
In_Dogra
|
|
204
238
|
In_Domino_Tiles
|
|
205
239
|
In_Duployan
|
|
@@ -216,6 +250,7 @@ In_Enclosed_Ideographic_Supplement
|
|
|
216
250
|
In_Ethiopic
|
|
217
251
|
In_Ethiopic_Extended
|
|
218
252
|
In_Ethiopic_Extended_A
|
|
253
|
+
In_Ethiopic_Extended_B
|
|
219
254
|
In_Ethiopic_Supplement
|
|
220
255
|
In_General_Punctuation
|
|
221
256
|
In_Geometric_Shapes
|
|
@@ -254,15 +289,19 @@ In_Inscriptional_Pahlavi
|
|
|
254
289
|
In_Inscriptional_Parthian
|
|
255
290
|
In_Javanese
|
|
256
291
|
In_Kaithi
|
|
292
|
+
In_Kaktovik_Numerals
|
|
257
293
|
In_Kana_Extended_A
|
|
294
|
+
In_Kana_Extended_B
|
|
258
295
|
In_Kana_Supplement
|
|
259
296
|
In_Kanbun
|
|
260
297
|
In_Kangxi_Radicals
|
|
261
298
|
In_Kannada
|
|
262
299
|
In_Katakana
|
|
263
300
|
In_Katakana_Phonetic_Extensions
|
|
301
|
+
In_Kawi
|
|
264
302
|
In_Kayah_Li
|
|
265
303
|
In_Kharoshthi
|
|
304
|
+
In_Khitan_Small_Script
|
|
266
305
|
In_Khmer
|
|
267
306
|
In_Khmer_Symbols
|
|
268
307
|
In_Khojki
|
|
@@ -275,6 +314,8 @@ In_Latin_Extended_B
|
|
|
275
314
|
In_Latin_Extended_C
|
|
276
315
|
In_Latin_Extended_D
|
|
277
316
|
In_Latin_Extended_E
|
|
317
|
+
In_Latin_Extended_F
|
|
318
|
+
In_Latin_Extended_G
|
|
278
319
|
In_Lepcha
|
|
279
320
|
In_Letterlike_Symbols
|
|
280
321
|
In_Limbu
|
|
@@ -282,6 +323,7 @@ In_Linear_A
|
|
|
282
323
|
In_Linear_B_Ideograms
|
|
283
324
|
In_Linear_B_Syllabary
|
|
284
325
|
In_Lisu
|
|
326
|
+
In_Lisu_Supplement
|
|
285
327
|
In_Low_Surrogates
|
|
286
328
|
In_Lycian
|
|
287
329
|
In_Lydian
|
|
@@ -321,6 +363,7 @@ In_Myanmar_Extended_A
|
|
|
321
363
|
In_Myanmar_Extended_B
|
|
322
364
|
In_NKo
|
|
323
365
|
In_Nabataean
|
|
366
|
+
In_Nag_Mundari
|
|
324
367
|
In_Nandinagari
|
|
325
368
|
In_New_Tai_Lue
|
|
326
369
|
In_Newa
|
|
@@ -338,6 +381,7 @@ In_Old_Persian
|
|
|
338
381
|
In_Old_Sogdian
|
|
339
382
|
In_Old_South_Arabian
|
|
340
383
|
In_Old_Turkic
|
|
384
|
+
In_Old_Uyghur
|
|
341
385
|
In_Optical_Character_Recognition
|
|
342
386
|
In_Oriya
|
|
343
387
|
In_Ornamental_Dingbats
|
|
@@ -387,6 +431,7 @@ In_Supplementary_Private_Use_Area_B
|
|
|
387
431
|
In_Sutton_SignWriting
|
|
388
432
|
In_Syloti_Nagri
|
|
389
433
|
In_Symbols_and_Pictographs_Extended_A
|
|
434
|
+
In_Symbols_for_Legacy_Computing
|
|
390
435
|
In_Syriac
|
|
391
436
|
In_Syriac_Supplement
|
|
392
437
|
In_Tagalog
|
|
@@ -399,29 +444,36 @@ In_Tai_Xuan_Jing_Symbols
|
|
|
399
444
|
In_Takri
|
|
400
445
|
In_Tamil
|
|
401
446
|
In_Tamil_Supplement
|
|
447
|
+
In_Tangsa
|
|
402
448
|
In_Tangut
|
|
403
449
|
In_Tangut_Components
|
|
450
|
+
In_Tangut_Supplement
|
|
404
451
|
In_Telugu
|
|
405
452
|
In_Thaana
|
|
406
453
|
In_Thai
|
|
407
454
|
In_Tibetan
|
|
408
455
|
In_Tifinagh
|
|
409
456
|
In_Tirhuta
|
|
457
|
+
In_Toto
|
|
410
458
|
In_Transport_and_Map_Symbols
|
|
411
459
|
In_Ugaritic
|
|
412
460
|
In_Unified_Canadian_Aboriginal_Syllabics
|
|
413
461
|
In_Unified_Canadian_Aboriginal_Syllabics_Extended
|
|
462
|
+
In_Unified_Canadian_Aboriginal_Syllabics_Extended_A
|
|
414
463
|
In_Vai
|
|
415
464
|
In_Variation_Selectors
|
|
416
465
|
In_Variation_Selectors_Supplement
|
|
417
466
|
In_Vedic_Extensions
|
|
418
467
|
In_Vertical_Forms
|
|
468
|
+
In_Vithkuqi
|
|
419
469
|
In_Wancho
|
|
420
470
|
In_Warang_Citi
|
|
471
|
+
In_Yezidi
|
|
421
472
|
In_Yi_Radicals
|
|
422
473
|
In_Yi_Syllables
|
|
423
474
|
In_Yijing_Hexagram_Symbols
|
|
424
475
|
In_Zanabazar_Square
|
|
476
|
+
In_Znamenny_Musical_Notation
|
|
425
477
|
Inherited
|
|
426
478
|
Initial_Punctuation
|
|
427
479
|
Inscriptional_Pahlavi
|
|
@@ -431,8 +483,10 @@ Join_Control
|
|
|
431
483
|
Kaithi
|
|
432
484
|
Kannada
|
|
433
485
|
Katakana
|
|
486
|
+
Kawi
|
|
434
487
|
Kayah_Li
|
|
435
488
|
Kharoshthi
|
|
489
|
+
Khitan_Small_Script
|
|
436
490
|
Khmer
|
|
437
491
|
Khojki
|
|
438
492
|
Khudawadi
|
|
@@ -476,6 +530,7 @@ Mro
|
|
|
476
530
|
Multani
|
|
477
531
|
Myanmar
|
|
478
532
|
Nabataean
|
|
533
|
+
Nag_Mundari
|
|
479
534
|
Nandinagari
|
|
480
535
|
New_Tai_Lue
|
|
481
536
|
Newa
|
|
@@ -496,6 +551,7 @@ Old_Persian
|
|
|
496
551
|
Old_Sogdian
|
|
497
552
|
Old_South_Arabian
|
|
498
553
|
Old_Turkic
|
|
554
|
+
Old_Uyghur
|
|
499
555
|
Open_Punctuation
|
|
500
556
|
Oriya
|
|
501
557
|
Osage
|
|
@@ -560,6 +616,7 @@ Tai_Tham
|
|
|
560
616
|
Tai_Viet
|
|
561
617
|
Takri
|
|
562
618
|
Tamil
|
|
619
|
+
Tangsa
|
|
563
620
|
Tangut
|
|
564
621
|
Telugu
|
|
565
622
|
Terminal_Punctuation
|
|
@@ -569,6 +626,7 @@ Tibetan
|
|
|
569
626
|
Tifinagh
|
|
570
627
|
Tirhuta
|
|
571
628
|
Titlecase_Letter
|
|
629
|
+
Toto
|
|
572
630
|
Ugaritic
|
|
573
631
|
Unassigned
|
|
574
632
|
Unified_Ideograph
|
|
@@ -578,6 +636,7 @@ Uppercase
|
|
|
578
636
|
Uppercase_Letter
|
|
579
637
|
Vai
|
|
580
638
|
Variation_Selector
|
|
639
|
+
Vithkuqi
|
|
581
640
|
Wancho
|
|
582
641
|
Warang_Citi
|
|
583
642
|
White_Space
|
|
@@ -586,5 +645,6 @@ XDigit
|
|
|
586
645
|
XID_Continue
|
|
587
646
|
XID_Start
|
|
588
647
|
XPosixPunct
|
|
648
|
+
Yezidi
|
|
589
649
|
Yi
|
|
590
650
|
Zanabazar_Square
|
|
@@ -22,11 +22,5 @@ Gem::Specification.new do |s|
|
|
|
22
22
|
|
|
23
23
|
s.extensions = %w[ext/regexp_property_values/extconf.rb]
|
|
24
24
|
|
|
25
|
-
s.required_ruby_version = '>= 2.
|
|
26
|
-
|
|
27
|
-
s.add_development_dependency 'character_set', '~> 1.4.0'
|
|
28
|
-
s.add_development_dependency 'rake', '~> 12.0'
|
|
29
|
-
s.add_development_dependency 'rake-compiler', '~> 1.0'
|
|
30
|
-
s.add_development_dependency 'range_compressor', '~> 1.0'
|
|
31
|
-
s.add_development_dependency 'rspec', '~> 3.0'
|
|
25
|
+
s.required_ruby_version = '>= 2.1.0'
|
|
32
26
|
end
|
metadata
CHANGED
|
@@ -1,85 +1,15 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: regexp_property_values
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.5.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Janosch Müller
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
12
|
-
dependencies:
|
|
13
|
-
- !ruby/object:Gem::Dependency
|
|
14
|
-
name: character_set
|
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
|
16
|
-
requirements:
|
|
17
|
-
- - "~>"
|
|
18
|
-
- !ruby/object:Gem::Version
|
|
19
|
-
version: 1.4.0
|
|
20
|
-
type: :development
|
|
21
|
-
prerelease: false
|
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
-
requirements:
|
|
24
|
-
- - "~>"
|
|
25
|
-
- !ruby/object:Gem::Version
|
|
26
|
-
version: 1.4.0
|
|
27
|
-
- !ruby/object:Gem::Dependency
|
|
28
|
-
name: rake
|
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
|
30
|
-
requirements:
|
|
31
|
-
- - "~>"
|
|
32
|
-
- !ruby/object:Gem::Version
|
|
33
|
-
version: '12.0'
|
|
34
|
-
type: :development
|
|
35
|
-
prerelease: false
|
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
-
requirements:
|
|
38
|
-
- - "~>"
|
|
39
|
-
- !ruby/object:Gem::Version
|
|
40
|
-
version: '12.0'
|
|
41
|
-
- !ruby/object:Gem::Dependency
|
|
42
|
-
name: rake-compiler
|
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
|
44
|
-
requirements:
|
|
45
|
-
- - "~>"
|
|
46
|
-
- !ruby/object:Gem::Version
|
|
47
|
-
version: '1.0'
|
|
48
|
-
type: :development
|
|
49
|
-
prerelease: false
|
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
-
requirements:
|
|
52
|
-
- - "~>"
|
|
53
|
-
- !ruby/object:Gem::Version
|
|
54
|
-
version: '1.0'
|
|
55
|
-
- !ruby/object:Gem::Dependency
|
|
56
|
-
name: range_compressor
|
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
|
58
|
-
requirements:
|
|
59
|
-
- - "~>"
|
|
60
|
-
- !ruby/object:Gem::Version
|
|
61
|
-
version: '1.0'
|
|
62
|
-
type: :development
|
|
63
|
-
prerelease: false
|
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
-
requirements:
|
|
66
|
-
- - "~>"
|
|
67
|
-
- !ruby/object:Gem::Version
|
|
68
|
-
version: '1.0'
|
|
69
|
-
- !ruby/object:Gem::Dependency
|
|
70
|
-
name: rspec
|
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
|
72
|
-
requirements:
|
|
73
|
-
- - "~>"
|
|
74
|
-
- !ruby/object:Gem::Version
|
|
75
|
-
version: '3.0'
|
|
76
|
-
type: :development
|
|
77
|
-
prerelease: false
|
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
79
|
-
requirements:
|
|
80
|
-
- - "~>"
|
|
81
|
-
- !ruby/object:Gem::Version
|
|
82
|
-
version: '3.0'
|
|
11
|
+
date: 2024-05-22 00:00:00.000000000 Z
|
|
12
|
+
dependencies: []
|
|
83
13
|
description: This small library lets you see which property values are supported by
|
|
84
14
|
the regular expression engine of the Ruby version you are running, and what they
|
|
85
15
|
match.
|
|
@@ -90,9 +20,9 @@ extensions:
|
|
|
90
20
|
- ext/regexp_property_values/extconf.rb
|
|
91
21
|
extra_rdoc_files: []
|
|
92
22
|
files:
|
|
23
|
+
- ".github/workflows/tests.yml"
|
|
93
24
|
- ".gitignore"
|
|
94
25
|
- ".rspec"
|
|
95
|
-
- ".travis.yml"
|
|
96
26
|
- CHANGELOG.md
|
|
97
27
|
- Gemfile
|
|
98
28
|
- LICENSE.txt
|
|
@@ -116,7 +46,7 @@ homepage: https://github.com/jaynetics/regexp_property_values
|
|
|
116
46
|
licenses:
|
|
117
47
|
- MIT
|
|
118
48
|
metadata: {}
|
|
119
|
-
post_install_message:
|
|
49
|
+
post_install_message:
|
|
120
50
|
rdoc_options: []
|
|
121
51
|
require_paths:
|
|
122
52
|
- lib
|
|
@@ -124,15 +54,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
124
54
|
requirements:
|
|
125
55
|
- - ">="
|
|
126
56
|
- !ruby/object:Gem::Version
|
|
127
|
-
version: 2.
|
|
57
|
+
version: 2.1.0
|
|
128
58
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
129
59
|
requirements:
|
|
130
60
|
- - ">="
|
|
131
61
|
- !ruby/object:Gem::Version
|
|
132
62
|
version: '0'
|
|
133
63
|
requirements: []
|
|
134
|
-
rubygems_version: 3.
|
|
135
|
-
signing_key:
|
|
64
|
+
rubygems_version: 3.5.3
|
|
65
|
+
signing_key:
|
|
136
66
|
specification_version: 4
|
|
137
67
|
summary: Inspect property values supported by Ruby's regex engine
|
|
138
68
|
test_files: []
|