fflags 0.4.4 → 0.5.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: 0df01caac26c438d0a6d82b77c14100a71fec4ace3f2528c1157722b17eb0c86
4
- data.tar.gz: 400a25988a371d531849540a4e1768ed166647e6969e449085915cd8251e59bc
3
+ metadata.gz: 489918f7eadf6dd9c52bc102e47857ea38602d546dc6261c70a703098515f8bd
4
+ data.tar.gz: 30677e51f6d114a5ca8597b591ac762bb1c45c3cc984b0e99da9692f2660384b
5
5
  SHA512:
6
- metadata.gz: bffe38347c23de96e913ec1b4b168e3e628b32ed80f976eed9536f17e4e0ae2e8e40ef446eaf0ab4a5e51b6e06d829e52ed0a0224b8ccaab9eae88a69ee81c5c
7
- data.tar.gz: 20177dca418c97cbf1e3f3882cb2b40f6431c356b809e57e85e1116bbdcf47195bfbeb49118f810ef5ab367bbd45ec356c46249c77a32de06a1eda731876a807
6
+ metadata.gz: fb8a91ba3df7c42417aeed9fc9983bc69594d46fecdd3080d0f18fe9c0027806bbf30933e8260efe93d71c34bed56731da9a2dcf94c5f06c9fea45601cf18254
7
+ data.tar.gz: 8933d2ca66c0d2b7391759aa49bc0bd1cfcfd31f4924576520059c4604316c7bada778b9f8855aa28d4572d9d7590f94c10fd2a18b72e4845b5d4be460a33ce2
data/.circleci/config.yml CHANGED
@@ -2,13 +2,13 @@
2
2
  #
3
3
  # Check https://circleci.com/docs/2.0/language-ruby/ for more details
4
4
  #
5
- version: 2
5
+ version: 2.1
6
6
  jobs:
7
7
  build:
8
8
  docker:
9
9
  # specify the version you desire here
10
- - image: circleci/ruby:2.4.1-node-browsers
11
-
10
+ - image: circleci/ruby:2.7-browsers
11
+
12
12
  # Specify service dependencies here if necessary
13
13
  # CircleCI maintains a library of pre-built images
14
14
  # documented at https://circleci.com/docs/2.0/circleci-images/
data/.travis.yml CHANGED
@@ -2,4 +2,4 @@ sudo: false
2
2
  language: ruby
3
3
  rvm:
4
4
  - 2.4.0
5
- before_install: gem install bundler -v 1.16.0
5
+ before_install: gem install bundler -v 2.1.4
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- fflags (0.4.4)
4
+ fflags (0.5.1)
5
5
  redis (>= 3.0.0)
6
6
 
7
7
  GEM
@@ -9,6 +9,7 @@ GEM
9
9
  specs:
10
10
  ast (2.3.0)
11
11
  coderay (1.1.2)
12
+ connection_pool (2.4.1)
12
13
  diff-lcs (1.3)
13
14
  docile (1.1.5)
14
15
  json (2.1.0)
@@ -22,7 +23,10 @@ GEM
22
23
  method_source (~> 0.9.0)
23
24
  rainbow (3.0.0)
24
25
  rake (10.5.0)
25
- redis (4.0.1)
26
+ redis (5.3.0)
27
+ redis-client (>= 0.22.0)
28
+ redis-client (0.23.0)
29
+ connection_pool
26
30
  rspec (3.7.0)
27
31
  rspec-core (~> 3.7.0)
28
32
  rspec-expectations (~> 3.7.0)
@@ -55,7 +59,7 @@ PLATFORMS
55
59
  ruby
56
60
 
57
61
  DEPENDENCIES
58
- bundler (~> 1.16)
62
+ bundler (~> 2.1.4)
59
63
  fflags!
60
64
  pry
61
65
  rake (~> 10.0)
@@ -64,4 +68,4 @@ DEPENDENCIES
64
68
  simplecov
65
69
 
66
70
  BUNDLED WITH
67
- 1.17.3
71
+ 2.1.4
data/fflags.gemspec CHANGED
@@ -23,7 +23,7 @@ Gem::Specification.new do |spec|
23
23
 
24
24
  spec.add_runtime_dependency 'redis', '>= 3.0.0'
25
25
 
26
- spec.add_development_dependency 'bundler', '~> 1.16'
26
+ spec.add_development_dependency 'bundler', '~> 2.1.4'
27
27
  spec.add_development_dependency 'pry'
28
28
  spec.add_development_dependency 'rake', '~> 10.0'
29
29
  spec.add_development_dependency 'rspec', '~> 3.0'
data/lib/fflags/api.rb CHANGED
@@ -14,8 +14,10 @@ module FFlags
14
14
  end
15
15
 
16
16
  def set_flag(flag_name, bool)
17
- supported_flag?(flag_name) &&
18
- client.set(key, flag_name, bool)
17
+ return false unless supported_flag?(flag_name)
18
+
19
+ client.set(key, flag_name, bool)
20
+ true
19
21
  end
20
22
 
21
23
  def get_flag(flag_name)
@@ -58,7 +60,7 @@ module FFlags
58
60
  end
59
61
 
60
62
  def client
61
- RedisClient
63
+ @client ||= RedisClient.new
62
64
  end
63
65
 
64
66
  def default_flags
@@ -1,28 +1,29 @@
1
1
  module FFlags
2
2
  # Redis Client
3
3
  class RedisClient
4
- class << self
5
- def set(key, field, value)
6
- client.hmset(key, field, value) == 'OK'
7
- end
4
+ # hset doesn't return explicitly true or false
5
+ def set(key, field, value)
6
+ return false if value.nil?
8
7
 
9
- def all(key)
10
- client.hgetall(key)
11
- end
8
+ client.hset(key, field, value.to_s)
9
+ end
12
10
 
13
- def get(key, field)
14
- client.hget(key, field)
15
- end
11
+ def all(key)
12
+ client.hgetall(key)
13
+ end
16
14
 
17
- def reset(key)
18
- client.del(key)
19
- end
15
+ def get(key, field)
16
+ client.hget(key, field)
17
+ end
18
+
19
+ def reset(key)
20
+ client.del(key)
21
+ end
20
22
 
21
- private
23
+ private
22
24
 
23
- def client
24
- @client ||= Redis.new(url: FFlags.configuration.redis_url)
25
- end
25
+ def client
26
+ @client ||= Redis.new(url: FFlags.configuration.redis_url)
26
27
  end
27
28
  end
28
29
  end
@@ -1,3 +1,3 @@
1
1
  module FFlags
2
- VERSION = '0.4.4'.freeze
2
+ VERSION = '0.5.1'.freeze
3
3
  end
data/lib/fflags.rb CHANGED
@@ -17,9 +17,14 @@ module FFlags
17
17
  # end
18
18
  def config
19
19
  yield configuration
20
+ reset_api
20
21
  api.load_flags
21
22
  end
22
23
 
24
+ def reset_api
25
+ @api = nil
26
+ end
27
+
23
28
  # Reset the whole config to the default values
24
29
  #
25
30
  # Ex.
@@ -123,7 +128,7 @@ module FFlags
123
128
  def method_missing(method_name, *args)
124
129
  flag_name = method_name[0..-2]
125
130
 
126
- return super if !method_name.to_s.end_with?('?')
131
+ return super unless method_name.to_s.end_with?('?')
127
132
 
128
133
  api.enabled?(flag_name)
129
134
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fflags
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.4
4
+ version: 0.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Faizal Zakaria
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-05-18 00:00:00.000000000 Z
11
+ date: 2024-12-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: redis
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '1.16'
33
+ version: 2.1.4
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '1.16'
40
+ version: 2.1.4
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: pry
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -136,7 +136,7 @@ homepage: https://github.com/faizalzakaria/fflags
136
136
  licenses:
137
137
  - MIT
138
138
  metadata: {}
139
- post_install_message:
139
+ post_install_message:
140
140
  rdoc_options: []
141
141
  require_paths:
142
142
  - lib
@@ -151,8 +151,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
151
151
  - !ruby/object:Gem::Version
152
152
  version: '0'
153
153
  requirements: []
154
- rubygems_version: 3.0.2
155
- signing_key:
154
+ rubygems_version: 3.1.6
155
+ signing_key:
156
156
  specification_version: 4
157
157
  summary: Feature flags that can be override on the fly.
158
158
  test_files: []