Module: ABMeter::Core
- Defined in:
- lib/abmeter/core.rb,
lib/abmeter/core/user.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: AssignmentConfig, Protocol, Utils Classes: Error, User, UserParameterResolver
Class Method Summary collapse
-
.all_types ⇒ Object
Get all available types.
-
.build_resolver_from_json(json) ⇒ Object
Build a resolver from JSON configuration.
-
.cast!(value, type_name) ⇒ Object
Cast value to given type (strict - raises ArgumentError on invalid).
-
.num_utils ⇒ Object
Provide convenience access to utilities.
-
.numerical?(type_name) ⇒ Boolean
Check if type is numerical.
-
.percentages_to_ranges(percentages) ⇒ Object
Convert percentages to ranges for experiment allocation.
-
.type(type_name) ⇒ Object
Get type object by name.
-
.valid_for_type?(value, type_name) ⇒ Boolean
Check if value is valid for type.
Class Method Details
.all_types ⇒ Object
Get all available types
38 39 40 |
# File 'lib/abmeter/core.rb', line 38 def all_types Protocol.all_types end |
.build_resolver_from_json(json) ⇒ Object
Build a resolver from JSON configuration
58 59 60 61 |
# File 'lib/abmeter/core.rb', line 58 def build_resolver_from_json(json) config = AssignmentConfig.from_json(json) UserParameterResolver.new(config: config) end |
.cast!(value, type_name) ⇒ Object
Cast value to given type (strict - raises ArgumentError on invalid)
48 49 50 |
# File 'lib/abmeter/core.rb', line 48 def cast!(value, type_name) Protocol.cast!(value, type_name) end |
.num_utils ⇒ Object
Provide convenience access to utilities
64 65 66 |
# File 'lib/abmeter/core.rb', line 64 def num_utils Utils::NumUtils end |
.numerical?(type_name) ⇒ Boolean
Check if type is numerical
43 44 45 |
# File 'lib/abmeter/core.rb', line 43 def numerical?(type_name) Protocol.numerical?(type_name) end |
.percentages_to_ranges(percentages) ⇒ Object
Convert percentages to ranges for experiment allocation
69 70 71 |
# File 'lib/abmeter/core.rb', line 69 def percentages_to_ranges(percentages) Utils::NumUtils.percentages_to_ranges(percentages) end |
.type(type_name) ⇒ Object
Get type object by name
33 34 35 |
# File 'lib/abmeter/core.rb', line 33 def type(type_name) Protocol.type(type_name) end |
.valid_for_type?(value, type_name) ⇒ Boolean
Check if value is valid for type
53 54 55 |
# File 'lib/abmeter/core.rb', line 53 def valid_for_type?(value, type_name) Protocol.valid_for_type?(value, type_name) end |