prefab-cloud-ruby 1.7.0 → 1.7.1

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.
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