immosquare-extensions 0.1.12 → 0.1.14

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
2
  SHA256:
3
- metadata.gz: bee4b681ff194e3739723acbc3026ace76793f7119229cabaa0aa4d795007573
4
- data.tar.gz: '03689e87c873fe5fcdc6f6b003203a17cc6cea00e3fef4a73176a89fb360de90'
3
+ metadata.gz: e1bac31a6c2a9a5a15dc679176b78175cfc45f206f769e1dfaf651f32c9765a4
4
+ data.tar.gz: b46910b5fa67745109a1dfe38b9150797dc8eded7f1f4abc5bee4ee91cb27d84
5
5
  SHA512:
6
- metadata.gz: d3ae2393f83f0faa8c5fd6bbfdc575c4117682c413adfa4f131aee04acce58c1fb989c252c9e73c1bc38e0c952f1f3eec54abc858896d53014983b68b738cd53
7
- data.tar.gz: e36f3125e9a7c1bc8399be1a4ca6a61ab3e393537f3430a85eebc45b3340dbef42ce51dbfde3e93132c8f5cc22768eaf57390c5230e7ba973d802828b62191be
6
+ metadata.gz: 7a991f9a2afa423b7fa4b97cc771b6587a686a2a60ca81ed5bafdf9fc55655433640a118e3d3491400690342450655afac09ee8032e91f21f79e2b7a39d47ffb
7
+ data.tar.gz: 81e58a39befe80f489aa89d12589219146558684be06a864ebd3c828824fa895160cc333fa283138d125a227370d0c699fe146483c6db1b51373cf0729bffe0e
@@ -14,12 +14,28 @@ class File
14
14
  ## The total number of lines in the normalized file.
15
15
  ##===========================================================================##
16
16
  def self.normalize_last_line(file_path)
17
+ ##============================================================##
18
+ ## Get the file size
19
+ ##============================================================##
20
+ file_size = File.size?(file_path)
21
+
22
+ ##============================================================##
23
+ ## If the file is empty (0 bytes), there's nothing to normalize.
24
+ ##============================================================##
25
+ return 0 if file_size.nil? || file_size == 0
26
+
27
+
17
28
  end_of_line = $INPUT_RECORD_SEPARATOR || "\n"
18
29
  ##============================================================##
19
30
  ## Read all lines from the file
20
31
  ## https://gist.github.com/guilhermesimoes/d69e547884e556c3dc95
32
+ ## Detect the encoding of the file using uchardet
33
+ ## Read the content of the file with the detected encoding,
34
+ ## falling back to UTF-8 if the detected encoding is empty or invalid.
21
35
  ##============================================================##
22
- content = File.read(file_path)
36
+ detected_encoding = `uchardet #{file_path}`.strip
37
+ encoding_to_use = detected_encoding.empty? ? "UTF-8" : "#{detected_encoding}:UTF-8"
38
+ content = File.read(file_path, :encoding => encoding_to_use)
23
39
 
24
40
  ##===========================================================================##
25
41
  ## Remove all trailing empty lines at the end of the file
@@ -34,7 +50,7 @@ class File
34
50
  ##===========================================================================##
35
51
  ## Write the modified lines back to the file
36
52
  ##===========================================================================##
37
- File.write(file_path, content)
53
+ File.write(file_path, content, :encoding => encoding_to_use)
38
54
 
39
55
  ##===========================================================================##
40
56
  ## Return the total number of lines in the modified file
@@ -1,3 +1,3 @@
1
1
  module ImmosquareExtensions
2
- VERSION = "0.1.12".freeze
2
+ VERSION = "0.1.14".freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: immosquare-extensions
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.12
4
+ version: 0.1.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - IMMO SQUARE
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-02-05 00:00:00.000000000 Z
11
+ date: 2024-02-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: unicode_utils