launchdarkly-server-sdk 6.2.2 → 6.3.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.
Files changed (99) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +3 -3
  3. data/lib/ldclient-rb/config.rb +81 -4
  4. data/lib/ldclient-rb/evaluation_detail.rb +67 -8
  5. data/lib/ldclient-rb/file_data_source.rb +9 -300
  6. data/lib/ldclient-rb/impl/big_segments.rb +117 -0
  7. data/lib/ldclient-rb/impl/diagnostic_events.rb +1 -1
  8. data/lib/ldclient-rb/impl/evaluator.rb +80 -28
  9. data/lib/ldclient-rb/impl/integrations/dynamodb_impl.rb +82 -18
  10. data/lib/ldclient-rb/impl/integrations/file_data_source.rb +212 -0
  11. data/lib/ldclient-rb/impl/integrations/redis_impl.rb +84 -31
  12. data/lib/ldclient-rb/impl/integrations/test_data/test_data_source.rb +40 -0
  13. data/lib/ldclient-rb/impl/repeating_task.rb +47 -0
  14. data/lib/ldclient-rb/impl/util.rb +4 -1
  15. data/lib/ldclient-rb/integrations/consul.rb +7 -0
  16. data/lib/ldclient-rb/integrations/dynamodb.rb +47 -2
  17. data/lib/ldclient-rb/integrations/file_data.rb +108 -0
  18. data/lib/ldclient-rb/integrations/redis.rb +41 -1
  19. data/lib/ldclient-rb/integrations/test_data/flag_builder.rb +438 -0
  20. data/lib/ldclient-rb/integrations/test_data.rb +209 -0
  21. data/lib/ldclient-rb/integrations/util/store_wrapper.rb +5 -0
  22. data/lib/ldclient-rb/integrations.rb +2 -51
  23. data/lib/ldclient-rb/interfaces.rb +152 -2
  24. data/lib/ldclient-rb/ldclient.rb +21 -7
  25. data/lib/ldclient-rb/polling.rb +22 -41
  26. data/lib/ldclient-rb/util.rb +1 -1
  27. data/lib/ldclient-rb/version.rb +1 -1
  28. metadata +31 -132
  29. data/.circleci/config.yml +0 -40
  30. data/.github/ISSUE_TEMPLATE/bug_report.md +0 -37
  31. data/.github/ISSUE_TEMPLATE/config.yml +0 -5
  32. data/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
  33. data/.github/pull_request_template.md +0 -21
  34. data/.gitignore +0 -16
  35. data/.hound.yml +0 -2
  36. data/.ldrelease/build-docs.sh +0 -18
  37. data/.ldrelease/circleci/linux/execute.sh +0 -18
  38. data/.ldrelease/circleci/mac/execute.sh +0 -18
  39. data/.ldrelease/circleci/template/build.sh +0 -29
  40. data/.ldrelease/circleci/template/publish.sh +0 -23
  41. data/.ldrelease/circleci/template/set-gem-home.sh +0 -7
  42. data/.ldrelease/circleci/template/test.sh +0 -10
  43. data/.ldrelease/circleci/template/update-version.sh +0 -8
  44. data/.ldrelease/circleci/windows/execute.ps1 +0 -19
  45. data/.ldrelease/config.yml +0 -29
  46. data/.rspec +0 -2
  47. data/.rubocop.yml +0 -600
  48. data/.simplecov +0 -4
  49. data/CHANGELOG.md +0 -363
  50. data/CODEOWNERS +0 -1
  51. data/CONTRIBUTING.md +0 -37
  52. data/Gemfile +0 -3
  53. data/azure-pipelines.yml +0 -51
  54. data/docs/Makefile +0 -26
  55. data/docs/index.md +0 -9
  56. data/launchdarkly-server-sdk.gemspec +0 -45
  57. data/spec/config_spec.rb +0 -63
  58. data/spec/diagnostic_events_spec.rb +0 -163
  59. data/spec/evaluation_detail_spec.rb +0 -135
  60. data/spec/event_sender_spec.rb +0 -197
  61. data/spec/event_summarizer_spec.rb +0 -63
  62. data/spec/events_spec.rb +0 -607
  63. data/spec/expiring_cache_spec.rb +0 -76
  64. data/spec/feature_store_spec_base.rb +0 -213
  65. data/spec/file_data_source_spec.rb +0 -283
  66. data/spec/fixtures/feature.json +0 -37
  67. data/spec/fixtures/feature1.json +0 -36
  68. data/spec/fixtures/user.json +0 -9
  69. data/spec/flags_state_spec.rb +0 -81
  70. data/spec/http_util.rb +0 -132
  71. data/spec/impl/evaluator_bucketing_spec.rb +0 -216
  72. data/spec/impl/evaluator_clause_spec.rb +0 -55
  73. data/spec/impl/evaluator_operators_spec.rb +0 -141
  74. data/spec/impl/evaluator_rule_spec.rb +0 -128
  75. data/spec/impl/evaluator_segment_spec.rb +0 -125
  76. data/spec/impl/evaluator_spec.rb +0 -349
  77. data/spec/impl/evaluator_spec_base.rb +0 -75
  78. data/spec/impl/event_factory_spec.rb +0 -108
  79. data/spec/impl/model/serialization_spec.rb +0 -41
  80. data/spec/in_memory_feature_store_spec.rb +0 -12
  81. data/spec/integrations/consul_feature_store_spec.rb +0 -40
  82. data/spec/integrations/dynamodb_feature_store_spec.rb +0 -103
  83. data/spec/integrations/store_wrapper_spec.rb +0 -276
  84. data/spec/launchdarkly-server-sdk_spec.rb +0 -13
  85. data/spec/launchdarkly-server-sdk_spec_autoloadtest.rb +0 -9
  86. data/spec/ldclient_end_to_end_spec.rb +0 -157
  87. data/spec/ldclient_spec.rb +0 -635
  88. data/spec/newrelic_spec.rb +0 -5
  89. data/spec/polling_spec.rb +0 -120
  90. data/spec/redis_feature_store_spec.rb +0 -121
  91. data/spec/requestor_spec.rb +0 -209
  92. data/spec/segment_store_spec_base.rb +0 -95
  93. data/spec/simple_lru_cache_spec.rb +0 -24
  94. data/spec/spec_helper.rb +0 -9
  95. data/spec/store_spec.rb +0 -10
  96. data/spec/stream_spec.rb +0 -45
  97. data/spec/user_filter_spec.rb +0 -91
  98. data/spec/util_spec.rb +0 -17
  99. data/spec/version_spec.rb +0 -7
@@ -1,91 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe LaunchDarkly::UserFilter do
4
- subject { LaunchDarkly::UserFilter }
5
-
6
- let(:base_config) { LaunchDarkly::Config.new }
7
- let(:config_with_all_attrs_private) { LaunchDarkly::Config.new({ all_attributes_private: true })}
8
- let(:config_with_some_attrs_private) { LaunchDarkly::Config.new({ private_attribute_names: ['firstName', 'bizzle'] })}
9
-
10
- # users to serialize
11
-
12
- let(:user) {
13
- { key: 'abc', firstName: 'Sue', custom: { bizzle: 'def', dizzle: 'ghi' }}
14
- }
15
-
16
- let(:user_specifying_own_private_attr) {
17
- u = user.clone
18
- u[:privateAttributeNames] = [ 'dizzle', 'unused' ]
19
- u
20
- }
21
-
22
- let(:user_with_unknown_top_level_attrs) {
23
- { key: 'abc', firstName: 'Sue', species: 'human', hatSize: 6, custom: { bizzle: 'def', dizzle: 'ghi' }}
24
- }
25
-
26
- let(:anon_user) {
27
- { key: 'abc', anonymous: 'true', custom: { bizzle: 'def', dizzle: 'ghi' }}
28
- }
29
-
30
- # expected results from serializing user
31
-
32
- let(:user_with_all_attrs_hidden) {
33
- { key: 'abc', custom: { }, privateAttrs: [ 'bizzle', 'dizzle', 'firstName' ]}
34
- }
35
-
36
- let(:user_with_some_attrs_hidden) {
37
- { key: 'abc', custom: { dizzle: 'ghi' }, privateAttrs: [ 'bizzle', 'firstName' ]}
38
- }
39
-
40
- let(:user_with_own_specified_attr_hidden) {
41
- { key: 'abc', firstName: 'Sue', custom: { bizzle: 'def' }, privateAttrs: [ 'dizzle' ]}
42
- }
43
-
44
- let(:anon_user_with_all_attrs_hidden) {
45
- { key: 'abc', anonymous: 'true', custom: { }, privateAttrs: [ 'bizzle', 'dizzle' ]}
46
- }
47
-
48
- describe "serialize_events" do
49
- it "includes all user attributes by default" do
50
- uf = LaunchDarkly::UserFilter.new(base_config)
51
- result = uf.transform_user_props(user)
52
- expect(result).to eq user
53
- end
54
-
55
- it "hides all except key if all_attributes_private is true" do
56
- uf = LaunchDarkly::UserFilter.new(config_with_all_attrs_private)
57
- result = uf.transform_user_props(user)
58
- expect(result).to eq user_with_all_attrs_hidden
59
- end
60
-
61
- it "hides some attributes if private_attribute_names is set" do
62
- uf = LaunchDarkly::UserFilter.new(config_with_some_attrs_private)
63
- result = uf.transform_user_props(user)
64
- expect(result).to eq user_with_some_attrs_hidden
65
- end
66
-
67
- it "hides attributes specified in per-user privateAttrs" do
68
- uf = LaunchDarkly::UserFilter.new(base_config)
69
- result = uf.transform_user_props(user_specifying_own_private_attr)
70
- expect(result).to eq user_with_own_specified_attr_hidden
71
- end
72
-
73
- it "looks at both per-user privateAttrs and global config" do
74
- uf = LaunchDarkly::UserFilter.new(config_with_some_attrs_private)
75
- result = uf.transform_user_props(user_specifying_own_private_attr)
76
- expect(result).to eq user_with_all_attrs_hidden
77
- end
78
-
79
- it "strips out any unknown top-level attributes" do
80
- uf = LaunchDarkly::UserFilter.new(base_config)
81
- result = uf.transform_user_props(user_with_unknown_top_level_attrs)
82
- expect(result).to eq user
83
- end
84
-
85
- it "leaves the anonymous attribute as is" do
86
- uf = LaunchDarkly::UserFilter.new(config_with_all_attrs_private)
87
- result = uf.transform_user_props(anon_user)
88
- expect(result).to eq anon_user_with_all_attrs_hidden
89
- end
90
- end
91
- end
data/spec/util_spec.rb DELETED
@@ -1,17 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe LaunchDarkly::Util do
4
- describe 'log_exception' do
5
- let(:logger) { double() }
6
-
7
- it "logs error data" do
8
- expect(logger).to receive(:error)
9
- expect(logger).to receive(:debug)
10
- begin
11
- raise StandardError.new 'asdf'
12
- rescue StandardError => exn
13
- LaunchDarkly::Util.log_exception(logger, "message", exn)
14
- end
15
- end
16
- end
17
- end
data/spec/version_spec.rb DELETED
@@ -1,7 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe LaunchDarkly do
4
- it "has a version" do
5
- expect(LaunchDarkly::VERSION).to be
6
- end
7
- end