Module: Switchlet

Defined in:
lib/switchlet.rb,
lib/switchlet/flag.rb,
lib/switchlet/engine.rb,
lib/switchlet/railtie.rb,
lib/switchlet/version.rb,
lib/switchlet/configuration.rb,
app/controllers/switchlet/flags_controller.rb,
lib/generators/switchlet/install_generator.rb,
app/controllers/switchlet/application_controller.rb

Defined Under Namespace

Modules: Generators Classes: ApplicationController, Configuration, Engine, Error, Flag, FlagsController, Railtie

Constant Summary collapse

VERSION =
"0.3.1"

Class Method Summary collapse

Class Method Details

.configurationObject



12
13
14
# File 'lib/switchlet.rb', line 12

def self.configuration
  @configuration ||= Configuration.new
end

.configure {|configuration| ... } ⇒ Object

Yields:



16
17
18
# File 'lib/switchlet.rb', line 16

def self.configure
  yield(configuration)
end

.delete!(name) ⇒ Object



40
41
42
43
# File 'lib/switchlet.rb', line 40

def self.delete!(name)
  Flag.where(name: name.to_s).delete_all
  nil
end

.disable!(name, description: nil) ⇒ Object



32
33
34
35
36
37
38
# File 'lib/switchlet.rb', line 32

def self.disable!(name, description: nil)
  flag = Flag.find_or_create_by(name: name.to_s)
  attrs = { enabled: false }
  attrs[:description] = description if description
  flag.update!(attrs)
  false
end

.enable!(name, description: nil) ⇒ Object



24
25
26
27
28
29
30
# File 'lib/switchlet.rb', line 24

def self.enable!(name, description: nil)
  flag = Flag.find_or_create_by(name: name.to_s)
  attrs = { enabled: true }
  attrs[:description] = description if description
  flag.update!(attrs)
  true
end

.enabled?(name) ⇒ Boolean



20
21
22
# File 'lib/switchlet.rb', line 20

def self.enabled?(name)
  Flag.find_by(name: name.to_s)&.enabled || false
end

.listObject



45
46
47
48
49
50
51
52
53
54
# File 'lib/switchlet.rb', line 45

def self.list
  Flag.order(:name).map do |flag|
    {
      name: flag.name,
      enabled: flag.enabled,
      description: flag.description,
      updated_at: flag.updated_at
    }
  end
end

.update!(name, description: nil, enabled: nil) ⇒ Object



56
57
58
59
60
61
62
63
# File 'lib/switchlet.rb', line 56

def self.update!(name, description: nil, enabled: nil)
  flag = Flag.find_or_create_by(name: name.to_s)
  attrs = {}
  attrs[:description] = description unless description.nil?
  attrs[:enabled] = enabled unless enabled.nil?
  flag.update!(attrs) if attrs.any?
  flag
end