splitclient-rb 4.1.0 → 4.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGES.txt +8 -0
- data/NEWS +6 -0
- data/README.md +5 -18
- data/lib/splitclient-rb.rb +65 -54
- data/lib/{cache → splitclient-rb/cache}/adapters/memory_adapter.rb +0 -0
- data/lib/{cache → splitclient-rb/cache}/adapters/memory_adapters/map_adapter.rb +0 -0
- data/lib/{cache → splitclient-rb/cache}/adapters/memory_adapters/queue_adapter.rb +0 -0
- data/lib/{cache → splitclient-rb/cache}/adapters/redis_adapter.rb +0 -0
- data/lib/{cache → splitclient-rb/cache}/repositories/impressions/memory_repository.rb +0 -0
- data/lib/{cache → splitclient-rb/cache}/repositories/impressions/redis_repository.rb +0 -0
- data/lib/{cache → splitclient-rb/cache}/repositories/impressions_repository.rb +0 -0
- data/lib/{cache → splitclient-rb/cache}/repositories/metrics/memory_repository.rb +0 -0
- data/lib/{cache → splitclient-rb/cache}/repositories/metrics/redis_repository.rb +0 -0
- data/lib/{cache → splitclient-rb/cache}/repositories/metrics_repository.rb +0 -0
- data/lib/{cache → splitclient-rb/cache}/repositories/repository.rb +0 -0
- data/lib/{cache → splitclient-rb/cache}/repositories/segments_repository.rb +0 -0
- data/lib/{cache → splitclient-rb/cache}/repositories/splits_repository.rb +0 -0
- data/lib/{cache → splitclient-rb/cache}/senders/impressions_formatter.rb +0 -0
- data/lib/{cache → splitclient-rb/cache}/senders/impressions_sender.rb +1 -1
- data/lib/{cache → splitclient-rb/cache}/senders/metrics_sender.rb +1 -1
- data/lib/{cache → splitclient-rb/cache}/stores/sdk_blocker.rb +0 -0
- data/lib/{cache → splitclient-rb/cache}/stores/segment_store.rb +0 -0
- data/lib/{cache → splitclient-rb/cache}/stores/split_store.rb +0 -0
- data/lib/splitclient-rb/clients/localhost_split_client.rb +3 -3
- data/lib/splitclient-rb/clients/split_client.rb +28 -25
- data/lib/{engine → splitclient-rb/engine}/api/client.rb +4 -4
- data/lib/splitclient-rb/engine/api/faraday_middleware/gzip.rb +55 -0
- data/lib/{engine → splitclient-rb/engine}/api/impressions.rb +0 -0
- data/lib/{engine → splitclient-rb/engine}/api/metrics.rb +0 -0
- data/lib/{engine → splitclient-rb/engine}/api/segments.rb +0 -0
- data/lib/{engine → splitclient-rb/engine}/api/splits.rb +0 -0
- data/lib/{engine → splitclient-rb/engine}/evaluator/splitter.rb +2 -2
- data/lib/{engine → splitclient-rb/engine}/matchers/all_keys_matcher.rb +1 -1
- data/lib/{engine → splitclient-rb/engine}/matchers/between_matcher.rb +2 -2
- data/lib/{engine → splitclient-rb/engine}/matchers/combiners.rb +0 -0
- data/lib/{engine → splitclient-rb/engine}/matchers/combining_matcher.rb +10 -8
- data/lib/{engine → splitclient-rb/engine}/matchers/contains_all_matcher.rb +1 -1
- data/lib/{engine → splitclient-rb/engine}/matchers/contains_any_matcher.rb +1 -1
- data/lib/{engine → splitclient-rb/engine}/matchers/contains_matcher.rb +1 -1
- data/lib/splitclient-rb/engine/matchers/dependency_matcher.rb +16 -0
- data/lib/{engine → splitclient-rb/engine}/matchers/ends_with_matcher.rb +1 -1
- data/lib/splitclient-rb/engine/matchers/equal_to_boolean_matcher.rb +21 -0
- data/lib/{engine → splitclient-rb/engine}/matchers/equal_to_matcher.rb +2 -2
- data/lib/{engine → splitclient-rb/engine}/matchers/equal_to_set_matcher.rb +1 -1
- data/lib/{engine → splitclient-rb/engine}/matchers/greater_than_or_equal_to_matcher.rb +2 -2
- data/lib/{engine → splitclient-rb/engine}/matchers/less_than_or_equal_to_matcher.rb +2 -2
- data/lib/splitclient-rb/engine/matchers/matches_string_matcher.rb +23 -0
- data/lib/{engine → splitclient-rb/engine}/matchers/negation_matcher.rb +2 -2
- data/lib/{engine → splitclient-rb/engine}/matchers/part_of_set_matcher.rb +1 -1
- data/lib/{engine → splitclient-rb/engine}/matchers/set_matcher.rb +0 -0
- data/lib/{engine → splitclient-rb/engine}/matchers/starts_with_matcher.rb +1 -1
- data/lib/{engine → splitclient-rb/engine}/matchers/user_defined_segment_matcher.rb +2 -2
- data/lib/{engine → splitclient-rb/engine}/matchers/whitelist_matcher.rb +2 -2
- data/lib/{engine → splitclient-rb/engine}/metrics/binary_search_latency_tracker.rb +0 -0
- data/lib/{engine → splitclient-rb/engine}/metrics/metrics.rb +0 -0
- data/lib/splitclient-rb/engine/models/label.rb +7 -0
- data/lib/{engine → splitclient-rb/engine}/models/split.rb +0 -0
- data/lib/splitclient-rb/engine/models/treatment.rb +3 -0
- data/lib/{engine → splitclient-rb/engine}/parser/condition.rb +21 -0
- data/lib/{engine/parser/split_treatment.rb → splitclient-rb/engine/parser/evaluator.rb} +29 -13
- data/lib/{engine → splitclient-rb/engine}/parser/partition.rb +0 -0
- data/lib/{engine → splitclient-rb/engine}/parser/split_adapter.rb +0 -0
- data/lib/{exceptions → splitclient-rb/exceptions}/sdk_blocker_timeout_expired_exception.rb +0 -0
- data/lib/splitclient-rb/localhost_utils.rb +1 -1
- data/lib/splitclient-rb/split_config.rb +7 -4
- data/lib/splitclient-rb/utilitites.rb +41 -0
- data/lib/splitclient-rb/version.rb +1 -1
- data/splitclient-rb.gemspec +6 -8
- metadata +76 -100
- data/lib/engine/models/label.rb +0 -13
- data/lib/engine/partitions/treatments.rb +0 -36
- data/lib/splitclient-rb_utilitites.rb +0 -39
data/lib/engine/models/label.rb
DELETED
@@ -1,13 +0,0 @@
|
|
1
|
-
module SplitIoClient
|
2
|
-
module Engine
|
3
|
-
module Models
|
4
|
-
class Label
|
5
|
-
ARCHIVED = 'archived'.freeze
|
6
|
-
NO_RULE_MATCHED = 'no rule matched'.freeze
|
7
|
-
EXCEPTION = 'exception'.freeze
|
8
|
-
KILLED = 'killed'.freeze
|
9
|
-
NOT_IN_SPLIT = 'not in split'.freeze
|
10
|
-
end
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
@@ -1,36 +0,0 @@
|
|
1
|
-
module SplitIoClient
|
2
|
-
#
|
3
|
-
# represents the possible return values for a treatment
|
4
|
-
#
|
5
|
-
class Treatments < NoMethodError
|
6
|
-
# Constants to represent treatment values
|
7
|
-
CONTROL = 'control'
|
8
|
-
OFF = 'off'
|
9
|
-
ON = 'on'
|
10
|
-
|
11
|
-
# get the actual value for the given treatment type
|
12
|
-
#
|
13
|
-
# @param type [string] treatment type
|
14
|
-
#
|
15
|
-
# @return [Treatment] treatment type value
|
16
|
-
def self.get_type(type)
|
17
|
-
case type
|
18
|
-
when 'on'
|
19
|
-
return ON
|
20
|
-
when 'off', 'control'
|
21
|
-
return CONTROL
|
22
|
-
else # default return off
|
23
|
-
return CONTROL
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
# checks if the give treatment matches control type
|
28
|
-
#
|
29
|
-
# @param type [string] treatment type
|
30
|
-
#
|
31
|
-
# @return [boolean] true if matches, false otherwise
|
32
|
-
def self.is_control?(treatment)
|
33
|
-
get_type(treatment).equal?(CONTROL) ? true : false
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
@@ -1,39 +0,0 @@
|
|
1
|
-
module Utilities
|
2
|
-
extend self
|
3
|
-
|
4
|
-
# Convert String with Time info to its epoch FixNum previously setting to zero the seconds
|
5
|
-
def to_epoch(value)
|
6
|
-
parsed = Time.parse(value)
|
7
|
-
zeroed = Time.new(parsed.year, parsed.month, parsed.day, parsed.hour, parsed.min, 0, 0)
|
8
|
-
|
9
|
-
zeroed.to_i
|
10
|
-
end
|
11
|
-
|
12
|
-
def to_epoch_milis(value)
|
13
|
-
to_epoch(value) * 1000
|
14
|
-
end
|
15
|
-
|
16
|
-
def to_milis_zero_out_from_seconds(value)
|
17
|
-
parsed_value = Time.strptime(value.to_s, '%s').utc
|
18
|
-
zeroed = Time.new(parsed_value.year, parsed_value.month, parsed_value.day, parsed_value.hour, parsed_value.min, 0, 0)
|
19
|
-
|
20
|
-
zeroed.to_i * 1000
|
21
|
-
rescue
|
22
|
-
return :non_valid_date_info
|
23
|
-
end
|
24
|
-
|
25
|
-
def to_milis_zero_out_from_hour(value)
|
26
|
-
parsed_value = Time.strptime(value.to_s, '%s').utc
|
27
|
-
zeroed = Time.new(parsed_value.year, parsed_value.month, parsed_value.day, 0, 0, 0, 0)
|
28
|
-
|
29
|
-
zeroed.to_i * 1000
|
30
|
-
rescue StandardError
|
31
|
-
return :non_valid_date_info
|
32
|
-
end
|
33
|
-
|
34
|
-
def randomize_interval(interval)
|
35
|
-
random_factor = Random.new.rand(50..100) / 100.0
|
36
|
-
|
37
|
-
interval * random_factor
|
38
|
-
end
|
39
|
-
end
|