From 1a26185eb1fa90a1aea626c779dfe65c465a2873 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 24 Sep 2024 18:09:33 +0000 Subject: [PATCH] chore: Removed old docs for . --- edoc-info | 4 - erlang.png | Bin 2109 -> 0 bytes index.html | 17 -- ldclient.html | 250 ----------------------- ldclient_config.html | 158 -------------- ldclient_context.html | 420 -------------------------------------- ldclient_flagbuilder.html | 382 ---------------------------------- ldclient_testdata.html | 152 -------------- ldclient_user.html | 115 ----------- modules-frame.html | 17 -- overview-summary.html | 18 -- overview.edoc | 4 - stylesheet.css | 55 ----- 13 files changed, 1592 deletions(-) delete mode 100644 edoc-info delete mode 100644 erlang.png delete mode 100644 index.html delete mode 100644 ldclient.html delete mode 100644 ldclient_config.html delete mode 100644 ldclient_context.html delete mode 100644 ldclient_flagbuilder.html delete mode 100644 ldclient_testdata.html delete mode 100644 ldclient_user.html delete mode 100644 modules-frame.html delete mode 100644 overview-summary.html delete mode 100644 overview.edoc delete mode 100644 stylesheet.css diff --git a/edoc-info b/edoc-info deleted file mode 100644 index d6de0d8..0000000 --- a/edoc-info +++ /dev/null @@ -1,4 +0,0 @@ -%% encoding: UTF-8 -{application,ldclient}. -{modules,[ldclient,ldclient_config,ldclient_context,ldclient_flagbuilder, - ldclient_testdata,ldclient_user]}. diff --git a/erlang.png b/erlang.png deleted file mode 100644 index 987a618e2403af895bfaf8c2f929e3a4f3746659..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2109 zcmV-D2*US?P)rez_nr%N ze)-p~%6|a|LA_bA=l=$|3jjqS$tjbGG?@TN0w$Azq7Z{YeQxKcpLO55vno1^u23DP&V=i9-KAAsU*ECy^#OtaDC!lVSo!+|-%T+LhTHP^Oqwx8m)b4r3V28JmV&6M#iG)&0;P`j>XGfomEIEK6wPkhI{{K?3#uAGq$!`N_F)TNX zAvuspF?^;c9h%CPWyTDc_03%r4N8+Yzzo_VSfa!zo_7F6D?<+-+KkHwXiWQR=Mr(9|K@{{xEjfDvAbS9uNCP&{)NNCoC?XA$aRe>R8-> z5N<#S_)$d|EYpJfPC?{`$Y~f4yjH&dxHXIGG8wiaLBD6usC87cg+dd&3WLJd4_TcmEeAOz8R>ikgW(9821 z{34Se09Y?KoG<_Y;DDSoyTk>fUN0YO5)3^Za{&s1JbidC9}56{px+f|K_0;YuL5h} z_9J3y%7ucwM)E4K#=Cn7tCjjRkKjnQuiFcM6{17Jt#5F}7z8~RYqW24xV?kAU6xQN zh+h4|SmO1;TdsVOaOeD*kKf}6I7=6ZNig_rtqV?Ov1HrU(P%Hi#6npSe>%qGaNK1w zW$v+r`r0>#p~AN^8b)#7Yesu(ys(>3SCYb4sF9%A9=kMHrLmzk}E&WPG~Jx z9!r{qo5M184t;<7I`t1AsNjv912EeKkHKtOSl%wbcjFh7L6|G?Q+{?radOvuEW$>1 zoc+c&F+u$^0f}1_2dN&lS#I#p3e&+|YGHlMzRC)%&8TnGt+p*;Oz z`0=D=n|qcN+f@07;QjB@ktLhZ`+qz;(xYDli^Pex&&wwU2V4N-a3b@veqHg2cvCRb zoi=ZerLk!4t5!s3?|ARuWx_4-VCgl|TY2qa@$Dr~5QdiT8?$oPpZhaF5UOZ&x=+I9 zt((`6wBPM((BS{;2lmSB;o%z{>=mg*1k2oLjI=+zcf5$4BIZmkOrjrE z*VY(<@FO?zBVDc+Q~Lh;LnlYodZ$J3tmWJBN4j~wVOWelzexhft2nY6A3PZAcm!q} z931CL#1Ki6;HM{agTbKF>3(R-yuF1&Apn3Nh@PGvv)K$mkVqu*^z@vaFgQ3kFfg!s z^=f26@{Ny=_w@7x1qHF$bEk5X$)wR}0s{l>V!TCGM=R5Ei1Ll8u7Z*N0G1CPgB zyLPP|0H{-FRUDJv`Ea=9fX zC63D4+FBlumz$eAJv~j5q*|@^_xC?_>XiL0K@bH61$;i=&CLx(QGb8`8#iu{BnjJW zHUvSgUcK7T&~W(h;koN8t5vB~Ha0dgnane1&RA#87dVcaOpEMM)6>)E&YiPZEXBpe zlarHk89g;+G#U#E3hL_W002xT6UTApOeR%UR_5g7q^73!_4PG2Hi|@|ii(Pfi3vIY z0ES^?Mx1IOizO0?e0_a!9483k`PtCk-rm~Unwpw=?b@~O?(WdgP^bMMAYlLg{dIM9 zOy}OcxVTs%k(@q#n$PF+`TXkYYA%;cr_*5ofWcr$PEL-Ai772Db)3`L*|~G)&eqn} zq@*OrbXim`UAiO`3XdK=%H#1=D%HHV>FMbqAtCAM=@!e}C6Cc))ai5zg~H3rYjkup zD=RBMKR+`wv!kN}1^{3fR#a3}RaLcP#}20|H!^bT)~%G3lp{xu!0_{Wr2hW?>({UQ z`T1F`)|D$)*3{IP&1UDKhLn_)sMYHH{QRkzV=$M?#W2idGFh!wf*`b7ZGC-xVPT=c zV1Vs&!otFoN~M>VQ$G_G6}5No-m0pqwzjr;?W@INu~;m#k*%qz(P%VUt#;3zJ^lUt zU0q%G?%kVzvF7cqQmLw|tA~e&XIqun*x2Ug=9-!s48ty7ycil9Di(|7aybkD7#y?%lgQ z9`Ewy%eDpgxlvJ3Cr+GTFc>(F+cg;(8TPc>y?b|jeEgLwR}LLIBoqp1+1c4_HrvO? z$J5g@G&D3gIC$2ITrQ7`iwh4AfA;K|OePZu1oriTVVG1Zl}e@S)~)mK@UU1cI-Ty| z!Gj8gg2UmUD2ibif*{e+(R4bU#bU|j@{Joe^7(uSf+8X!q*7@_M1;L=AqbM3oXp{H nT3T9A6wS=c+_!HZolgHhw9g$%O4Wbp00000NkvXXu0mjf3HKBY diff --git a/index.html b/index.html deleted file mode 100644 index a371530..0000000 --- a/index.html +++ /dev/null @@ -1,17 +0,0 @@ - - - -The ldclient application - - - - - - -<h2>This page uses frames</h2> -<p>Your browser does not accept frames. -<br>You should go to the <a href="overview-summary.html">non-frame version</a> instead. -</p> - - - \ No newline at end of file diff --git a/ldclient.html b/ldclient.html deleted file mode 100644 index 3dc979a..0000000 --- a/ldclient.html +++ /dev/null @@ -1,250 +0,0 @@ - - - - -Module ldclient - - - - -
- -

Module ldclient

-ldclient module. - - -

Description

ldclient module

- -

Acts as an interface to most common SDK functions: starting and stopping -client instances, and evaluating feature flags for contexts.

- - Most use cases only need a single client instance for the lifetime of - their application. Consider using multiple instances only if you need to - simultaneously access more than one environment. Do not start an instance - every time you need to make a variation or other SDK call. -

Function Index

- - - - - - - - - - - - - - - - - - - - - -
all_flags_state/1Evaluate all flags for a given context and return their values.
all_flags_state/2Evaluate all flags for a given context and given client instance.
all_flags_state/3Returns an object that encapsulates the state of all feature flags for a given context.
identify/1Identify reports details about a context.
identify/2Identify reports details about a context.
initialized/1Returns whether the LaunchDarkly client has initialized.
is_offline/1Returns whether the LaunchDarkly client is in offline mode.
start_instance/1Start client with default options.
start_instance/2Start client with custom name or options.
start_instance/3Start client with custom name and options.
stop_all_instances/0Stop all client instances.
stop_instance/0Stop client instance.
stop_instance/1Stop client with the custom name.
track/3Track reports that a context has performed an event.
track/4Track reports that a context has performed an event.
track_metric/4Reports that a context has performed an event, and associates it with a numeric value.
track_metric/5Reports that a context has performed an event, and associates it with a numeric value.
variation/3Evaluate given flag key for given context.
variation/4Evaluate given flag key for given context and given client instance.
variation_detail/3Evaluate given flag key for given context.
variation_detail/4Evaluate given flag key for given context and given client instance.
- -

Function Details

- -

all_flags_state/1

-

Evaluate all flags for a given context and return their values

- - Evaluates all existing flags, but does not create any events as a side - effect of the evaluation. It returns a map of flag keys to evaluated values.

- -

all_flags_state/2

-

Evaluate all flags for a given context and given client instance

- - Evaluates all existing flags, but does not create any events as a side - effect of the evaluation. It returns a map of flag keys to evaluated values.

- -

all_flags_state/3

-

Returns an object that encapsulates the state of all feature flags for a given context.

- -

This includes the flag values, and also metadata that can be used on the front end. -The most common use case for this method is to bootstrap a set of client-side feature flags from a -back-end service.

- - If you are not using this to boostrap a client, then you likely want all_flags_state/1 or all_flags_state/2.

- -

identify/1

-
-

identify(Context::ldclient_user:user() | ldclient_context:context()) -> ok

-

-

Identify reports details about a context

- - This function uses the default client instance.

- -

identify/2

-
-

identify(Context::ldclient_user:user() | ldclient_context:context(), Tag::atom()) -> ok

-

-

Identify reports details about a context

- - This is useful to report context to a specific client instance.

- -

initialized/1

-
-

initialized(Tag::atom()) -> boolean()

-

-

Returns whether the LaunchDarkly client has initialized.

- -

If this value is true, it means the client has succeeded at some point in connecting to LaunchDarkly and -has received feature flag data. It could still have encountered a connection problem after that point, so -this does not guarantee that the flags are up to date. Alternatively, it could also mean that the client -is in offline mode.

- - If this value is false, it means the client has not yet connected to LaunchDarkly, or has permanently - failed. In this state, feature flag evaluations will always return default values.

- -

is_offline/1

-
-

is_offline(Tag::atom()) -> boolean()

-

-

Returns whether the LaunchDarkly client is in offline mode.

- - In some situations, you might want to stop making remote calls to LaunchDarkly and - fall back to default values for your feature flags, this tells you whether only default - values will be returned.

- -

start_instance/1

-
-

start_instance(SdkKey::string()) -> ok | {error, atom(), term()}

-

-

Start client with default options

- - The SDK key is required to connect. Default streamer URL, storage backend - and instance name default will be used.

- -

start_instance/2

-
-

start_instance(SdkKey::string(), TagOrOptions::atom() | map()) -> ok | {error, atom(), term()}

-

-

Start client with custom name or options

- - When TagOrOptions is an atom, the instance is started with that name. When - it's a map, it can be used to start with custom options.

- -

start_instance/3

-
-

start_instance(SdkKey::string(), Tag::atom(), Options::map()) -> ok | {error, atom(), term()}

-

-

Start client with custom name and options

- - Specify both custom client name and options when starting the client.

- -

stop_all_instances/0

-
-

stop_all_instances() -> ok

-

-

Stop all client instances -

- -

stop_instance/0

-
-

stop_instance() -> ok | {error, not_found, term()}

-

-

Stop client instance

- - Stops the default client instance.

- -

stop_instance/1

-
-

stop_instance(Tag::atom()) -> ok | {error, not_found, term()}

-

-

Stop client with the custom name

- - This is useful if a client instance was started with a custom name.

- -

track/3

-
-

track(Key::binary(), Context::ldclient_user:user() | ldclient_context:context(), Data::ldclient_event:event_data()) -> ok

-

-

Track reports that a context has performed an event

- - Custom data can be attached to the event.

- -

track/4

-
-

track(Key::binary(), Context::ldclient_user:user() | ldclient_context:context(), Data::ldclient_event:event_data(), Tag::atom()) -> ok

-

-

Track reports that a context has performed an event

- - This is useful for specifying a specific client instance.

- -

track_metric/4

-
-

track_metric(Key::binary(), Context::ldclient_user:user() | ldclient_context:context(), Data::ldclient_event:event_data(), Metric::number()) -> ok

-

-

Reports that a context has performed an event, and associates it with a numeric value.

- -

This value is used by the LaunchDarkly experimentation feature in numeric custom metrics, and will also -be returned as part of the custom event for Data Export.

- - Custom data can also be attached to the event.

- -

track_metric/5

-
-

track_metric(Key::binary(), Context::ldclient_user:user() | ldclient_context:context(), Data::ldclient_event:event_data(), Metric::number(), Tag::atom()) -> ok

-

-

Reports that a context has performed an event, and associates it with a numeric value.

- -

This value is used by the LaunchDarkly experimentation feature in numeric custom metrics, and will also -be returned as part of the custom event for Data Export.

- - Custom data can also be attached to the event.

- -

variation/3

-
-

variation(FlagKey::binary(), Context::ldclient_user:user() | ldclient_context:context(), DefaultValue::ldclient_eval:result_value()) -> ldclient_eval:result_value()

-

-

Evaluate given flag key for given context

- - Evaluates the flag and returns the resulting variation value. The default - value will be returned in case of any errors.

- -

variation/4

-
-

variation(FlagKey::binary(), Context::ldclient_user:user() | ldclient_context:context(), DefaultValue::ldclient_eval:result_value(), Tag::atom()) -> ldclient_eval:result_value()

-

-

Evaluate given flag key for given context and given client instance

- - Evaluates the flag and returns the resulting variation value. The default - value will be returned in case of any errors.

- -

variation_detail/3

-
-

variation_detail(FlagKey::binary(), Context::ldclient_user:user() | ldclient_context:context(), DefaultValue::ldclient_eval:result_value()) -> ldclient_eval:detail()

-

-

Evaluate given flag key for given context

- - Evaluates the flag and returns the result detail containing the variation - index, value, and reason why the specific result was chosen. The default - value will be returned in case of any errors.

- -

variation_detail/4

-
-

variation_detail(FlagKey::binary(), Context::ldclient_user:user() | ldclient_context:context(), DefaultValue::ldclient_eval:result_value(), Tag::atom()) -> ldclient_eval:detail()

-

-

Evaluate given flag key for given context and given client instance

- - Evaluates the flag and returns the result detail containing the variation - index, value, and reason why the specific result was chosen. The default - value will be returned in case of any errors.

-
- - -

Generated by EDoc

- - diff --git a/ldclient_config.html b/ldclient_config.html deleted file mode 100644 index c8f1638..0000000 --- a/ldclient_config.html +++ /dev/null @@ -1,158 +0,0 @@ - - - - -Module ldclient_config - - - - -
- -

Module ldclient_config

-ldclient_config module. - - -

Description

ldclient_config module

- - Acts as a storage interface for SDK client instance settings. -

Data Types

- -

app_info()

-

app_info() = #{id => binary(), version => binary()}

- - -

http_options()

-

http_options() = #{tls_options => [ssl:tls_client_option()] | undefined, connect_timeout => pos_integer() | undefined, custom_headers => [{Key::string(), Value::string()}] | undefined}

- - -

instance()

-

instance() = #{sdk_key => string(), base_uri => string(), events_uri => string(), stream_uri => string(), feature_store => atom(), events_capacity => pos_integer(), events_flush_interval => pos_integer(), events_dispatcher => atom(), context_keys_capacity => pos_integer(), private_attributes => private_attributes(), stream => boolean(), polling_interval => pos_integer(), polling_update_requestor => atom(), offline => boolean(), redis_host => string(), redis_port => pos_integer(), redis_database => integer(), redis_password => string(), redis_prefix => string(), redis_tls => [ssl:tls_option()] | undefined, cache_ttl => integer(), use_ldd => boolean(), send_events => boolean(), file_datasource => boolean(), file_paths => [string() | binary()], file_auto_update => boolean(), file_poll_interval => pos_integer(), file_allow_duplicate_keys => boolean(), testdata_tag => atom(), datasource => poll | stream | file | testdata | undefined, http_options => http_options(), stream_initial_retry_delay_ms => non_neg_integer(), application => app_info()}

- - -

private_attributes()

-

private_attributes() = all | [ldclient_attribute_reference:attribute_reference()]

- - -

Function Index

- - - - - - - - - - - - - -
get_event_schema/0
get_registered_tags/0Get all registered tags.
get_user_agent/0
get_value/2Gets application environment variable value.
get_version/0
init/0Initialize settings environment map.
register/2Register settings for a new client instance.
tls_basic_certifi_options/0Provide basic TLS options using the bundled certifi store.
tls_basic_linux_options/0Provide basic options for using TLS with the default linux store.
tls_basic_options/0Provide basic options for using TLS.
tls_ca_certfile_options/1Provide basic options for using TLS with the given store.
unregister/1Unregister settings for a client instance.
with_tls_revocation/1Append the specified TLS options with certificate revocation.
- -

Function Details

- -

get_event_schema/0

-
-

get_event_schema() -> string()

-

-
- -

get_registered_tags/0

-
-

get_registered_tags() -> [atom()]

-

-

Get all registered tags -

- -

get_user_agent/0

-
-

get_user_agent() -> string()

-

-
- -

get_value/2

-
-

get_value(Tag::atom(), Key::atom()) -> undefined | term()

-

-

Gets application environment variable value

- - This is a convenience function to retrieve application environment variables - in one place. Tag is the instance tag. Key is the key of the - configuration option.

- -

get_version/0

-
-

get_version() -> string()

-

-
- -

init/0

-
-

init() -> ok

-

-

Initialize settings environment map

- - Initializes an empty map for instance settings in application environment.

- -

register/2

-
-

register(Tag::atom(), Settings::instance()) -> ok

-

-

Register settings for a new client instance -

- -

tls_basic_certifi_options/0

-
-

tls_basic_certifi_options() -> [ssl:tls_client_option()]

-

-

Provide basic TLS options using the bundled certifi store. -

- -

tls_basic_linux_options/0

-
-

tls_basic_linux_options() -> [ssl:tls_client_option()]

-

-

Provide basic options for using TLS with the default linux store. - This will try to use the a certificate store located at - /etc/ssl/certs/ca-certificates.crt. -

- -

tls_basic_options/0

-
-

tls_basic_options() -> [ssl:tls_client_option()]

-

-

Provide basic options for using TLS. - This will try to use the a certificate store located at - /etc/ssl/certs/ca-certificates.crt, but if that file - does not exist, then it will use the bundled certifi store. -

- -

tls_ca_certfile_options/1

-
-

tls_ca_certfile_options(CaStorePath::string()) -> [ssl:tls_client_option()]

-

-

Provide basic options for using TLS with the given store. -

- -

unregister/1

-
-

unregister(Tag::atom()) -> ok

-

-

Unregister settings for a client instance -

- -

with_tls_revocation/1

-
-

with_tls_revocation(Options::[ssl:tls_client_option()]) -> [ssl:tls_client_option()]

-

-

Append the specified TLS options with certificate revocation. - The crl_cache does not actually cache at this time, so this will - result in an additional request per TLS handshake. -

-
- - -

Generated by EDoc

- - diff --git a/ldclient_context.html b/ldclient_context.html deleted file mode 100644 index 331317b..0000000 --- a/ldclient_context.html +++ /dev/null @@ -1,420 +0,0 @@ - - - - -Module ldclient_context - - - - -
- -

Module ldclient_context

-Context data type -When constructing a context by hand, not using new/1, new/2 or new_from_map, -then you must include a kind attribute. - - -

Description

Context data type -When constructing a context by hand, not using new/1, new/2 or new_from_map, -then you must include a kind attribute.

- - The kind attribute is used to differentiate between a map representing - a ldclient_user and one representing a ldclient_context. -

Data Types

- -

attribute_key()

-

attribute_key() = binary() | key | kind | anonymous | private_attributes | name

-

Attribute keys must be binary() strings. They should not be empty, and they must not be <<"_meta">>.

- -

attribute_map()

-

attribute_map() = #{attribute_key() => attribute_value()}

- - -

attribute_value()

-

attribute_value() = binary() | integer() | float() | boolean() | attribute_map() | [attribute_value()]

-

Attribute values should all be data types which are compatible with JSON and nested JSON collections. - The leaf nodes of these values are what are ultimately used when evaluating flags which are dependent on attributes.

- -

context()

-

context() = single_context() | multi_context()

- - -

context_part()

-

context_part() = #{key := key(), name := binary(), private_attributes => [binary()], anonymous => boolean(), attributes => attribute_map()}

-

The content of a multi context. Should be the same as a single_context/0 aside from missing 'kind'. - A multi context is keyed by the 'kind'.

- -

key()

-

key() = binary()

-

Keys may be any non-empty binary() string. <<>> and <<"">> are not valid. - Keys must be binaries, and should match those in LaunchDarkly exactly. - No casing conversions will be applied <<"my_attribute">> will only match <<"my_attribute">>, it would not match - <<"myAttribute">>.

- -

kind_value()

-

kind_value() = binary()

-

May only contain ASCII letters, numbers, ., _ or -. - <<"my_kind.0-1">> would be valid. - <<"my:kind.{0}">> would not, it contains ':' and '{}' which are not allowed. - Kinds should be binaries, and should match the context kinds exactly. - No casing conversions will be applied <<"my_kind">> will only match <<"my_kind">>, it would not match - <<"myKind">>.

- -

multi_context()

-

multi_context() = #{kind := kind_value(), kind_value() := context_part()}

-

A context which represents multiple kinds. Each kind having its own key and attributes.

- -

A multi-context must contain kind => <<"multi">> at the root.

- -
  MyMultiContext = #{
-    %% Multi-contexts must be of kind <<"multi">>.
-    kind => <<"multi">>,
-    %% The context is namespaced by its kind. This is an 'org' kind context.
-    <<"org">> => #{
-      // Each component context has its own key and attributes.
-      key => <<"my-org-key">>,
-      attributes => #{
-          <<"someAttribute">> => <<"my-attribute-value">>,
-      }
-    },
-    <<"user">> => #{
-      key => <<"my-user-key">>,
-      %% Each component context has its own meta attributes. This will only apply the this
-      %% 'user' context.
-      private_attributes => [<<"firstName">>]
-      attributes => #{
-          <<"firstName">> => <<"Bob">>,
-          <<"lastName">> => <<"Bobberson">>,
-      }
-    }
-  }.
- - The above multi-context contains both an 'org' and a 'user'. Each with their own key, - attributes, and _meta attributes.

- -

single_context()

-

single_context() = #{key := key(), name => binary(), kind := kind_value(), private_attributes => [binary()], anonymous => boolean(), attributes => attribute_map()}

-

A context which represents a single kind.

- -

For a single kind context the 'kind' may not be <<"multi">>.

- -
  MyOrgContext = #{
-      kind => <<"org">>,
-      key => <<"my-org-key">>,
-      attributes => #{
-        <<"someAttribute">> => <<"my-attribute-value">>
-      }
-  }.
- - The above context would be a single kind context representing an organization. It has a key - for that organization, and a single attribute 'someAttribute'.

- -

Function Index

- - - - - - - - - - - - - - - -
get/3Get an attribute value from the specified context kind by the specified attribute reference.
get_canonical_key/1A string that describes the entire Context based on Kind and Key values.
get_key/2Get the key for the specified context kind.
get_kinds/1Get all the kinds in the specified context.
is_valid/2Verify a context is valid.
new/1Create a new 'user' context with the specified key.
new/2Create a new context with the specified key and kind.
new_from_json/1Parse a map created from the JSON representation of a context into an ldclient_context:context().
new_from_map/1Create a context from a map.
new_from_user/1Create a context from an ldclient_user:user().
new_multi_from/1Create a multi context from several multiple single kind contexts.
set/3Set an attribute value with the specified key in a single kind context.
set/4Set an attribute value in the specified context kind with the specified key.
set_private_attributes/2Set private attributes for a single kind context.
set_private_attributes/3Set private attributes for the specified context kind.
- -

Function Details

- -

get/3

-
-

get(ContextKind::kind_value(), AttributeReference::ldclient_attribute_reference:attribute_reference() | binary(), Context::context()) -> attribute_value() | null

-

-

Get an attribute value from the specified context kind by the specified attribute reference

- -

If the context is a single kind context, and the ContextKind matches the context's kind, and the context contains -the specified attribute, then that value will be provided.

- -

If the context is a multi-context, and it contains the specified context kind, and that context kind contains -the specified attribute, then that value will be provided.

- - If the attribute value does not exist, then the null atom will be returned.

- -

get_canonical_key/1

-
-

get_canonical_key(Context::context()) -> binary()

-

-

A string that describes the entire Context based on Kind and Key values.

- - This value is used whenever LaunchDarkly needs a string identifier based on all of the Kind and - Key values in the context; the SDK may use this for caching previously seen contexts, for instance.

- -

get_key/2

-
-

get_key(ContextKind::kind_value(), Context::context()) -> binary() | null

-

-

Get the key for the specified context kind.

- -

If the context is of a single kind, and it does not match the specified context kind, then null will be returned.

- - If the context is a multi-context, and does not contain the specified kind, then null will be returned.

- -

get_kinds/1

-
-

get_kinds(Context::context()) -> [binary()]

-

-

Get all the kinds in the specified context. Can be a single or multi context.

- - The kind in the context may be an atom or a binary, but this will always return them as binaries for use - in comparison against strings from LaunchDarkly.

- -

is_valid/2

-
-

is_valid(Context::context(), AllowEmptyKey::boolean()) -> boolean()

-

-

Verify a context is valid.

- -

This will ensure that the context, or contexts of a multi context, have:

- -

1.) Valid keys. Key must exist, must be a binary, and cannot be empty. - An exception is made for contexts created from an ldclient_user:user().

- -

2.) Valid kind. Kind must exist, must be a binary, and must be composed of ASCII letters, numbers, as well as - '-', '.', and '_'. A context created from a ldclient_user:user() will have a <<"user">> kind.

- -

3.) All parts of a multi context meet #1 and #2.

- -

Other aspects of the context may be invalid, and evaluation will proceed, but those invalid -parts will not impact the evaluation. For example an attribute with an atom() key will not successfully targeted -by rules. Some of these issues can be avoided by using the new_from_map function which will convert keys.

- - Evaluations which are done against an invalid context will return default values with a reason - of user_not_specified.

- -

new/1

-
-

new(Key::binary()) -> single_context()

-

-

Create a new 'user' context with the specified key. -

- -

new/2

-
-

new(Key::binary(), Kind::kind_value()) -> single_context()

-

-

Create a new context with the specified key and kind. -

- -

new_from_json/1

-
-

new_from_json(JsonMap::map()) -> context() | undefined

-

-

Parse a map created from the JSON representation of a context into an ldclient_context:context().

- - If the map cannot be parsed into a context, then undefined will be returned.

- -

new_from_map/1

-
-

new_from_map(MapContext::map()) -> Context::context()

-

-

Create a context from a map.

- -

Using this method will help to ensure that all your context keys and values are of supported types. For instance -converting all atom() keys into binary() (both for attribute keys and kinds). This can be useful for contexts -from a serialized source.

- -

If the map contains a 'kind' attribute, then the resulting context will be of that kind. - If the map contains a 'kind' attribute, with the value of <<"multi">>, then a multi context will be created, -and each top level field in the map will be a component of that context.

- -

If the input map contains invalid data, such as bad kinds, then the context will still be created. -If the context contains invalid data, then evaluations will return default values with a reason of -'user_not_specified'.

- - The same key should not be provided in the map as both an atom and a binary. For instance: -
  #{key => <<"the-key">>, <<"key">> => <<"the-key">>}
- - Create a context without a kind specified: -
  ldclient_context:new_from_map(#{
-      key => <<"my-key">>,
-      attributes => #{
-          nested => #{
-              deeper => #{
-                  value => <<"my-value">>
-              }
-          }
-      }
-  }).
-  Produces the context
-  #{
-      key := <<"my-key">>,
-      kind := <<"user">>,
-      attributes := #{
-          <<"nested">> := #{
-              <<"deeper">> := #{
-                  <<"value">> := <<"my-value">>
-              }
-          }
-      }
-  }.
-  No kind was included, so it was defaulted to a <<"user">> kind.
-  Notice that all the keys, and nested keys, within attributes have been converted to binaries.
- - Creating a context with a specified kind. -
     ldclient_context:new_from_map(#{<<"key">> => <<"my-key">>, <<"kind">> => <<"the-kind">>}).
-  Produces the context
-  {key := <<"my-key">>, kind := <<"the-kind">>}.
-  Notice here how the built-in keys have been corrected to atoms.
- -
  ldclient_context:new_from_map(#{
-      kind => <<"multi">>,
-      <<"meal">> => #{
-          key => <<"user-key">>,
-          <<"name">> => <<"the-name">>, %% Key that will become an atom.
-          attributes => #{
-              potato => #{ %% Key that will become a binary.
-                  <<"bacon">> => true,
-                  <<"cheese">> => true
-              }
-          }
-      },
-      <<"location">> => #{
-          key => <<"location-key">>
-      }
-  }).
-  Produces the context
-  #{
-     kind := <<"multi">>,
-     <<"meal">> := #{
-         key := <<"user-key">>,
-         name := <<"the-name">>,
-         attributes := #{
-             <<"potato">> := #{
-                 <<"bacon">> := true,
-                 <<"cheese">> := true
-             }
-         }
-     },
-     <<"location">> := #{
-         key := <<"location-key">>
-     }
-  }

- -

new_from_user/1

-
-

new_from_user(User::ldclient_user:user()) -> context()

-

-

Create a context from an ldclient_user:user().

- -

This function is primarily intended for use by the SDK. It will be used when calling variation methods with - ldclient_user:user(). An ldclient_user:user() is detected by the lack of kind.

- -

Creating contexts directly, using ldclient_context:new/1, ldclient_context:new/2, - ldclient_context:new_from_map/1, or creating context(), will avoid this conversion.

- - The user needs to be a valid ldclient_user:user(). A map can be converted to a user using - ldclient_user:new_from_map/1. If the user does not have at least a key, then an empty map - is returned and it will not validate. An invalid context will result in default values from variation methods.

- -

new_multi_from/1

-
-

new_multi_from(Contexts::[single_context()]) -> multi_context() | single_context()

-

-

Create a multi context from several multiple single kind contexts.

- -
  MyMultiContext = ldclient_context:new_multi_from([
-      ldclient_context:new(<<"user-key">>), %% This defaults to a <<"user">> kind.
-      ldclient_context:new(<<"org-key">>, <<"org">>)]).
- -

Each of the contexts being combined should have unique keys. If more than one context of the same kind is added, -then only a single context of the duplicated type will remain.

- - If new_from_multi is called with a list containing a single context, then the single context will be returned. - A multi context should contain more than one kind.

- -

set/3

-
-

set(AttributeKey::attribute_key(), AttributeValue::attribute_value(), Context::single_context()) -> single_context()

-

-

Set an attribute value with the specified key in a single kind context.

- -

This method cannot be used to set attributes in nested maps.

- -

Any built-in attributes private_attributes, anonymous, key, kind, will be set at the top level of the context. -Any attributes that are not built-ins will be set in an 'attributes' map.

- - Attempting to set 'attributes' will result in an attribute named <<"attributes">>.

- -

set/4

-
-

set(ContextKind::kind_value(), AttributeKey::attribute_key(), AttributeValue::attribute_value(), Context::context()) -> multi_context()

-

-

Set an attribute value in the specified context kind with the specified key.

- -

If the context is a single kind, then it must be of the kind specified.

- -

If it is a multi context, then specified kind must exist in it.

- - This method cannot be used to set attributes in nested maps.

- -

set_private_attributes/2

-
-

set_private_attributes(AttributeValues::[binary()], Context::single_context()) -> single_context()

-

-

Set private attributes for a single kind context.

- -

Designate any number of Context attributes, or properties within them, as private: that is, -their values will not be sent to LaunchDarkly.

- -

Each parameter can be a simple attribute name, such as "email". Or, if the first character is -a slash, the parameter is interpreted as a slash-delimited path to a property within a JSON -object, where the first path component is a Context attribute name and each following -component is a nested property name: for example, suppose the attribute "address" had the -following value

- -
  	#{<<"street">>: #{<<"line1">>: <<"abc">>, <<"line2">>: <<"def">>}}
- -

Using ["/address/street/line1"] in this case would cause the "line1" property to be marked as -private. This syntax deliberately resembles JSON Pointer, but other JSON Pointer features -such as array indexing are not supported for Private.

- -

This action only affects analytics events that involve this particular Context. To mark some -(or all) Context attributes as private for all users, use the overall configuration for the -SDK.

- -

The attributes "kind" and "key", and the meta attributes (like private_attribute_names) cannot be made private.

- -

In this example, firstName is marked as private, but lastName is not:

- -
  Context = #{
-      kind => <<"org">>,
-      key => <<"my-key">>,
-      private_attributes: [<<"firstName">>],
-      attributes => #{
-          <<"firstName">> => <<"Pierre">>,
-          <<"lastName">> => <<"Menard">>
-      }
-  }.
- - This is a metadata property, rather than an attribute that can be addressed in evaluations: - that is, a rule clause that references the attribute name "private_attributes", will not use - this value, but instead will use whatever value (if any) you have set for that name with a - method such as set/3 or by including it in the attributes map.

- -

set_private_attributes/3

-
-

set_private_attributes(ContextKind::kind_value(), AttributeValues::[binary()], Context::context()) -> context()

-

-

Set private attributes for the specified context kind.

- - Context can either be a single kind context of the specified kind or a multi context containing the kind.

-
- - -

Generated by EDoc

- - diff --git a/ldclient_flagbuilder.html b/ldclient_flagbuilder.html deleted file mode 100644 index 5f9fbff..0000000 --- a/ldclient_flagbuilder.html +++ /dev/null @@ -1,382 +0,0 @@ - - - - -Module ldclient_flagbuilder - - - - -
- -

Module ldclient_flagbuilder

-Flagbuilder. - - -

Description

Flagbuilder - -

Data Types

- -

flag_builder()

-

abstract datatype: flag_builder()

-

A builder for feature flag configurations to be used with ldclient_testdata.

- -

flag_rule_builder()

-

abstract datatype: flag_rule_builder()

-

A builder for feature flag rules to be used with flag_builder().

- -

variation()

-

variation() = boolean() | non_neg_integer()

- - -

Function Index

- - - - - - - - - - - - - - - - - - - -
and_match/3Adds another clause, using the "is one of" operator.
and_match/4Adds another clause, using the "is one of" operator.
and_not_match/3Adds another clause, using the "is not one of" operator.
and_not_match/4Adds another clause, using the "is not one of" operator.
boolean_flag/1A shortcut for setting the flag to use the standard boolean configuration.
clear_rules/1Removes any existing rules from the flag.
clear_targets/1Removes any existing targets from the flag.
fallthrough_variation/2Specifies the fallthrough variation for a flag.
if_match/3Starts defining a flag rule, using the "is one of" operator.
if_match/4Starts defining a flag rule, using the "is one of" operator.
if_not_match/3Starts defining a flag rule, using the "is not one of" operator.
if_not_match/4Starts defining a flag rule, using the "is not one of" operator.
off_variation/2Specifies the off variation for a flag.
on/2Sets targeting to be on or off for this flag.
then_return/2Finishes defining the rule, specifying the result variation.
value_for_all/2Sets the flag to always return the specified variation value for all contexts.
variation_for_all/2Sets the flag to always return the specified variation for all contexts.
variation_for_context/4Sets the flag to return the specified variation for a specific context kind and key when -targeting is on.
variations/2Sets the flag to always return the specified variation value for all contexts.
- -

Function Details

- -

and_match/3

-
-

and_match(ContextAttribute::ldclient_context:attribute_key(), Values::[term()], RuleBuilder::flag_rule_builder()) -> flag_rule_builder()

-

ContextAttribute: the context attribute to match against
-Values: values to compare to
-RuleBuilder: the rule builder to modify
-

-

returns: the modified rule builder

-

Adds another clause, using the "is one of" operator. The kind of the context is implicitly "user" - for non-user contexts use any_match/4.

- -

For example, this creates a rule that returns true if the name is "Patsy" and the -country is "gb":

- -
      {ok, Flag} = ldclient_testdata:flag(TestData, <<"flag">>),
-      RuleBuilder = ldclient_flagbuilder:and_match(<<"country">>, [<<"gb">>],
-                    ldclient_flagbuilder:if_match(<<"name">>, [<<"Patsy">>], Flag)),
-      UpdatedFlag = ldclient_flagbuilder:then_return(true, RuleBuilder),
-      ldclient_testdata:update(TestData, UpdatedFlag).
-

- -

and_match/4

-
-

and_match(ContextKind::ldclient_context:kind_value(), ContextAttribute::ldclient_context:attribute_key(), Values::[term()], RuleBuilder::flag_rule_builder()) -> flag_rule_builder()

-

ContextAttribute: the context attribute to match against
-Values: values to compare to
-RuleBuilder: the rule builder to modify
-

-

returns: the modified rule builder

-

Adds another clause, using the "is one of" operator. The kind of the context is implicitly "user" - for non-user contexts use any_match/4.

- -

For example, this creates a rule that returns true if the name is "Patsy" and the -country is "gb":

- -
      {ok, Flag} = ldclient_testdata:flag(TestData, <<"flag">>),
-      RuleBuilder = ldclient_flagbuilder:and_match(<<"user">>, <<"country">>, [<<"gb">>],
-                    ldclient_flagbuilder:if_match(<<"user">>, <<"name">>, [<<"Patsy">>], Flag)),
-      UpdatedFlag = ldclient_flagbuilder:then_return(true, RuleBuilder),
-      ldclient_testdata:update(TestData, UpdatedFlag).
-

- -

and_not_match/3

-
-

and_not_match(ContextAttribute::ldclient_context:attribute_key(), Values::[term()], RuleBuilder::flag_rule_builder()) -> flag_rule_builder()

-

ContextAttribute: the context attribute to match against
-Values: values to compare to
-RuleBuilder: the rule builder to modify
-

-

returns: the modified rule builder

-

Adds another clause, using the "is not one of" operator. The kind of the context is implicitly "user" - for non-user contexts use any_match/4.

- -

For example, this creates a rule that returns true if the name is "Patsy" and the -country is not "gb":

- -
      {ok, Flag} = ldclient_testdata:flag(TestData, <<"flag">>),
-      RuleBuilder = ldclient_flagbuilder:and_not_match(<<"country">>, [<<"gb">>],
-                    ldclient_flagbuilder:if_match(<<"name">>, [<<"Patsy">>], Flag)),
-      UpdatedFlag = ldclient_flagbuilder:then_return(true, RuleBuilder),
-      ldclient_testdata:update(TestData, UpdatedFlag).
-

- -

and_not_match/4

-
-

and_not_match(ContextKind::ldclient_context:kind_value(), ContextAttribute::ldclient_context:attribute_key(), Values::[term()], RuleBuilder::flag_rule_builder()) -> flag_rule_builder()

-

ContextAttribute: the context attribute to match against
-Values: values to compare to
-RuleBuilder: the rule builder to modify
-

-

returns: the modified rule builder

-

Adds another clause, using the "is not one of" operator.

- -

For example, this creates a rule that returns true if the name is "Patsy" and the -country is not "gb":

- -
      {ok, Flag} = ldclient_testdata:flag(TestData, <<"flag">>),
-      RuleBuilder = ldclient_flagbuilder:and_not_match(<<"user">>, <<"country">>, [<<"gb">>],
-                    ldclient_flagbuilder:if_match(<<"user">>, <<"name">>, [<<"Patsy">>], Flag)),
-      UpdatedFlag = ldclient_flagbuilder:then_return(true, RuleBuilder),
-      ldclient_testdata:update(TestData, UpdatedFlag).
-

- -

boolean_flag/1

-
-

boolean_flag(FlagBuilder::flag_builder()) -> flag_builder()

-

FlagBuilder: the flag builder to modify
-

-

returns: the modified builder

-

A shortcut for setting the flag to use the standard boolean configuration.

- - This is the default for all new flags created with ldclient_testdata:flag/2. - The flag will have two variations, true and false (in that order); it will return - false whenever targeting is off, and true when targeting is on if no other - settings specify otherwise. -

- -

clear_rules/1

-
-

clear_rules(FlagBuilder::flag_builder()) -> flag_builder()

-

FlagBuilder: the flag builder to modify
-

-

returns: the modified builder

-

Removes any existing rules from the flag.

- - This undoes the effect of if_match/3 and if_not_match/3. -

- -

clear_targets/1

-
-

clear_targets(FlagBuilder::flag_builder()) -> flag_builder()

-

FlagBuilder: the flag builder to modify
-

-

returns: the modified builder

-

Removes any existing targets from the flag.

- - This undoes the effect of variation_for_context/4. -

- -

fallthrough_variation/2

-
-

fallthrough_variation(Variation::variation(), FlagBuilder::flag_builder()) -> flag_builder()

-

Variation: true, false, or the index of the desired variation to return: 0 for the first, 1 for the second, etc.
-FlagBuilder: the flag builder to modify
-

-

returns: the modified builder

-

Specifies the fallthrough variation for a flag.

- -

The fallthrough is the value that is returned if targeting is on -and the user was not matched by a more specific target or rule.

- - If the flag was previously configured with other variations and a boolean variation is specified, - this also changes the flagbuilder to a boolean flag. -

- -

if_match/3

-
-

if_match(ContextAttribute::ldclient_context:attribute_key(), Values::[term()], FlagBuilder::flag_builder()) -> flag_rule_builder()

-

ContextAttribute: the context attribute to match against
-Values: values to compare to
-FlagBuilder: the flag builder to modify
-

-

returns: a flag_rule_builder(); call then_return/2 to finish the rule, - or add more tests with and_match/4 or and_not_match/4.

-

Starts defining a flag rule, using the "is one of" operator. The kind of the context is implicitly "user" - for non-user contexts use if_match/4.

- -

For example, this creates a rule that returns true if the name is "Patsy" or "Edina":

- -
      {ok, Flag} = ldclient_testdata:flag(TestData, <<"flag">>),
-      RuleBuilder = ldclient_flagbuilder:if_match(<<"name">>, [<<"Patsy">>, <<"Edina">>], Flag),
-      UpdatedFlag = ldclient_flagbuilder:then_return(true, RuleBuilder),
-      ldclient_testdata:update(TestData, UpdatedFlag).
-

- -

if_match/4

-
-

if_match(ContextKind::ldclient_context:kind_value(), ContextAttribute::ldclient_context:attribute_key(), Values::[term()], FlagBuilder::flag_builder()) -> flag_rule_builder()

-

ContextAttribute: the context attribute to match against
-Values: values to compare to
-FlagBuilder: the flag builder to modify
-

-

returns: a flag_rule_builder(); call then_return/2 to finish the rule, - or add more tests with and_match/4 or and_not_match/4.

-

Starts defining a flag rule, using the "is one of" operator.

- -

For example, this creates a rule that returns true if the name is "Patsy" or "Edina":

- -
      {ok, Flag} = ldclient_testdata:flag(TestData, <<"flag">>),
-      RuleBuilder = ldclient_flagbuilder:if_match(<<"user">>, <<"name">>, [<<"Patsy">>, <<"Edina">>], Flag),
-      UpdatedFlag = ldclient_flagbuilder:then_return(true, RuleBuilder),
-      ldclient_testdata:update(TestData, UpdatedFlag).
-

- -

if_not_match/3

-
-

if_not_match(ContextAttribute::ldclient_context:attribute_key(), Values::[term()], FlagBuilder::flag_builder()) -> flag_rule_builder()

-

ContextAttribute: the context attribute to match against
-Values: values to compare to
-FlagBuilder: the flag builder to modify
-

-

returns: a flag_rule_builder(); call then_return/2 to finish the rule, - or add more tests with and_match/4 or and_not_match/4.

-

Starts defining a flag rule, using the "is not one of" operator. The kind of the context is implicitly - "user" for non-user contexts use if_not_match/4.

- -

For example, this creates a rule that returns true if the name is neither "Saffron" nor "Bubble":

- -
      {ok, Flag} = ldclient_testdata:flag(TestData, <<"flag">>),
-      RuleBuilder = ldclient_flagbuilder:if_not_match(<<"name">>, [<<"Saffron">>, <<"Bubble">>], Flag),
-      UpdatedFlag = ldclient_flagbuilder:then_return(true, RuleBuilder),
-      ldclient_testdata:update(TestData, UpdatedFlag).
-

- -

if_not_match/4

-
-

if_not_match(ContextKind::ldclient_context:kind_value(), ContextAttribute::ldclient_context:attribute_key(), Values::[term()], FlagBuilder::flag_builder()) -> flag_rule_builder()

-

ContextAttribute: the context attribute to match against
-Values: values to compare to
-FlagBuilder: the flag builder to modify
-

-

returns: a flag_rule_builder(); call then_return/2 to finish the rule, - or add more tests with and_match/4 or and_not_match/4.

-

Starts defining a flag rule, using the "is not one of" operator.

- -

For example, this creates a rule that returns true if the name is neither "Saffron" nor "Bubble":

- -
      {ok, Flag} = ldclient_testdata:flag(TestData, <<"flag">>),
-      RuleBuilder = ldclient_flagbuilder:if_not_match(<<"user">>, <<"name">>, [<<"Saffron">>, <<"Bubble">>], Flag),
-      UpdatedFlag = ldclient_flagbuilder:then_return(true, RuleBuilder),
-      ldclient_testdata:update(TestData, UpdatedFlag).
-

- -

off_variation/2

-
-

off_variation(Variation::variation(), FlagBuilder::flag_builder()) -> flag_builder()

-

Variation: true, false, or the index of the desired variation to return: 0 for the first, 1 for the second, etc.
-FlagBuilder: the flag builder to modify
-

-

returns: the modified builder

-

Specifies the off variation for a flag.

- -

The off variation is the value that is returned whenever targeting is off

- - If the flag was previously configured with other variations and a boolean Variation is specified, - this also changes the FlagBuilder to a boolean flag. -

- -

on/2

-
-

on(IsOn::boolean(), FlagBuilder::flag_builder()) -> flag_builder()

-

IsOn: true if targeting should be on
-FlagBuilder: the flag builder to modify
-

-

returns: the modified builder -

-

Sets targeting to be on or off for this flag.

- - The effect of this depends on the rest of the flag configuration, just as it does on the - real LaunchDarkly dashboard. In the default configuration that you get from calling - ldclient_testdata:flag/2 with a new flag key, the flag will return false - whenever targeting is off, and true when targeting is on. -

- -

then_return/2

-
-

then_return(Variation::variation(), RuleBuilder::flag_rule_builder()) -> flag_builder()

-

Variation: true, false, or the index of the desired variation to return: 0 for the first, 1 for the second, etc.
-RuleBuilder: the rule builder to use
-

-

returns: the modified flag builder that initially created this rule builder

-

Finishes defining the rule, specifying the result variation.

- - If the flag was previously configured with other variations and a boolean variation is specified, - this also changes the FlagBuilder to a boolean flag. -

- -

value_for_all/2

-
-

value_for_all(Value::term(), FlagBuilder::flag_builder()) -> flag_builder()

-

Value: the desired value to be returned for all contexts
-FlagBuilder: the flag builder to modify
-

-

returns: the modified builder

-

Sets the flag to always return the specified variation value for all contexts.

- - The value may be of any JSON type, as defined by }. This method changes the - flag to have only a single variation, which is this value, and to return the same - variation regardless of whether targeting is on or off. Any existing targets or rules - are removed. -

- -

variation_for_all/2

-
-

variation_for_all(Variation::variation(), FlagBuilder::flag_builder()) -> flag_builder()

-

Variation: true, false, or the index of the desired variation to return: 0 for the first, 1 for the second, etc.
-FlagBuilder: the flag builder to modify
-

-

returns: the modified builder

-

Sets the flag to always return the specified variation for all contexts.

- -

The variation is set, targeting is switched on, and any existing targets or rules are removed. -The fallthrough variation is set to the specified value. -The off variation is left unchanged.

- - If the flag was previously configured with other variations and a boolean variation is specified, - this also changes the flagbuilder to a boolean flag. -

- -

variation_for_context/4

-
-

variation_for_context(Variation::variation(), ContextKind::ldclient_context:kind_value(), ContextKey::binary(), FlagBuilder::flag_builder()) -> flag_builder()

-

Variation: true, false, or the index of the desired variation to return: 0 for the first, 1 for the second, etc.
-ContextKind: the kind of context to target
-ContextKey: the key of the context to target
-FlagBuilder: the flag builder to modify
-

-

returns: the modified builder

-

Sets the flag to return the specified variation for a specific context kind and key when -targeting is on.

- -

This has no effect when targeting is turned off for the flag.

- - If the flag was previously configured with other variations and a boolean variation is specified, - this also changes the flagbuilder to a boolean flag. -

- -

variations/2

-
-

variations(Values::[ldclient_flag:variation_value()], FlagBuilder::flag_builder()) -> flag_builder()

-

FlagBuilder: the flag builder to modify
-

-

returns: the modified builder

-

Sets the flag to always return the specified variation value for all contexts.

- - The value may be of any JSON type. - This method changes the flag to have only a single variation, which is this value, - and to return the same variation regardless of whether targeting is on or off. - Any existing targets or rules are removed. -

-
- - -

Generated by EDoc

- - diff --git a/ldclient_testdata.html b/ldclient_testdata.html deleted file mode 100644 index c89e123..0000000 --- a/ldclient_testdata.html +++ /dev/null @@ -1,152 +0,0 @@ - - - - -Module ldclient_testdata - - - - -
- -

Module ldclient_testdata

-TestData server. - -

Behaviours: gen_server.

- -

Description

TestData server

- -

A mechanism for providing dynamically updatable feature flag state -in a simplified form to an SDK client in test scenarios.

- -

Unlike the file data mechanism, this does not use any external resources. -It provides only the data that the application has put into it using -the update/2 function.

- -
     {ok, Flag} = ldclient_testdata:flag("flag-key-1"),
-     ldclient_testdata:update(ldclient_flagbuilder:variation_for_all(true, Flag)),
- 
-     Options = #{
-         datasource => testdata,
-         send_events => false,
-         feature_store => ldclient_storage_map
-     },
-     ldclient:start_instance(SdkKey, Options),
- 
-     %% flags can be updated at any time:
-     {ok, Flag2} = ldclient_testdata:flag("flag-key-2"),
-     UpdatedFlag2 = ldclient_flagbuilder:fallthrough_variation(false,
-                    ldclient_flagbuilder:variation_for_context(<<"user">>, <<"some-user-key">>, true, Flag2)),
- -

The above example uses a simple boolean flag, but more complex configurations - are possible using the functions in ldclient_flagbuilder.

- - ldclient_flagbuilder supports many of the ways a flag can be configured - on the LaunchDarkly dashboard, but does not currently support -
    -
  1. rule operators other than "in" and "not in", or
  2. -
  3. percentage rollouts.
  4. -
- - If the same ldclient_testdata instance is used to configure multiple ldclient_instance instances, any changes made to the data will propagate to all of the instances - -

Function Index

- - - - - -
child_spec/2
flag/1Creates or copies a ldclient_flagbuilder:flag_builder() -for building a test flag configuration.
flag/2Creates or copies a ldclient_flagbuilder:flag_builder() -for building a test flag configuration.
update/1Updates the test data with the specified flag configuration.
update/2Updates the test data with the specified flag configuration.
- -

Function Details

- -

child_spec/2

-
-

child_spec(Tag::atom(), Args::[term()]) -> supervisor:child_spec()

-

-
- -

flag/1

-
-

flag(FlagKey::binary() | string()) -> {ok, ldclient_flagbuilder:flag_builder()}

-

FlagKey: the flag key
-

-

returns: a flag configuration builder

-

Creates or copies a ldclient_flagbuilder:flag_builder() -for building a test flag configuration.

- -

If this flag key has already been defined in this ldclient_testdata instance, -then the builder starts with the same configuration that was last provided for this flag.

- -

Otherwise, it starts with a new default configuration in which the flag has true - and false variations, is true for all contexts when targeting is turned on and - false otherwise, and currently has targeting turned on.

- -

You can change any of those properties, and provide more complex behavior, - using the functions in ldclient_flagbuilder.

- - Once you have set the desired configuration, pass the builder to update/2. -

-

See also: update/1.

- -

flag/2

-
-

flag(Tag::atom() | pid(), FlagKey::binary()) -> {ok, ldclient_flagbuilder:flag_builder()}

-

Tag: the tag or pid of the ldclient_testdata instance
-FlagKey: the flag key
-

-

returns: a flag configuration builder

-

Creates or copies a ldclient_flagbuilder:flag_builder() -for building a test flag configuration.

- -

If this flag key has already been defined in this ldclient_testdata instance, -then the builder starts with the same configuration that was last provided for this flag.

- -

Otherwise, it starts with a new default configuration in which the flag has true - and false variations, is true for all contexts when targeting is turned on and - false otherwise, and currently has targeting turned on.

- -

You can change any of those properties, and provide more complex behavior, - using the functions in ldclient_flagbuilder.

- - Once you have set the desired configuration, pass the builder to update/2. -

-

See also: update/2.

- -

update/1

-
-

update(Flag::ldclient_flagbuilder:flag_builder()) -> ok

-

Flag: a flag configuration builder
-

-

Updates the test data with the specified flag configuration.

- - This has the same effect as if a flag were added or modified on the LaunchDarkly dashboard. - It immediately propagates the flag change to any ldclient_instance(s) that you have - already configured to use this ldclient_testdata. If no ldclient_instance has - been started yet, it simply adds this flag to the test data which will be provided - to any ldclient_instance that you subsequently configure. -

-

See also: flag/1.

- -

update/2

-
-

update(Tag::atom() | pid(), Flag::ldclient_flagbuilder:flag_builder()) -> ok

-

Flag: a flag configuration builder
-

-

Updates the test data with the specified flag configuration.

- - This has the same effect as if a flag were added or modified on the LaunchDarkly dashboard. - It immediately propagates the flag change to any ldclient_instance(s) that you have - already configured to use this ldclient_testdata. If no ldclient_instance has - been started yet, it simply adds this flag to the test data which will be provided - to any ldclient_instance that you subsequently configure. -

-

See also: flag/2.

-
- - -

Generated by EDoc

- - diff --git a/ldclient_user.html b/ldclient_user.html deleted file mode 100644 index 727c972..0000000 --- a/ldclient_user.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - -Module ldclient_user - - - - -
- -

Module ldclient_user

-User data type. - - -

Description

User data type - -

Data Types

- -

attribute()

-

attribute() = binary() | atom()

- - -

custom_attributes()

-

custom_attributes() = #{binary() := any()}

- - -

key()

-

key() = binary() | null

- - -

private_attribute_names()

-

private_attribute_names() = [binary()]

- - -

user()

-

user() = #{key := key(), ip => binary(), country => binary(), email => binary(), first_name => binary(), last_name => binary(), avatar => binary(), name => binary(), anonymous => boolean(), custom => custom_attributes(), private_attribute_names => private_attribute_names()}

- - -

Function Index

- - - - - - - -
event_format/1Formats a user for use in an event.
get/2Get an attribute value of a user.
new/1
new_from_map/1
scrub/2Scrub private attributes from user.
set/3Set an attribute value for a user.
set_private_attribute_names/2Sets a list of private attribute names for a user.
- -

Function Details

- -

event_format/1

-
-

event_format(User::user()) -> user()

-

-

Formats a user for use in an event.

- - Returns the user with first_name and last_name attributes changed to firstName and - lastName so that LaunchDarkly can properly record user data.

- -

get/2

-
-

get(Attribute::attribute(), User::user()) -> term()

-

-

Get an attribute value of a user

- - Lookup includes custom attributes. Returns null if attribute doesn't exist.

- -

new/1

-
-

new(Key::key()) -> user()

-

-
- -

new_from_map/1

-
-

new_from_map(Map::map()) -> user()

-

-
- -

scrub/2

-
-

scrub(User::user(), GlobalPrivateAttributes::ldclient_config:private_attributes()) -> {user(), private_attribute_names()}

-

-

Scrub private attributes from user

- - Returns the scrubbed user and the list of attributes that were actually - scrubbed.

- -

set/3

-
-

set(Attribute::attribute(), Value::any(), User::user()) -> user()

-

-

Set an attribute value for a user

- - Sets given attribute to given value and returns the new user. This function - can handle both built-in and custom user attributes.

- -

set_private_attribute_names/2

-
-

set_private_attribute_names(AttributeNames::[attribute()], User::user()) -> user()

-

-

Sets a list of private attribute names for a user

- - Any attributes that are on this list will not be sent to and indexed by - LaunchDarkly. However, they are still available for flag evaluations - performed by the SDK locally. This handles both built-in and custom - attributes. The built-in key attribute cannot be made private - it will - always be sent.

-
- - -

Generated by EDoc

- - diff --git a/modules-frame.html b/modules-frame.html deleted file mode 100644 index 2c7794b..0000000 --- a/modules-frame.html +++ /dev/null @@ -1,17 +0,0 @@ - - - -The ldclient application - - - -

Modules

- - - - - - -
ldclient
ldclient_config
ldclient_context
ldclient_flagbuilder
ldclient_testdata
ldclient_user
- - \ No newline at end of file diff --git a/overview-summary.html b/overview-summary.html deleted file mode 100644 index 57ca04d..0000000 --- a/overview-summary.html +++ /dev/null @@ -1,18 +0,0 @@ - - - - -LaunchDarkly Server-Side SDK for Erlang/Elixir - - - - -

LaunchDarkly Server-Side SDK for Erlang/Elixir

-

LaunchDarkly is a feature management platform that serves over 100 billion feature flags daily to help teams build better software, faster.

- -This version of the LaunchDarkly SDK is compatible with Erlang/OTP 21 or higher. -
- -

Generated by EDoc

- - diff --git a/overview.edoc b/overview.edoc deleted file mode 100644 index 24832a4..0000000 --- a/overview.edoc +++ /dev/null @@ -1,4 +0,0 @@ -@title LaunchDarkly Server-Side SDK for Erlang/Elixir -@doc LaunchDarkly is a feature management platform that serves over 100 billion feature flags daily to help teams build better software, faster. - -This version of the LaunchDarkly SDK is compatible with Erlang/OTP 21 or higher. \ No newline at end of file diff --git a/stylesheet.css b/stylesheet.css deleted file mode 100644 index ab170c0..0000000 --- a/stylesheet.css +++ /dev/null @@ -1,55 +0,0 @@ -/* standard EDoc style sheet */ -body { - font-family: Verdana, Arial, Helvetica, sans-serif; - margin-left: .25in; - margin-right: .2in; - margin-top: 0.2in; - margin-bottom: 0.2in; - color: #000000; - background-color: #ffffff; -} -h1,h2 { - margin-left: -0.2in; -} -div.navbar { - background-color: #add8e6; - padding: 0.2em; -} -h2.indextitle { - padding: 0.4em; - background-color: #add8e6; -} -h3.function,h3.typedecl { - background-color: #add8e6; - padding-left: 1em; -} -div.spec { - margin-left: 2em; - background-color: #eeeeee; -} -a.module { - text-decoration:none -} -a.module:hover { - background-color: #eeeeee; -} -ul.definitions { - list-style-type: none; -} -ul.index { - list-style-type: none; - background-color: #eeeeee; -} - -/* - * Minor style tweaks - */ -ul { - list-style-type: square; -} -table { - border-collapse: collapse; -} -td { - padding: 3 -}