prefab-cloud-ruby 0.0.25 → 0.0.26

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c33bc8eb9fbc578bd22a70c776ccac091a172ad5
4
- data.tar.gz: da276d5d1aa0dd291128d97ba400eecca82f76ac
3
+ metadata.gz: bf62820eed07ee6ad36cbc9a63bd48529db8b538
4
+ data.tar.gz: '001991a7e61fb7ee0174615d68735d3d2aa0613c'
5
5
  SHA512:
6
- metadata.gz: 459fa7c38493e659db17fd0232d683ec02eb40d2661ab5115c0328280ae71d321c51cc62115f51ce1e1a4c7d7dc3208d16cd99069e30a8f17d7da4521e7c0b49
7
- data.tar.gz: 4fa5acd406d9c26104e01e28c1d875f2dd558e138d2c77b2c8f305c732410ae1ddd86137f4386d8a7bf7060635ffe237c8d9432a42786b14f7954146e58695e3
6
+ metadata.gz: 62d3e17ea14421d7885d5973c0540b1d01476761ce7f9a00ddf4ddd56bbe86a11041e2c5152d927343e7fc57b98d0c9d58fb7924235e3fe0a172a2ad4dd9abc7
7
+ data.tar.gz: 508c23641e78b92c20e682db67bb4fa20c9200afca748044c5c51bdc9e254cb7f432e6c81fba2ea0b087c668a58763579aeee6353a2e1a019441774371210f7f
data/Gemfile CHANGED
@@ -1,6 +1,6 @@
1
1
  source "https://rubygems.org"
2
2
 
3
- gem 'grpc', '~> 1.13.0.pre3'
3
+ gem 'grpc', '~> 1.14.1'
4
4
  gem 'concurrent-ruby', '~> 1.0', '>= 1.0.5'
5
5
  gem 'aws-sdk-s3', '~> 1'
6
6
 
data/Gemfile.lock CHANGED
@@ -35,10 +35,10 @@ GEM
35
35
  faraday (~> 0.8)
36
36
  hashie (~> 3.5, >= 3.5.2)
37
37
  oauth2 (~> 1.0)
38
- google-protobuf (3.6.0)
39
- googleapis-common-protos-types (1.0.1)
38
+ google-protobuf (3.6.1)
39
+ googleapis-common-protos-types (1.0.2)
40
40
  google-protobuf (~> 3.0)
41
- grpc (1.13.0.pre3)
41
+ grpc (1.14.1)
42
42
  google-protobuf (~> 3.1)
43
43
  googleapis-common-protos-types (~> 1.0.0)
44
44
  grpc-tools (1.11.0)
@@ -105,7 +105,7 @@ DEPENDENCIES
105
105
  aws-sdk-s3 (~> 1)
106
106
  bundler (~> 1.0)
107
107
  concurrent-ruby (~> 1.0, >= 1.0.5)
108
- grpc (~> 1.13.0.pre3)
108
+ grpc (~> 1.14.1)
109
109
  grpc-tools (~> 1.11.0)
110
110
  juwelier (~> 2.4.9)
111
111
  rdoc (~> 3.12)
data/README.md CHANGED
@@ -19,25 +19,27 @@ See full documentation https://www.prefab.cloud/documentation/installation
19
19
 
20
20
  ## Supports
21
21
 
22
+ * [FeatureFlags](https://www.prefab.cloud/documentation/feature_flags) as a Service
22
23
  * [RateLimits](https://www.prefab.cloud/documentation/basic_rate_limits)
23
24
  * Millions of individual limits sharing the same policies
24
25
  * WebUI for tweaking limits & feature flags
25
26
  * Infinite retention for [deduplication workflows](https://www.prefab.cloud/documentation/once_and_only_once)
26
- * [FeatureFlags](https://www.prefab.cloud/documentation/feature_flags) as a Service
27
27
 
28
- ## Important note about Forking
28
+ ## Important note about Forking and realtime updates
29
+ Many ruby web servers fork. GRPC does not like to be forked. You should manually start gRPC streaming in the on_worker_boot or after_fork hook of your server. See some details on GRPC and forking: https://github.com/grpc/grpc/issues/7951#issuecomment-335998583
29
30
 
30
- Many ruby web servers fork. GRPC does not like to be forked. You should instantiate your prefab clients in the on_worker_boot or after_fork hook of your server. See some details on GRPC and forking: https://github.com/grpc/grpc/issues/7951#issuecomment-335998583
31
+ ```ruby
32
+
33
+ #config/initializers/prefab.rb
34
+ $prefab = Prefab::Client.new(shared_cache: Rails.cache,
35
+ logdev: $stdout)
36
+ Rails.logger = $prefab.log
37
+ ```
31
38
 
32
39
  ```ruby
33
40
  #puma.rb
34
41
  on_worker_boot do
35
- $prefab = Prefab::Client.new(shared_cache: Rails.cache,
36
- logdev: $stdout,
37
- log_formatter: proc {|severity, datetime, progname, msg|
38
- "#{severity.ljust(5)} #{datetime}: #{progname} #{msg}\n"
39
- })
40
- Rails.logger = $prefab.log
42
+ $prefab.start_streaming
41
43
  end
42
44
  ```
43
45
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.25
1
+ 0.0.26
data/lib/prefab/client.rb CHANGED
@@ -3,6 +3,10 @@ module Prefab
3
3
 
4
4
  MAX_SLEEP_SEC = 10
5
5
  BASE_SLEEP_SEC = 0.5
6
+ DEFAULT_LOG_FORMATTER = proc {|severity, datetime, progname, msg|
7
+ "#{severity.ljust(5)} #{datetime}: #{progname} #{msg}\n"
8
+ }
9
+
6
10
 
7
11
  attr_reader :account_id, :shared_cache, :stats, :namespace, :creds, :interceptor, :api_key
8
12
 
@@ -12,7 +16,7 @@ module Prefab
12
16
  shared_cache: nil, # Something that quacks like Rails.cache ideally memcached
13
17
  local: false,
14
18
  namespace: "",
15
- log_formatter: nil
19
+ log_formatter: DEFAULT_LOG_FORMATTER
16
20
  )
17
21
  raise "No API key. Set PREFAB_API_KEY env var" if api_key.nil? || api_key.empty?
18
22
  @logdev = (logdev || $stdout)
@@ -17,10 +17,13 @@ module Prefab
17
17
  @s3 = Aws::S3::Resource.new(region: 'us-east-1')
18
18
 
19
19
  load_checkpoint
20
- start_api_connection_thread(@config_loader.highwater_mark)
21
20
  start_checkpointing_thread
22
21
  end
23
22
 
23
+ def start_streaming
24
+ start_api_connection_thread(@config_loader.highwater_mark)
25
+ end
26
+
24
27
  def get(prop)
25
28
  @initialization_lock.with_read_lock do
26
29
  @config_resolver.get(prop)
@@ -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.0.25 ruby lib
5
+ # stub: prefab-cloud-ruby 0.0.26 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "prefab-cloud-ruby".freeze
9
- s.version = "0.0.25"
9
+ s.version = "0.0.26"
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 = "2018-07-18"
14
+ s.date = "2018-09-05"
15
15
  s.description = "RateLimits & Config as a service".freeze
16
16
  s.email = "jdwyer@prefab.cloud".freeze
17
17
  s.extra_rdoc_files = [
@@ -51,14 +51,14 @@ Gem::Specification.new do |s|
51
51
  ]
52
52
  s.homepage = "http://github.com/prefab-cloud/prefab-cloud-ruby".freeze
53
53
  s.licenses = ["MIT".freeze]
54
- s.rubygems_version = "2.6.14".freeze
54
+ s.rubygems_version = "2.6.13".freeze
55
55
  s.summary = "Prefab Ruby Infrastructure".freeze
56
56
 
57
57
  if s.respond_to? :specification_version then
58
58
  s.specification_version = 4
59
59
 
60
60
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
61
- s.add_runtime_dependency(%q<grpc>.freeze, ["~> 1.13.0.pre3"])
61
+ s.add_runtime_dependency(%q<grpc>.freeze, ["~> 1.14.1"])
62
62
  s.add_runtime_dependency(%q<concurrent-ruby>.freeze, [">= 1.0.5", "~> 1.0"])
63
63
  s.add_runtime_dependency(%q<aws-sdk-s3>.freeze, ["~> 1"])
64
64
  s.add_development_dependency(%q<grpc-tools>.freeze, ["~> 1.11.0"])
@@ -68,7 +68,7 @@ Gem::Specification.new do |s|
68
68
  s.add_development_dependency(%q<juwelier>.freeze, ["~> 2.4.9"])
69
69
  s.add_development_dependency(%q<simplecov>.freeze, [">= 0"])
70
70
  else
71
- s.add_dependency(%q<grpc>.freeze, ["~> 1.13.0.pre3"])
71
+ s.add_dependency(%q<grpc>.freeze, ["~> 1.14.1"])
72
72
  s.add_dependency(%q<concurrent-ruby>.freeze, [">= 1.0.5", "~> 1.0"])
73
73
  s.add_dependency(%q<aws-sdk-s3>.freeze, ["~> 1"])
74
74
  s.add_dependency(%q<grpc-tools>.freeze, ["~> 1.11.0"])
@@ -79,7 +79,7 @@ Gem::Specification.new do |s|
79
79
  s.add_dependency(%q<simplecov>.freeze, [">= 0"])
80
80
  end
81
81
  else
82
- s.add_dependency(%q<grpc>.freeze, ["~> 1.13.0.pre3"])
82
+ s.add_dependency(%q<grpc>.freeze, ["~> 1.14.1"])
83
83
  s.add_dependency(%q<concurrent-ruby>.freeze, [">= 1.0.5", "~> 1.0"])
84
84
  s.add_dependency(%q<aws-sdk-s3>.freeze, ["~> 1"])
85
85
  s.add_dependency(%q<grpc-tools>.freeze, ["~> 1.11.0"])
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: prefab-cloud-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.25
4
+ version: 0.0.26
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeff Dwyer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-07-18 00:00:00.000000000 Z
11
+ date: 2018-09-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: grpc
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 1.13.0.pre3
19
+ version: 1.14.1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 1.13.0.pre3
26
+ version: 1.14.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: concurrent-ruby
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -199,7 +199,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
199
199
  version: '0'
200
200
  requirements: []
201
201
  rubyforge_project:
202
- rubygems_version: 2.6.14
202
+ rubygems_version: 2.6.13
203
203
  signing_key:
204
204
  specification_version: 4
205
205
  summary: Prefab Ruby Infrastructure