Sha256: 54ff4a8164447ce4fddb34c0ec662962bde5eb712c9f4b5a4d3ef6aa847932cc

Contents?: true

Size: 800 Bytes

Versions: 2

Compression:

Stored size: 800 Bytes

Contents

module Featureflow
  class Feature
    def self.create(key, failover_variant = 'off')
      raise ArgumentError, 'Parameter key must be a String' unless valid_key?(key)
      raise ArgumentError, 'Parameter failover_variant must be a String containing only letters, numbers, hyphens or underscores' unless valid_key?(failover_variant) || failover_variant.is_a?(NilClass)
      {
          key: key,
          failover_variant: failover_variant,
          variants: [{
                       key: 'on',
                       name: 'On'
                     },
                     {
                       key: 'off',
                       name: 'Off'
                     }]
      }
    end
  end
end

def valid_key?(value)
  value.is_a?(String) && !value.empty? &&  value =~ /^[a-z\-\_0-9]+$/
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
featureflow-0.6.0 lib/featureflow/feature.rb
featureflow-0.5.1 lib/featureflow/feature.rb