dice_bag 1.6.0 → 1.6.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0aeb57da5b1f84e4929fa3e5d84a5fdfc6df0a90ff14d3007ca92d2a61082448
4
- data.tar.gz: e974c236127bdb24655128d2ab7c19a8cbda6824f15d1c0aa25181261a2fba7d
3
+ metadata.gz: e5bb488ea8f0b38b938b9fd4ac13a69a1f60a8df544d546c123478bb31bb25ae
4
+ data.tar.gz: 7a351f59b04eaa6703e00608c2e9f90a3c53199529536ffe0ce3eb01f49d698e
5
5
  SHA512:
6
- metadata.gz: 4ddc53b4204485be8747048633ecb73248719ef72a24548c5873846fea9f7db56531d917121e82a8288a3cdbf967281b7c2c57c85f657e602913ff3e970cd306
7
- data.tar.gz: e1ab8a58dc1055cad2c39fec29d768c77840f1c74b2a399763ea813b0dc5e18bae66d83e9f3783885c2242896bd8305263ccef3a93ddc282037a106f8f10a7b5
6
+ metadata.gz: c4b40020b59067e98abe32f5bdceb5fc93a1dd4d543674423e6c8740f749e1d42563b7d7fcedd06afb99c4869c654c75dcb4e8d1963d41aee1c350a337a70653
7
+ data.tar.gz: a2470807821c5a6247f1cc8c7581a82b6a0d8195d5a2f3c391b3f74c4af9b31ac39145a766e63cc27b66503b3c461d88482e018ded8500c9de461852ae6f7e47
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ # 1.6.1
2
+ * Use keyword argument for ERB.new to suppress deprecated warnings.
3
+ * Use default bundle path (`vendor/bundle`) when `Bundler.settings[:path]` returns nil.
4
+
1
5
  # 1.6.0
2
6
  * Drop support for Ruby 2.3 and 2.4.
3
7
 
@@ -16,11 +16,10 @@ module DiceBag
16
16
 
17
17
  class << self
18
18
  def gem_specs
19
- @gem_specs ||= begin
19
+ @gem_specs ||=
20
20
  Gem::Specification.sort.each_with_object({}) do |spec, hsh|
21
21
  hsh[spec.name] = spec.full_gem_path
22
22
  end
23
- end
24
23
  end
25
24
 
26
25
  def checker_within_given_gems?(checker, gem_names)
@@ -4,6 +4,7 @@
4
4
  module DiceBag
5
5
  class Project
6
6
  DEFAULT_NAME = "project"
7
+ DEFAULT_BUNDLE_PATH = "vendor/bundle"
7
8
 
8
9
  # TODO: how to find the name of the project in non Rails apps?
9
10
  def self.name
@@ -22,8 +23,9 @@ module DiceBag
22
23
  end
23
24
 
24
25
  def self.templates_to_generate
26
+ bundle_path = (defined?(Bundler) && Bundler.settings[:path]) || DEFAULT_BUNDLE_PATH
25
27
  FileList.new("**/*.dice") do |fl|
26
- fl.exclude(File.join(Bundler.settings[:path], "/**/*")) if defined?(Bundler) && Bundler.settings[:path]
28
+ fl.exclude(File.join(bundle_path, "/**/*"))
27
29
  end
28
30
  end
29
31
  end
@@ -9,7 +9,6 @@ desc "Populate all templates using values from the environment to create configu
9
9
  task config: ["config:all"]
10
10
 
11
11
  namespace :config do
12
- # Deprecated, present only for backward compatibility.
13
12
  task :all do
14
13
  DiceBag::Command.new.write_all
15
14
  end
@@ -19,11 +19,6 @@ module DiceBag
19
19
  end
20
20
 
21
21
  def create_file(config_file, params)
22
- # By passing "<>" we're trimming trailing newlines on lines that are
23
- # nothing but ERB blocks (see documentation). This is useful for files
24
- # like mauth_key where we want to control newlines carefully.
25
- template = ERB.new(File.read(@file), nil, "<>")
26
-
27
22
  # templates expect a configured object
28
23
  configured = Configuration.new
29
24
  warning = Warning.new(@filename)
@@ -34,5 +29,18 @@ module DiceBag
34
29
  config_file.write(contents)
35
30
  puts "File '#{config_file.file}' created"
36
31
  end
32
+
33
+ private
34
+
35
+ def template
36
+ # By passing "<>" we're trimming trailing newlines on lines that are
37
+ # nothing but ERB blocks (see documentation). This is useful for files
38
+ # like mauth_key where we want to control newlines carefully.
39
+ if ERB.instance_method(:initialize).parameters.assoc(:key) # Ruby 2.6+
40
+ ERB.new(File.read(@file), trim_mode: "<>")
41
+ else
42
+ ERB.new(File.read(@file), nil, "<>")
43
+ end
44
+ end
37
45
  end
38
46
  end
@@ -32,7 +32,7 @@ module DiceBag
32
32
  cert.issuer = root_ca.subject # root CA is the issuer
33
33
  cert.public_key = PrivateKey.new(private_key.dup).public_key
34
34
  cert.not_before = Time.now
35
- cert.not_after = cert.not_before + 1 * 365 * 24 * 60 * 60 # 1 years validity
35
+ cert.not_after = cert.not_before + (1 * 365 * 24 * 60 * 60) # 1 years validity
36
36
  ef = OpenSSL::X509::ExtensionFactory.new
37
37
  ef.subject_certificate = cert
38
38
  ef.issuer_certificate = root_ca
@@ -61,7 +61,7 @@ module DiceBag
61
61
  root_ca.issuer = root_ca.subject # root CA's are "self-signed"
62
62
  root_ca.public_key = root_key.public_key
63
63
  root_ca.not_before = Time.now
64
- root_ca.not_after = root_ca.not_before + 2 * 365 * 24 * 60 * 60 # 2 years validity
64
+ root_ca.not_after = root_ca.not_before + (2 * 365 * 24 * 60 * 60) # 2 years validity
65
65
  ef = OpenSSL::X509::ExtensionFactory.new
66
66
  ef.subject_certificate = root_ca
67
67
  ef.issuer_certificate = root_ca
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DiceBag
4
- VERSION = "1.6.0"
4
+ VERSION = "1.6.1"
5
5
  end
@@ -0,0 +1,4 @@
1
+ development:
2
+ database: development
3
+ username: <%= configured.database_username || 'root' %>
4
+ password: <%= configured.database_password %>
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
4
+ require "dice_bag/project"
5
+ require "dice_bag/template_file"
6
+
7
+ RSpec.describe DiceBag::TemplateFile do
8
+ let(:file_name) { "config/database.yml" }
9
+ let(:template_name) { "#{file_name}.dice" }
10
+ let(:template_file) { DiceBag::TemplateFile.new(template_name) }
11
+ let(:config_file) { double(file: file_name) }
12
+ let(:params) { { deploy: true } }
13
+
14
+ before do
15
+ allow(ENV).to receive(:[]).with("DATABASE_USERNAME").and_return("alice")
16
+ allow(ENV).to receive(:[]).with("DATABASE_PASSWORD").and_return("xyzzy")
17
+ allow(DiceBag::Project).to receive(:root).and_return(File.join(__dir__, "support"))
18
+ end
19
+
20
+ it "writes to configuration file" do
21
+ expect(config_file)
22
+ .to receive(:write).with("development:\n database: development\n username: alice\n password: xyzzy\n")
23
+ template_file.create_file(config_file, params)
24
+ end
25
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dice_bag
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.0
4
+ version: 1.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Smith
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2021-01-12 00:00:00.000000000 Z
12
+ date: 2022-02-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: diff-lcs
@@ -145,6 +145,8 @@ files:
145
145
  - spec/command_spec.rb
146
146
  - spec/configuration_spec.rb
147
147
  - spec/spec_helper.rb
148
+ - spec/support/config/database.yml.dice
149
+ - spec/template_file_spec.rb
148
150
  homepage:
149
151
  licenses:
150
152
  - MIT
@@ -173,6 +175,8 @@ summary: Dice Bag is a library of rake tasks for configuring web apps in the sty
173
175
  of The Twelve-Factor App. It also provides continuous integration tasks that rely
174
176
  on the configuration tasks.
175
177
  test_files:
176
- - spec/command_spec.rb
177
- - spec/spec_helper.rb
178
178
  - spec/configuration_spec.rb
179
+ - spec/spec_helper.rb
180
+ - spec/support/config/database.yml.dice
181
+ - spec/command_spec.rb
182
+ - spec/template_file_spec.rb