class Split::Cli::Session

Constants

CONFIG_ERROR_MESSAGE

Attributes

options[RW]
request[RW]
session_id[RW]

Public Class Methods

new(session_id, options = {}) click to toggle source
# File lib/split/cli/session.rb, line 12
def initialize(session_id, options = {})
  @session_id = session_id
  @options = options
  @request = Request.new(options.fetch(:user_agent, 'CLI'))
  config_split!
end

Public Instance Methods

ab_test(*args) click to toggle source
Calls superclass method
# File lib/split/cli/session.rb, line 19
def ab_test(*args)
  raise_unless_valid_args!(args)
  super
end
finished(*args) click to toggle source
Calls superclass method
# File lib/split/cli/session.rb, line 24
def finished(*args)
  raise_unless_valid_args!(args)
  super
end

Private Instance Methods

config_split!() click to toggle source
# File lib/split/cli/session.rb, line 37
def config_split!
  Split.redis = options.fetch :redis_url, ENV.fetch('REDIS_URL', 'localhost:6379')
  Split.redis.namespace = options.fetch :redis_namespace, ENV.fetch('REDIS_NAMESPACE', 'split')

  Split.configure do |config|
    config.persistence = Split::Persistence::RedisAdapter.with_config(lookup_by: -> (cli) { cli.session_id })
    config.allow_multiple_experiments = options.fetch(:allow_multiple_experiments, ENV.fetch('SPLIT_MULTI_EXPERIMENT', true))
    config.experiments = YAML.load_file yaml_config_path
  end
end
raise_unless_valid_args!(args) click to toggle source
# File lib/split/cli/session.rb, line 33
def raise_unless_valid_args!(args)
  raise(Split::Cli::CommandError, 'No experiment name provided') unless args.any?
end
yaml_config_path() click to toggle source
# File lib/split/cli/session.rb, line 48
def yaml_config_path
  options.fetch(:config_path, ENV['SPLIT_YAML_CONFIG']) || raise(CommandError, CONFIG_ERROR_MESSAGE)
end