consult 0.8.0 → 0.10.0

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
  SHA256:
3
- metadata.gz: 371b66af8be47b598b8ee428856c17d35864b5ba93b3bff8ad0852c4d403d2fe
4
- data.tar.gz: ce70cfa1f22a21d6255ae2fd1a867b2950765ca5c3b8b3c4f8090aab8f0c28d1
3
+ metadata.gz: 4545a86745cdd4600995f4a162cf9c3378ea61083b3670166e2e8e94a9e6103a
4
+ data.tar.gz: f48258760913efbb7e44bf17c7b2ac14e4e38d9563c6cb1d4c3a94b7c7c37aed
5
5
  SHA512:
6
- metadata.gz: f72c7410f792f22c1bdc4d095b9f2fb122943625f2be6876461f692acd378fbd4bce6ce14797fe387d59d8ffaaf827612b3a7fb908d880a07b2933dddf294d03
7
- data.tar.gz: f19a08e8ec11f404c82c6344885c36cc9346d04fbdaa7de8fdb9ddb3fe7059d1cc4c7d4c472a2a2ad41a642a87e338b5aa49a4eff36b0a19cd795dc29b48ee9f
6
+ metadata.gz: 5fdb5ecc269d4ffd29fdef55fa315e7471089b8f68e897de6a2641415a5fb0f7bcdd56d05c7ccc7be0b58757076cd2b05f65727ebdc5c7efe32c9bfe33e36ec9
7
+ data.tar.gz: 991eca37d6a392c21bab7ca620ae64608d4b6313e0048f376c84fc627234675fb79990d6c151a327c8bb53fa07b47937cb0f2782f0dd4df91762139eca6fc989
@@ -0,0 +1,78 @@
1
+ version: 2.1
2
+
3
+ jobs:
4
+ test:
5
+ parameters:
6
+ ruby_version:
7
+ type: string
8
+
9
+ docker:
10
+ - image: circleci/ruby:<< parameters.ruby_version >>
11
+ - image: consul:1.3.0
12
+ - image: vault:0.11.3
13
+ environment:
14
+ - VAULT_DEV_ROOT_TOKEN_ID=94e1a9ed-5d72-5677-27ab-ebc485cca368
15
+ # - SKIP_SETCAP=skip
16
+ # cap_add:
17
+ # - IPC_LOCK
18
+
19
+ working_directory: ~/repo
20
+
21
+ steps:
22
+ - checkout
23
+
24
+ - restore_cache:
25
+ name: restore gem cache
26
+ keys:
27
+ - v1-bundle-<< parameters.ruby_version >>-{{ .Branch }}-{{ checksum "consult.gemspec" }}
28
+ - v1-bundle-<< parameters.ruby_version >>-{{ .Branch }}-
29
+ - v1-bundle-<< parameters.ruby_version >>-
30
+
31
+ - run:
32
+ name: install dependencies
33
+ command: |
34
+ bundle check --path ./vendor/bundle || bundle install --jobs=3 --retry=3 --path vendor/bundle
35
+ bundle clean
36
+
37
+ - save_cache:
38
+ name: save gem cache
39
+ paths:
40
+ - ./vendor/bundle
41
+ key: v1-bundle-<< parameters.ruby_version >>-{{ .Branch }}-{{ checksum "consult.gemspec" }}
42
+
43
+ - run:
44
+ name: setup fixture data
45
+ command: |
46
+ ./spec/support/populate_consul.sh
47
+
48
+ - run:
49
+ name: run tests
50
+ command: |
51
+ mkdir /tmp/test-results
52
+
53
+ TEST_FILES="$(circleci tests glob "spec/**/*_spec.rb" | \
54
+ circleci tests split --split-by=timings)"
55
+
56
+ bundle exec rspec \
57
+ --format progress \
58
+ --format RspecJunitFormatter \
59
+ --out /tmp/test-results/rspec.xml \
60
+ --format progress \
61
+ $TEST_FILES
62
+
63
+ - store_test_results:
64
+ path: /tmp/test-results
65
+
66
+ - store_artifacts:
67
+ path: ./coverage
68
+ destination: coverage
69
+
70
+ workflows:
71
+ test_supported_ruby_versions:
72
+ jobs:
73
+ - test:
74
+ matrix:
75
+ parameters:
76
+ ruby_version:
77
+ - '2.5'
78
+ - '2.7'
data/CHANGELOG.md CHANGED
@@ -1,3 +1,24 @@
1
+ #### Unreleased
2
+
3
+ #### 0.10.0
4
+
5
+ * Switch from Travis to CircleCI, and set up testing for multiple Ruby versions ([#25](https://github.com/veracross/consult/pull/25) & [#34](https://github.com/veracross/consult/pull/34))
6
+ * Improve development on Windows ([#21](https://github.com/veracross/consult/pull/21))
7
+ * Normalize string encodings to UTF-8 ([#22](https://github.com/veracross/consult/pull/22))
8
+ * Remove dependency on ActiveSupport ([#27](https://github.com/veracross/consult/pull/27))
9
+
10
+ #### 0.9.0
11
+
12
+ * Add a CLI to render templates on demand ([#20](https://github.com/veracross/consult/pull/20))
13
+
14
+ #### 0.8.2
15
+
16
+ * Use `X-Consul-Token` header for Consul authentication. See the [Consul docs](https://www.consul.io/api/index.html#authentication) for details. ([#19](https://github.com/veracross/consult/pull/19))
17
+
18
+ #### 0.8.1
19
+
20
+ * Obey template location order as specified in consult's config
21
+
1
22
  #### 0.8.0
2
23
 
3
24
  * Add support for multiple sources for a single template ([#14](https://github.com/veracross/consult/pull/14))
data/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
  Generate configuration and secrets for Rails apps automatically from [Consul](https://github.com/hashicorp/consul) & [Vault](https://github.com/hashicorp/vault).
4
4
 
5
5
  [![Gem Version](https://badge.fury.io/rb/consult.svg)](https://badge.fury.io/rb/consult)
6
- [![Build Status](https://travis-ci.org/veracross/consult.svg?branch=master)](https://travis-ci.org/veracross/consult)
6
+ [![CircleCI](https://circleci.com/gh/veracross/consult/tree/master.svg?style=svg)](https://circleci.com/gh/veracross/consult/tree/master)
7
7
  [![Maintainability](https://api.codeclimate.com/v1/badges/d7b048b7edd9f27c83b9/maintainability)](https://codeclimate.com/github/veracross/consult/maintainability)
8
8
 
9
9
  ## Background
@@ -14,8 +14,6 @@ We use Consul Template for server level configuration, but application level con
14
14
 
15
15
  With Consult the process is the same in all environments.
16
16
 
17
- This gem is considered _beta_. At Veracross, we are just beginning to use it in staging environments.
18
-
19
17
  ## Installation
20
18
 
21
19
  Add this line to your application's Gemfile:
@@ -40,6 +38,16 @@ Pre-existing copies of files generated by Consult (such as `secrets.yml`, `datab
40
38
 
41
39
  If this gem is included in a Rails, the templates will render on Rails boot. Configuration or credential changes can be picked up by restarting your app.
42
40
 
41
+ ### CLI
42
+
43
+ Render templates on demand with the CLI. By default, this will bypass template TTLs to force rendering and provide verbose output. See `consult --help` for options.
44
+
45
+ ```bash
46
+ $ bundle exec consult
47
+ Consult: Rendered my_config
48
+ Consult: Rendered secrets
49
+ ```
50
+
43
51
  ### Configuration
44
52
 
45
53
  ```yaml
@@ -289,7 +297,7 @@ production:
289
297
  Then reference secrets in your app with `Rails.application.secrets`.
290
298
 
291
299
  ```ruby
292
- # config/intiializers/rollbar.rb
300
+ # config/initializers/rollbar.rb
293
301
  Rollbar.configure do |config|
294
302
  config.access_token = Rails.application.secrets.rollbar_token
295
303
  end
data/bin/console CHANGED
File without changes
data/bin/consult ADDED
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require_relative '../lib/consult/cli'
4
+
5
+ cli = Consult::CLI.instance
6
+ cli.parse
7
+ cli.render
data/bin/setup CHANGED
File without changes
data/consult.gemspec CHANGED
@@ -20,20 +20,19 @@ Gem::Specification.new do |spec|
20
20
  spec.files = `git ls-files -z`.split("\x0").reject do |f|
21
21
  f.match(%r{^(test|spec|features)/})
22
22
  end
23
- spec.bindir = 'exe'
24
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
23
+ spec.bindir = 'bin'
24
+ spec.executables = ['consult']
25
25
  spec.require_paths = ['lib']
26
26
 
27
- spec.add_dependency 'activesupport', '> 4', '< 6'
28
27
  spec.add_dependency 'diplomat', '~> 2.0.2'
29
28
  spec.add_dependency 'vault', '>= 0.10.0', '< 1.0.0'
30
29
 
31
- spec.add_development_dependency 'bundler', '~> 1.16'
32
- spec.add_development_dependency 'byebug'
30
+ spec.add_development_dependency 'bundler'
33
31
  spec.add_development_dependency 'guard'
34
32
  spec.add_development_dependency 'guard-rspec'
35
- spec.add_development_dependency 'pry'
36
- spec.add_development_dependency 'rake', '~> 10.0'
33
+ spec.add_development_dependency 'pry-byebug'
34
+ spec.add_development_dependency 'rake'
37
35
  spec.add_development_dependency 'rspec', '~> 3.0'
38
- spec.add_development_dependency 'simplecov'
36
+ spec.add_development_dependency 'rspec_junit_formatter', '~> 0.4.1'
37
+ spec.add_development_dependency 'simplecov', '~> 0.16.1'
39
38
  end
data/docker-compose.yml CHANGED
@@ -1,11 +1,11 @@
1
1
  version: '3'
2
2
  services:
3
3
  consul:
4
- image: consul:1.2.3
4
+ image: consul:1.3.0
5
5
  ports:
6
6
  - "8500:8500"
7
7
  vault:
8
- image: vault:0.11.1
8
+ image: vault:0.11.3
9
9
  environment:
10
10
  - VAULT_DEV_ROOT_TOKEN_ID=94e1a9ed-5d72-5677-27ab-ebc485cca368
11
11
  cap_add:
data/lib/consult.rb CHANGED
@@ -2,7 +2,6 @@
2
2
 
3
3
  require 'pathname'
4
4
  require 'yaml'
5
- require 'active_support/core_ext/hash'
6
5
  require 'erb'
7
6
  require 'vault'
8
7
  require 'diplomat'
@@ -10,6 +9,7 @@ require 'diplomat'
10
9
  require 'consult/version'
11
10
  require 'consult/utilities'
12
11
  require 'consult/template'
12
+ require_relative './support/hash_extensions'
13
13
 
14
14
  module Consult
15
15
  @config = {}
@@ -18,16 +18,18 @@ module Consult
18
18
  CONSUL_DISK_TOKEN = Pathname.new("#{Dir.home}/.consul-token").freeze
19
19
 
20
20
  class << self
21
- attr_reader :config, :templates
22
- def load(config_dir: nil)
21
+ attr_reader :config, :templates, :force_render
22
+
23
+ def load(config_dir: nil, force_render: false, verbose: nil)
23
24
  root directory: config_dir
24
25
  yaml = root.join('config', 'consult.yml')
25
26
 
26
- @all_config = yaml.exist? ? YAML.safe_load(ERB.new(yaml.read).result, [], [], true).to_h : {}
27
- @all_config.deep_symbolize_keys!
27
+ @all_config = yaml.exist? ? YAML.safe_load(ERB.new(yaml.read).result, [], [], true, symbolize_names: true).to_h : {}
28
28
 
29
29
  @config = @all_config[:shared].to_h.deep_merge @all_config[env&.to_sym].to_h
30
- @templates = @config[:templates]&.map { |name, config| Template.new(name, config) } || []
30
+ @templates = @config[:templates]&.map { |name, config| Template.new(name, config.merge(verbose: verbose)) } || []
31
+
32
+ @force_render = force_render
31
33
 
32
34
  configure_consul
33
35
  configure_vault
@@ -40,7 +42,9 @@ module Consult
40
42
  # Additionally: prefer env vars over explicit config
41
43
  configured_address = @config[:consul].delete(:address)
42
44
  @config[:consul][:url] = ENV['CONSUL_HTTP_ADDR'] || configured_address || @config[:consul][:url]
43
- @config[:consul][:acl_token] = consul_token
45
+ # If a consul token exists, treat it as special
46
+ # See https://github.com/WeAreFarmGeek/diplomat/pull/160
47
+ (@config[:consul][:options] ||= {}).merge!(headers: {'X-Consul-Token' => consul_token}) if consul_token.to_s.length > 0
44
48
 
45
49
  Diplomat.configure do |c|
46
50
  @config[:consul].each do |opt, val|
@@ -69,7 +73,7 @@ module Consult
69
73
 
70
74
  # Return only the templates that are relevant for the current environment
71
75
  def active_templates
72
- templates.select(&:should_render?)
76
+ force_render ? templates : templates.select(&:should_render?)
73
77
  end
74
78
 
75
79
  # Render templates.
@@ -82,7 +86,7 @@ module Consult
82
86
  def consul_token
83
87
  ENV['CONSUL_HTTP_TOKEN'] ||
84
88
  @config[:consul].delete(:token) ||
85
- @config[:consul][:acl_token] ||
89
+ @config[:consul].delete(:acl_token) ||
86
90
  (CONSUL_DISK_TOKEN.exist? ? CONSUL_DISK_TOKEN.read.chomp : nil)
87
91
  end
88
92
  end
@@ -0,0 +1,55 @@
1
+ # frozen_string_literal: true
2
+
3
+ $stdout.sync = true
4
+
5
+ require 'singleton'
6
+ require 'optparse'
7
+
8
+ require_relative '../consult'
9
+
10
+ module Consult
11
+ class CLI
12
+ include Singleton
13
+
14
+ attr_reader :opts
15
+
16
+ def parse(args = ARGV)
17
+ @opts = parse_options(args)
18
+ Consult.load @opts
19
+ end
20
+
21
+ def render
22
+ Consult.render!
23
+ end
24
+
25
+ def parse_options(argv)
26
+ opts = {
27
+ config_dir: Dir.pwd,
28
+ force_render: true,
29
+ verbose: true
30
+ }
31
+
32
+ @parser = OptionParser.new do |o|
33
+ o.on '-d', '--directory=DIR', 'Path to directory containing the config directory' do |arg|
34
+ opts[:config_dir] = arg
35
+ end
36
+
37
+ o.on '-f', '--[no-]force', TrueClass, 'Ignore template TTLs and force rendering' do |arg|
38
+ opts[:force_render] = arg
39
+ end
40
+
41
+ o.on '-v', '--quiet', FalseClass, 'Silence output' do |arg|
42
+ opts[:verbose] = arg
43
+ end
44
+ end
45
+
46
+ @parser.on_tail "-h", "--help", "Show help" do
47
+ puts @parser
48
+ exit 1
49
+ end
50
+
51
+ @parser.parse! argv
52
+ opts
53
+ end
54
+ end
55
+ end
@@ -7,6 +7,8 @@ module Consult
7
7
  include Utilities
8
8
  include TemplateFunctions
9
9
 
10
+ LOCATIONS = %i[path paths consul_key consul_keys]
11
+
10
12
  attr_reader :name, :config
11
13
 
12
14
  def initialize(name, config)
@@ -19,7 +21,8 @@ module Consult
19
21
  renderer = ERB.new(contents, nil, '-')
20
22
  result = renderer.result(binding)
21
23
 
22
- File.open(dest, 'w') { |f| f << result } if save
24
+ File.open(dest, 'wb') { |f| f << result } if save
25
+ puts "Consult: Rendered #{name}" if verbose?
23
26
  result
24
27
  rescue StandardError => e
25
28
  STDERR.puts "Error rendering template: #{name}"
@@ -53,23 +56,31 @@ module Consult
53
56
  dest.mtime < (Time.now - @config[:ttl].to_i)
54
57
  end
55
58
 
59
+ def verbose?
60
+ @config[:verbose]
61
+ end
62
+
63
+ def ordered_locations
64
+ @config.keys & LOCATIONS
65
+ end
66
+
56
67
  private
57
68
 
58
69
  # Concatenate all the source templates together, in the order provided
59
- # Disk contents go first
60
70
  def contents
61
- disk_contents + consul_contents
71
+ ordered_locations.map do |location|
72
+ location.to_s.start_with?('consul') ? consul_contents(location) : disk_contents(location)
73
+ end.join
62
74
  end
63
75
 
64
- def consul_contents
65
- [@config[:consul_key], @config[:consul_keys]].compact.flatten.map do |key|
66
- Diplomat::Kv.get(key, options: nil, not_found: :return, found: :return)
76
+ def consul_contents(location)
77
+ [@config[location]].compact.flatten.map do |key|
78
+ Diplomat::Kv.get(key, options: nil, not_found: :return, found: :return).force_encoding 'utf-8'
67
79
  end.join
68
80
  end
69
81
 
70
- # Concatenate all the source templates together, in the order provided
71
- def disk_contents
72
- [path, paths].compact.flatten.map do |file_path|
82
+ def disk_contents(location)
83
+ [public_send(location)].compact.flatten.map do |file_path|
73
84
  File.read file_path, encoding: 'utf-8'
74
85
  end.join
75
86
  end
@@ -1,3 +1,3 @@
1
1
  module Consult
2
- VERSION = '0.8.0'
2
+ VERSION = '0.10.0'
3
3
  end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ # ActiveSupport's corresponding methods
4
+ # - https://github.com/rails/rails/tree/master/activesupport/lib/active_support/core_ext/hash
5
+ module HashExtension
6
+ def deep_merge(other_hash, &block)
7
+ merge(other_hash) do |key, this_val, other_val|
8
+ if this_val.is_a?(Hash) && other_val.is_a?(Hash)
9
+ this_val.deep_merge other_val, &block
10
+ elsif block_given?
11
+ block.call key, this_val, other_val
12
+ else
13
+ other_val
14
+ end
15
+ end
16
+ end
17
+ end
18
+
19
+ Hash.send(:include, HashExtension)
metadata CHANGED
@@ -1,35 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: consult
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeff Fraser
8
- autorequire:
9
- bindir: exe
8
+ autorequire:
9
+ bindir: bin
10
10
  cert_chain: []
11
- date: 2018-10-10 00:00:00.000000000 Z
11
+ date: 2021-03-16 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: activesupport
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">"
18
- - !ruby/object:Gem::Version
19
- version: '4'
20
- - - "<"
21
- - !ruby/object:Gem::Version
22
- version: '6'
23
- type: :runtime
24
- prerelease: false
25
- version_requirements: !ruby/object:Gem::Requirement
26
- requirements:
27
- - - ">"
28
- - !ruby/object:Gem::Version
29
- version: '4'
30
- - - "<"
31
- - !ruby/object:Gem::Version
32
- version: '6'
33
13
  - !ruby/object:Gem::Dependency
34
14
  name: diplomat
35
15
  requirement: !ruby/object:Gem::Requirement
@@ -68,18 +48,18 @@ dependencies:
68
48
  name: bundler
69
49
  requirement: !ruby/object:Gem::Requirement
70
50
  requirements:
71
- - - "~>"
51
+ - - ">="
72
52
  - !ruby/object:Gem::Version
73
- version: '1.16'
53
+ version: '0'
74
54
  type: :development
75
55
  prerelease: false
76
56
  version_requirements: !ruby/object:Gem::Requirement
77
57
  requirements:
78
- - - "~>"
58
+ - - ">="
79
59
  - !ruby/object:Gem::Version
80
- version: '1.16'
60
+ version: '0'
81
61
  - !ruby/object:Gem::Dependency
82
- name: byebug
62
+ name: guard
83
63
  requirement: !ruby/object:Gem::Requirement
84
64
  requirements:
85
65
  - - ">="
@@ -93,7 +73,7 @@ dependencies:
93
73
  - !ruby/object:Gem::Version
94
74
  version: '0'
95
75
  - !ruby/object:Gem::Dependency
96
- name: guard
76
+ name: guard-rspec
97
77
  requirement: !ruby/object:Gem::Requirement
98
78
  requirements:
99
79
  - - ">="
@@ -107,7 +87,7 @@ dependencies:
107
87
  - !ruby/object:Gem::Version
108
88
  version: '0'
109
89
  - !ruby/object:Gem::Dependency
110
- name: guard-rspec
90
+ name: pry-byebug
111
91
  requirement: !ruby/object:Gem::Requirement
112
92
  requirements:
113
93
  - - ">="
@@ -121,7 +101,7 @@ dependencies:
121
101
  - !ruby/object:Gem::Version
122
102
  version: '0'
123
103
  - !ruby/object:Gem::Dependency
124
- name: pry
104
+ name: rake
125
105
  requirement: !ruby/object:Gem::Requirement
126
106
  requirements:
127
107
  - - ">="
@@ -135,58 +115,60 @@ dependencies:
135
115
  - !ruby/object:Gem::Version
136
116
  version: '0'
137
117
  - !ruby/object:Gem::Dependency
138
- name: rake
118
+ name: rspec
139
119
  requirement: !ruby/object:Gem::Requirement
140
120
  requirements:
141
121
  - - "~>"
142
122
  - !ruby/object:Gem::Version
143
- version: '10.0'
123
+ version: '3.0'
144
124
  type: :development
145
125
  prerelease: false
146
126
  version_requirements: !ruby/object:Gem::Requirement
147
127
  requirements:
148
128
  - - "~>"
149
129
  - !ruby/object:Gem::Version
150
- version: '10.0'
130
+ version: '3.0'
151
131
  - !ruby/object:Gem::Dependency
152
- name: rspec
132
+ name: rspec_junit_formatter
153
133
  requirement: !ruby/object:Gem::Requirement
154
134
  requirements:
155
135
  - - "~>"
156
136
  - !ruby/object:Gem::Version
157
- version: '3.0'
137
+ version: 0.4.1
158
138
  type: :development
159
139
  prerelease: false
160
140
  version_requirements: !ruby/object:Gem::Requirement
161
141
  requirements:
162
142
  - - "~>"
163
143
  - !ruby/object:Gem::Version
164
- version: '3.0'
144
+ version: 0.4.1
165
145
  - !ruby/object:Gem::Dependency
166
146
  name: simplecov
167
147
  requirement: !ruby/object:Gem::Requirement
168
148
  requirements:
169
- - - ">="
149
+ - - "~>"
170
150
  - !ruby/object:Gem::Version
171
- version: '0'
151
+ version: 0.16.1
172
152
  type: :development
173
153
  prerelease: false
174
154
  version_requirements: !ruby/object:Gem::Requirement
175
155
  requirements:
176
- - - ">="
156
+ - - "~>"
177
157
  - !ruby/object:Gem::Version
178
- version: '0'
158
+ version: 0.16.1
179
159
  description: Manage consul/vault backed template files in Ruby.
180
160
  email:
181
161
  - jeff.fraser@veracross.com
182
- executables: []
162
+ executables:
163
+ - consult
183
164
  extensions: []
184
165
  extra_rdoc_files: []
185
166
  files:
167
+ - ".circleci/config.yml"
186
168
  - ".gitignore"
187
169
  - ".rspec"
188
170
  - ".rubocop.yml"
189
- - ".travis.yml"
171
+ - ".ruby-version"
190
172
  - CHANGELOG.md
191
173
  - Gemfile
192
174
  - Guardfile
@@ -195,21 +177,24 @@ files:
195
177
  - README.md
196
178
  - Rakefile
197
179
  - bin/console
180
+ - bin/consult
198
181
  - bin/setup
199
182
  - consult.gemspec
200
183
  - docker-compose.yml
201
184
  - lib/consult.rb
185
+ - lib/consult/cli.rb
202
186
  - lib/consult/rails/engine.rb
203
187
  - lib/consult/template.rb
204
188
  - lib/consult/template_functions.rb
205
189
  - lib/consult/utilities.rb
206
190
  - lib/consult/version.rb
191
+ - lib/support/hash_extensions.rb
207
192
  homepage: https://github.com/veracross/consult
208
193
  licenses:
209
194
  - MIT
210
195
  metadata:
211
196
  allowed_push_host: https://rubygems.org
212
- post_install_message:
197
+ post_install_message:
213
198
  rdoc_options: []
214
199
  require_paths:
215
200
  - lib
@@ -224,9 +209,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
224
209
  - !ruby/object:Gem::Version
225
210
  version: '0'
226
211
  requirements: []
227
- rubyforge_project:
212
+ rubyforge_project:
228
213
  rubygems_version: 2.7.6
229
- signing_key:
214
+ signing_key:
230
215
  specification_version: 4
231
216
  summary: Manage consul/vault backed template files in Ruby.
232
217
  test_files: []
data/.travis.yml DELETED
@@ -1,15 +0,0 @@
1
- sudo: false
2
- language: ruby
3
- rvm:
4
- - 2.5
5
- - 2.4
6
- - 2.3
7
-
8
- services:
9
- - docker
10
-
11
- before_install:
12
- - gem install bundler -v 1.16.2
13
- - docker-compose --version
14
- - docker-compose up -d
15
- - docker ps