class FeatureFlagger::Feature
Public Class Methods
new(feature_key, resource_name = nil)
click to toggle source
# File lib/feature_flagger/feature.rb, line 3 def initialize(feature_key, resource_name = nil) @feature_key = resolve_key(feature_key, resource_name) @doc = FeatureFlagger.config.info fetch_data end
Public Instance Methods
description()
click to toggle source
# File lib/feature_flagger/feature.rb, line 9 def description @data['description'] end
key()
click to toggle source
# File lib/feature_flagger/feature.rb, line 13 def key @feature_key.join(':') end
Private Instance Methods
fetch_data()
click to toggle source
# File lib/feature_flagger/feature.rb, line 25 def fetch_data @data ||= find_value(@doc, *@feature_key) raise FeatureFlagger::KeyNotFoundError.new(@feature_key) if @data.nil? @data end
find_value(hash, key, *tail)
click to toggle source
# File lib/feature_flagger/feature.rb, line 31 def find_value(hash, key, *tail) value = hash[key] if value.nil? || tail.empty? value else find_value(value, *tail) end end
resolve_key(feature_key, resource_name)
click to toggle source
# File lib/feature_flagger/feature.rb, line 19 def resolve_key(feature_key, resource_name) key = Array(feature_key).flatten key.insert(0, resource_name) if resource_name key.map(&:to_s) end