dotenv_validator 1.2.0 → 1.3.0

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: 5ddad97517028e5f710b5973f270558feff5c9b0d642c71a3f0efc9a1a291363
4
- data.tar.gz: d8ab3fa5933aa9b94f443e5a9c297386b6724168eff1420dc3852db6614250c8
3
+ metadata.gz: '03040841959fe965027d57672d55726640199bb217b52a169c40b3bf465c7d69'
4
+ data.tar.gz: 80f1543f7719e2f3758bcf69b6294469c22033a56e96f03358d1627350e266b7
5
5
  SHA512:
6
- metadata.gz: 20c7b2ae0b8970a7256374b27ea9138f5e9ca5d866656ec59ec439472451d3063f828dc45f5fb19893df0f259670ae0558563a9f22bc1f75e8d9d7ea711a3da0
7
- data.tar.gz: 8c83b8eb210691309d09bf83370e657ccd8ad3ad5e361035d3a580770752d07d9993115be9803ae425a04842384c763e740942aff46765e33d1dbb122baa248f
6
+ metadata.gz: aee0d70d03f541d3d30171f1eafc5481df165a702b60bb0426b21db52af3c561100213765b0df20f80aeaa8b866b1fb47019b0bf5600aa8d181c825a64df63cf
7
+ data.tar.gz: a0e9a2bedb35d6cd82b5ebb3872544b009d849fa6de34044e060aeadbea12f77cf53a98b6a8ee7e95ef865bf7ecd40ab9e6583e7db99e6065434278090b67f59
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DotenvValidator
4
- VERSION = "1.2.0"
4
+ VERSION = "1.3.0"
5
5
  end
@@ -29,20 +29,22 @@ module DotenvValidator
29
29
 
30
30
  next unless config =~ /format=(.*)/
31
31
 
32
+ format = Regexp.last_match(1)
33
+
32
34
  valid =
33
- case Regexp.last_match(1)
34
- when "int", "integer" then integer?(value)
35
- when "float" then float?(value)
36
- when "str", "string" then true
35
+ case format
36
+ when "int", "integer", "Integer" then integer?(value)
37
+ when "float", "Float" then float?(value)
38
+ when "str", "string", "String" then true
37
39
  when "email" then email?(value)
38
40
  when "url" then url?(value)
39
- when "bool", "boolean" then boolean?(value)
40
- when "uuid" then uuid?(value)
41
+ when "bool", "boolean", "Boolean" then boolean?(value)
42
+ when "uuid", "UUID" then uuid?(value)
41
43
  else
42
44
  value.match?(Regexp.new(Regexp.last_match(1)))
43
45
  end
44
46
 
45
- invalid_format << variable_name unless valid
47
+ invalid_format << {name: variable_name, value: value, format: format} unless valid
46
48
  end
47
49
 
48
50
  [missing_variables, invalid_format]
@@ -61,7 +63,8 @@ module DotenvValidator
61
63
  end
62
64
 
63
65
  if invalid_format.any?
64
- puts("WARNING - Environment variables with invalid format: #{invalid_format.join(", ")}")
66
+ puts "WARNING - Environment variables with invalid format:"
67
+ puts invalid_format_list(invalid_format)
65
68
  result = false
66
69
  end
67
70
 
@@ -76,10 +79,10 @@ module DotenvValidator
76
79
 
77
80
  raise("Missing environment variables: #{missing_variables.join(", ")}") if missing_variables.any?
78
81
 
79
- raise("Environment variables with invalid format: #{invalid_format.join(", ")}") if invalid_format.any?
82
+ raise("Environment variables with invalid format:\n#{invalid_format_list(invalid_format)}") if invalid_format.any?
80
83
  end
81
84
 
82
- # It checks the value to check if it is a float or not.
85
+ # It checks if the value is float or not.
83
86
  #
84
87
  # @param [String] A string
85
88
  # @return [Boolean] True if it is a float value. False otherwise.
@@ -89,7 +92,7 @@ module DotenvValidator
89
92
  false
90
93
  end
91
94
 
92
- # It checks the value to check if it is an integer or not.
95
+ # It checks if the value is an integer or not.
93
96
  #
94
97
  # @param [String] A string
95
98
  # @return [Boolean] True if it is an integer value. False otherwise.
@@ -99,7 +102,7 @@ module DotenvValidator
99
102
  false
100
103
  end
101
104
 
102
- # It checks the value to check if it is an email or not.
105
+ # It checks if the value is an email or not.
103
106
  #
104
107
  # @param [String] A string
105
108
  # @return [Boolean] True if it is an email value. False otherwise.
@@ -107,7 +110,7 @@ module DotenvValidator
107
110
  string.match?(URI::MailTo::EMAIL_REGEXP)
108
111
  end
109
112
 
110
- # It checks the value to check if it is a URL or not.
113
+ # It checks if the value is a URL or not.
111
114
  #
112
115
  # @param [String] A string
113
116
  # @return [Boolean] True if it is an URL value. False otherwise.
@@ -115,7 +118,7 @@ module DotenvValidator
115
118
  string.match?(/\A#{URI::DEFAULT_PARSER.make_regexp(%w[http https])}\z/)
116
119
  end
117
120
 
118
- # It checks the value to check if it is a boolean or not.
121
+ # It checks if the value is a boolean or not.
119
122
  #
120
123
  # @param [String] A string
121
124
  # @return [Boolean] True if it is a boolean value. False otherwise.
@@ -123,7 +126,7 @@ module DotenvValidator
123
126
  string.match?(/(true|false)/)
124
127
  end
125
128
 
126
- # It checks the value to check if it is a uuid or not.
129
+ # It checks if the value is a uuid or not.
127
130
  #
128
131
  # @param [String] A string
129
132
  # @return [Boolean] True if it is a UUID value. False otherwise.
@@ -156,4 +159,10 @@ module DotenvValidator
156
159
  root_or_pwd
157
160
  end
158
161
  end
162
+
163
+ def self.invalid_format_list(invalid_format)
164
+ invalid_format.map do |var|
165
+ %(- #{var[:name]}: expected "#{var[:value]}" to match "#{var[:format]}" format)
166
+ end.join("\n")
167
+ end
159
168
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dotenv_validator
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ariel Juodziukynas
@@ -12,7 +12,7 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2022-04-05 00:00:00.000000000 Z
15
+ date: 2023-01-04 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: fast_blank