Module: Toggly::Rails

Defined in:
lib/toggly-rails.rb,
lib/toggly/rails/railtie.rb,
lib/toggly/rails/testing.rb,
lib/toggly/rails/version.rb,
lib/toggly/rails/middleware.rb,
lib/toggly/rails/view_helpers.rb,
lib/toggly/rails/configuration.rb,
lib/toggly/rails/context_builder.rb,
lib/toggly/rails/controller_concern.rb,
lib/toggly/rails/cache_snapshot_provider.rb

Overview

Rails integration for Toggly feature flags.

Examples:

Basic Rails setup (config/initializers/toggly.rb)

Toggly::Rails.configure do |config|
  config.app_key = Rails.application.credentials.toggly_app_key
  config.environment = Rails.env.production? ? "Production" : "Staging"
end

Controller usage

class ApplicationController < ActionController::Base
  include Toggly::Rails::ControllerConcern

  def show
    if feature_enabled?(:new_dashboard)
      render :new_dashboard
    else
      render :dashboard
    end
  end
end

View usage

<% if feature_enabled?(:new_header) %>
  <%= render "new_header" %>
<% else %>
  <%= render "header" %>
<% end %>

Defined Under Namespace

Modules: ControllerConcern, Testing, ViewHelpers Classes: CacheSnapshotProvider, Configuration, ContextBuilder, Middleware, Railtie

Constant Summary collapse

VERSION =
"0.2.0"

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.configurationConfiguration

Returns Rails-specific configuration.

Returns:



43
44
45
# File 'lib/toggly-rails.rb', line 43

def configuration
  @configuration
end

Class Method Details

.clientToggly::Client

Get the current Toggly client

Returns:

  • (Toggly::Client)


68
69
70
# File 'lib/toggly-rails.rb', line 68

def client
  Toggly.client
end

.configure {|Configuration| ... } ⇒ void

This method returns an undefined value.

Configure Toggly for Rails

Yields:



49
50
51
52
53
54
55
56
57
# File 'lib/toggly-rails.rb', line 49

def configure
  self.configuration ||= Configuration.new
  yield(configuration) if block_given?

  # Create the Toggly client from Rails configuration
  Toggly.configure do |config|
    configuration.apply_to(config)
  end
end

.reset!Object

Reset configuration (mainly for testing)



60
61
62
63
# File 'lib/toggly-rails.rb', line 60

def reset!
  self.configuration = nil
  Toggly.reset!
end