Module: Subflag

Defined in:
lib/subflag/rails.rb,
lib/subflag/rails/client.rb,
lib/subflag/rails/engine.rb,
lib/subflag/rails/helpers.rb,
lib/subflag/rails/railtie.rb,
lib/subflag/rails/version.rb,
lib/subflag/rails/targeting.rb,
lib/subflag/rails/models/flag.rb,
lib/subflag/rails/test_helpers.rb,
lib/subflag/rails/test_helpers.rb,
lib/subflag/rails/configuration.rb,
lib/subflag/rails/flag_accessor.rb,
lib/subflag/rails/request_cache.rb,
lib/subflag/rails/context_builder.rb,
lib/subflag/rails/targeting_engine.rb,
lib/subflag/rails/evaluation_result.rb,
lib/generators/subflag/install_generator.rb,
lib/subflag/rails/backends/memory_provider.rb,
lib/subflag/rails/backends/subflag_provider.rb,
app/controllers/subflag/rails/flags_controller.rb,
lib/subflag/rails/backends/active_record_provider.rb,
app/controllers/subflag/rails/application_controller.rb

Overview

Patch FlagAccessor to use stubbed values in tests

Defined Under Namespace

Modules: Generators, Rails

Class Method Summary collapse

Class Method Details

.flags(user: nil, context: nil) ⇒ FlagAccessor

Get a flag accessor for evaluating flags

Examples:

Basic usage

Subflag.flags.new_checkout?(default: false)
Subflag.flags.homepage_headline(default: "Welcome")

With user targeting

Subflag.flags(user: current_user).max_projects(default: 3)

Bracket access for exact flag names

Subflag.flags["my-exact-flag", default: "value"]

Parameters:

  • user (Object, nil) (defaults to: nil)

    The user object for targeting

  • context (Hash, nil) (defaults to: nil)

    Additional context attributes

Returns:

  • (FlagAccessor)

    A flag accessor with method_missing DSL



165
166
167
# File 'lib/subflag/rails.rb', line 165

def flags(user: nil, context: nil)
  Rails::FlagAccessor.new(user: user, context: context)
end

.prefetch_flags(user: nil, context: nil) ⇒ Array<Hash>

Prefetch all flags for a user/context in a single API call

Examples:

Subflag.prefetch_flags(user: current_user)
# Subsequent lookups use cache
Subflag.flags(user: current_user).new_feature?(default: false)

Parameters:

  • user (Object, nil) (defaults to: nil)

    The user object for targeting

  • context (Hash, nil) (defaults to: nil)

    Additional context attributes

Returns:

  • (Array<Hash>)

    Array of prefetched flag results



180
181
182
# File 'lib/subflag/rails.rb', line 180

def prefetch_flags(user: nil, context: nil)
  Rails.prefetch_flags(user: user, context: context)
end