launchdarkly-server-sdk 6.2.2 → 6.3.0

Sign up to get free protection for your applications and to get access to all the features.
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