character_set 1.2.0 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
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