envme 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: bcfc1da3e379bf62dcce32fddf43df4a511ebb9e
4
- data.tar.gz: 01c1ca0b45a69a1171ba92f5b498e86a4c00b74b
3
+ metadata.gz: 42f54fd516888d84f2971306cd3d107c8821f621
4
+ data.tar.gz: b511221a4b6081dfcbb9ed36700d997bd516e1d6
5
5
  SHA512:
6
- metadata.gz: dcb7518ffb8f0dd47cb6a8662a7fb7846ed12c2d4d41a1b6a80be3f15a024b4b01d17afb7fb3811c73b14f2133e6d593f8c5d84f325c3222b9582598ea9ebb18
7
- data.tar.gz: e6db5040fa9521c61b29779f7b3be13ddbe6f333e8f5d7afccc68505966ede1a0ee667164ffef1abd0680ff45dac540fb35a9031446f5b486411120a1d9c575b
6
+ metadata.gz: 5ec51694881690e2d997fe76982be08998de4fc391fac422c685e738d2d846985f77b19359778d692ec300be34c77a0c648a97560b71d10f190205f1a405b5f0
7
+ data.tar.gz: 670cecae2b7d03872066406acea374c43f961210495a817d89fa56fa66a323eaac49aae0ee87a242af84f839178a4b3594985d017b7d12457996c1133ee48fec
data/README.md CHANGED
@@ -1,4 +1,26 @@
1
- # Envme
2
- [![Gem Version](https://badge.fury.io/rb/envme.svg)](http://badge.fury.io/rb/envme) [![Circle CI](https://circleci.com/gh/reppard/envme.svg?style=svg)](https://circleci.com/gh/reppard/envme)
1
+ # Envme [![Gem Version](https://badge.fury.io/rb/envme.svg)](http://badge.fury.io/rb/envme) [![Circle CI](https://circleci.com/gh/reppard/envme.svg?style=svg)](https://circleci.com/gh/reppard/envme)
3
2
 
3
+ Envme is a Ruby wrapper around hashicorp's [envconsul](https://github.com/hashicorp/envconsul). It fetches k/v data from Consul using a user specified prefix which can then be used to configure your app with the returned enviroment variables. It can be useful for building AWS user data or generating systemd service files.
4
+
5
+ ## Installation
6
+
7
+ $ gem install envme
8
+
9
+ Or add to your Gemfile
10
+
11
+ ```ruby
12
+ source 'https://rubygems.org'
13
+
14
+ gem 'envme', '>=0.1.2'
15
+ ```
16
+
17
+ ## Usage
18
+ ### Configuration
19
+
20
+ ```ruby
21
+ Envme.configure do |config|
22
+ config.url = "your.consul-host.com"
23
+ config.acl_token = "f45cbd0b-5022-47ab-8640-4eaa7c1f40f1"
24
+ end
25
+ ```
4
26
  Inspired by [Diplomat](https://github.com/WeAreFarmGeek/diplomat)
data/lib/envme/vars.rb CHANGED
@@ -2,7 +2,9 @@ module Envme
2
2
  class Vars < Envme::CommandRunner
3
3
 
4
4
  def self.get_all(prefix)
5
- run(prefix).split("\n")
5
+ env = `env`.split("\n")
6
+
7
+ run(prefix).split("\n") - env
6
8
  end
7
9
 
8
10
  def self.get_limited(prefix, *search_strings)
@@ -27,7 +29,9 @@ module Envme
27
29
  def self.limit_to_search(vars, search_strings)
28
30
  vars.select do |var|
29
31
  search_strings.any? do |match|
30
- var.split("=")[0].include?(match.upcase)
32
+ unless var.match(/^=/)
33
+ var.split("=")[0].include?(match.upcase)
34
+ end
31
35
  end
32
36
  end
33
37
  end
data/lib/envme/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Envme
2
- VERSION = "0.1.2"
2
+ VERSION = "0.1.3"
3
3
  end
data/spec/vars_spec.rb CHANGED
@@ -44,6 +44,20 @@ describe Envme::Vars do
44
44
  expect(vars.size).to eq(3)
45
45
  expect(vars[0]).to eq('COMPONENT_PARAM1=first_param')
46
46
  end
47
+
48
+ it "doesn't raise when 'env' returns a single '='" do
49
+ envconsul_data = [
50
+ "COMPONENT_PARAM1=first_param",
51
+ "COMPONENT_PARAM2=second PaRam",
52
+ "ENVVAR_PARAM3=env var",
53
+ "="
54
+ ].join("\n")
55
+
56
+ allow(Envme::CommandRunner).to receive(:run) { envconsul_data }
57
+ prefix = 'test/prefix'
58
+
59
+ expect{Envme::Vars.get_limited(prefix, 'COMPONENT')}.to_not raise_error
60
+ end
47
61
  end
48
62
 
49
63
  context "#sanitize" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: envme
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - 'Reppard Walker '