immosquare-cleaner 0.1.3 → 0.1.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/immosquare-cleaner +1 -1
- data/lib/immosquare-cleaner/railtie.rb +1 -1
- data/lib/immosquare-cleaner/version.rb +1 -1
- data/lib/{immosquare_cleaner.rb → immosquare-cleaner.rb} +24 -8
- data/lib/tasks/immosquare-cleaner.rake +8 -1
- data/linters/eslintrc.json +36 -0
- data/linters/rubocop.yml +94 -2
- metadata +6 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: eb7f5e8a0b481a4269de8679c22d8500fbe364ea5e8a814255dda294b5c33f1d
|
4
|
+
data.tar.gz: 0b344c9136c0552d41555784b6530586eb158b46eaa2ae4701fa3bf477fbb860
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 405132156bf7d0587cc0c240345f5a6116dbd6dc391e6cf93d8d30b0eb15ecc376ec6ea562e370b9947de22101743a6c2fa97242d171b850347b61ecc2d1b69e
|
7
|
+
data.tar.gz: 5489574c5d9932c2fd4cf8adadbe56f4d89bc65f6c5c8140876c3f85d11d2b9dd4ea345936c745f8c207186f023e1090ed2939559cc516f9faa487a6c02aaff0
|
data/bin/immosquare-cleaner
CHANGED
@@ -1,7 +1,14 @@
|
|
1
|
-
require
|
1
|
+
require "English"
|
2
|
+
require "neatjson"
|
2
3
|
require_relative "immosquare-cleaner/configuration"
|
3
|
-
require_relative "immosquare-
|
4
|
-
|
4
|
+
require_relative "immosquare-cleaner/railtie" if defined?(Rails)
|
5
|
+
|
6
|
+
##===========================================================================##
|
7
|
+
## Importing the 'English' library allows us to use more human-readable
|
8
|
+
## global variables, such as $INPUT_RECORD_SEPARATOR instead of $/,
|
9
|
+
## which enhances code clarity and makes it easier to understand
|
10
|
+
## the purpose of these variables in our code.
|
11
|
+
##===========================================================================##
|
5
12
|
module ImmosquareCleaner
|
6
13
|
class << self
|
7
14
|
|
@@ -49,6 +56,13 @@ module ImmosquareCleaner
|
|
49
56
|
cmd << [true, "bundle exec rubocop -c #{gem_root}/linters/rubocop.yml #{file_path} #{ImmosquareCleaner.configuration.rubocop_options || "--autocorrect-all"}"]
|
50
57
|
elsif file_path =~ %r{locales/.*\.yml$}
|
51
58
|
ImmosquareYaml.clean(file_path)
|
59
|
+
elsif file_path.end_with?(".js")
|
60
|
+
cmd << [false, "npx eslint --config #{gem_root}/linters/eslintrc.json #{file_path} --fix"]
|
61
|
+
elsif file_path.end_with?(".json")
|
62
|
+
json_str = File.read(file_path)
|
63
|
+
parsed_data = JSON.parse(json_str)
|
64
|
+
formated = JSON.neat_generate(parsed_data, :aligned => true)
|
65
|
+
File.write(file_path, formated)
|
52
66
|
elsif npx_installed? && prettier_installed?
|
53
67
|
prettier_parser = nil
|
54
68
|
prettier_parser = "--parser markdown" if file_path.end_with?(".md.erb")
|
@@ -72,7 +86,7 @@ module ImmosquareCleaner
|
|
72
86
|
end if !cmd.empty?
|
73
87
|
rescue StandardError => e
|
74
88
|
puts(e.message)
|
75
|
-
|
89
|
+
puts(e.backtrace)
|
76
90
|
end
|
77
91
|
end
|
78
92
|
|
@@ -105,21 +119,23 @@ module ImmosquareCleaner
|
|
105
119
|
## The total number of lines in the normalized file.
|
106
120
|
##===========================================================================##
|
107
121
|
def normalize_last_line(file_path)
|
122
|
+
end_of_line = $INPUT_RECORD_SEPARATOR
|
108
123
|
##============================================================##
|
109
124
|
## Read all lines from the file
|
110
125
|
## https://gist.github.com/guilhermesimoes/d69e547884e556c3dc95
|
111
126
|
##============================================================##
|
112
127
|
content = File.read(file_path)
|
113
128
|
|
129
|
+
|
114
130
|
##===========================================================================##
|
115
131
|
## Remove all trailing empty lines at the end of the file
|
116
|
-
content.gsub!(/#{Regexp.escape($INPUT_RECORD_SEPARATOR)}+\z/, "")
|
117
132
|
##===========================================================================##
|
133
|
+
content.gsub!(/#{Regexp.escape(end_of_line)}+\z/, "")
|
118
134
|
|
119
135
|
##===========================================================================##
|
120
|
-
## Append
|
121
|
-
|
122
|
-
content
|
136
|
+
## Append an EOL at the end to maintain the file structure
|
137
|
+
##===========================================================================##
|
138
|
+
content << end_of_line
|
123
139
|
|
124
140
|
##===========================================================================##
|
125
141
|
## Write the modified lines back to the file
|
@@ -4,7 +4,14 @@ namespace :immosquare_cleaner do
|
|
4
4
|
##============================================================##
|
5
5
|
desc "Clean translation files in rails app"
|
6
6
|
task :clean => :environment do
|
7
|
-
Dir.glob("#{Rails.root}
|
7
|
+
file_paths = Dir.glob("#{Rails.root}/**/*").reject do |file_path|
|
8
|
+
test1 = file_path.gsub("#{Rails.root}/", "")
|
9
|
+
File.directory?(file_path) ||
|
10
|
+
test1.start_with?("node_modules", "tmp", "public", "log", "app/assets/builds", "app/assets/fonts", "app/assets/images") ||
|
11
|
+
file_path.end_with?(".lock", ".lockb")
|
12
|
+
end
|
13
|
+
file_paths.each do |file|
|
14
|
+
puts file
|
8
15
|
ImmosquareCleaner.clean(file)
|
9
16
|
end
|
10
17
|
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
{
|
2
|
+
"env": {
|
3
|
+
"browser": true,
|
4
|
+
"es2021": true
|
5
|
+
},
|
6
|
+
"ignorePatterns": ["package.json"],
|
7
|
+
"extends": ["airbnb-base", "plugin:jsonc/recommended-with-jsonc"],
|
8
|
+
"overrides": [],
|
9
|
+
"parserOptions": {
|
10
|
+
"ecmaVersion": "latest",
|
11
|
+
"sourceType": "module"
|
12
|
+
},
|
13
|
+
"rules": {
|
14
|
+
"quotes": [2, "double"],
|
15
|
+
"semi": [2, "never"],
|
16
|
+
"camelcase": 0,
|
17
|
+
"no-console": 0,
|
18
|
+
"no-restricted-globals": 0,
|
19
|
+
"no-multi-spaces": 0,
|
20
|
+
"no-undef": 0,
|
21
|
+
"radix": 0,
|
22
|
+
"key-spacing": [2, { "align": "value" }],
|
23
|
+
"max-len": 0,
|
24
|
+
"no-unused-expressions": 0,
|
25
|
+
"padded-blocks": 0,
|
26
|
+
"no-multiple-empty-lines": 0,
|
27
|
+
"default-case": 0,
|
28
|
+
"no-alert": 0,
|
29
|
+
"no-lonely-if": 0,
|
30
|
+
"no-nested-ternary": 0,
|
31
|
+
"no-param-reassign": ["error", { "props": false }],
|
32
|
+
"comma-dangle": ["error", "never"],
|
33
|
+
"jsonc/auto": 2,
|
34
|
+
"jsonc/indent": ["error", 2, {}]
|
35
|
+
}
|
36
|
+
}
|
data/linters/rubocop.yml
CHANGED
@@ -1,2 +1,94 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
# Pour activer toutes les méthodes de Rubocop et activer le cache pour les gros fichiers
|
2
|
+
AllCops:
|
3
|
+
NewCops: enable
|
4
|
+
EnabledByDefault: false
|
5
|
+
UseCache: true
|
6
|
+
SuggestExtensions: false
|
7
|
+
|
8
|
+
#################### Metrics ###########################
|
9
|
+
Metrics:
|
10
|
+
Enabled: false # On désactive tous les métrics
|
11
|
+
|
12
|
+
#################### Lint ###########################
|
13
|
+
Lint/UselessAssignment:
|
14
|
+
Enabled: false # Pour pouvoir utiliser des variables que l'on n'utlise pas...(dans les fichiers .erb si on les utilises dans un autre bloc, il ne détecte pas..)
|
15
|
+
Lint/RescueException:
|
16
|
+
Enabled: false # On veut pouvour utiliser rescue Exception => e dans devoir mettre StandardError
|
17
|
+
Lint/UnusedMethodArgument:
|
18
|
+
Enabled: false # On veut pouvoir créer des fonctions sans que tous les paramètes soient utlisés dans la fonction... Utilises quand on est en train d'écrire la fonction et que l'on sauvegarde.. SInon cela cahnge le nom du paramètre avec un _devant
|
19
|
+
|
20
|
+
#################### Naming ###########################
|
21
|
+
Naming/VariableNumber:
|
22
|
+
Enabled: false # On veut pouvour utiliser administrative_area_level_1 avec cette synthase
|
23
|
+
|
24
|
+
#################### Layout ###########################
|
25
|
+
Layout/LeadingEmptyLines:
|
26
|
+
Enabled: false # Pour pouvoir utliser des lignes vides au débur des fichiers ()
|
27
|
+
Layout/InitialIndentation:
|
28
|
+
Enabled: false # Pour les fichiers .erb pour ne pas faire de pb au débur du fichier
|
29
|
+
Layout/TrailingEmptyLines:
|
30
|
+
Enabled: false # Pour les fichiers .erb pour ne pas faire de pb au débur du fichier
|
31
|
+
Layout/ExtraSpacing:
|
32
|
+
Enabled: false # Pour ne permettre de mettre les espaces que l'on veut (.erb)
|
33
|
+
Layout/LineLength:
|
34
|
+
Enabled: false # Pour ne limiter le nombre de caractères par ligne
|
35
|
+
Layout/TrailingWhitespace:
|
36
|
+
Enabled: true # On ne veut pas de white spaces en fin de ligne
|
37
|
+
Layout/EmptyLines:
|
38
|
+
Enabled: false # On veut pouvoir mettre des lignes blanches comme on veut
|
39
|
+
Layout/SpaceInsideBlockBraces:
|
40
|
+
SpaceBeforeBlockParameters: false # On ne veut pas d'espace au début des block PitchBlock.all.each {|b| b.save}
|
41
|
+
|
42
|
+
Layout/EmptyLinesAroundClassBody:
|
43
|
+
EnforcedStyle: empty_lines # Pour ajouter une ligne vide au débout d'une classe (controller)
|
44
|
+
Layout/FirstHashElementIndentation:
|
45
|
+
EnforcedStyle: consistent # On indente les paramètres avec un tab (très utiles dans les fichiers .erb)
|
46
|
+
Layout/ArgumentAlignment:
|
47
|
+
EnforcedStyle: with_fixed_indentation # On indente les paramètres les un end dessous des autres (très utlises dans les fichiers .erb)
|
48
|
+
Layout/HashAlignment:
|
49
|
+
EnforcedHashRocketStyle: table # Pour formater les hashs sur le nom le plus long
|
50
|
+
Layout/MultilineAssignmentLayout:
|
51
|
+
EnforcedStyle: same_line # Pour Garder sur le même ligne les ? classification_id = case etc
|
52
|
+
Layout/SpaceInsideHashLiteralBraces:
|
53
|
+
EnforcedStyle: no_space # On ne veut pas d'espace au début des braces {:a => 1, :b => 2}
|
54
|
+
Layout/MultilineMethodCallIndentation:
|
55
|
+
EnforcedStyle: indented
|
56
|
+
|
57
|
+
#################### Style ###########################
|
58
|
+
Style/RedundantBegin:
|
59
|
+
Enabled: false # Cette méthode retire les begin au début des méthodes
|
60
|
+
Style/MultilineTernaryOperator:
|
61
|
+
Enabled: false # On ne veut pas des mutlilines sur les ternary expressions.
|
62
|
+
Style/NestedTernaryOperator:
|
63
|
+
Enabled: false # On veut autoriser les nested ternary expressions : a == 1 ? "a" : (a == 2 ? "b" : "c)
|
64
|
+
Style/MultilineIfModifier:
|
65
|
+
Enabled: false # On veut pouvoir mettre des ends à la fin des blocs
|
66
|
+
Style/FrozenStringLiteralComment:
|
67
|
+
Enabled: false # On ne veut pas mettre frozen_string_literal: true en haut des fichiers car c'est par défault sur Ruby.3x
|
68
|
+
Style/Next:
|
69
|
+
Enabled: false # L'idée est bonne de vouloir changer en next si on a juste un if... mais parfois c'est plus dur à comprendre ce que l'on voulait faire... car souvent les || du if sont des && dans le next
|
70
|
+
Style/Documentation:
|
71
|
+
Enabled: false # On ne veut pas être obligé de mettre une documentation
|
72
|
+
Style/IfUnlessModifierOfIfUnless:
|
73
|
+
Enabled: false # On veut pourvoir mettre un if à la fin de end
|
74
|
+
Style/NegatedIf:
|
75
|
+
Enabled: false # On veut remplacer les if ! par des unless
|
76
|
+
Style/MethodCallWithArgsParentheses:
|
77
|
+
Enabled: true # On veut forcer les parenthèses où elles sont utilises pour rendre le code plus propre
|
78
|
+
|
79
|
+
Style/NumericPredicate:
|
80
|
+
EnforcedStyle: comparison # On ne veut pas des .zero? .negative? .positif?
|
81
|
+
Style/StringLiterals:
|
82
|
+
EnforcedStyle: double_quotes # Pour utiliser les doubles quotes partout (string)
|
83
|
+
Style/StringLiteralsInInterpolation:
|
84
|
+
EnforcedStyle: double_quotes # Pour utiliser les doubles quotes partout (interpolation)
|
85
|
+
Style/HashSyntax:
|
86
|
+
EnforcedStyle: hash_rockets # Pour utiliser la syntax :key => value plutôt que key: value
|
87
|
+
Style/WordArray:
|
88
|
+
EnforcedStyle: brackets # Pour formater les arrays de la forme ["a", "b", "c] et pas %w[a b c]
|
89
|
+
Style/SymbolArray:
|
90
|
+
EnforcedStyle: brackets # Pour formater les arrays de la forme [:a, :b, :c] et pas %i[a b c]
|
91
|
+
|
92
|
+
#################### GEM ###########################
|
93
|
+
Gemspec/RequireMFA:
|
94
|
+
Enabled: false # On ne veut pas obliger le MFA pour pusher un gem
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: immosquare-cleaner
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- IMMO SQUARE
|
@@ -39,7 +39,7 @@ dependencies:
|
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '1'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name: immosquare-
|
42
|
+
name: immosquare-yaml
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
@@ -53,7 +53,7 @@ dependencies:
|
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: neatjson
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
@@ -77,12 +77,13 @@ extensions: []
|
|
77
77
|
extra_rdoc_files: []
|
78
78
|
files:
|
79
79
|
- bin/immosquare-cleaner
|
80
|
+
- lib/immosquare-cleaner.rb
|
80
81
|
- lib/immosquare-cleaner/configuration.rb
|
81
82
|
- lib/immosquare-cleaner/railtie.rb
|
82
83
|
- lib/immosquare-cleaner/version.rb
|
83
|
-
- lib/immosquare_cleaner.rb
|
84
84
|
- lib/tasks/immosquare-cleaner.rake
|
85
85
|
- linters/erb-lint.yml
|
86
|
+
- linters/eslintrc.json
|
86
87
|
- linters/prettier.yml
|
87
88
|
- linters/rubocop.yml
|
88
89
|
homepage: https://github.com/IMMOSQUARE/Immosquare-cleaner
|
@@ -105,7 +106,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
105
106
|
- !ruby/object:Gem::Version
|
106
107
|
version: '0'
|
107
108
|
requirements: []
|
108
|
-
rubygems_version: 3.
|
109
|
+
rubygems_version: 3.1.6
|
109
110
|
signing_key:
|
110
111
|
specification_version: 4
|
111
112
|
summary: A gem to lint and organize files in a Rails application.
|