Sha256: 73f3441393171a05998c4a76079abfe2eb9d9a397f3210168ce2805922882990

Contents?: true

Size: 915 Bytes

Versions: 3

Compression:

Stored size: 915 Bytes

Contents

# frozen_string_literal: true

module Bp3
  module Core
    module FeatureFlags
      extend ActiveSupport::Concern

      def efcfon?(flag, ref: nil, default: nil)
        ef = efon(flag, ref:, default: nil)
        cf = cfon(flag, ref:, default: nil)

        if ef.nil? && cf.nil?
          default || false
        elsif ef.nil?
          cf
        elsif cf.nil?
          ef
        else
          cf || ef
        end
      end

      def efon(flag, ref: nil, default: nil)
        Feature::Enabler.on(flag, enablable: ref, default:)
      end

      def efon?(flag, ref: nil, default: nil)
        efon(flag, ref:, default:) || default || false
      end

      def cfon(flag, ref: nil, default: nil)
        return default if ref.nil?

        ref.configs&.[](flag)
      end

      def cfon?(flag, ref: nil, default: nil)
        cfon(flag, ref:, default:) || default || false
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
bp3-core-0.1.5 lib/bp3/core/feature_flags.rb
bp3-core-0.1.4 lib/bp3/core/feature_flags.rb
bp3-core-0.1.2 lib/bp3/core/feature_flags.rb