varslist 0.0.7 → 0.2.0

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 (6) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +8 -0
  3. data/bin/varslist +0 -4
  4. data/lib/varslist.rb +86 -66
  5. metadata +8 -32
  6. data/bin/vars +0 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d1d7241a9064fedd4345223ba66adc0ba6623ea8f576f2dae0e4c53700ef9013
4
- data.tar.gz: 6f404ccc9867a09a00015d51f6d61d76bb27456852084e68648c1f9586db881a
3
+ metadata.gz: 834c1a4f7da0c33c32d7eb4adcd9d890ec192ac7a5c2343a6acdcea299ff5474
4
+ data.tar.gz: 757f408ac7d53073050f450de9af924379499f077bfaba1ca7c7c0389c699622
5
5
  SHA512:
6
- metadata.gz: dca53197bf5fca8e3b569b94736c252c21441780684e329adae94be13acda4d80f5370be02f56e18bab7a2c92432806a5f08c291d9cf6e8d75e5f90e4ef686df
7
- data.tar.gz: 368199a27f4ed8b1306a490cf978d591fb345db76dcdb9950dfe7cbaa778ef70684ea5050dcb1c4e7ab5b5e6668136b762d01f34a14e682d03bce7dfa6a10f95
6
+ metadata.gz: d67cac3ef0c6b6705ba7eb4c8beab7ed522d61b2522f9d0ffe86a87f44a301a03470529d7d9e2d39a5867b408b2492516ca28c3d7fe636b70819fdedbe4b2c34
7
+ data.tar.gz: 0dcffe31dc38e3f4f8f5c3990656104e1fa0270339f8f3d3d97071331d5226d3e3d103e17ac81e8ed29e988d4a75c58bcbddc393aee48d814fdeeb4051d08461
data/Gemfile CHANGED
@@ -3,3 +3,11 @@ source 'https://rubygems.org'
3
3
  gemspec
4
4
 
5
5
  gem 'colorize'
6
+
7
+ gem 'dotenv'
8
+
9
+ group :development do
10
+ gem 'rubocop', '~> 1.60'
11
+ gem 'rubocop-performance'
12
+ gem 'pry'
13
+ end
data/bin/varslist CHANGED
@@ -1,10 +1,6 @@
1
1
  #!/usr/bin/env rails
2
2
 
3
- rails_root = Dir.pwd
4
-
5
3
  require 'rubygems'
6
- require_relative "#{rails_root}/config/environment"
7
- require_relative "#{rails_root}/config/application"
8
4
  require 'varslist'
9
5
  env_vars = Varslist.list_env_variables
10
6
 
data/lib/varslist.rb CHANGED
@@ -1,90 +1,110 @@
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
+ require_relative 'varslist/errors'
6
5
 
7
6
  module Varslist
8
-
9
- def self.list_env_variables
10
- env_use_list = []
11
- watch_list = /\.rb$|\.html\.erb$/
12
- env_regex = /ENV\[['"]\w+['"]\]|ENV\.fetch/
13
- filelist = Dir['./**/**/*.*']
14
- filelist.each do |file|
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)}
7
+ class << self
8
+ def env_vars
9
+ @env_vars ||= list_env_variables
10
+ end
11
+
12
+ def list_env_variables
13
+ env_use_list = []
14
+ watch_list = /\.rb$|\.html\.erb$/
15
+ env_regex = /ENV\[['"]\w+['"]\]|ENV\.fetch/
16
+ filelist = Dir['./**/**/*.*']
17
+ filelist.each do |file|
18
+ if File.basename(file)&.match?(watch_list)
19
+ File.foreach(file).with_index do |line, index|
20
+ next if line.strip.empty? || line.strip.start_with?('#')
21
+ if line&.match?(env_regex)
22
+ env_use_list << { "line" => line.strip, "file_name" => file, "line_number" => index + 1, "var_name" => check_var_name(line)}
23
+ end
20
24
  end
21
25
  end
22
26
  end
27
+ env_use_list
23
28
  end
24
- env_use_list
25
- end
26
29
 
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
-
30
+ def print_help
31
+ puts "Help for Varslist".colorize(:magenta)
32
+ puts "Use varslist to show all the ENV variables used in all .rb and .erb files"
33
+ puts "--file = to show file list where the ENV variables are used"
34
+ puts "--verify = to verify if all the ENV variable are valid"
35
+ end
36
+
34
37
 
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
38
+ def check_var_name(line)
39
+ if match = line.scan(/ENV\[['"]([^'"]+)['"]\]|ENV\.fetch\(['"]([^'"]+)['"]/)
40
+ vars=match.flatten.compact.each do |env_var|
41
+ env_var
42
+ end
43
+ vars.join
44
+ else
45
+ nil
39
46
  end
40
- vars.join
41
- else
42
- nil
43
47
  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)
48
+
49
+ def print_env(found_envs)
50
+ found_envs.each do |env_line|
51
+ puts "#{env_line["file_name"]}:#{env_line["line_number"]}\t#{env_line["var_name"]}".colorize(:magenta)
52
+ puts "\n\t#{env_line["line"]}\n".colorize(:green)
53
+ end
50
54
  end
51
- end
52
55
 
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)
56
+
57
+ def print_used_var_list(found_envs)
58
+ puts "\n\nThe used ENV variables".colorize(:magenta)
59
+ used_vars=[]
60
+ found_envs.each do |found_env|
61
+ used_vars << found_env["var_name"] unless used_vars.include?(found_env["var_name"])
62
+ end
63
+ used_vars.each do |var|
64
+ puts "\t#{var}".colorize(:green)
65
+ end
62
66
  end
63
- end
64
67
 
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"])
68
+ def verify_var_list
69
+ valid_env, invalid_env = get_used_and_unused_vars
70
+ if !valid_env.empty?
71
+ puts "\n\nThe valid envs are:".colorize(:magenta)
72
+ valid_env.each do |valid|
73
+ puts "\t#{valid}".colorize(:green)
74
+ end
73
75
  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)
76
+ if !invalid_env.empty?
77
+ puts "\n\nThe invalid envs are:".colorize(:magenta)
78
+ invalid_env.each do |valid|
79
+ puts "\t#{valid}".colorize(:red)
80
+ end
79
81
  end
80
82
  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)
83
+
84
+ def verify!
85
+ invalid_env = get_used_and_unused_vars[1]
86
+ if invalid_env.empty?
87
+ puts "\n\nThe envs are valid".colorize(:green)
88
+ else
89
+ message = "The envs are invalid"
90
+ puts "\n\nThe envs are invalid".colorize(:red)
91
+ raise Varslist::MissingEnvError, message
85
92
  end
86
93
  end
87
- end
88
94
 
89
- # private_class_method :check_environment
95
+ private
96
+
97
+ def get_used_and_unused_vars
98
+ valid_env = []
99
+ invalid_env = []
100
+ env_vars.each do |found_env|
101
+ if ENV[found_env["var_name"]].nil?
102
+ invalid_env << found_env["var_name"] unless invalid_env.include?(found_env["var_name"])
103
+ else
104
+ valid_env << found_env["var_name"] unless valid_env.include?(found_env["var_name"])
105
+ end
106
+ end
107
+ return valid_env, invalid_env
108
+ end
109
+ end
90
110
  end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: varslist
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sumit Pati
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2024-12-18 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: colorize
@@ -30,42 +29,20 @@ dependencies:
30
29
  - - ">="
31
30
  - !ruby/object:Gem::Version
32
31
  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
53
- description:
54
- email:
32
+ description: Varslist is a ruby gem that helps to identify the env variables that
33
+ are being used in your project
55
34
  executables:
56
35
  - varslist
57
- - vars
58
36
  extensions: []
59
37
  extra_rdoc_files: []
60
38
  files:
61
39
  - Gemfile
62
- - bin/vars
63
40
  - bin/varslist
64
41
  - lib/varslist.rb
65
- homepage: https://rubygems.org/gems/varslist
42
+ homepage: https://github.com/sumitpati7/varslist
66
43
  licenses: []
67
- metadata: {}
68
- post_install_message:
44
+ metadata:
45
+ rubygems_mfa_required: 'true'
69
46
  rdoc_options: []
70
47
  require_paths:
71
48
  - lib
@@ -80,8 +57,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
80
57
  - !ruby/object:Gem::Version
81
58
  version: '0'
82
59
  requirements: []
83
- rubygems_version: 3.3.5
84
- signing_key:
60
+ rubygems_version: 3.6.9
85
61
  specification_version: 4
86
62
  summary: Display the list of created Environment variables
87
63
  test_files: []
data/bin/vars DELETED
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env bash
2
- rails c
3
- Varslist.list_env_variables