simple_flag 0.2.0 → 0.3.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 +4 -4
- data/.github/workflows/ci.yml +30 -0
- data/.gitignore +3 -0
- data/.rubocop.yml +6 -0
- data/Gemfile +3 -2
- data/lib/simple_flag/overrides.rb +3 -2
- data/lib/simple_flag/version.rb +1 -1
- data/lib/simple_flag.rb +3 -3
- data/simple_flag.gemspec +2 -5
- metadata +7 -48
- data/.travis.yml +0 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bbd1947bf544e442e36623fd657fb8cdf6e0efe8fb63ec7f0971f262be989ca0
|
4
|
+
data.tar.gz: 195755be62e37c5e6ba4e6ac26c35b1923336fe928077e8fb949e2c4b1ef9c24
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2513065a2f663f190be82516af7f633b85ac3ea3615d036cc296c08e7a19f151a0fff34f0e025d67e8c452ca7b14e393f9dc087aa05778fb7ebc4be015a2e0b5
|
7
|
+
data.tar.gz: 1bae49ddd11e11832f46cd908c70998fef9097b114d66c034d4cb6c32e627aa968ad73b4cd3adbb0118ee3acb18728181607c52a27116ab3448496661521f49d
|
@@ -0,0 +1,30 @@
|
|
1
|
+
name: CI
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches: [ 'master' ]
|
6
|
+
pull_request:
|
7
|
+
branches: [ 'master' ]
|
8
|
+
|
9
|
+
permissions:
|
10
|
+
contents: read
|
11
|
+
|
12
|
+
jobs:
|
13
|
+
test:
|
14
|
+
|
15
|
+
runs-on: ubuntu-latest
|
16
|
+
strategy:
|
17
|
+
matrix:
|
18
|
+
ruby-version: ['2.7', '3.0', '3.1', '3.2']
|
19
|
+
|
20
|
+
steps:
|
21
|
+
- uses: actions/checkout@v3
|
22
|
+
- name: Set up Ruby
|
23
|
+
uses: ruby/setup-ruby@v1
|
24
|
+
with:
|
25
|
+
ruby-version: ${{ matrix.ruby-version }}
|
26
|
+
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
|
27
|
+
- name: Run linter
|
28
|
+
run: bundle exec rubocop
|
29
|
+
- name: Run tests
|
30
|
+
run: bundle exec rspec
|
data/.gitignore
CHANGED
data/.rubocop.yml
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
AllCops:
|
2
|
+
NewCops: enable
|
3
|
+
Gemspec/RequiredRubyVersion:
|
4
|
+
Enabled: false
|
1
5
|
Layout/LineLength:
|
2
6
|
Max: 120
|
3
7
|
Layout/MultilineMethodCallIndentation:
|
@@ -12,3 +16,5 @@ Style/GuardClause:
|
|
12
16
|
Enabled: false
|
13
17
|
Style/NumericPredicate:
|
14
18
|
Enabled: false
|
19
|
+
Style/OptionalBooleanParameter:
|
20
|
+
Enabled: false
|
data/Gemfile
CHANGED
@@ -1,6 +1,8 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
class SimpleFlag
|
4
|
+
# Overrides module provides methods for overriding feature flags during testing.
|
2
5
|
module Overrides
|
3
|
-
|
4
6
|
def override(name, result = true, &block)
|
5
7
|
raise FlagNotDefined, "Feature flag `#{name}` is not defined" unless flag?(name)
|
6
8
|
|
@@ -42,6 +44,5 @@ class SimpleFlag
|
|
42
44
|
def overridden?(name)
|
43
45
|
@overrides.key?(name)
|
44
46
|
end
|
45
|
-
|
46
47
|
end
|
47
48
|
end
|
data/lib/simple_flag/version.rb
CHANGED
data/lib/simple_flag.rb
CHANGED
@@ -127,7 +127,7 @@ class SimpleFlag
|
|
127
127
|
|
128
128
|
if original_arity != override_arity
|
129
129
|
raise FlagArgumentsMismatch, "Flag '#{flag_name}' expects #{flag_arity} arguments, " \
|
130
|
-
|
130
|
+
"but #{override_arity} arguments were given"
|
131
131
|
end
|
132
132
|
end
|
133
133
|
|
@@ -135,11 +135,11 @@ class SimpleFlag
|
|
135
135
|
if flag_arity < 0 && (flag_arity.abs - 1) > args_size
|
136
136
|
# Contains variable -n-1 arguments
|
137
137
|
raise FlagArgumentsMismatch, "Flag '#{flag_name}' expects #{flag_arity.abs - 1} or more arguments, " \
|
138
|
-
|
138
|
+
"but #{args_size} arguments were given"
|
139
139
|
elsif flag_arity >= 0 && flag_arity != args_size
|
140
140
|
# Contains zero or fixed number of arguments
|
141
141
|
raise FlagArgumentsMismatch, "Flag '#{flag_name}' expects #{flag_arity} arguments, " \
|
142
|
-
|
142
|
+
"but #{args_size} arguments were given"
|
143
143
|
end
|
144
144
|
end
|
145
145
|
end
|
data/simple_flag.gemspec
CHANGED
@@ -18,8 +18,9 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.metadata['changelog_uri'] = 'https://github.com/wojtha/simple_flag/blob/master/CHANGELOG.md'
|
19
19
|
spec.metadata['source_code_uri'] = 'https://github.com/wojtha/simple_flag'
|
20
20
|
spec.metadata['bug_tracker_uri'] = 'https://github.com/wojtha/simple_flag/issues'
|
21
|
+
spec.metadata['rubygems_mfa_required'] = 'true'
|
21
22
|
|
22
|
-
spec.required_ruby_version = '>= 2.
|
23
|
+
spec.required_ruby_version = '>= 2.7.0'
|
23
24
|
|
24
25
|
# Specify which files should be added to the gem when it is released.
|
25
26
|
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
@@ -29,8 +30,4 @@ Gem::Specification.new do |spec|
|
|
29
30
|
spec.bindir = 'bin'
|
30
31
|
spec.executables = []
|
31
32
|
spec.require_paths = ['lib']
|
32
|
-
|
33
|
-
spec.add_development_dependency 'bundler'
|
34
|
-
spec.add_development_dependency 'rake'
|
35
|
-
spec.add_development_dependency 'rspec'
|
36
33
|
end
|
metadata
CHANGED
@@ -1,57 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simple_flag
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vojtěch Kusý
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
12
|
-
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: bundler
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - ">="
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '0'
|
20
|
-
type: :development
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - ">="
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '0'
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: rake
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - ">="
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '0'
|
34
|
-
type: :development
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - ">="
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: '0'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: rspec
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - ">="
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '0'
|
48
|
-
type: :development
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - ">="
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '0'
|
11
|
+
date: 2023-11-01 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
55
13
|
description: Simple but powerful feature flag implementation in 90 LOC.
|
56
14
|
email:
|
57
15
|
- wojtha@gmail.com
|
@@ -59,10 +17,10 @@ executables: []
|
|
59
17
|
extensions: []
|
60
18
|
extra_rdoc_files: []
|
61
19
|
files:
|
20
|
+
- ".github/workflows/ci.yml"
|
62
21
|
- ".gitignore"
|
63
22
|
- ".rspec"
|
64
23
|
- ".rubocop.yml"
|
65
|
-
- ".travis.yml"
|
66
24
|
- Gemfile
|
67
25
|
- LICENSE
|
68
26
|
- README.md
|
@@ -82,6 +40,7 @@ metadata:
|
|
82
40
|
changelog_uri: https://github.com/wojtha/simple_flag/blob/master/CHANGELOG.md
|
83
41
|
source_code_uri: https://github.com/wojtha/simple_flag
|
84
42
|
bug_tracker_uri: https://github.com/wojtha/simple_flag/issues
|
43
|
+
rubygems_mfa_required: 'true'
|
85
44
|
post_install_message:
|
86
45
|
rdoc_options: []
|
87
46
|
require_paths:
|
@@ -90,14 +49,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
90
49
|
requirements:
|
91
50
|
- - ">="
|
92
51
|
- !ruby/object:Gem::Version
|
93
|
-
version: 2.
|
52
|
+
version: 2.7.0
|
94
53
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
95
54
|
requirements:
|
96
55
|
- - ">="
|
97
56
|
- !ruby/object:Gem::Version
|
98
57
|
version: '0'
|
99
58
|
requirements: []
|
100
|
-
rubygems_version: 3.
|
59
|
+
rubygems_version: 3.4.21
|
101
60
|
signing_key:
|
102
61
|
specification_version: 4
|
103
62
|
summary: Simple feature flags
|