Sha256: ebc700e83cb1dcbe4939d0f6f38bfc74f140ffeec998d818af0fb28fbf1f39f9
Contents?: true
Size: 1.04 KB
Versions: 1
Compression:
Stored size: 1.04 KB
Contents
# frozen_string_literal: true module Sbmt module Strangler module Flipper FLIPPER_ID_STRUCT = Struct.new(:flipper_id) ONTIME_ACTOR_REGEXP = /^ONTIME:(\d{2})-(\d{2})$/ class << self delegate :add, to: ::Flipper def enabled?(feature_name, *actors) raise "feature name is blank" if feature_name.blank? actors = Array(actors).flatten.compact ::Flipper.enabled?(feature_name, *actors.map { FLIPPER_ID_STRUCT.new(_1) }) end def enabled_on_time?(feature_name) raise "feature name is blank" if feature_name.blank? hours_ranges = ::Flipper[feature_name] .actors_value .filter_map { |e| e.match(ONTIME_ACTOR_REGEXP) { $LAST_MATCH_INFO.captures.map(&:to_i) } } .compact hour_now = DateTime.now.in_time_zone.hour hours_ranges.any? { |range| (range.first..range.last).cover?(hour_now) } end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
sbmt-strangler-0.9.1 | lib/sbmt/strangler/flipper.rb |