redis_env 0.1.0 → 0.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 +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
|