prefab-cloud-ruby 0.6.0 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
data/lib/prefab_pb.rb CHANGED
@@ -4,141 +4,215 @@
4
4
  require 'google/protobuf'
5
5
 
6
6
  Google::Protobuf::DescriptorPool.generated_pool.build do
7
- add_message "prefab.ConfigServicePointer" do
8
- optional :account_id, :int64, 1
9
- optional :start_at_id, :int64, 2
10
- end
11
- add_message "prefab.ConfigDelta" do
12
- optional :id, :int64, 2
13
- optional :key, :string, 3
14
- optional :value, :message, 4, "prefab.ConfigValue"
15
- optional :created_by, :string, 5
16
- end
17
- add_message "prefab.ConfigValue" do
18
- oneof :type do
19
- optional :int, :int64, 1
20
- optional :string, :string, 2
21
- optional :bytes, :bytes, 3
22
- optional :double, :double, 4
23
- optional :bool, :bool, 5
24
- optional :feature_flag, :message, 6, "prefab.FeatureFlag"
25
- optional :limit_definition, :message, 7, "prefab.LimitDefinition"
7
+ add_file("prefab.proto", :syntax => :proto3) do
8
+ add_message "prefab.ConfigServicePointer" do
9
+ optional :project_id, :int64, 1
10
+ optional :start_at_id, :int64, 2
11
+ optional :env_key, :string, 3
12
+ end
13
+ add_message "prefab.ConfigValue" do
14
+ oneof :type do
15
+ optional :int, :int64, 1
16
+ optional :string, :string, 2
17
+ optional :bytes, :bytes, 3
18
+ optional :double, :double, 4
19
+ optional :bool, :bool, 5
20
+ optional :feature_flag, :message, 6, "prefab.FeatureFlag"
21
+ optional :limit_definition, :message, 7, "prefab.LimitDefinition"
22
+ optional :segment, :message, 8, "prefab.Segment"
23
+ end
24
+ end
25
+ add_message "prefab.NamespaceValue" do
26
+ optional :namespace, :string, 1
27
+ optional :config_value, :message, 2, "prefab.ConfigValue"
28
+ end
29
+ add_message "prefab.EnvironmentValues" do
30
+ optional :environment, :string, 1
31
+ repeated :namespace_values, :message, 2, "prefab.NamespaceValue"
32
+ optional :default, :message, 3, "prefab.ConfigValue"
33
+ end
34
+ add_message "prefab.ConfigDelta" do
35
+ optional :id, :int64, 1
36
+ optional :key, :string, 2
37
+ optional :default, :message, 3, "prefab.ConfigValue"
38
+ repeated :envs, :message, 4, "prefab.EnvironmentValues"
39
+ end
40
+ add_message "prefab.ConfigDeltas" do
41
+ repeated :deltas, :message, 1, "prefab.ConfigDelta"
42
+ end
43
+ add_message "prefab.UpsertRequest" do
44
+ optional :project_id, :int64, 1
45
+ optional :config_delta, :message, 2, "prefab.ConfigDelta"
46
+ optional :changed_by, :string, 4
47
+ end
48
+ add_message "prefab.LimitResponse" do
49
+ optional :passed, :bool, 1
50
+ optional :expires_at, :int64, 2
51
+ optional :enforced_group, :string, 3
52
+ optional :current_bucket, :int64, 4
53
+ optional :policy_group, :string, 5
54
+ optional :policy_name, :enum, 6, "prefab.LimitResponse.LimitPolicyNames"
55
+ optional :policy_limit, :int32, 7
56
+ optional :amount, :int64, 8
57
+ optional :limit_reset_at, :int64, 9
58
+ optional :safety_level, :enum, 10, "prefab.LimitDefinition.SafetyLevel"
59
+ end
60
+ add_enum "prefab.LimitResponse.LimitPolicyNames" do
61
+ value :NOT_SET, 0
62
+ value :SECONDLY_ROLLING, 1
63
+ value :MINUTELY_ROLLING, 3
64
+ value :HOURLY_ROLLING, 5
65
+ value :DAILY_ROLLING, 7
66
+ value :MONTHLY_ROLLING, 8
67
+ value :INFINITE, 9
68
+ value :YEARLY_ROLLING, 10
69
+ end
70
+ add_message "prefab.LimitRequest" do
71
+ optional :account_id, :int64, 1
72
+ optional :acquire_amount, :int32, 2
73
+ repeated :groups, :string, 3
74
+ optional :limit_combiner, :enum, 4, "prefab.LimitRequest.LimitCombiner"
75
+ optional :allow_partial_response, :bool, 5
76
+ optional :safety_level, :enum, 6, "prefab.LimitDefinition.SafetyLevel"
77
+ end
78
+ add_enum "prefab.LimitRequest.LimitCombiner" do
79
+ value :NOT_SET, 0
80
+ value :MINIMUM, 1
81
+ value :MAXIMUM, 2
82
+ end
83
+ add_message "prefab.FeatureFlagVariant" do
84
+ optional :name, :string, 5
85
+ optional :description, :string, 6
86
+ oneof :type do
87
+ optional :int, :int64, 1
88
+ optional :string, :string, 2
89
+ optional :double, :double, 3
90
+ optional :bool, :bool, 4
91
+ end
92
+ end
93
+ add_message "prefab.Criteria" do
94
+ optional :property, :string, 1
95
+ optional :operator, :enum, 2, "prefab.Criteria.CriteriaOperator"
96
+ repeated :values, :string, 3
97
+ end
98
+ add_enum "prefab.Criteria.CriteriaOperator" do
99
+ value :NOT_SET, 0
100
+ value :IN, 1
101
+ value :NOT_IN, 2
102
+ value :EQ, 3
103
+ value :IN_SEG, 4
104
+ value :NOT_IN_SEG, 5
105
+ end
106
+ add_message "prefab.Rule" do
107
+ optional :criteria, :message, 1, "prefab.Criteria"
108
+ optional :distribution, :message, 2, "prefab.VariantDistribution"
109
+ end
110
+ add_message "prefab.Segment" do
111
+ optional :name, :string, 1
112
+ optional :description, :string, 2
113
+ repeated :includes, :string, 3
114
+ repeated :excludes, :string, 4
115
+ repeated :criterion, :message, 5, "prefab.Criteria"
116
+ end
117
+ add_message "prefab.UserTarget" do
118
+ optional :variant_idx, :int32, 1
119
+ repeated :identifiers, :string, 2
120
+ end
121
+ add_message "prefab.VariantWeight" do
122
+ optional :weight, :int32, 1
123
+ optional :variant_idx, :int32, 2
124
+ end
125
+ add_message "prefab.VariantWeights" do
126
+ repeated :weights, :message, 1, "prefab.VariantWeight"
127
+ end
128
+ add_message "prefab.VariantDistribution" do
129
+ oneof :type do
130
+ optional :variant_idx, :int32, 1
131
+ optional :variant_weights, :message, 2, "prefab.VariantWeights"
132
+ end
133
+ end
134
+ add_message "prefab.FeatureFlag" do
135
+ optional :active, :bool, 1
136
+ optional :inactive_variant_idx, :int32, 2
137
+ optional :default, :message, 3, "prefab.VariantDistribution"
138
+ repeated :user_targets, :message, 4, "prefab.UserTarget"
139
+ repeated :rules, :message, 5, "prefab.Rule"
140
+ repeated :variants, :message, 6, "prefab.FeatureFlagVariant"
141
+ end
142
+ add_message "prefab.LimitDefinition" do
143
+ optional :policy_name, :enum, 2, "prefab.LimitResponse.LimitPolicyNames"
144
+ optional :limit, :int32, 3
145
+ optional :burst, :int32, 4
146
+ optional :account_id, :int64, 5
147
+ optional :last_modified, :int64, 6
148
+ optional :returnable, :bool, 7
149
+ optional :safety_level, :enum, 8, "prefab.LimitDefinition.SafetyLevel"
150
+ end
151
+ add_enum "prefab.LimitDefinition.SafetyLevel" do
152
+ value :NOT_SET, 0
153
+ value :L4_BEST_EFFORT, 4
154
+ value :L5_BOMBPROOF, 5
155
+ end
156
+ add_message "prefab.LimitDefinitions" do
157
+ repeated :definitions, :message, 1, "prefab.LimitDefinition"
158
+ end
159
+ add_message "prefab.BufferedRequest" do
160
+ optional :account_id, :int64, 1
161
+ optional :method, :string, 2
162
+ optional :uri, :string, 3
163
+ optional :body, :string, 4
164
+ repeated :limit_groups, :string, 5
165
+ optional :content_type, :string, 6
166
+ optional :fifo, :bool, 7
167
+ end
168
+ add_message "prefab.BatchRequest" do
169
+ optional :account_id, :int64, 1
170
+ optional :method, :string, 2
171
+ optional :uri, :string, 3
172
+ optional :body, :string, 4
173
+ repeated :limit_groups, :string, 5
174
+ optional :batch_template, :string, 6
175
+ optional :batch_separator, :string, 7
176
+ end
177
+ add_message "prefab.BasicResponse" do
178
+ optional :message, :string, 1
179
+ end
180
+ add_enum "prefab.OnFailure" do
181
+ value :NOT_SET, 0
182
+ value :LOG_AND_PASS, 1
183
+ value :LOG_AND_FAIL, 2
184
+ value :THROW, 3
26
185
  end
27
- end
28
- add_message "prefab.ConfigDeltas" do
29
- repeated :deltas, :message, 1, "prefab.ConfigDelta"
30
- end
31
- add_message "prefab.UpsertRequest" do
32
- optional :account_id, :int64, 1
33
- optional :config_delta, :message, 2, "prefab.ConfigDelta"
34
- optional :changed_by, :string, 4
35
- end
36
- add_message "prefab.LimitResponse" do
37
- optional :passed, :bool, 1
38
- optional :expires_at, :int64, 2
39
- optional :enforced_group, :string, 3
40
- optional :current_bucket, :int64, 4
41
- optional :policy_group, :string, 5
42
- optional :policy_name, :enum, 6, "prefab.LimitResponse.LimitPolicyNames"
43
- optional :policy_limit, :int32, 7
44
- optional :amount, :int64, 8
45
- optional :limit_reset_at, :int64, 9
46
- optional :safety_level, :enum, 10, "prefab.LimitDefinition.SafetyLevel"
47
- end
48
- add_enum "prefab.LimitResponse.LimitPolicyNames" do
49
- value :NOT_SET, 0
50
- value :SECONDLY_ROLLING, 1
51
- value :MINUTELY_ROLLING, 3
52
- value :HOURLY_ROLLING, 5
53
- value :DAILY_ROLLING, 7
54
- value :MONTHLY_ROLLING, 8
55
- value :INFINITE, 9
56
- value :YEARLY_ROLLING, 10
57
- end
58
- add_message "prefab.LimitRequest" do
59
- optional :account_id, :int64, 1
60
- optional :acquire_amount, :int32, 2
61
- repeated :groups, :string, 3
62
- optional :limit_combiner, :enum, 4, "prefab.LimitRequest.LimitCombiner"
63
- optional :allow_partial_response, :bool, 5
64
- optional :safety_level, :enum, 6, "prefab.LimitDefinition.SafetyLevel"
65
- end
66
- add_enum "prefab.LimitRequest.LimitCombiner" do
67
- value :NOT_SET, 0
68
- value :MINIMUM, 1
69
- value :MAXIMUM, 2
70
- end
71
- add_message "prefab.FeatureFlag" do
72
- optional :pct, :double, 3
73
- repeated :whitelisted, :string, 4
74
- end
75
- add_message "prefab.LimitDefinition" do
76
- optional :policy_name, :enum, 2, "prefab.LimitResponse.LimitPolicyNames"
77
- optional :limit, :int32, 3
78
- optional :burst, :int32, 4
79
- optional :account_id, :int64, 5
80
- optional :last_modified, :int64, 6
81
- optional :returnable, :bool, 7
82
- optional :safety_level, :enum, 8, "prefab.LimitDefinition.SafetyLevel"
83
- end
84
- add_enum "prefab.LimitDefinition.SafetyLevel" do
85
- value :NOT_SET, 0
86
- value :L4_BEST_EFFORT, 4
87
- value :L5_BOMBPROOF, 5
88
- end
89
- add_message "prefab.LimitDefinitions" do
90
- repeated :definitions, :message, 1, "prefab.LimitDefinition"
91
- end
92
- add_message "prefab.FeatureFlags" do
93
- repeated :flags, :message, 1, "prefab.FeatureFlag"
94
- optional :cache_expiry, :int64, 2
95
- end
96
- add_message "prefab.BufferedRequest" do
97
- optional :account_id, :int64, 1
98
- optional :method, :string, 2
99
- optional :uri, :string, 3
100
- optional :body, :string, 4
101
- repeated :limit_groups, :string, 5
102
- optional :content_type, :string, 6
103
- optional :fifo, :bool, 7
104
- end
105
- add_message "prefab.BatchRequest" do
106
- optional :account_id, :int64, 1
107
- optional :method, :string, 2
108
- optional :uri, :string, 3
109
- optional :body, :string, 4
110
- repeated :limit_groups, :string, 5
111
- optional :batch_template, :string, 6
112
- optional :batch_separator, :string, 7
113
- end
114
- add_message "prefab.BasicResponse" do
115
- optional :message, :string, 1
116
- end
117
- add_enum "prefab.OnFailure" do
118
- value :NOT_SET, 0
119
- value :LOG_AND_PASS, 1
120
- value :LOG_AND_FAIL, 2
121
- value :THROW, 3
122
186
  end
123
187
  end
124
188
 
125
189
  module Prefab
126
- ConfigServicePointer = Google::Protobuf::DescriptorPool.generated_pool.lookup("prefab.ConfigServicePointer").msgclass
127
- ConfigDelta = Google::Protobuf::DescriptorPool.generated_pool.lookup("prefab.ConfigDelta").msgclass
128
- ConfigValue = Google::Protobuf::DescriptorPool.generated_pool.lookup("prefab.ConfigValue").msgclass
129
- ConfigDeltas = Google::Protobuf::DescriptorPool.generated_pool.lookup("prefab.ConfigDeltas").msgclass
130
- UpsertRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("prefab.UpsertRequest").msgclass
131
- LimitResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("prefab.LimitResponse").msgclass
132
- LimitResponse::LimitPolicyNames = Google::Protobuf::DescriptorPool.generated_pool.lookup("prefab.LimitResponse.LimitPolicyNames").enummodule
133
- LimitRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("prefab.LimitRequest").msgclass
134
- LimitRequest::LimitCombiner = Google::Protobuf::DescriptorPool.generated_pool.lookup("prefab.LimitRequest.LimitCombiner").enummodule
135
- FeatureFlag = Google::Protobuf::DescriptorPool.generated_pool.lookup("prefab.FeatureFlag").msgclass
136
- LimitDefinition = Google::Protobuf::DescriptorPool.generated_pool.lookup("prefab.LimitDefinition").msgclass
137
- LimitDefinition::SafetyLevel = Google::Protobuf::DescriptorPool.generated_pool.lookup("prefab.LimitDefinition.SafetyLevel").enummodule
138
- LimitDefinitions = Google::Protobuf::DescriptorPool.generated_pool.lookup("prefab.LimitDefinitions").msgclass
139
- FeatureFlags = Google::Protobuf::DescriptorPool.generated_pool.lookup("prefab.FeatureFlags").msgclass
140
- BufferedRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("prefab.BufferedRequest").msgclass
141
- BatchRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("prefab.BatchRequest").msgclass
142
- BasicResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("prefab.BasicResponse").msgclass
143
- OnFailure = Google::Protobuf::DescriptorPool.generated_pool.lookup("prefab.OnFailure").enummodule
190
+ ConfigServicePointer = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("prefab.ConfigServicePointer").msgclass
191
+ ConfigValue = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("prefab.ConfigValue").msgclass
192
+ NamespaceValue = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("prefab.NamespaceValue").msgclass
193
+ EnvironmentValues = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("prefab.EnvironmentValues").msgclass
194
+ ConfigDelta = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("prefab.ConfigDelta").msgclass
195
+ ConfigDeltas = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("prefab.ConfigDeltas").msgclass
196
+ UpsertRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("prefab.UpsertRequest").msgclass
197
+ LimitResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("prefab.LimitResponse").msgclass
198
+ LimitResponse::LimitPolicyNames = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("prefab.LimitResponse.LimitPolicyNames").enummodule
199
+ LimitRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("prefab.LimitRequest").msgclass
200
+ LimitRequest::LimitCombiner = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("prefab.LimitRequest.LimitCombiner").enummodule
201
+ FeatureFlagVariant = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("prefab.FeatureFlagVariant").msgclass
202
+ Criteria = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("prefab.Criteria").msgclass
203
+ Criteria::CriteriaOperator = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("prefab.Criteria.CriteriaOperator").enummodule
204
+ Rule = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("prefab.Rule").msgclass
205
+ Segment = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("prefab.Segment").msgclass
206
+ UserTarget = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("prefab.UserTarget").msgclass
207
+ VariantWeight = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("prefab.VariantWeight").msgclass
208
+ VariantWeights = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("prefab.VariantWeights").msgclass
209
+ VariantDistribution = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("prefab.VariantDistribution").msgclass
210
+ FeatureFlag = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("prefab.FeatureFlag").msgclass
211
+ LimitDefinition = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("prefab.LimitDefinition").msgclass
212
+ LimitDefinition::SafetyLevel = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("prefab.LimitDefinition.SafetyLevel").enummodule
213
+ LimitDefinitions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("prefab.LimitDefinitions").msgclass
214
+ BufferedRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("prefab.BufferedRequest").msgclass
215
+ BatchRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("prefab.BatchRequest").msgclass
216
+ BasicResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("prefab.BasicResponse").msgclass
217
+ OnFailure = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("prefab.OnFailure").enummodule
144
218
  end
@@ -8,13 +8,13 @@ module Prefab
8
8
  module RateLimitService
9
9
  class Service
10
10
 
11
- include GRPC::GenericService
11
+ include ::GRPC::GenericService
12
12
 
13
13
  self.marshal_class_method = :encode
14
14
  self.unmarshal_class_method = :decode
15
15
  self.service_name = 'prefab.RateLimitService'
16
16
 
17
- rpc :LimitCheck, LimitRequest, LimitResponse
17
+ rpc :LimitCheck, ::Prefab::LimitRequest, ::Prefab::LimitResponse
18
18
  end
19
19
 
20
20
  Stub = Service.rpc_stub_class
@@ -22,15 +22,15 @@ module Prefab
22
22
  module ConfigService
23
23
  class Service
24
24
 
25
- include GRPC::GenericService
25
+ include ::GRPC::GenericService
26
26
 
27
27
  self.marshal_class_method = :encode
28
28
  self.unmarshal_class_method = :decode
29
29
  self.service_name = 'prefab.ConfigService'
30
30
 
31
- rpc :GetConfig, ConfigServicePointer, stream(ConfigDeltas)
32
- rpc :GetAllConfig, ConfigServicePointer, ConfigDeltas
33
- rpc :Upsert, UpsertRequest, ConfigServicePointer
31
+ rpc :GetConfig, ::Prefab::ConfigServicePointer, stream(::Prefab::ConfigDeltas)
32
+ rpc :GetAllConfig, ::Prefab::ConfigServicePointer, ::Prefab::ConfigDeltas
33
+ rpc :Upsert, ::Prefab::UpsertRequest, ::Prefab::ConfigServicePointer
34
34
  end
35
35
 
36
36
  Stub = Service.rpc_stub_class
@@ -2,16 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Juwelier::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: prefab-cloud-ruby 0.6.0 ruby lib
5
+ # stub: prefab-cloud-ruby 0.7.0 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "prefab-cloud-ruby".freeze
9
- s.version = "0.6.0"
9
+ s.version = "0.7.0"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib".freeze]
13
13
  s.authors = ["Jeff Dwyer".freeze]
14
- s.date = "2021-03-23"
14
+ s.date = "2022-02-24"
15
15
  s.description = "RateLimits & Config as a service".freeze
16
16
  s.email = "jdwyer@prefab.cloud".freeze
17
17
  s.extra_rdoc_files = [
@@ -20,7 +20,8 @@ Gem::Specification.new do |s|
20
20
  ]
21
21
  s.files = [
22
22
  ".envrc",
23
- ".ruby-version",
23
+ ".tool-versions",
24
+ "CODEOWNERS",
24
25
  "Gemfile",
25
26
  "Gemfile.lock",
26
27
  "LICENSE.txt",
@@ -33,6 +34,7 @@ Gem::Specification.new do |s|
33
34
  "lib/prefab/cancellable_interceptor.rb",
34
35
  "lib/prefab/client.rb",
35
36
  "lib/prefab/config_client.rb",
37
+ "lib/prefab/config_helper.rb",
36
38
  "lib/prefab/config_loader.rb",
37
39
  "lib/prefab/config_resolver.rb",
38
40
  "lib/prefab/feature_flag_client.rb",
@@ -44,7 +46,9 @@ Gem::Specification.new do |s|
44
46
  "lib/prefab_pb.rb",
45
47
  "lib/prefab_services_pb.rb",
46
48
  "prefab-cloud-ruby.gemspec",
49
+ "run_test_harness_server.sh",
47
50
  "test/.prefab.test.config.yaml",
51
+ "test/harness_server.rb",
48
52
  "test/test_config_loader.rb",
49
53
  "test/test_config_resolver.rb",
50
54
  "test/test_feature_flag_client.rb",
@@ -53,43 +57,39 @@ Gem::Specification.new do |s|
53
57
  ]
54
58
  s.homepage = "http://github.com/prefab-cloud/prefab-cloud-ruby".freeze
55
59
  s.licenses = ["MIT".freeze]
56
- s.rubygems_version = "2.6.14".freeze
60
+ s.rubygems_version = "3.2.32".freeze
57
61
  s.summary = "Prefab Ruby Infrastructure".freeze
58
62
 
59
63
  if s.respond_to? :specification_version then
60
64
  s.specification_version = 4
65
+ end
61
66
 
62
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
63
- s.add_runtime_dependency(%q<concurrent-ruby>.freeze, [">= 1.0.5", "~> 1.0"])
64
- s.add_runtime_dependency(%q<faraday>.freeze, [">= 0"])
65
- s.add_runtime_dependency(%q<grpc>.freeze, [">= 0"])
66
- s.add_development_dependency(%q<grpc-tools>.freeze, ["~> 1.17.1"])
67
- s.add_development_dependency(%q<shoulda>.freeze, [">= 0"])
68
- s.add_development_dependency(%q<rdoc>.freeze, ["~> 3.12"])
69
- s.add_development_dependency(%q<bundler>.freeze, ["~> 1.0"])
70
- s.add_development_dependency(%q<juwelier>.freeze, ["~> 2.4.9"])
71
- s.add_development_dependency(%q<simplecov>.freeze, [">= 0"])
72
- else
73
- s.add_dependency(%q<concurrent-ruby>.freeze, [">= 1.0.5", "~> 1.0"])
74
- s.add_dependency(%q<faraday>.freeze, [">= 0"])
75
- s.add_dependency(%q<grpc>.freeze, [">= 0"])
76
- s.add_dependency(%q<grpc-tools>.freeze, ["~> 1.17.1"])
77
- s.add_dependency(%q<shoulda>.freeze, [">= 0"])
78
- s.add_dependency(%q<rdoc>.freeze, ["~> 3.12"])
79
- s.add_dependency(%q<bundler>.freeze, ["~> 1.0"])
80
- s.add_dependency(%q<juwelier>.freeze, ["~> 2.4.9"])
81
- s.add_dependency(%q<simplecov>.freeze, [">= 0"])
82
- end
67
+ if s.respond_to? :add_runtime_dependency then
68
+ s.add_runtime_dependency(%q<concurrent-ruby>.freeze, ["~> 1.0", ">= 1.0.5"])
69
+ s.add_runtime_dependency(%q<faraday>.freeze, [">= 0"])
70
+ s.add_runtime_dependency(%q<grpc>.freeze, [">= 0"])
71
+ s.add_runtime_dependency(%q<google-protobuf>.freeze, [">= 0"])
72
+ s.add_runtime_dependency(%q<googleapis-common-protos-types>.freeze, [">= 0"])
73
+ s.add_development_dependency(%q<grpc-tools>.freeze, [">= 0"])
74
+ s.add_development_dependency(%q<shoulda>.freeze, [">= 0"])
75
+ s.add_development_dependency(%q<rdoc>.freeze, ["~> 3.12"])
76
+ s.add_development_dependency(%q<bundler>.freeze, [">= 0"])
77
+ s.add_development_dependency(%q<juwelier>.freeze, ["~> 2.4.9"])
78
+ s.add_development_dependency(%q<simplecov>.freeze, [">= 0"])
79
+ s.add_development_dependency(%q<thin>.freeze, [">= 0"])
83
80
  else
84
- s.add_dependency(%q<concurrent-ruby>.freeze, [">= 1.0.5", "~> 1.0"])
81
+ s.add_dependency(%q<concurrent-ruby>.freeze, ["~> 1.0", ">= 1.0.5"])
85
82
  s.add_dependency(%q<faraday>.freeze, [">= 0"])
86
83
  s.add_dependency(%q<grpc>.freeze, [">= 0"])
87
- s.add_dependency(%q<grpc-tools>.freeze, ["~> 1.17.1"])
84
+ s.add_dependency(%q<google-protobuf>.freeze, [">= 0"])
85
+ s.add_dependency(%q<googleapis-common-protos-types>.freeze, [">= 0"])
86
+ s.add_dependency(%q<grpc-tools>.freeze, [">= 0"])
88
87
  s.add_dependency(%q<shoulda>.freeze, [">= 0"])
89
88
  s.add_dependency(%q<rdoc>.freeze, ["~> 3.12"])
90
- s.add_dependency(%q<bundler>.freeze, ["~> 1.0"])
89
+ s.add_dependency(%q<bundler>.freeze, [">= 0"])
91
90
  s.add_dependency(%q<juwelier>.freeze, ["~> 2.4.9"])
92
91
  s.add_dependency(%q<simplecov>.freeze, [">= 0"])
92
+ s.add_dependency(%q<thin>.freeze, [">= 0"])
93
93
  end
94
94
  end
95
95
 
@@ -0,0 +1,2 @@
1
+ PREFAB_LOG_CLIENT_BOOTSTRAP_LOG_LEVEL=debug PREFAB_CLOUD_HTTP=true PREFAB_API_KEY="1|local_development_api_key" PREFAB_API_URL="localhost:50051" ruby -Ilib test/harness_server.rb
2
+ #GRPC_TRACE=all GRPC_VERBOSITY=DEBUG PREFAB_LOG_CLIENT_BOOTSTRAP_LOG_LEVEL=debug PREFAB_CLOUD_HTTP=true PREFAB_API_KEY="1|local_development_api_key" PREFAB_API_URL="localhost:50051" ruby -Ilib test/harness_server.rb
@@ -0,0 +1,46 @@
1
+ require 'prefab-cloud-ruby'
2
+ require 'rack'
3
+ require 'base64'
4
+ require 'json'
5
+
6
+ handler = Rack::Handler::Thin
7
+
8
+ #
9
+ # This is a very lightweight server that allows the compliance harness to excercise the prefab client
10
+ #
11
+ class RackApp
12
+ def call(env)
13
+ props = CGI::parse(env["QUERY_STRING"])
14
+ props = JSON.parse(Base64.decode64(props["props"][0]))
15
+
16
+ key = props["key"]
17
+ namespace = props["namespace"]
18
+ environment = props["environment"]
19
+ user_key = props["user_key"]
20
+ is_feature_flag = !props["feature_flag"].nil?
21
+
22
+ client = Prefab::Client.new(
23
+ api_key: "1-#{environment}-local_development_api_key", #sets environment
24
+ namespace: namespace,
25
+ )
26
+
27
+ puts "Key #{key}"
28
+ puts "User #{user_key}"
29
+ puts "Environment #{environment}"
30
+ puts "Namespace #{namespace}"
31
+ puts "Props! #{props}"
32
+ puts "is_feature_flag! #{is_feature_flag}"
33
+
34
+ if is_feature_flag
35
+ puts "EVALFF #{key} #{user_key}"
36
+ rtn = client.feature_flag_client.get(key, user_key, []).to_s
37
+ else
38
+ rtn = client.config_client.get(key).to_s
39
+ end
40
+ puts "return #{rtn}"
41
+
42
+ [200, { "Content-Type" => "text/plain" }, rtn]
43
+ end
44
+ end
45
+
46
+ handler.run RackApp.new
@@ -16,26 +16,26 @@ class TestConfigLoader < Minitest::Test
16
16
 
17
17
  def test_highwater
18
18
  assert_equal 0, @loader.highwater_mark
19
- @loader.set(Prefab::ConfigDelta.new(id: 1, key: "sample_int", value: Prefab::ConfigValue.new(int: 456)))
19
+ @loader.set(Prefab::ConfigDelta.new(id: 1, key: "sample_int", default: Prefab::ConfigValue.new(int: 456)))
20
20
  assert_equal 1, @loader.highwater_mark
21
21
 
22
- @loader.set(Prefab::ConfigDelta.new(id: 5, key: "sample_int", value: Prefab::ConfigValue.new(int: 456)))
22
+ @loader.set(Prefab::ConfigDelta.new(id: 5, key: "sample_int", default: Prefab::ConfigValue.new(int: 456)))
23
23
  assert_equal 5, @loader.highwater_mark
24
- @loader.set(Prefab::ConfigDelta.new(id: 2, key: "sample_int", value: Prefab::ConfigValue.new(int: 456)))
24
+ @loader.set(Prefab::ConfigDelta.new(id: 2, key: "sample_int", default: Prefab::ConfigValue.new(int: 456)))
25
25
  assert_equal 5, @loader.highwater_mark
26
26
  end
27
27
 
28
28
  def test_keeps_most_recent
29
29
  assert_equal 0, @loader.highwater_mark
30
- @loader.set(Prefab::ConfigDelta.new(id: 1, key: "sample_int", value: Prefab::ConfigValue.new(int: 1)))
30
+ @loader.set(Prefab::ConfigDelta.new(id: 1, key: "sample_int", default: Prefab::ConfigValue.new(int: 1)))
31
31
  assert_equal 1, @loader.highwater_mark
32
32
  should_be :int, 1, "sample_int"
33
33
 
34
- @loader.set(Prefab::ConfigDelta.new(id: 4, key: "sample_int", value: Prefab::ConfigValue.new(int: 4)))
34
+ @loader.set(Prefab::ConfigDelta.new(id: 4, key: "sample_int", default: Prefab::ConfigValue.new(int: 4)))
35
35
  assert_equal 4, @loader.highwater_mark
36
36
  should_be :int, 4, "sample_int"
37
37
 
38
- @loader.set(Prefab::ConfigDelta.new(id: 2, key: "sample_int", value: Prefab::ConfigValue.new(int: 2)))
38
+ @loader.set(Prefab::ConfigDelta.new(id: 2, key: "sample_int", default: Prefab::ConfigValue.new(int: 2)))
39
39
  assert_equal 4, @loader.highwater_mark
40
40
  should_be :int, 4, "sample_int"
41
41
  end
@@ -43,13 +43,13 @@ class TestConfigLoader < Minitest::Test
43
43
  def test_api_precedence
44
44
  should_be :int, 123, "sample_int"
45
45
 
46
- @loader.set(Prefab::ConfigDelta.new(key: "sample_int", value: Prefab::ConfigValue.new(int: 456)))
46
+ @loader.set(Prefab::ConfigDelta.new(key: "sample_int", default: Prefab::ConfigValue.new(int: 456)))
47
47
  should_be :int, 456, "sample_int"
48
48
  end
49
49
 
50
50
  def test_api_deltas
51
51
  val = Prefab::ConfigValue.new(int: 456)
52
- delta = Prefab::ConfigDelta.new(key: "sample_int", value: val)
52
+ delta = Prefab::ConfigDelta.new(key: "sample_int", default: val)
53
53
  @loader.set(delta)
54
54
 
55
55
  deltas = Prefab::ConfigDeltas.new
@@ -59,10 +59,10 @@ class TestConfigLoader < Minitest::Test
59
59
 
60
60
  def test_loading_tombstones_removes_entries
61
61
  val = Prefab::ConfigValue.new(int: 456)
62
- delta = Prefab::ConfigDelta.new(key: "sample_int", value: val)
62
+ delta = Prefab::ConfigDelta.new(key: "sample_int", default: val)
63
63
  @loader.set(delta)
64
64
 
65
- delta = Prefab::ConfigDelta.new(key: "sample_int", value: nil)
65
+ delta = Prefab::ConfigDelta.new(key: "sample_int", default: nil)
66
66
  @loader.set(delta)
67
67
 
68
68
  deltas = Prefab::ConfigDeltas.new
@@ -72,8 +72,8 @@ class TestConfigLoader < Minitest::Test
72
72
  private
73
73
 
74
74
  def should_be(type, value, key)
75
- assert_equal type, @loader.calc_config[key].type
76
- assert_equal value, @loader.calc_config[key].send(type)
75
+ assert_equal type, @loader.calc_config[key].default.type
76
+ assert_equal value, @loader.calc_config[key].default.send(type)
77
77
  end
78
78
 
79
79
  end