File Coverage

blib/lib/WebService/GrowthBook/FeatureRule.pm
Criterion Covered Total %
statement 62 62 100.0
branch n/a
condition n/a
subroutine 28 28 100.0
pod 0 23 0.0
total 90 113 79.6


line stmt bran cond sub pod time code
1             package WebService::GrowthBook::FeatureRule;
2 7     7   567401 use strict;
  7         13  
  7         353  
3 7     7   44 use warnings;
  7         16  
  7         480  
4 7     7   996 no indirect;
  7         2666  
  7         45  
5 7     7   4327 use WebService::GrowthBook::Util qw(adjust_args_camel_to_snake);
  7         27  
  7         828  
6 7     7   1361 use Object::Pad;
  7         22752  
  7         57  
7              
8             our $VERSION = '0.003'; ## VERSION
9              
10             # TODO check every class's feild if they are camelCase or snake_case
11             class WebService::GrowthBook::FeatureRule {
12             field $id :param :reader //= undef;
13 20     20 0 36 field $key :param :reader //= '';
  20     12 0 280  
  12         23  
14 12         56 field $variations :param :reader //= undef;
15 25     25 0 44 field $weights :param :reader //= undef;
  25         69  
16 12     12 0 29 field $coverage :param :reader //= undef;
  12         47  
17 28     28 0 44 field $condition :param :reader //= undef;
  28         86  
18 50     50 0 97 field $namespace :param :reader //= undef;
  50         156  
19 12     12 0 17 field $force :param :reader //= undef;
  12         35  
20 41     41 0 65 field $hash_attribute :param :reader //= 'id';
  41     28 0 1328  
  28         41  
21 28         85 field $fallback_attribute :param :reader //= undef;
22 29     29 0 52 field $hash_version :param :reader //= 1;
  29     28 0 98  
  28         40  
23 28         126 field $range :param :reader //= undef;
24 16     16 0 32 field $ranges :param :reader //= undef;
  16         47  
25 12     12 0 20 field $meta :param :reader //= undef;
  12         44  
26 12     12 0 21 field $filters :param :reader //= undef;
  12         38  
27 44     44 0 73 field $seed :param :reader //= undef;
  44         115  
28 28     28 0 52 field $name :param :reader //= undef;
  28         115  
29 12     12 0 18 field $phase :param :reader //= undef;
  12         38  
30 12     12 0 19 field $disable_sticky_bucketing :param :reader //= undef;
  12         36  
31 12     12 0 19 field $bucket_version :param :reader //= 0;
  12     12 0 20  
  12         31  
32 12     12 0 31 field $min_bucket_version :param :reader //= 0;
  12         25  
33 12         97 field $parent_conditions :param :reader //= undef;
34              
35 37     37 0 60 sub BUILDARGS {
  37         110  
36 45     45 0 1394 my ($class, %args) = @_;
37 45         128 adjust_args_camel_to_snake(\%args);
38 45         539 return %args;
39             }
40              
41             ADJUST {
42             if($disable_sticky_bucketing){
43             $fallback_attribute = undef;
44             }
45              
46             }
47              
48             method to_hash {
49             return {
50             id => $id,
51             key => $key,
52             variations => $variations,
53             weights => $weights,
54             coverage => $coverage,
55             condition => $condition,
56             namespace => $namespace,
57             force => $force,
58             hash_attribute => $hash_attribute,
59             fallback_attribute => $fallback_attribute,
60             hash_version => $hash_version,
61             range => $range,
62             ranges => $ranges,
63             meta => $meta,
64             filters => $filters,
65             seed => $seed,
66             name => $name,
67             phase => $phase,
68             disable_sticky_bucketing => $disable_sticky_bucketing,
69             bucket_version => $bucket_version,
70             min_bucket_version => $min_bucket_version,
71             parent_conditions => $parent_conditions,
72             };
73             }
74             }