slimx 0.1.0 β†’ 0.1.1

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
  SHA256:
3
- metadata.gz: d6e59db7648504bb1fb7d72edab85cfa9a447ac77e8d57d9eb4f688e117a5257
4
- data.tar.gz: '02819d5cae3d44e0d1f038ff28ea4fccd59ef5662c63a24850f63de65cfc1614'
3
+ metadata.gz: ee525fd8483ce0a207faa8ea7a61dc5f17a13720b130e6b819420afe8a6452c2
4
+ data.tar.gz: 0c902f495a605426f96ec1da183c48d3d7b316e6992eb9dd8f095c3bfbb8502d
5
5
  SHA512:
6
- metadata.gz: 565fc43d40adaba83d89388020396a9472113c21dfeac9170bce50043a538dbda4eddb3ed730c4bca731e14a38fd8be73784d395025439f4cb6e626b964e6fcc
7
- data.tar.gz: 693b95760aa247a9fa927b0bd126fccced25d46aae91bfb517e80f46a194df7b93aa9038394463f47c726740f19366eb9eee12b9e0715a85be30901d61bcf7b9
6
+ metadata.gz: 05ab88358c968355515af67ffe3a5cb87359bb7dfa88232f4f553809c4fa6268e522a228fff8930e3c2c390adfffbf13f151842429462606e0b9f84e1da1ee66
7
+ data.tar.gz: 409b2ddcc6fb27168758f05e8908cada7a8c72f28870484683a893b30fe522bf8c1197735e541c11459a88107a905f03b4aef666816d55771cd3e11fdccdf7dd
@@ -430,14 +430,15 @@ module SlimX
430
430
 
431
431
  class Zwsp < Rule
432
432
  INVISIBLE = /[\u200B-\u200D\u2060\uFEFF]/
433
+ # The zero-width joiner of πŸˆβ€β¬› or πŸ‘©πŸ»β€πŸ’»: between two pictographs, after an optional skin tone or emoji style.
434
+ EMOJI_JOINER = /(?<=\p{Extended_Pictographic}|[\u{1F3FB}-\u{1F3FF}]|\uFE0F)\u200D(?=\p{Extended_Pictographic})/
433
435
 
434
436
  def offenses(document, source)
435
437
  return [] unless source.match?(INVISIBLE)
436
438
 
437
439
  each_line(document).filter_map do |line, lineno|
438
- next unless line.match?(INVISIBLE) && !(lineno == 1 && line.start_with?("\uFEFF") && !line[1..].match?(INVISIBLE))
439
-
440
- offense(document, lineno, "Remove the invisible zero-width character")
440
+ line = line.delete_prefix("\uFEFF") if lineno == 1
441
+ offense(document, lineno, "Remove the invisible zero-width character") if line.gsub(EMOJI_JOINER, "").match?(INVISIBLE)
441
442
  end
442
443
  end
443
444
  end
data/lib/slimx/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SlimX
4
- VERSION = "0.1.0"
4
+ VERSION = "0.1.1"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: slimx
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - ClΓ©ment Joubert