feature_toggles 1.1.0 → 1.2.0

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: c5c7424620e5960a2af091b3c18324fbbe8c67b26d6c76a66c1ff5a565f470fd
4
- data.tar.gz: 821a7d830e4b917b621067dd81e3dcffd2db9ae36dd2f40ffd337da4fe5f2043
3
+ metadata.gz: 9c563b7f8bb5a81de5a4fe6f38ff05097952adddaed57a01c4da733fd54ff111
4
+ data.tar.gz: ff831f11fd159101df3666ec7e9043027b69d9d86cd77e21e2ea55d80ed44aab
5
5
  SHA512:
6
- metadata.gz: b2fc3fcb95576f873f56b4a693a9a4e62c78c18c3aad6c4fbb264920640d785f72818ba1dfdbb03a06df01371ea9f0efa80ff859b5a4ba96e61f210f2f544f27
7
- data.tar.gz: 11304a728a27e23dd7cbf3c7766c674e95c299e229761d80d1bf49b1b6b4386f7cb58fe3b1e2a08cf110b60f6e47fe063c029b669306cddc7a9e10c7c8be3c5b
6
+ metadata.gz: 321d4dbc0eb67ee7c71f32d319c2adb30f3637775bd37ac1744278110e2cb2bd5a29d67cdf2334feea27053f10892d1249028e6ef21a2f2ca41d59b19590d41f
7
+ data.tar.gz: ff6c7dfce36e4eaba85ee5f35950b11d6ae35a91bfbc1e4652a52914af815ab64bd40c8fbc0d19023b09e31057995fafa752693e6cf5f63a82a2274c466324a9
@@ -3,7 +3,7 @@
3
3
  module FeatureToggles
4
4
  class Feature
5
5
  def initialize(name, resolver, **metadata)
6
- @name = name
6
+ @name = name
7
7
  @resolver = resolver
8
8
  @metadata = metadata
9
9
  end
@@ -8,7 +8,7 @@ module FeatureToggles
8
8
  include Enumerable
9
9
 
10
10
  # Which env variables should be considered truthy
11
- POSSIBLE_ENABLING_VALUES = %w(true on yes 1).freeze
11
+ POSSIBLE_ENABLING_VALUES = %w[true on yes 1].freeze
12
12
 
13
13
  def initialize(definition_file_paths = nil, &block)
14
14
  @features = {}
@@ -17,7 +17,7 @@ module FeatureToggles
17
17
  instance_eval(File.read(file), file)
18
18
  end
19
19
 
20
- instance_eval(&block) if block_given?
20
+ instance_eval(&block) if block
21
21
  end
22
22
 
23
23
  def env(val)
@@ -34,24 +34,24 @@ module FeatureToggles
34
34
  features.keys
35
35
  end
36
36
 
37
- def enabled?(feature, *args)
38
- enabled_globally?(feature) || !!features.fetch(feature).resolver.call(*args)
37
+ def enabled?(feature, *args, **kwargs)
38
+ enabled_globally?(feature) || !!features.fetch(feature).resolver.call(*args, **kwargs)
39
39
  end
40
40
 
41
- def for(*args)
42
- Proxy.new(self, *args)
41
+ def for(*args, **kwargs)
42
+ Proxy.new(self, *args, **kwargs)
43
43
  end
44
44
 
45
- def to_a(*args)
45
+ def to_a(*args, **kwargs)
46
46
  names.map do |feature|
47
- {feature: feature, enabled: enabled?(feature, *args)}
47
+ {feature: feature, enabled: enabled?(feature, *args, **kwargs)}
48
48
  end
49
49
  end
50
50
 
51
- def to_h(*args)
52
- Hash[features.map do |feature, _|
53
- [feature, enabled?(feature, *args)]
54
- end]
51
+ def to_h(*args, **kwargs)
52
+ features.map do |feature, _|
53
+ [feature, enabled?(feature, *args, **kwargs)]
54
+ end.to_h
55
55
  end
56
56
 
57
57
  def each
@@ -2,25 +2,26 @@
2
2
 
3
3
  module FeatureToggles
4
4
  class Proxy
5
- def initialize(toggle, *args)
5
+ def initialize(toggle, *args, **kwargs)
6
6
  @toggle = toggle
7
7
  @args = args
8
+ @kwargs = kwargs
8
9
  end
9
10
 
10
11
  def enabled?(feature)
11
- toggle.enabled?(feature, *args)
12
+ toggle.enabled?(feature, *args, **kwargs)
12
13
  end
13
14
 
14
15
  def to_a
15
- toggle.to_a(*args)
16
+ toggle.to_a(*args, **kwargs)
16
17
  end
17
18
 
18
19
  def to_h
19
- toggle.to_h(*args)
20
+ toggle.to_h(*args, **kwargs)
20
21
  end
21
22
 
22
23
  private
23
24
 
24
- attr_reader :toggle, :args
25
+ attr_reader :toggle, :args, :kwargs
25
26
  end
26
27
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module FeatureToggles
4
- VERSION = "1.1.0"
4
+ VERSION = "1.2.0"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: feature_toggles
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Merkushin
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-11-06 00:00:00.000000000 Z
11
+ date: 2021-07-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '1.1'
33
+ version: '1.3'
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.1'
40
+ version: '1.3'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: pry-byebug
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -72,29 +72,29 @@ dependencies:
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '3.0'
75
+ version: '3.10'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '3.0'
82
+ version: '3.10'
83
83
  - !ruby/object:Gem::Dependency
84
- name: rubocop
84
+ name: standard
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '0.58'
89
+ version: '1.1'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '0.58'
97
- description:
96
+ version: '1.1'
97
+ description:
98
98
  email:
99
99
  - merkushin.m.s@gmail.com
100
100
  executables: []
@@ -114,23 +114,23 @@ licenses:
114
114
  - MIT
115
115
  metadata:
116
116
  allowed_push_host: https://rubygems.org
117
- post_install_message:
117
+ post_install_message:
118
118
  rdoc_options: []
119
119
  require_paths:
120
120
  - lib
121
121
  required_ruby_version: !ruby/object:Gem::Requirement
122
122
  requirements:
123
- - - ">="
123
+ - - ">"
124
124
  - !ruby/object:Gem::Version
125
- version: '0'
125
+ version: '2.5'
126
126
  required_rubygems_version: !ruby/object:Gem::Requirement
127
127
  requirements:
128
128
  - - ">="
129
129
  - !ruby/object:Gem::Version
130
130
  version: '0'
131
131
  requirements: []
132
- rubygems_version: 3.0.6
133
- signing_key:
132
+ rubygems_version: 3.1.2
133
+ signing_key:
134
134
  specification_version: 4
135
135
  summary: This gem provides a mechanism for pending features.
136
136
  test_files: []