module Featuring::Delegatable

Internal concerns related to delegating feature flag checks to parent context, like this:

module Features
  extend Featuring::Declarable

  feature :some_enabled_feature do |value|
    value == internal_value
  end

  def internal_value
    true
  end

  module_function :internal_value
end

Public Class Methods

extended(object) click to toggle source
Calls superclass method
# File lib/featuring/delegatable.rb, line 23
def self.extended(object)
  super

  object.extend ClassMethods
end
included(object) click to toggle source
Calls superclass method
# File lib/featuring/delegatable.rb, line 29
def self.included(object)
  super

  object.extend ClassMethods
  object.include InstanceMethods
end

Public Instance Methods

fetch_feature_flag_value(name, *args) click to toggle source
# File lib/featuring/delegatable.rb, line 46
def fetch_feature_flag_value(name, *args)
  !!internal_feature_delegator.public_send(name, *args)
end

Private Instance Methods

internal_feature_delegates_to() click to toggle source
# File lib/featuring/delegatable.rb, line 36
        def internal_feature_delegates_to
  self
end
internal_feature_delegator() click to toggle source
# File lib/featuring/delegatable.rb, line 40
        def internal_feature_delegator
  @_internal_feature_delegator ||= internal_feature_delegator_class.new(
    internal_feature_delegates_to
  )
end