dice_bag 1.6.0 → 1.6.1

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: 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