redis_env 0.1.0 → 0.2.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 +14 -0
- data/exe/redis-env +9 -16
- data/lib/redis_env.rb +4 -0
- data/lib/redis_env/client.rb +33 -0
- data/lib/redis_env/version.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2c733019825381a636ea3ce77a2c5274141aedf9
|
4
|
+
data.tar.gz: 95d3997aeb2aeec08ec2dd6cd83bd99a0f360350
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cbf6775d971ce592177471760772dda087d5e8e1b8bbf414006833a1072458270e0378da3f14c1f227554334385d8b9b601f711616f3c6a807dfcc7cacc84883
|
7
|
+
data.tar.gz: 5c39c4a9afe3db9a10f1c689ca3371debe1ab318fad36f83dae8ac61e6cec2e145d3b53b34c4b1f7e3f766257e32e720832f979fe22d4216b3413b8d90bf7ae3
|
data/README.md
CHANGED
@@ -37,6 +37,20 @@ Now run your app using redis-env
|
|
37
37
|
redis-env exec --project my-awesome-app rails s
|
38
38
|
```
|
39
39
|
|
40
|
+
### Programmatic Usage
|
41
|
+
|
42
|
+
```
|
43
|
+
require "redis_env"
|
44
|
+
client = RedisEnv.new(Redis.new, "my-awesome-app")
|
45
|
+
|
46
|
+
# Write keys
|
47
|
+
client.set("IMPORTANT_KEY", "VALUE")
|
48
|
+
client.bulk_set("IMPORTANT_KEY" => "NEW VALUE", "ANOTHER_KEY" => "banana")
|
49
|
+
|
50
|
+
# Use keys
|
51
|
+
SomeRestClient.new(url: client.variables["RELEVENT_URL"])
|
52
|
+
```
|
53
|
+
|
40
54
|
## Contributing
|
41
55
|
|
42
56
|
Bug reports and pull requests are welcome on GitHub at https://github.com/sionide21/redis-env.
|
data/exe/redis-env
CHANGED
@@ -2,30 +2,31 @@
|
|
2
2
|
require "thor"
|
3
3
|
require "redis"
|
4
4
|
require "dotenv"
|
5
|
+
require "redis_env"
|
5
6
|
|
6
|
-
class
|
7
|
+
class CLI < Thor
|
7
8
|
class_option :project, type: :string, desc: "The project these variables are for"
|
8
9
|
class_option :redis, type: :string, desc: "The url of the redis server", default: "redis://localhost:6379/0"
|
9
10
|
|
10
11
|
desc "set NAME VALUE", "Set an environment variable called NAME to VALUE"
|
11
12
|
def set(name, value)
|
12
|
-
client.
|
13
|
+
client.set(name, value)
|
13
14
|
end
|
14
15
|
|
15
16
|
desc "load FILE", "Read an env file and load it into redis"
|
16
17
|
def load(file)
|
17
18
|
vars = Dotenv::Environment.new(file)
|
18
|
-
client.
|
19
|
+
client.bulk_set(vars)
|
19
20
|
end
|
20
21
|
|
21
22
|
desc "unset NAME", "Remove an environment variable called NAME"
|
22
23
|
def unset(name)
|
23
|
-
client.
|
24
|
+
client.unset(name)
|
24
25
|
end
|
25
26
|
|
26
27
|
desc "clear", "Remove all environment variables"
|
27
28
|
def clear
|
28
|
-
client.
|
29
|
+
client.clear
|
29
30
|
end
|
30
31
|
|
31
32
|
desc "list", "List all variables"
|
@@ -43,21 +44,13 @@ class RedisEnv < Thor
|
|
43
44
|
|
44
45
|
private
|
45
46
|
|
46
|
-
def namespace
|
47
|
-
"redis-env:#{project}"
|
48
|
-
end
|
49
|
-
|
50
|
-
def project
|
51
|
-
options[:project] || "__default__"
|
52
|
-
end
|
53
|
-
|
54
47
|
def client
|
55
|
-
@client ||= Redis.new(url: options[:redis])
|
48
|
+
@client ||= RedisEnv.new(Redis.new(url: options[:redis]), options[:project])
|
56
49
|
end
|
57
50
|
|
58
51
|
def env
|
59
|
-
@env ||= client.
|
52
|
+
@env ||= client.variables
|
60
53
|
end
|
61
54
|
end
|
62
55
|
|
63
|
-
|
56
|
+
CLI.start(ARGV)
|
data/lib/redis_env.rb
CHANGED
@@ -0,0 +1,33 @@
|
|
1
|
+
module RedisEnv
|
2
|
+
class Client
|
3
|
+
attr_reader :redis
|
4
|
+
def initialize(redis, project=nil)
|
5
|
+
@redis = redis
|
6
|
+
@project = project || "__default__"
|
7
|
+
end
|
8
|
+
|
9
|
+
def variables
|
10
|
+
redis.hgetall(namespace)
|
11
|
+
end
|
12
|
+
|
13
|
+
def set(name, value)
|
14
|
+
redis.hset(namespace, name, value)
|
15
|
+
end
|
16
|
+
|
17
|
+
def bulk_set(vars)
|
18
|
+
redis.mapped_hmset(namespace, vars)
|
19
|
+
end
|
20
|
+
|
21
|
+
def unset(name)
|
22
|
+
redis.hdel(namespace, name)
|
23
|
+
end
|
24
|
+
|
25
|
+
def clear
|
26
|
+
redis.del(namespace)
|
27
|
+
end
|
28
|
+
|
29
|
+
def namespace
|
30
|
+
"redis-env:#{@project}"
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
data/lib/redis_env/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: redis_env
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ben Olive
|
@@ -112,6 +112,7 @@ files:
|
|
112
112
|
- bin/setup
|
113
113
|
- exe/redis-env
|
114
114
|
- lib/redis_env.rb
|
115
|
+
- lib/redis_env/client.rb
|
115
116
|
- lib/redis_env/version.rb
|
116
117
|
- redis_env.gemspec
|
117
118
|
homepage: https://github.com/sionide21/redis-env
|