varslist 0.0.5 → 0.0.6

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.
Files changed (5) hide show
  1. checksums.yaml +4 -4
  2. data/bin/vars +3 -0
  3. data/bin/varslist +23 -1
  4. data/lib/varslist.rb +65 -9
  5. metadata +46 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2a8c3114443cf7efda1643f90289e3038d03c45aecea7c4b14bdc05925884502
4
- data.tar.gz: b4ca6618644f40ac629c29c2b945b7c0be3fad683270be70df08608205f7d598
3
+ metadata.gz: 3f578f9de2cb52f6154d1787daae2615307207d9622489cfaad40a5d92589bad
4
+ data.tar.gz: 108eea269734618b64b21ab5a80c856881b7bb28d4926cf91d171ea14e94e9a1
5
5
  SHA512:
6
- metadata.gz: 78b30553cab6c299ea81e9cdf0f660349971446d61a35037246175b68ba765edacf381413f3830a4e47067b7989dd3a430ea426a3745e7774497f36aa2e8d071
7
- data.tar.gz: efd868b487f58c74ab401e681b372c2af97403be3a5308261fadb5ce72c2a645ff7fc2097584495851d511ed4c6b2573fe51aca6b52a580f236a702debc05359
6
+ metadata.gz: 724bb52c0adcde74f690d48a58a90935f165440674c619efb331cfa7bdef0e4ffd10445d4a49acf4e075553992c2ada0b2e06bcd27ad51f05d60f9fb7f5caca5
7
+ data.tar.gz: f5210a9cb5e8105b33be6802ca8c81b49780a359e871b167f1921554376b63eea55d0102fd3375a9ecd8b3f118762132f127c6a6fc05f6f53022339ab676fe12
data/bin/vars ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env bash
2
+ rails c
3
+ Varslist.list_env_variables
data/bin/varslist CHANGED
@@ -1,2 +1,24 @@
1
+ #!/usr/bin/env rails
2
+
3
+ rails_root = Dir.pwd
4
+
5
+ require 'rubygems'
6
+ require_relative "#{rails_root}/config/environment"
7
+ require_relative "#{rails_root}/config/application"
1
8
  require 'varslist'
2
- Varslist.list_env_variables
9
+ env_vars = Varslist.list_env_variables
10
+
11
+ if ARGV.empty?
12
+ Varslist.print_used_var_list(env_vars)
13
+ exit
14
+ end
15
+
16
+ if ARGV.include?('--file')
17
+ Varslist.print_env(env_vars)
18
+ exit
19
+ end
20
+
21
+ if ARGV.include?('--verify')
22
+ Varslist.verify_var_list(env_vars)
23
+ exit
24
+ end
data/lib/varslist.rb CHANGED
@@ -1,27 +1,83 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'colorize'
4
+ rails_root = Dir.pwd
5
+ require_relative "#{rails_root}/config/environment"
4
6
 
5
7
  module Varslist
8
+
6
9
  def self.list_env_variables
10
+ env_use_list = []
7
11
  watch_list = /\.rb$|\.html\.erb$/
12
+ env_regex = /ENV\[['"]\w+['"]\]|ENV\.fetch/
8
13
  filelist = Dir['./**/**/*.*']
9
14
  filelist.each do |file|
10
- check_environment(file) if File.basename(file) =~ watch_list
15
+ if File.basename(file) =~ watch_list
16
+ File.foreach(file).with_index do |line, index|
17
+ next if line.strip.empty? || line.strip.start_with?('#')
18
+ if line =~ env_regex
19
+ env_use_list << { "line" => line.strip, "file_name" => file, "line_number" => index + 1, "var_name" => check_var_name(line)}
20
+ end
21
+ end
22
+ end
11
23
  end
24
+ env_use_list
12
25
  end
26
+
13
27
 
14
- def self.check_environment(file_name)
15
- env_regex = /ENV\[['"]\w+['"]\]|ENV\.fetch/
16
- File.foreach(file_name).with_index do |line, index|
17
- next if line.strip.empty? || line.strip.start_with?('#')
28
+ def self.check_var_name(line)
29
+ if match = line.scan(/ENV\[['"]([^'"]+)['"]\]|ENV\.fetch\(['"]([^'"]+)['"]/)
30
+ vars=match.flatten.compact.each do |env_var|
31
+ env_var
32
+ end
33
+ vars.join
34
+ else
35
+ nil
36
+ end
37
+ end
38
+
39
+ def self.print_env(found_envs)
40
+ found_envs.each do |env_line|
41
+ puts "#{env_line["file_name"]}:#{env_line["line_number"]}\t#{env_line["var_name"]}".colorize(:magenta)
42
+ puts "\n\t#{env_line["line"]}\n".colorize(:green)
43
+ end
44
+ end
18
45
 
19
- if line =~ env_regex
20
- puts "#{file_name}:#{index + 1}".purple
21
- puts "\n\t#{line}\n".green
46
+
47
+ def self.print_used_var_list(found_envs)
48
+ puts "\n\nThe used ENV variables".colorize(:magenta)
49
+ used_vars=[]
50
+ found_envs.each do |found_env|
51
+ used_vars << found_env["var_name"] unless used_vars.include?(found_env["var_name"])
52
+ end
53
+ used_vars.each do |var|
54
+ puts "\t#{var}".colorize(:green)
55
+ end
56
+ end
57
+
58
+ def self.verify_var_list(found_envs)
59
+ valid_env = []
60
+ invalid_env = []
61
+ found_envs.each do |found_env|
62
+ if ENV[found_env["var_name"]] != nil
63
+ valid_env << found_env["var_name"] unless valid_env.include?(found_env["var_name"])
64
+ else
65
+ invalid_env << found_env["var_name"] unless invalid_env.include?(found_env["var_name"])
66
+ end
67
+ end
68
+ if !valid_env.empty?
69
+ puts "\n\nThe valid envs are:".colorize(:magenta)
70
+ valid_env.each do |valid|
71
+ puts "\t#{valid}".colorize(:green)
72
+ end
73
+ end
74
+ if !invalid_env.empty?
75
+ puts "\n\nThe invalid envs are:".colorize(:magenta)
76
+ invalid_env.each do |valid|
77
+ puts "\t#{valid}".colorize(:red)
22
78
  end
23
79
  end
24
80
  end
25
81
 
26
- private_class_method :check_environment
82
+ # private_class_method :check_environment
27
83
  end
metadata CHANGED
@@ -1,23 +1,65 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: varslist
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sumit Pati
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-12-10 00:00:00.000000000 Z
12
- dependencies: []
11
+ date: 2024-12-18 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: colorize
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.0'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 1.0.4
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '1.0'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 1.0.4
33
+ - !ruby/object:Gem::Dependency
34
+ name: colorize
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '1.0'
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: 1.0.4
43
+ type: :development
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: '1.0'
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: 1.0.4
13
53
  description:
14
54
  email:
15
55
  executables:
16
56
  - varslist
57
+ - vars
17
58
  extensions: []
18
59
  extra_rdoc_files: []
19
60
  files:
20
61
  - Gemfile
62
+ - bin/vars
21
63
  - bin/varslist
22
64
  - lib/varslist.rb
23
65
  homepage: https://rubygems.org/gems/varslist
@@ -38,7 +80,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
38
80
  - !ruby/object:Gem::Version
39
81
  version: '0'
40
82
  requirements: []
41
- rubygems_version: 3.5.20
83
+ rubygems_version: 3.3.5
42
84
  signing_key:
43
85
  specification_version: 4
44
86
  summary: Display the list of created Environment variables