character_set 1.2.0 → 1.3.0

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.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/.gitattributes +3 -0
  3. data/.travis.yml +1 -0
  4. data/BENCHMARK.md +51 -15
  5. data/CHANGELOG.md +20 -0
  6. data/README.md +24 -8
  7. data/Rakefile +20 -18
  8. data/benchmarks/count_in.rb +13 -0
  9. data/benchmarks/delete_in.rb +1 -1
  10. data/benchmarks/scan.rb +13 -0
  11. data/benchmarks/shared.rb +1 -0
  12. data/benchmarks/z_add.rb +12 -0
  13. data/benchmarks/z_delete.rb +12 -0
  14. data/benchmarks/z_merge.rb +15 -0
  15. data/benchmarks/z_minmax.rb +12 -0
  16. data/bin/console +2 -0
  17. data/character_set.gemspec +2 -0
  18. data/ext/character_set/character_set.c +963 -413
  19. data/ext/character_set/unicode_casefold_table.h.tmpl +11 -0
  20. data/lib/character_set/core_ext/string_ext.rb +2 -0
  21. data/lib/character_set/expression_converter.rb +21 -24
  22. data/lib/character_set/predefined_sets.rb +25 -260
  23. data/lib/character_set/predefined_sets/any.cps +1 -0
  24. data/lib/character_set/predefined_sets/ascii.cps +1 -0
  25. data/lib/character_set/predefined_sets/ascii_alnum.cps +3 -0
  26. data/lib/character_set/predefined_sets/ascii_letter.cps +2 -0
  27. data/lib/character_set/predefined_sets/assigned.cps +666 -0
  28. data/lib/character_set/predefined_sets/bmp.cps +2 -0
  29. data/lib/character_set/predefined_sets/crypt.cps +2 -0
  30. data/lib/character_set/predefined_sets/emoji.cps +151 -0
  31. data/lib/character_set/predefined_sets/newline.cps +3 -0
  32. data/lib/character_set/predefined_sets/surrogate.cps +1 -0
  33. data/lib/character_set/predefined_sets/unicode.cps +2 -0
  34. data/lib/character_set/predefined_sets/url_fragment.cps +8 -0
  35. data/lib/character_set/predefined_sets/url_host.cps +10 -0
  36. data/lib/character_set/predefined_sets/url_path.cps +7 -0
  37. data/lib/character_set/predefined_sets/url_query.cps +8 -0
  38. data/lib/character_set/predefined_sets/whitespace.cps +10 -0
  39. data/lib/character_set/ruby_fallback.rb +0 -2
  40. data/lib/character_set/ruby_fallback/character_set_methods.rb +52 -4
  41. data/lib/character_set/ruby_fallback/set_methods.rb +2 -2
  42. data/lib/character_set/shared_methods.rb +51 -40
  43. data/lib/character_set/version.rb +1 -1
  44. metadata +54 -3
  45. data/lib/character_set/ruby_fallback/plane_methods.rb +0 -27
@@ -1,3 +1,3 @@
1
1
  class CharacterSet
2
- VERSION = '1.2.0'
2
+ VERSION = '1.3.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: character_set
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Janosch Müller
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-04-02 00:00:00.000000000 Z
11
+ date: 2019-05-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: benchmark-ips
@@ -24,6 +24,34 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '2.7'
27
+ - !ruby/object:Gem::Dependency
28
+ name: codecov
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '0.1'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '0.1'
41
+ - !ruby/object:Gem::Dependency
42
+ name: get_process_mem
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 0.2.3
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 0.2.3
27
55
  - !ruby/object:Gem::Dependency
28
56
  name: rake
29
57
  requirement: !ruby/object:Gem::Requirement
@@ -116,6 +144,7 @@ extensions:
116
144
  - ext/character_set/extconf.rb
117
145
  extra_rdoc_files: []
118
146
  files:
147
+ - ".gitattributes"
119
148
  - ".gitignore"
120
149
  - ".rspec"
121
150
  - ".travis.yml"
@@ -125,17 +154,24 @@ files:
125
154
  - LICENSE.txt
126
155
  - README.md
127
156
  - Rakefile
157
+ - benchmarks/count_in.rb
128
158
  - benchmarks/cover.rb
129
159
  - benchmarks/delete_in.rb
130
160
  - benchmarks/keep_in.rb
161
+ - benchmarks/scan.rb
131
162
  - benchmarks/shared.rb
132
163
  - benchmarks/used_by.rb
164
+ - benchmarks/z_add.rb
165
+ - benchmarks/z_delete.rb
166
+ - benchmarks/z_merge.rb
167
+ - benchmarks/z_minmax.rb
133
168
  - bin/console
134
169
  - bin/setup
135
170
  - character_set.gemspec
136
171
  - ext/character_set/character_set.c
137
172
  - ext/character_set/extconf.rb
138
173
  - ext/character_set/unicode_casefold_table.h
174
+ - ext/character_set/unicode_casefold_table.h.tmpl
139
175
  - lib/character_set.rb
140
176
  - lib/character_set/character.rb
141
177
  - lib/character_set/core_ext.rb
@@ -144,10 +180,25 @@ files:
144
180
  - lib/character_set/expression_converter.rb
145
181
  - lib/character_set/parser.rb
146
182
  - lib/character_set/predefined_sets.rb
183
+ - lib/character_set/predefined_sets/any.cps
184
+ - lib/character_set/predefined_sets/ascii.cps
185
+ - lib/character_set/predefined_sets/ascii_alnum.cps
186
+ - lib/character_set/predefined_sets/ascii_letter.cps
187
+ - lib/character_set/predefined_sets/assigned.cps
188
+ - lib/character_set/predefined_sets/bmp.cps
189
+ - lib/character_set/predefined_sets/crypt.cps
190
+ - lib/character_set/predefined_sets/emoji.cps
191
+ - lib/character_set/predefined_sets/newline.cps
192
+ - lib/character_set/predefined_sets/surrogate.cps
193
+ - lib/character_set/predefined_sets/unicode.cps
194
+ - lib/character_set/predefined_sets/url_fragment.cps
195
+ - lib/character_set/predefined_sets/url_host.cps
196
+ - lib/character_set/predefined_sets/url_path.cps
197
+ - lib/character_set/predefined_sets/url_query.cps
198
+ - lib/character_set/predefined_sets/whitespace.cps
147
199
  - lib/character_set/pure.rb
148
200
  - lib/character_set/ruby_fallback.rb
149
201
  - lib/character_set/ruby_fallback/character_set_methods.rb
150
- - lib/character_set/ruby_fallback/plane_methods.rb
151
202
  - lib/character_set/ruby_fallback/set_methods.rb
152
203
  - lib/character_set/set_method_adapters.rb
153
204
  - lib/character_set/shared_methods.rb
@@ -1,27 +0,0 @@
1
- class CharacterSet
2
- module RubyFallback
3
- module PlaneMethods
4
- def bmp_part
5
- dup.keep_if { |cp| cp < 0x10000 }
6
- end
7
-
8
- def astral_part
9
- dup.keep_if { |cp| cp >= 0x10000 }
10
- end
11
-
12
- def planes
13
- plane_set = {}
14
- plane_size = 0x10000.to_f
15
- each do |cp|
16
- plane = (cp / plane_size).floor
17
- plane_set[plane] = true
18
- end
19
- plane_set.keys
20
- end
21
-
22
- def member_in_plane?(num)
23
- ((num * 0x10000)...((num + 1) * 0x10000)).any? { |cp| include?(cp) }
24
- end
25
- end
26
- end
27
- end