Class: Philiprehberger::FeatureFlag::Backends::EnvBackend

Inherits:
Object
  • Object
show all
Defined in:
lib/philiprehberger/feature_flag/backends/env_backend.rb

Instance Method Summary collapse

Instance Method Details

#allObject



18
19
20
21
# File 'lib/philiprehberger/feature_flag/backends/env_backend.rb', line 18

def all
  ENV.select { |k, _| k.start_with?('FEATURE_') }
     .transform_keys { |k| k.delete_prefix('FEATURE_').downcase }
end

#get(flag) ⇒ Object



7
8
9
10
11
12
# File 'lib/philiprehberger/feature_flag/backends/env_backend.rb', line 7

def get(flag)
  value = ENV.fetch("FEATURE_#{flag.to_s.upcase}", nil)
  return nil if value.nil?

  parse_value(value)
end

#reload!Object



23
24
25
# File 'lib/philiprehberger/feature_flag/backends/env_backend.rb', line 23

def reload!
  # no-op, ENV is always live
end

#set(_flag, _value) ⇒ Object

Raises:

  • (NotImplementedError)


14
15
16
# File 'lib/philiprehberger/feature_flag/backends/env_backend.rb', line 14

def set(_flag, _value)
  raise NotImplementedError, 'ENV backend is read-only'
end