character_set 1.1.2 → 1.2.0

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
- SHA1:
3
- metadata.gz: 4d024bce839702f7dbf60c6d76f6514e1b793906
4
- data.tar.gz: 9b89aefe5f495fe95fb033174ad65e6fdfb475ab
2
+ SHA256:
3
+ metadata.gz: 434323b3b99246a17ea5e062afd87d3edc3c09927b2231b4409b295ff63c7d6c
4
+ data.tar.gz: 174c6dc751b03e49cf87045fad9a48100460244b7d7e25deef27066bd4aef92c
5
5
  SHA512:
6
- metadata.gz: 591c57be8df91c3b056729097cde4f80d84c52b1d68701d69269ac0421cf1281d453193837ebde1c337b6bee20444d5770d16791f7b85f66bdf6cff9bc4a92f1
7
- data.tar.gz: 395ddca1f080894b26c35339e50e1dc87fe1ac253902a11f6762f1d070d00ad731434bb2190ee17afa57cac9442f24ece23caff6ce80c095da57083ee49a2bde
6
+ metadata.gz: d9fa059ea3171209af537f0bd7636e3a65b962f30029ca399fe2fa0bd6168dd692b7bc5fb1014590a830b2e9aede9c26ae00ae8fe4a2eae4a86cf95e208b507d
7
+ data.tar.gz: 692f4596b6adc9b44879b69fb82e55dc90d107156ecabb96c14ea91b4dc0c7dc706724b42093d0ef762cdac697f05ef855c5f462451015e1d06022ab06bc1c8d
data/.gitignore CHANGED
@@ -15,6 +15,7 @@
15
15
  .ruby-version
16
16
  .tags
17
17
  .tags1
18
+ .vscode
18
19
  bbin/
19
20
  binstubs/*
20
21
  bundler_stubs/*/.yardoc
data/.travis.yml CHANGED
@@ -6,6 +6,3 @@ rvm:
6
6
  - 2.5
7
7
  - 2.6
8
8
  - jruby-9.1.9.0
9
- before_install:
10
- - gem update --system
11
- - gem install bundler
data/CHANGELOG.md CHANGED
@@ -4,6 +4,11 @@ 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.2.0] - 2019-04-02
8
+
9
+ ### Added
10
+ - added latest Unicode casefold data (for `#case_insensitive`)
11
+
7
12
  ## [1.1.2] - 2018-09-25
8
13
 
9
14
  ### Fixed
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # CharacterSet
2
2
 
3
3
  [![Gem Version](https://badge.fury.io/rb/character_set.svg)](http://badge.fury.io/rb/character_set)
4
- [![Build Status](https://travis-ci.org/janosch-x/character_set.svg?branch=master)](https://travis-ci.org/janosch-x/character_set)
4
+ [![Build Status](https://travis-ci.org/jaynetics/character_set.svg?branch=master)](https://travis-ci.org/jaynetics/character_set)
5
5
 
6
6
  A gem to build, read, write and compare sets of Unicode codepoints.
7
7
 
@@ -9,7 +9,7 @@ Many parts can be used independently, e.g.:
9
9
  - `CharacterSet::Character`
10
10
  - `CharacterSet::Parser`
11
11
  - `CharacterSet::Writer`
12
- - [`RangeCompressor`](https://github.com/janosch-x/range_compressor)
12
+ - [`RangeCompressor`](https://github.com/jaynetics/range_compressor)
13
13
 
14
14
  ## Usage
15
15
 
@@ -37,7 +37,7 @@ CharacterSet.parse('[a-c]')
37
37
  CharacterSet.parse('\U00000061-\U00000063')
38
38
  ```
39
39
 
40
- If the gems [`regexp_parser`](https://github.com/ammar/regexp_parser) and [`regexp_property_values`](https://github.com/janosch-x/regexp_property_values) are installed, `::of_regexp` and `::of_property` can also be used. `::of_regexp` can handle intersections, negations, and set nesting.
40
+ If the gems [`regexp_parser`](https://github.com/ammar/regexp_parser) and [`regexp_property_values`](https://github.com/jaynetics/regexp_property_values) are installed, `::of_regexp` and `::of_property` can also be used. `::of_regexp` can handle intersections, negations, and set nesting.
41
41
 
42
42
  ```ruby
43
43
  CharacterSet.of_property('Thai') # => #<CharacterSet (size: 86)>
data/Rakefile CHANGED
@@ -35,43 +35,62 @@ task :sync_ruby_spec do
35
35
  'CharacterSet' => './spec/ruby-spec/library/character_set',
36
36
  'CharacterSet::Pure' => './spec/ruby-spec/library/character_set_pure',
37
37
  }
38
+
39
+ # download fresh specs from ruby/spec repository
38
40
  variants.each do |_, dir|
39
41
  FileUtils.rm_rf(dir) if File.exist?(dir)
40
42
  `svn export https://github.com/ruby/spec/trunk/library/set/sortedset #{dir}`
41
43
  end
42
44
 
45
+ # make copies for each CharacterSet variant
43
46
  base = variants.first[1]
44
47
  variants.each_value { |dir| FileUtils.copy_entry(base, dir) unless dir == base }
45
48
 
46
- variants.each.with_index do |(class_name, dir), i|
49
+ # adapt specs to work with CharacterSet
50
+ variants.each do |class_name, dir|
47
51
  Dir["#{dir}/**/*.rb"].each do |spec|
48
- # remove some tests that do not apply or are covered otherwise
49
- if spec =~ %r{/(flatten|initialize|pretty_print)}
52
+ # ignore some tests that do not apply or are covered otherwise
53
+ if spec =~ %r{/(classify|divide|flatten|initialize|pretty_print)}
50
54
  File.delete(spec)
51
55
  next
52
56
  end
53
57
 
54
- # some examples w. Strings must be adapted, "mspec" made rspec-compatible,
55
- # and `i` added to shared example names or they'll override each other
56
58
  adapted_content =
57
- File
58
- .read(spec)
59
- .gsub('SortedSet', class_name)
60
- .gsub('sorted_set_', "sorted_set_#{i}_")
61
- .gsub(/describe (.*), shared.*$/, 'shared_examples \1 do |method|')
62
- .gsub(/1\.0|"cat"|"dog"|"hello"|"test"/, '0')
63
- .gsub('"one"', '1')
64
- .gsub('"two"', '2')
65
- .gsub('"three"', '3')
66
- .gsub('"four"', '4')
67
- .gsub('"five"', '5')
68
- .gsub('@method', 'method')
69
- .gsub(/be_(false|true)/, 'be \1')
70
- .gsub('mock', 'double')
59
+ File.read(spec).
60
+ # adapt class name
61
+ gsub('SortedSet', (spec['/shared/'] ? 'variant' : class_name)).
62
+ gsub(/(it_behaves_like :[^,\n]+), (:[^,\n]+)/, "\\1, #{class_name}, \\2").
63
+ # get shared specs from a single shared dir at the parent level
64
+ gsub(/(require_relative ['"])(shared\/)/, '\1../\2').
65
+ # make 'mspec' syntax rspec-compatible
66
+ gsub(/describe (.*), shared.*$/, 'shared_examples \1 do |variant, method|').
67
+ gsub(/be_(false|true)/, 'be \1').
68
+ gsub('stub!', 'stub').
69
+ gsub('mock', 'double').
70
+ gsub('@method', 'method').
71
+ # remove unneeded requires
72
+ gsub(/require 'set'\n/, '').
73
+ gsub(/require.*spec_helper.*\n/, '').
74
+ gsub(/\A\n+/, '').
75
+ # make examples use Integers/codepoints
76
+ gsub(/1\.0|"cat"|"dog"|"hello"|"test"/, '0').
77
+ gsub('"one"', '1').
78
+ gsub('"two"', '2').
79
+ gsub('"three"', '3').
80
+ gsub('"four"', '4').
81
+ gsub('"five"', '5').
82
+ gsub(/x.(size|length) == 3/, 'x != 3').
83
+ gsub(/x.(size|length) != 3/, 'x == 3').
84
+ gsub(/(add)\(\d\)(\.to_a \}.should raise)/, '\1(:foo)\2')
71
85
 
72
86
  File.open(spec, 'w') { |f| f.puts adapted_content }
73
87
  end
74
88
  end
89
+
90
+ # keep only one copy of the shared specs, at the parent level
91
+ FileUtils.rm_rf(base + '/../shared')
92
+ FileUtils.mv(base + '/shared', base + '/../')
93
+ variants.each_value { |dir| FileUtils.rm_rf(dir + '/shared') }
75
94
  end
76
95
 
77
96
  desc 'Download unicode casefold data and write new C header file'
@@ -89,7 +108,8 @@ task :sync_casefold_data do
89
108
 
90
109
  File.open(dst_path, 'w') do |f|
91
110
  f.puts <<-C
92
- // THIS FILE IS GENERATED BY $ rake sync_casefold_data - DO NOT EDIT'
111
+ // THIS FILE IS GENERATED BY $ rake sync_casefold_data - DO NOT EDIT
112
+ // -*-C-*-
93
113
 
94
114
  typedef struct casefold_mapping {
95
115
  unsigned long from;
@@ -10,7 +10,7 @@ Gem::Specification.new do |s|
10
10
  s.email = ['janosch84@gmail.com']
11
11
 
12
12
  s.summary = 'Build, read, write and compare sets of Unicode codepoints.'
13
- s.homepage = 'https://github.com/janosch-x/character_set'
13
+ s.homepage = 'https://github.com/jaynetics/character_set'
14
14
  s.license = 'MIT'
15
15
 
16
16
  s.files = `git ls-files -z`.split("\x0").reject do |f|
@@ -23,11 +23,10 @@ Gem::Specification.new do |s|
23
23
  s.required_ruby_version = '>= 2.1.0'
24
24
 
25
25
  s.add_development_dependency 'benchmark-ips', '~> 2.7'
26
- s.add_development_dependency 'bundler', '~> 1.16'
27
26
  s.add_development_dependency 'rake', '~> 12.0'
28
27
  s.add_development_dependency 'rake-compiler', '~> 1.0'
29
28
  s.add_development_dependency 'range_compressor', '~> 1.0'
30
- s.add_development_dependency 'regexp_parser', '~> 1.1'
31
- s.add_development_dependency 'regexp_property_values', '~> 0.3.4'
29
+ s.add_development_dependency 'regexp_parser', '~> 1.3'
30
+ s.add_development_dependency 'regexp_property_values', '~> 0.3.5'
32
31
  s.add_development_dependency 'rspec', '~> 3.8'
33
32
  end
@@ -1,11 +1,12 @@
1
- // THIS FILE IS GENERATED BY $ rake sync_casefold_data - DO NOT EDIT'
1
+ // THIS FILE IS GENERATED BY $ rake sync_casefold_data - DO NOT EDIT
2
+ // -*-C-*-
2
3
 
3
4
  typedef struct casefold_mapping {
4
5
  unsigned long from;
5
6
  unsigned long to;
6
7
  } casefold_mapping;
7
8
 
8
- #define CASEFOLD_COUNT 1376
9
+ #define CASEFOLD_COUNT 1383
9
10
 
10
11
  static const casefold_mapping unicode_casefold_table[CASEFOLD_COUNT] = {
11
12
  {0x0041,0x0061},
@@ -1278,6 +1279,13 @@ static const casefold_mapping unicode_casefold_table[CASEFOLD_COUNT] = {
1278
1279
  {0xA7B4,0xA7B5},
1279
1280
  {0xA7B6,0xA7B7},
1280
1281
  {0xA7B8,0xA7B9},
1282
+ {0xA7BA,0xA7BB},
1283
+ {0xA7BC,0xA7BD},
1284
+ {0xA7BE,0xA7BF},
1285
+ {0xA7C2,0xA7C3},
1286
+ {0xA7C4,0xA794},
1287
+ {0xA7C5,0x0282},
1288
+ {0xA7C6,0x1D8E},
1281
1289
  {0xAB70,0x13A0},
1282
1290
  {0xAB71,0x13A1},
1283
1291
  {0xAB72,0x13A2},
@@ -1,3 +1,3 @@
1
1
  class CharacterSet
2
- VERSION = '1.1.2'
2
+ VERSION = '1.2.0'
3
3
  end
metadata CHANGED
@@ -1,128 +1,114 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: character_set
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.2
4
+ version: 1.2.0
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: 2018-09-25 00:00:00.000000000 Z
11
+ date: 2019-04-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
+ name: benchmark-ips
14
15
  requirement: !ruby/object:Gem::Requirement
15
16
  requirements:
16
17
  - - "~>"
17
18
  - !ruby/object:Gem::Version
18
19
  version: '2.7'
19
- name: benchmark-ips
20
- prerelease: false
21
20
  type: :development
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: '2.7'
27
- - !ruby/object:Gem::Dependency
28
- requirement: !ruby/object:Gem::Requirement
29
- requirements:
30
- - - "~>"
31
- - !ruby/object:Gem::Version
32
- version: '1.16'
33
- name: bundler
34
21
  prerelease: false
35
- type: :development
36
22
  version_requirements: !ruby/object:Gem::Requirement
37
23
  requirements:
38
24
  - - "~>"
39
25
  - !ruby/object:Gem::Version
40
- version: '1.16'
26
+ version: '2.7'
41
27
  - !ruby/object:Gem::Dependency
28
+ name: rake
42
29
  requirement: !ruby/object:Gem::Requirement
43
30
  requirements:
44
31
  - - "~>"
45
32
  - !ruby/object:Gem::Version
46
33
  version: '12.0'
47
- name: rake
48
- prerelease: false
49
34
  type: :development
35
+ prerelease: false
50
36
  version_requirements: !ruby/object:Gem::Requirement
51
37
  requirements:
52
38
  - - "~>"
53
39
  - !ruby/object:Gem::Version
54
40
  version: '12.0'
55
41
  - !ruby/object:Gem::Dependency
42
+ name: rake-compiler
56
43
  requirement: !ruby/object:Gem::Requirement
57
44
  requirements:
58
45
  - - "~>"
59
46
  - !ruby/object:Gem::Version
60
47
  version: '1.0'
61
- name: rake-compiler
62
- prerelease: false
63
48
  type: :development
49
+ prerelease: false
64
50
  version_requirements: !ruby/object:Gem::Requirement
65
51
  requirements:
66
52
  - - "~>"
67
53
  - !ruby/object:Gem::Version
68
54
  version: '1.0'
69
55
  - !ruby/object:Gem::Dependency
56
+ name: range_compressor
70
57
  requirement: !ruby/object:Gem::Requirement
71
58
  requirements:
72
59
  - - "~>"
73
60
  - !ruby/object:Gem::Version
74
61
  version: '1.0'
75
- name: range_compressor
76
- prerelease: false
77
62
  type: :development
63
+ prerelease: false
78
64
  version_requirements: !ruby/object:Gem::Requirement
79
65
  requirements:
80
66
  - - "~>"
81
67
  - !ruby/object:Gem::Version
82
68
  version: '1.0'
83
69
  - !ruby/object:Gem::Dependency
70
+ name: regexp_parser
84
71
  requirement: !ruby/object:Gem::Requirement
85
72
  requirements:
86
73
  - - "~>"
87
74
  - !ruby/object:Gem::Version
88
- version: '1.1'
89
- name: regexp_parser
90
- prerelease: false
75
+ version: '1.3'
91
76
  type: :development
77
+ prerelease: false
92
78
  version_requirements: !ruby/object:Gem::Requirement
93
79
  requirements:
94
80
  - - "~>"
95
81
  - !ruby/object:Gem::Version
96
- version: '1.1'
82
+ version: '1.3'
97
83
  - !ruby/object:Gem::Dependency
84
+ name: regexp_property_values
98
85
  requirement: !ruby/object:Gem::Requirement
99
86
  requirements:
100
87
  - - "~>"
101
88
  - !ruby/object:Gem::Version
102
- version: 0.3.4
103
- name: regexp_property_values
104
- prerelease: false
89
+ version: 0.3.5
105
90
  type: :development
91
+ prerelease: false
106
92
  version_requirements: !ruby/object:Gem::Requirement
107
93
  requirements:
108
94
  - - "~>"
109
95
  - !ruby/object:Gem::Version
110
- version: 0.3.4
96
+ version: 0.3.5
111
97
  - !ruby/object:Gem::Dependency
98
+ name: rspec
112
99
  requirement: !ruby/object:Gem::Requirement
113
100
  requirements:
114
101
  - - "~>"
115
102
  - !ruby/object:Gem::Version
116
103
  version: '3.8'
117
- name: rspec
118
- prerelease: false
119
104
  type: :development
105
+ prerelease: false
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
107
  requirements:
122
108
  - - "~>"
123
109
  - !ruby/object:Gem::Version
124
110
  version: '3.8'
125
- description:
111
+ description:
126
112
  email:
127
113
  - janosch84@gmail.com
128
114
  executables: []
@@ -167,11 +153,11 @@ files:
167
153
  - lib/character_set/shared_methods.rb
168
154
  - lib/character_set/version.rb
169
155
  - lib/character_set/writer.rb
170
- homepage: https://github.com/janosch-x/character_set
156
+ homepage: https://github.com/jaynetics/character_set
171
157
  licenses:
172
158
  - MIT
173
159
  metadata: {}
174
- post_install_message:
160
+ post_install_message:
175
161
  rdoc_options: []
176
162
  require_paths:
177
163
  - lib
@@ -186,9 +172,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
186
172
  - !ruby/object:Gem::Version
187
173
  version: '0'
188
174
  requirements: []
189
- rubyforge_project:
190
- rubygems_version: 2.6.14
191
- signing_key:
175
+ rubygems_version: 3.0.3
176
+ signing_key:
192
177
  specification_version: 4
193
178
  summary: Build, read, write and compare sets of Unicode codepoints.
194
179
  test_files: []