prefab-cloud-ruby 1.7.0 → 1.7.1

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
  SHA256:
3
- metadata.gz: d31688d2a9cd1c87625a186f07d7c46123fe1ee298991b05debe9647414b0504
4
- data.tar.gz: 279526d7ac47e21e304c731a76a1946f164b081d79edab853d9efcbe07fc5db5
3
+ metadata.gz: c3b95e2969c65849875591221843811b015a60ac51b8281b090a4e0a81bdc813
4
+ data.tar.gz: c7dcf60b7d6b8a49d973ce1208ba6c56e31bb140aaffda2cfc1ee0fad453fc06
5
5
  SHA512:
6
- metadata.gz: c13c066054f9924510ae2101ac68d0dc55561da36a696c5fd5b638e7cdb61c4efe13f7b0166cabf32ad16c638d942c9e649cd75dc03f575967c0e1e3016555ae
7
- data.tar.gz: f9c750af615228ee3852eba6d33f1d698a47e733eeec71c008be5e9b323746559734db376d8343d2630576e7d7b8be001481f8e4e27ca453b487f2ee78bf0b06
6
+ metadata.gz: 6a15672e8ab7597ad858aa32424850b5beab72a6066c0111253c6ca43d2407de0ec8c9ccebf654d8f1a7ff730675cac966050b2143293b475f728adc672bdc46
7
+ data.tar.gz: c14415715bfdf5e61d1075e2cd9f29a91e01f320d4305cd4328397ad5d88792a49ec5a215e791b343f687cc23f997aa24c106887a66508be6f3d980badfb4deb
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.7.1 - 2024-04-11
4
+
5
+ - Ergonomics (#191)
6
+
3
7
  ## 1.7.0 - 2024-04-10
4
8
 
5
9
  - Add duration support (#187)
data/README.md CHANGED
@@ -19,7 +19,7 @@ result = client.enabled? "my-first-feature-flag", context
19
19
  puts "my-first-feature-flag is: #{result}"
20
20
  ```
21
21
 
22
- See full documentation https://docs.prefab.cloud/docs/ruby-sdk/ruby
22
+ See full documentation https://docs.prefab.cloud/docs/sdks/ruby
23
23
 
24
24
  ## Supports
25
25
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.7.0
1
+ 1.7.1
data/lib/prefab/client.rb CHANGED
@@ -130,7 +130,9 @@ module Prefab
130
130
  Prefab::Client.new(@options.for_fork)
131
131
  end
132
132
 
133
- private
133
+ def defined?(key)
134
+ !!config_client.send(:raw, key)
135
+ end
134
136
 
135
137
  def is_ff?(key)
136
138
  raw = config_client.send(:raw, key)
data/lib/prefab/prefab.rb CHANGED
@@ -28,9 +28,9 @@ module Prefab
28
28
  @singleton.set_rails_loggers
29
29
  end
30
30
 
31
- def self.get(key, properties = NO_DEFAULT_PROVIDED)
31
+ def self.get(key, default = NO_DEFAULT_PROVIDED, jit_context = NO_DEFAULT_PROVIDED)
32
32
  ensure_initialized key
33
- @singleton.get(key, properties)
33
+ @singleton.get(key, default, jit_context)
34
34
  end
35
35
 
36
36
  def self.enabled?(feature_name, jit_context = NO_DEFAULT_PROVIDED)
@@ -68,6 +68,16 @@ module Prefab
68
68
  SemanticLogger::Levels.index(level) <= SemanticLogger::Levels.index(log.level)
69
69
  end
70
70
 
71
+ def self.defined?(key)
72
+ ensure_initialized key
73
+ @singleton.defined?(key)
74
+ end
75
+
76
+ def self.is_ff?(key)
77
+ ensure_initialized key
78
+ @singleton.is_ff?(key)
79
+ end
80
+
71
81
  private
72
82
 
73
83
  def self.ensure_initialized(key = nil)
@@ -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 1.7.0 ruby lib
5
+ # stub: prefab-cloud-ruby 1.7.1 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "prefab-cloud-ruby".freeze
9
- s.version = "1.7.0"
9
+ s.version = "1.7.1"
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 = "2024-04-10"
14
+ s.date = "2024-04-11"
15
15
  s.description = "Feature Flags, Live Config, and Dynamic Log Levels as a service".freeze
16
16
  s.email = "jdwyer@prefab.cloud".freeze
17
17
  s.extra_rdoc_files = [
data/test/test_client.rb CHANGED
@@ -411,6 +411,22 @@ class TestClient < Minitest::Test
411
411
  assert_summary client, {}
412
412
  end
413
413
 
414
+ def test_defined
415
+ client = new_client
416
+
417
+ refute client.defined?('does_not_exist')
418
+ assert client.defined?('sample_int')
419
+ assert client.defined?('disabled_flag')
420
+ end
421
+
422
+ def test_is_ff
423
+ client = new_client
424
+
425
+ assert client.is_ff?('flag_with_a_value')
426
+ refute client.is_ff?('sample_int')
427
+ refute client.is_ff?('does_not_exist')
428
+ end
429
+
414
430
  private
415
431
 
416
432
  def basic_value_config
data/test/test_prefab.rb CHANGED
@@ -4,9 +4,41 @@ require 'test_helper'
4
4
 
5
5
  class TestPrefab < Minitest::Test
6
6
  def test_get
7
- Prefab.init(prefab_options)
7
+ init_once
8
+
8
9
  assert_equal 'default', Prefab.get('does.not.exist', 'default')
10
+ assert_equal 'default', Prefab.get('does.not.exist', 'default', { some: { key: 'value' } })
9
11
  assert_equal 'test sample value', Prefab.get('sample')
10
12
  assert_equal 123, Prefab.get('sample_int')
13
+
14
+ ctx = { user: { key: 'jimmy' } }
15
+ assert_equal 'default-goes-here', Prefab.get('user_key_match', 'default-goes-here', ctx)
16
+
17
+ ctx = { user: { key: 'abc123' } }
18
+ assert_equal true, Prefab.get('user_key_match', nil, ctx)
19
+ end
20
+
21
+ def test_defined
22
+ init_once
23
+
24
+ refute Prefab.defined?('does_not_exist')
25
+ assert Prefab.defined?('sample_int')
26
+ assert Prefab.defined?('disabled_flag')
27
+ end
28
+
29
+ def test_is_ff
30
+ init_once
31
+
32
+ assert Prefab.is_ff?('flag_with_a_value')
33
+ refute Prefab.is_ff?('sample_int')
34
+ refute Prefab.is_ff?('does_not_exist')
35
+ end
36
+
37
+ private
38
+
39
+ def init_once
40
+ unless Prefab.instance_variable_get("@singleton")
41
+ Prefab.init(prefab_options)
42
+ end
11
43
  end
12
44
  end
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: 1.7.0
4
+ version: 1.7.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeff Dwyer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-04-10 00:00:00.000000000 Z
11
+ date: 2024-04-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: concurrent-ruby