Sha256: 8e3b93bdc4262ab3b959eea241fdab396c11c164d2568c94cc9c2b7940de8f07

Contents?: true

Size: 659 Bytes

Versions: 1

Compression:

Stored size: 659 Bytes

Contents

module FeatureGate
  class GatedFeature < ActiveRecord::Base
    self.table_name = 'feature_gate_gated_features'

    validates :name, presence: true
    validates :gated, inclusion: { in: [true, false] }

    scope :opened, -> { where(gated: false) }
    scope :closed, -> { where(gated: true) }
    scope :stale, -> { where('updated_at != created_at and updated_at < ?', Time.zone.now - FeatureGate.time_to_stale) }

    def deploy_feature!
      self.gated = false
      save!
    end

    def gate_feature!
      self.gated = true
      save!
    end

    def status
      if gated
        'closed'
      else
        'opened'
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
feature_gate-0.1.9 app/models/feature_gate/gated_feature.rb