fflags 0.4.4 → 0.5.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: 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: []