Module: RequireEnv
- Defined in:
- lib/require_env.rb,
lib/require_env/missing.rb,
lib/require_env/version.rb
Defined Under Namespace
Classes: Missing
Constant Summary collapse
- VERSION =
'1.2.0'
Class Method Summary collapse
- .application_environment ⇒ Object
- .application_environment=(value) ⇒ Object
- .check(*files) ⇒ Object
- .check_multiple_requirements(multiple_requirements) ⇒ Object
- .check_requirements(requirements) ⇒ Object
- .fallback_environment ⇒ Object
- .fallback_environment=(value) ⇒ Object
- .requirements_from_file(file) ⇒ Object
Class Method Details
.application_environment ⇒ Object
55 56 57 |
# File 'lib/require_env.rb', line 55 def self.application_environment @application_environment ||= ENV['RAILS_ENV'] end |
.application_environment=(value) ⇒ Object
59 60 61 |
# File 'lib/require_env.rb', line 59 def self.application_environment=(value) @application_environment = value end |
.check(*files) ⇒ Object
6 7 8 9 10 11 12 13 14 15 |
# File 'lib/require_env.rb', line 6 def self.check(*files) check_multiple_requirements(files.map do |file| requirements = requirements_from_file(file) env_requirements = requirements[application_environment] || requirements[fallback_environment] if env_requirements.nil? raise ArgumentError.new("#{file} does not define anything for environment: #{application_environment}") end [file, env_requirements] end) end |
.check_multiple_requirements(multiple_requirements) ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/require_env.rb', line 25 def self.check_multiple_requirements(multiple_requirements) missing_requirements = multiple_requirements.map do |file, requirements| missing = check_requirements(requirements) if missing.present? [file, missing] end end.compact if missing_requirements.present? raise RequireEnv::Missing.new(missing_requirements) end end |
.check_requirements(requirements) ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/require_env.rb', line 38 def self.check_requirements(requirements) requirements.map do |key, value| if ENV.has_key?(key) || ENV.has_key?(key.split('_IF_').first) next nil elsif value ENV[key] = value.to_s next nil elsif key.include?('_IF_') if (condition = ENV[key.split('_IF_').last]) && condition != 'false' next key.split('_IF_').first end else next key end end.compact end |
.fallback_environment ⇒ Object
63 64 65 |
# File 'lib/require_env.rb', line 63 def self.fallback_environment @fallback_environment ||= nil end |
.fallback_environment=(value) ⇒ Object
66 67 68 |
# File 'lib/require_env.rb', line 66 def self.fallback_environment=(value) @fallback_environment = value end |
.requirements_from_file(file) ⇒ Object
17 18 19 20 21 22 23 |
# File 'lib/require_env.rb', line 17 def self.requirements_from_file(file) if File.exist?(file) SafeYAML.load(ERB.new(File.read(file)).result) else raise ArgumentError.new("File not found: #{file}") end end |