Module: ABMeter
- Extended by:
- ErrorSafety
- Defined in:
- lib/abmeter.rb,
lib/abmeter/core.rb,
lib/abmeter/client.rb,
lib/abmeter/version.rb,
lib/abmeter/api_error.rb,
lib/abmeter/constants.rb,
lib/abmeter/core/user.rb,
lib/abmeter/error_safety.rb,
lib/abmeter/async_submitter.rb,
lib/abmeter/resolver_provider.rb,
lib/abmeter/core/protocol/type.rb,
lib/abmeter/core/utils/num_utils.rb,
lib/abmeter/core/assignment_config.rb,
lib/abmeter/core/assignment_config/space.rb,
lib/abmeter/core/user_parameter_resolver.rb,
lib/abmeter/core/assignment_config/variant.rb,
lib/abmeter/core/assignment_config/audience.rb,
lib/abmeter/core/assignment_config/exposable.rb,
lib/abmeter/core/assignment_config/parameter.rb,
lib/abmeter/core/assignment_config/experiment.rb,
lib/abmeter/core/assignment_config/feature_flag.rb
Defined Under Namespace
Modules: Core, ErrorSafety
Classes: APIError, AsyncSubmitter, Client, Config, ResolverProvider
Constant Summary
collapse
- VERSION =
'0.2.4'.freeze
- DEFAULT_BATCH_SIZE =
100
- DEFAULT_FLUSH_INTERVAL =
60
- DEFAULT_FETCH_INTERVAL =
60
- DEFAULT_BASE_URL =
'https://abmeter.ai'
- DEFAULT_MAX_SUBMIT_ATTEMPTS =
3
- DEFAULT_MAX_RETRY_QUEUE_SIZE =
1000
- DEFAULT_LOG_LEVEL =
:error
Class Method Summary
collapse
included
Class Method Details
.client ⇒ Object
26
27
28
29
30
31
32
|
# File 'lib/abmeter.rb', line 26
def client
unless @client
raise 'ABMeter not configured or configured with "static" JSON. Call ABMeter.configure { |config| ... } first.'
end
@client
end
|
.config ⇒ Object
20
21
22
23
24
|
# File 'lib/abmeter.rb', line 20
def config
raise 'ABMeter not configured. Call ABMeter.configure { |config| ... } first.' unless @config
@config
end
|
.get_exposure(user:, parameter_slug:) ⇒ Object
Only evaluates exposure with all details, including resolved value, without submitting it to the API Useful for testing/debugging
90
91
92
|
# File 'lib/abmeter.rb', line 90
def get_exposure(user:, parameter_slug:)
resolver_provider.get_exposure(user: user, parameter_slug: parameter_slug)
end
|
.reset! ⇒ Object
67
68
69
70
71
72
73
|
# File 'lib/abmeter.rb', line 67
def reset!
AsyncSubmitter.shutdown
@config = nil
@client = nil
@resolver_provider = nil
end
|
.resolve_parameter(user:, parameter_slug:) ⇒ Object
resolves paramater and submits parameter exposure to the API
83
84
85
|
# File 'lib/abmeter.rb', line 83
def resolve_parameter(user:, parameter_slug:)
resolver_provider.resolve_parameter(user: user, parameter_slug: parameter_slug)
end
|
.resolver_provider ⇒ Object
34
35
36
37
38
|
# File 'lib/abmeter.rb', line 34
def resolver_provider
raise 'ABMeter not configured. Call ABMeter.configure { |config| ... } first.' unless @resolver_provider
@resolver_provider
end
|
.track_event(event_name, user_id, data) ⇒ Object
75
76
77
78
79
|
# File 'lib/abmeter.rb', line 75
def track_event(event_name, user_id, data)
AsyncSubmitter.queue_event(event_name, user_id, data)
nil
end
|