feature_flagger 0.3.0 → 0.4.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/README.md +12 -3
- data/lib/feature_flagger.rb +5 -2
- data/lib/feature_flagger/storage/redis.rb +15 -10
- data/lib/feature_flagger/version.rb +1 -1
- metadata +37 -16
- data/.gitignore +0 -9
- data/.rspec +0 -2
- data/.travis.yml +0 -5
- data/Gemfile +0 -4
- data/Rakefile +0 -6
- data/bin/console +0 -14
- data/bin/setup +0 -8
- data/feature_flagger.gemspec +0 -26
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d29e1d31d6e0908bf08af3e04cb7c5b6bc0b540a
|
4
|
+
data.tar.gz: 7bf7063dd406d12d78ee8fdd01d4fa3dfcf247c6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3f82ebd10dca01517e578cc8d079e70510a3e14aec9fabcc5d839e9e35493e2f5cf7eb7a1a9f40902f0d0d50c81f9af308a193cc831c945b2382916beb0b11e4
|
7
|
+
data.tar.gz: a32b48b06e4fd065ba013feb7cc9d239ef31824d1f6b919c66eb82ec3dc71e2fa2b499ad03182846aa6ad2a0a568899ec05994947c6af63b1be7aa78edc997c0
|
data/README.md
CHANGED
@@ -1,6 +1,8 @@
|
|
1
|
+
[](https://travis-ci.org/ResultadosDigitais/feature_flagger) [](https://codeclimate.com/github/ResultadosDigitais/feature_flagger) [](https://codeclimate.com/github/ResultadosDigitais/feature_flagger)
|
2
|
+
|
1
3
|
# FeatureFlagger
|
2
4
|
|
3
|
-
|
5
|
+
Partially release your features.
|
4
6
|
|
5
7
|
## Installation
|
6
8
|
|
@@ -21,10 +23,17 @@ Or install it yourself as:
|
|
21
23
|
|
22
24
|
## Configuration
|
23
25
|
|
24
|
-
|
26
|
+
By default, feature_flagger uses the REDIS_URL env var to setup it's storage.
|
27
|
+
You can configure this by using `configure` like such:
|
28
|
+
|
29
|
+
1. In a initializer file (e.g. `config/initializers/feature_flagger.rb`):
|
25
30
|
```ruby
|
31
|
+
require 'redis-namespace'
|
32
|
+
require 'feature_flagger'
|
33
|
+
|
26
34
|
FeatureFlagger.configure do |config|
|
27
|
-
|
35
|
+
namespaced = ::Redis::Namespace.new("feature_flagger", redis: $redis)
|
36
|
+
config.storage = FeatureFlagger::Storage::Redis.new(namespaced)
|
28
37
|
end
|
29
38
|
```
|
30
39
|
|
data/lib/feature_flagger.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
require 'yaml'
|
2
|
-
require 'redis-namespace'
|
3
2
|
|
4
3
|
require 'feature_flagger/version'
|
5
4
|
require 'feature_flagger/storage/redis'
|
@@ -37,7 +36,7 @@ module FeatureFlagger
|
|
37
36
|
|
38
37
|
def set_config
|
39
38
|
@@config ||= {}
|
40
|
-
@@config[:storage] ||=
|
39
|
+
@@config[:storage] ||= default_client
|
41
40
|
|
42
41
|
# TODO: Provide a Rake to generate initial YAML file
|
43
42
|
# for new projects.
|
@@ -50,5 +49,9 @@ module FeatureFlagger
|
|
50
49
|
@@config[:info] ||= YAML.load_file(file_path)
|
51
50
|
end
|
52
51
|
end
|
52
|
+
|
53
|
+
def default_client
|
54
|
+
Storage::Redis.default_client
|
55
|
+
end
|
53
56
|
end
|
54
57
|
end
|
@@ -1,31 +1,36 @@
|
|
1
|
+
require 'redis'
|
2
|
+
require 'redis-namespace'
|
3
|
+
|
1
4
|
module FeatureFlagger
|
2
5
|
module Storage
|
3
6
|
class Redis
|
7
|
+
|
4
8
|
DEFAULT_NAMESPACE = :feature_flagger
|
5
9
|
|
6
|
-
|
10
|
+
def initialize(redis)
|
11
|
+
@redis = redis
|
12
|
+
end
|
7
13
|
|
8
|
-
def
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
end
|
14
|
+
def self.default_client
|
15
|
+
redis = ::Redis.new(url: ENV['REDIS_URL'])
|
16
|
+
ns = ::Redis::Namespace.new(DEFAULT_NAMESPACE, :redis => redis)
|
17
|
+
new(ns)
|
13
18
|
end
|
14
19
|
|
15
20
|
def has_value?(key, value)
|
16
|
-
redis.sismember(key, value)
|
21
|
+
@redis.sismember(key, value)
|
17
22
|
end
|
18
23
|
|
19
24
|
def add(key, value)
|
20
|
-
redis.sadd(key, value)
|
25
|
+
@redis.sadd(key, value)
|
21
26
|
end
|
22
27
|
|
23
28
|
def remove(key, value)
|
24
|
-
redis.srem(key, value)
|
29
|
+
@redis.srem(key, value)
|
25
30
|
end
|
26
31
|
|
27
32
|
def all_values(key)
|
28
|
-
redis.smembers(key)
|
33
|
+
@redis.smembers(key)
|
29
34
|
end
|
30
35
|
end
|
31
36
|
end
|
metadata
CHANGED
@@ -1,30 +1,44 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: feature_flagger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nando Sousa
|
8
8
|
- Geison Biazus
|
9
9
|
autorequire:
|
10
|
-
bindir:
|
10
|
+
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-
|
12
|
+
date: 2016-09-13 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: redis
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - "~>"
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: '3.2'
|
21
|
+
type: :runtime
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - "~>"
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: '3.2'
|
14
28
|
- !ruby/object:Gem::Dependency
|
15
29
|
name: redis-namespace
|
16
30
|
requirement: !ruby/object:Gem::Requirement
|
17
31
|
requirements:
|
18
|
-
- - "
|
32
|
+
- - "~>"
|
19
33
|
- !ruby/object:Gem::Version
|
20
|
-
version: '
|
34
|
+
version: '1.3'
|
21
35
|
type: :runtime
|
22
36
|
prerelease: false
|
23
37
|
version_requirements: !ruby/object:Gem::Requirement
|
24
38
|
requirements:
|
25
|
-
- - "
|
39
|
+
- - "~>"
|
26
40
|
- !ruby/object:Gem::Version
|
27
|
-
version: '
|
41
|
+
version: '1.3'
|
28
42
|
- !ruby/object:Gem::Dependency
|
29
43
|
name: bundler
|
30
44
|
requirement: !ruby/object:Gem::Requirement
|
@@ -67,6 +81,20 @@ dependencies:
|
|
67
81
|
- - "~>"
|
68
82
|
- !ruby/object:Gem::Version
|
69
83
|
version: '3.0'
|
84
|
+
- !ruby/object:Gem::Dependency
|
85
|
+
name: fakeredis
|
86
|
+
requirement: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - ">="
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: '0'
|
91
|
+
type: :development
|
92
|
+
prerelease: false
|
93
|
+
version_requirements: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - ">="
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: '0'
|
70
98
|
description: Management tool to make it easier rollouting features to customers.
|
71
99
|
email:
|
72
100
|
- nandosousafr@gmail.com
|
@@ -75,16 +103,8 @@ executables: []
|
|
75
103
|
extensions: []
|
76
104
|
extra_rdoc_files: []
|
77
105
|
files:
|
78
|
-
- ".gitignore"
|
79
|
-
- ".rspec"
|
80
|
-
- ".travis.yml"
|
81
|
-
- Gemfile
|
82
106
|
- MIT-LICENSE
|
83
107
|
- README.md
|
84
|
-
- Rakefile
|
85
|
-
- bin/console
|
86
|
-
- bin/setup
|
87
|
-
- feature_flagger.gemspec
|
88
108
|
- lib/feature_flagger.rb
|
89
109
|
- lib/feature_flagger/control.rb
|
90
110
|
- lib/feature_flagger/feature.rb
|
@@ -111,8 +131,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
111
131
|
version: '0'
|
112
132
|
requirements: []
|
113
133
|
rubyforge_project:
|
114
|
-
rubygems_version: 2.
|
134
|
+
rubygems_version: 2.4.3
|
115
135
|
signing_key:
|
116
136
|
specification_version: 4
|
117
137
|
summary: Partial release your features.
|
118
138
|
test_files: []
|
139
|
+
has_rdoc:
|
data/.gitignore
DELETED
data/.rspec
DELETED
data/.travis.yml
DELETED
data/Gemfile
DELETED
data/Rakefile
DELETED
data/bin/console
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
require "bundler/setup"
|
4
|
-
require "rollout"
|
5
|
-
|
6
|
-
# You can add fixtures and/or initialization code here to make experimenting
|
7
|
-
# with your gem easier. You can also use a different console, if you like.
|
8
|
-
|
9
|
-
# (If you use this, don't forget to add pry to your Gemfile!)
|
10
|
-
# require "pry"
|
11
|
-
# Pry.start
|
12
|
-
|
13
|
-
require "irb"
|
14
|
-
IRB.start
|
data/bin/setup
DELETED
data/feature_flagger.gemspec
DELETED
@@ -1,26 +0,0 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
lib = File.expand_path('../lib', __FILE__)
|
3
|
-
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
-
require 'feature_flagger/version'
|
5
|
-
|
6
|
-
Gem::Specification.new do |spec|
|
7
|
-
spec.name = "feature_flagger"
|
8
|
-
spec.version = FeatureFlagger::VERSION
|
9
|
-
spec.authors = ["Nando Sousa", "Geison Biazus"]
|
10
|
-
spec.email = ["nandosousafr@gmail.com", "geisonbiazus@gmail.com"]
|
11
|
-
spec.licenses = ['MIT']
|
12
|
-
|
13
|
-
spec.summary = %q{Partial release your features.}
|
14
|
-
spec.description = %q{Management tool to make it easier rollouting features to customers.}
|
15
|
-
spec.homepage = "http://github.com/ResultadosDigitais/feature_flagger"
|
16
|
-
|
17
|
-
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
18
|
-
spec.bindir = "exe"
|
19
|
-
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
20
|
-
spec.require_paths = ["lib"]
|
21
|
-
|
22
|
-
spec.add_dependency 'redis-namespace'
|
23
|
-
spec.add_development_dependency "bundler", "~> 1.12"
|
24
|
-
spec.add_development_dependency "rake", "~> 10.0"
|
25
|
-
spec.add_development_dependency "rspec", "~> 3.0"
|
26
|
-
end
|