feature_flagger 0.3.0 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
[![Build Status](https://travis-ci.org/ResultadosDigitais/feature_flagger.svg?branch=master)](https://travis-ci.org/ResultadosDigitais/feature_flagger) [![Code Climate](https://codeclimate.com/github/ResultadosDigitais/feature_flagger/badges/gpa.svg)](https://codeclimate.com/github/ResultadosDigitais/feature_flagger) [![Issue Count](https://codeclimate.com/github/ResultadosDigitais/feature_flagger/badges/issue_count.svg)](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
|