invar 0.9.1 → 0.10.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2346259fc26689ffca5386f39e982de60dc9f2d9c03399f85023e05a47802f7a
4
- data.tar.gz: b6e2cea0c52fd0b52eb833036844c03d3a714d83e0572dc5dcbb4ae083c61cf7
3
+ metadata.gz: d0dda6e3ee1fab9e48b11a3003fc654491db18d1d5c6eb835497763a072a95ed
4
+ data.tar.gz: f29202a1172866960164c2fff2da25dba4b407de66888cc7a627d29698ce5071
5
5
  SHA512:
6
- metadata.gz: 1a9556b30d2c17fda9373551ecf6fffeaacabd35aa0e40bb883c78e8bd94642bf4bebbeea054b5f9a9681b0bb23b6ee8c30860afb732f94b9d7887e62e0c0c47
7
- data.tar.gz: a80954a8dbfc4c42d3f57b94cb2830a8e598eda85cd95f37ff431a1ab2b253fa64d4c65f9aacba8cfa718f5b5f1082b05f78c0d1f97d2ae7bc58b4392c4e19f0
6
+ metadata.gz: 1bcbcadbab0526b80a49f55d0d4e6690e4f40bfa256dbd7f80fac9f360385d76837c55e18245d792484758f6062e580b56e66b8811dfcf88bfd79c6652daf1e9
7
+ data.tar.gz: 1ec446252e7fa03359721bf3029fcc3471291a70da6640a3b771c581275ac093cd165aca5a6537153aa29d58f068198d6c368f9c801f6d61b85c4b59eaa4648e
data/.rubocop.yml CHANGED
@@ -1,5 +1,10 @@
1
1
  inherit_from: ~/.config/rubocop/config.yml
2
2
 
3
+ require:
4
+ - rubocop-performance
5
+ - rubocop-rspec
6
+ - rubocop-rake
7
+
3
8
  AllCops:
4
9
  Exclude:
5
10
  - 'bin/*'
@@ -12,3 +17,20 @@ Metrics/BlockLength:
12
17
  Metrics/ModuleLength:
13
18
  Exclude:
14
19
  - 'spec/**/*.rb'
20
+
21
+ RSpec/ExampleWording:
22
+ Enabled: false
23
+
24
+ RSpec/ExampleLength:
25
+ CountAsOne:
26
+ - array
27
+ - hash
28
+ - heredoc
29
+ - method_call
30
+
31
+ RSpec/NotToNot:
32
+ Enabled: false
33
+
34
+ # TODO: remove this restriction
35
+ RSpec/MultipleMemoizedHelpers:
36
+ Enabled: false
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- ruby-3.1.4
1
+ ruby-3.3.0
data/Gemfile CHANGED
@@ -7,14 +7,16 @@ gemspec
7
7
 
8
8
  group :development do
9
9
  gem 'bundler', '~> 2.3'
10
- gem 'rake', '~> 13.0'
11
- gem 'rubocop', '~> 1.56'
12
- gem 'rubocop-performance', '~> 1.19'
10
+ gem 'rake', '~> 13.3'
11
+ gem 'rubocop', '~> 1.79'
12
+ gem 'rubocop-performance', '~> 1.25'
13
+ gem 'rubocop-rake', '~> 0.7'
14
+ gem 'rubocop-rspec', '~> 3.6'
13
15
  gem 'yard', '~> 0.9'
14
16
  end
15
17
 
16
18
  group :test do
17
- gem 'fakefs', '~> 2.5'
18
- gem 'rspec', '~> 3.12'
19
+ gem 'climate_control', '~> 1.2'
20
+ gem 'rspec', '~> 3.13'
19
21
  gem 'simplecov', '~> 0.22'
20
22
  end
data/RELEASE_NOTES.md CHANGED
@@ -19,6 +19,34 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
19
19
 
20
20
  * none
21
21
 
22
+ ## [0.10.0] - 2025-08-14
23
+
24
+ ### Major Changes
25
+
26
+ * none
27
+
28
+ ### Minor Changes
29
+
30
+ * Updated Lockbox dependency
31
+
32
+ ### Bugfixes
33
+
34
+ * none
35
+
36
+ ## [0.9.2] - 2024-03-03
37
+
38
+ ### Major Changes
39
+
40
+ * none
41
+
42
+ ### Minor Changes
43
+
44
+ * none
45
+
46
+ ### Bugfixes
47
+
48
+ * Fixed load error in ruby 3.3 of not properly requiring Forwardable
49
+
22
50
  ## [0.9.1] - 2023-09-30
23
51
 
24
52
  ### Major Changes
data/Rakefile CHANGED
@@ -1,10 +1,14 @@
1
+ #!/usr/bin/env rake
1
2
  # frozen_string_literal: true
2
3
 
4
+ # No longer require bundle exec
5
+ Gem.use_gemdeps 'Gemfile'
6
+
3
7
  require 'bundler/gem_tasks'
4
8
  require 'rspec/core/rake_task'
5
9
  require 'yard'
6
10
 
7
- RSpec::Core::RakeTask.new(:spec)
11
+ RSpec::Core::RakeTask.new :spec
8
12
 
9
13
  task default: :spec
10
14
 
data/invar.gemspec CHANGED
@@ -30,5 +30,5 @@ Gem::Specification.new do |spec|
30
30
  spec.required_ruby_version = '>= 3.1'
31
31
 
32
32
  spec.add_dependency 'dry-schema', '>= 1.0'
33
- spec.add_dependency 'lockbox', '>= 1.0'
33
+ spec.add_dependency 'lockbox', '>= 2.0'
34
34
  end
@@ -3,13 +3,14 @@
3
3
  require 'invar/version'
4
4
  require 'invar/scope'
5
5
 
6
- require 'delegate'
6
+ require 'forwardable'
7
7
 
8
8
  module Invar
9
9
  # Verifies a file is secure
10
10
  class PrivateFile
11
11
  extend Forwardable
12
- def_delegators :@delegate_sd_obj, :stat, :to_s, :basename, :dirname, :extname, :==, :chmod, :rename, :write
12
+ def_delegators :@delegate_sd_obj,
13
+ :stat, :to_s, :basename, :dirname, :extname, :==, :chmod, :rename, :write, :binwrite
13
14
 
14
15
  # Mask for limiting to the lowest three octal digits (which store permissions)
15
16
  PERMISSIONS_MASK = 0o777
@@ -82,8 +82,7 @@ module Invar
82
82
  encrypted_data = lockbox.encrypt(content)
83
83
 
84
84
  config_dir.mkpath
85
- # TODO: replace File.opens with photo_path.binwrite(uri.data) once FakeFS can handle it
86
- File.open(file_path.to_s, 'wb') { |f| f.write encrypted_data }
85
+ file_path.binwrite encrypted_data
87
86
  file_path.chmod permissions if permissions
88
87
 
89
88
  warn "Saved file: #{ file_path }"
data/lib/invar/scope.rb CHANGED
@@ -4,7 +4,7 @@ module Invar
4
4
  # A set of configurations
5
5
  class Scope
6
6
  def initialize(data = nil)
7
- @data = convert(data)
7
+ @data = convert data
8
8
 
9
9
  @data.freeze
10
10
  freeze
@@ -34,7 +34,7 @@ module Invar
34
34
  def respond_to_missing?(method_name, include_all)
35
35
  guard_test_methods method_name
36
36
 
37
- super method_name, include_all
37
+ super(method_name, include_all)
38
38
  end
39
39
 
40
40
  # Returns a hash representation of this scope and subscopes.
data/lib/invar/version.rb CHANGED
@@ -2,5 +2,5 @@
2
2
 
3
3
  module Invar
4
4
  # Current version of the gem
5
- VERSION = '0.9.1'
5
+ VERSION = '0.10.0'
6
6
  end
data/lib/invar.rb CHANGED
@@ -28,7 +28,7 @@ module Invar
28
28
  def respond_to_missing?(method_name, include_all)
29
29
  guard_test_hooks method_name
30
30
 
31
- super method_name, include_all
31
+ super(method_name, include_all)
32
32
  end
33
33
 
34
34
  private
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: invar
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.1
4
+ version: 0.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robin Miller
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-09-30 00:00:00.000000000 Z
11
+ date: 2025-08-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dry-schema
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '1.0'
33
+ version: '2.0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: '1.0'
40
+ version: '2.0'
41
41
  description: |
42
42
  Locates and loads config YAML files based on XDG standard with the encrypted secrets file kept separately.
43
43
  Includes useful rake tasks to make management easier. No code execution in config. Rails-independent. Gluten free.
@@ -92,7 +92,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
92
92
  - !ruby/object:Gem::Version
93
93
  version: '0'
94
94
  requirements: []
95
- rubygems_version: 3.4.18
95
+ rubygems_version: 3.5.3
96
96
  signing_key:
97
97
  specification_version: 4
98
98
  summary: Single source of truth for environmental configuration.