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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4f5177845c033aa1e0821378285ac5fcaf89bb84f779cb98939feee3834fecb7
4
- data.tar.gz: f58af1ee5bd581a5098e9f2773fefbc80250dd9e4e9b048f3904a3ee5bb0ee74
3
+ metadata.gz: eb7f5e8a0b481a4269de8679c22d8500fbe364ea5e8a814255dda294b5c33f1d
4
+ data.tar.gz: 0b344c9136c0552d41555784b6530586eb158b46eaa2ae4701fa3bf477fbb860
5
5
  SHA512:
6
- metadata.gz: 39f28dc3cf3111d7dd83d0223c452d3b95ef2dfad813cec3b5f54654d4b48842794346aceccb02ca5a6f135c2ea56f423aa81fa4f9afb58a6f22921b14fc524b
7
- data.tar.gz: 7a0e5544afa5b29e02adb82d10efc74e75177961f8473e1d4bacdf030aafe2f5160956378a93cce4df3ca599098b5371b0777b7642ccc4a5772f6dad91a32765
6
+ metadata.gz: 405132156bf7d0587cc0c240345f5a6116dbd6dc391e6cf93d8d30b0eb15ecc376ec6ea562e370b9947de22101743a6c2fa97242d171b850347b61ecc2d1b69e
7
+ data.tar.gz: 5489574c5d9932c2fd4cf8adadbe56f4d89bc65f6c5c8140876c3f85d11d2b9dd4ea345936c745f8c207186f023e1090ed2939559cc516f9faa487a6c02aaff0
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- require "immosquare_cleaner"
3
+ require "immosquare-cleaner"
4
4
  require "optparse"
5
5
 
6
6
  options = {}
@@ -1,4 +1,4 @@
1
- module ImmosquareYaml
1
+ module ImmosquareCleaner
2
2
  class Railtie < Rails::Railtie
3
3
 
4
4
  rake_tasks do
@@ -1,3 +1,3 @@
1
1
  module ImmosquareCleaner
2
- VERSION = "0.1.3".freeze
2
+ VERSION = "0.1.5".freeze
3
3
  end
@@ -1,7 +1,14 @@
1
- require "immosquare-yaml"
1
+ require "English"
2
+ require "neatjson"
2
3
  require_relative "immosquare-cleaner/configuration"
3
- require_relative "immosquare-yaml/railtie" if defined?(Rails)
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
- false
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 a newline at the end to maintain the file structure
121
- ###===========================================================================##
122
- content += $INPUT_RECORD_SEPARATOR
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}/*").each do |file|
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
- inherit_gem:
2
- immosquare-rubocop: rubocop.yml
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.3
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-rubocop
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: immosquare-yaml
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.4.13
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.