feature_toggles 1.1.0 → 1.2.0

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: 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: []