varslist 0.0.5 → 0.0.7

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 +27 -1
  4. data/lib/varslist.rb +72 -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: d1d7241a9064fedd4345223ba66adc0ba6623ea8f576f2dae0e4c53700ef9013
4
+ data.tar.gz: 6f404ccc9867a09a00015d51f6d61d76bb27456852084e68648c1f9586db881a
5
5
  SHA512:
6
- metadata.gz: 78b30553cab6c299ea81e9cdf0f660349971446d61a35037246175b68ba765edacf381413f3830a4e47067b7989dd3a430ea426a3745e7774497f36aa2e8d071
7
- data.tar.gz: efd868b487f58c74ab401e681b372c2af97403be3a5308261fadb5ce72c2a645ff7fc2097584495851d511ed4c6b2573fe51aca6b52a580f236a702debc05359
6
+ metadata.gz: dca53197bf5fca8e3b569b94736c252c21441780684e329adae94be13acda4d80f5370be02f56e18bab7a2c92432806a5f08c291d9cf6e8d75e5f90e4ef686df
7
+ data.tar.gz: 368199a27f4ed8b1306a490cf978d591fb345db76dcdb9950dfe7cbaa778ef70684ea5050dcb1c4e7ab5b5e6668136b762d01f34a14e682d03bce7dfa6a10f95
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,28 @@
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
25
+
26
+ if ARGV.include?('--help')
27
+ Varslist.print_help
28
+ end
data/lib/varslist.rb CHANGED
@@ -1,27 +1,90 @@
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
13
26
 
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?('#')
27
+ def self.print_help
28
+ puts "Help for Varslist".colorize(:magenta)
29
+ puts "Use varslist to show all the ENV variables used in all .rb and .erb files"
30
+ puts "--file = to show file list where the ENV variables are used"
31
+ puts "--verify = to verify if all the ENV variable are valid"
32
+ end
33
+
34
+
35
+ def self.check_var_name(line)
36
+ if match = line.scan(/ENV\[['"]([^'"]+)['"]\]|ENV\.fetch\(['"]([^'"]+)['"]/)
37
+ vars=match.flatten.compact.each do |env_var|
38
+ env_var
39
+ end
40
+ vars.join
41
+ else
42
+ nil
43
+ end
44
+ end
45
+
46
+ def self.print_env(found_envs)
47
+ found_envs.each do |env_line|
48
+ puts "#{env_line["file_name"]}:#{env_line["line_number"]}\t#{env_line["var_name"]}".colorize(:magenta)
49
+ puts "\n\t#{env_line["line"]}\n".colorize(:green)
50
+ end
51
+ end
52
+
53
+
54
+ def self.print_used_var_list(found_envs)
55
+ puts "\n\nThe used ENV variables".colorize(:magenta)
56
+ used_vars=[]
57
+ found_envs.each do |found_env|
58
+ used_vars << found_env["var_name"] unless used_vars.include?(found_env["var_name"])
59
+ end
60
+ used_vars.each do |var|
61
+ puts "\t#{var}".colorize(:green)
62
+ end
63
+ end
18
64
 
19
- if line =~ env_regex
20
- puts "#{file_name}:#{index + 1}".purple
21
- puts "\n\t#{line}\n".green
65
+ def self.verify_var_list(found_envs)
66
+ valid_env = []
67
+ invalid_env = []
68
+ found_envs.each do |found_env|
69
+ if ENV[found_env["var_name"]] != nil
70
+ valid_env << found_env["var_name"] unless valid_env.include?(found_env["var_name"])
71
+ else
72
+ invalid_env << found_env["var_name"] unless invalid_env.include?(found_env["var_name"])
73
+ end
74
+ end
75
+ if !valid_env.empty?
76
+ puts "\n\nThe valid envs are:".colorize(:magenta)
77
+ valid_env.each do |valid|
78
+ puts "\t#{valid}".colorize(:green)
79
+ end
80
+ end
81
+ if !invalid_env.empty?
82
+ puts "\n\nThe invalid envs are:".colorize(:magenta)
83
+ invalid_env.each do |valid|
84
+ puts "\t#{valid}".colorize(:red)
22
85
  end
23
86
  end
24
87
  end
25
88
 
26
- private_class_method :check_environment
89
+ # private_class_method :check_environment
27
90
  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.7
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