r_creds 0.2.1 → 1.1.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: 355bd57c7b2ef3d439272e1dae2a0a58d512a1901bbd0ceb8d0b444f4d53f28f
4
- data.tar.gz: '08cf613107791096f38dd13213267bb48fc7ab97b3ca5f2b5079a787bd0a7a66'
3
+ metadata.gz: 4dabe6bdee40775f9f0f9f4d01f16bea0ab6189dd25eb5d8cf9c306f2680a16b
4
+ data.tar.gz: c04ff62f0cef7c5209d17521820e20cb22c1f6aa22d2908167866d68d742e273
5
5
  SHA512:
6
- metadata.gz: 1d5948ec954d7f0f0169879902295444f797ea6f09c84de104cd81da35320e1ee76865e2277137a6d934dcd28a17f1c50673d2ebcf86da26c7f0573c53a549a8
7
- data.tar.gz: e736f5120c567151ad481a89c3602f1189ad9a58502ae955606600042408419d03db988fdc6965c94fc8b5a68541cd16245ae43272834ad1488c4eac9e8349bc
6
+ metadata.gz: a63a2e294b20d00462610f613f1ac4c67286753a9a30c38271db08ebf844c44fde6d861829d20e7ec7cdfcab6caa08940f3ed24b978308fff410d1e4569d19f3
7
+ data.tar.gz: 28aede2cc183cfdb7aa3a6af2ece6fcc32a60fe224bb843b829eb3f8cda725361339ded63bb700c942a4553d878f36267b7dcef2debe108771f2cca52c022424
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
- # RCreds
1
+ # RCreds v1.1.0
2
2
 
3
- RCreds makes working with Rails 5.2 credentials easier
3
+ RCreds makes working with Rails 5.2/6/7 credentials easier
4
4
 
5
5
  ## Installation
6
6
 
@@ -42,10 +42,14 @@ RCreds.fetch(:aws, :access_key_id, default: 'some_default_test_key') # output: s
42
42
  ```
43
43
  RCreds searches for values in following order: credentials.yml > ENV > default and returns nil if nothing match
44
44
 
45
- RCreds uses `Rails.env` to determinate environment. But you can set any environement.
45
+ # DEPRECATED
46
+ `Rails 6 loads only one specific environment credentials and does not allow to cahnge it.`
47
+
48
+ RCreds uses `Rails.env` to determinate environment. But you can set any environment.
46
49
  ```ruby
47
50
  RCreds.fetch(:aws, :access_key_id, environment: 'production')
48
51
  ```
52
+ `Will be removed in next version`
49
53
 
50
54
  ## Development
51
55
 
@@ -3,7 +3,7 @@ module RCreds
3
3
  class NoRailsError < StandardError; end
4
4
 
5
5
  def initialize(keys, default, environment)
6
- @keys = keys
6
+ @keys = keys.map!(&:to_sym)
7
7
  @default = default
8
8
  @environment = environment
9
9
  end
@@ -22,7 +22,7 @@ module RCreds
22
22
  end
23
23
 
24
24
  def fetch
25
- cred = Rails.application.credentials.dig(environment, *keys)
25
+ cred = send("fetch_rails_#{@rails_version}")
26
26
 
27
27
  presence?(cred) || presence?(ENV[keys.join('_').upcase]) || default
28
28
  end
@@ -41,10 +41,32 @@ module RCreds
41
41
  cred.respond_to?(:empty?) ? !!cred.empty? : !cred
42
42
  end
43
43
 
44
+ def fetch_rails_5
45
+ Rails.application.credentials.dig(environment, *keys)
46
+ end
47
+
48
+ def fetch_rails_6
49
+ if rails6_multi_env?
50
+ puts "WARNING! Environment choice does not work in Rails >= 6. Fetching credentials for '#{Rails.env}'" if presence?(@environment)
51
+ Rails.application.credentials.dig(*keys)
52
+ else
53
+ Rails.application.credentials.dig(environment, *keys)
54
+ end
55
+ end
56
+ alias fetch_rails_7 fetch_rails_6
57
+
58
+ def rails6_multi_env?
59
+ Rails.application.credentials.content_path.basename.to_s != 'credentials.yml.enc'
60
+ end
61
+
44
62
  def check_rails
45
- return true if defined?(::Rails)
63
+ return define_rails_strategy && true if defined?(::Rails)
64
+
65
+ raise NoRailsError, 'RCreds works with 5.2 and above'
66
+ end
46
67
 
47
- raise NoRailsError.new 'RCreds works with 5.2 and above'
68
+ def define_rails_strategy
69
+ @rails_version = Rails.version.to_i
48
70
  end
49
71
  end
50
72
  end
@@ -1,3 +1,3 @@
1
1
  module RCreds
2
- VERSION = "0.2.1"
2
+ VERSION = '1.1.0'.freeze
3
3
  end
data/lib/r_creds.rb CHANGED
@@ -1,5 +1,5 @@
1
- require "r_creds/version"
2
- require_relative "r_creds/fetcher"
1
+ require 'r_creds/version'
2
+ require_relative 'r_creds/fetcher'
3
3
 
4
4
  module RCreds
5
5
  def self.fetch(*keys, default: nil, environment: nil)
data/r_creds.gemspec CHANGED
@@ -1,41 +1,30 @@
1
-
2
- lib = File.expand_path("../lib", __FILE__)
1
+ lib = File.expand_path('lib', __dir__)
3
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require "r_creds/version"
3
+ require 'r_creds/version'
5
4
 
6
5
  Gem::Specification.new do |spec|
7
- spec.name = "r_creds"
6
+ spec.name = 'r_creds'
8
7
  spec.version = RCreds::VERSION
9
- spec.authors = ["OrestF"]
10
- spec.email = ["falchuko@gmail.com"]
8
+ spec.authors = ['OrestF']
9
+ spec.email = ['falchuko@gmail.com']
11
10
 
12
11
  spec.summary = 'RCreds makes working with Rails 5.2 credentials easier'
13
12
  spec.description = 'RCreds makes working with Rails 5.2 credentials easier'
14
13
  spec.homepage = 'https://github.com/coaxsoft/r_creds'
15
- spec.license = "MIT"
16
- spec.required_ruby_version = '>= 2.0.0'
17
-
18
- # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
19
- # to allow pushing to a single host or delete this section to allow pushing to any host.
20
- # if spec.respond_to?(:metadata)
21
- # spec.metadata["allowed_push_host"] = "TODO: Set to 'http://mygemserver.com'"
22
- # else
23
- # raise "RubyGems 2.0 or newer is required to protect against " \
24
- # "public gem pushes."
25
- # end
14
+ spec.license = 'MIT'
15
+ spec.required_ruby_version = '>= 2.2.0'
26
16
 
27
17
  # Specify which files should be added to the gem when it is released.
28
18
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
29
- spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
30
- `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
31
- end
32
- spec.bindir = "exe"
19
+ # spec.files = Dir.chdir(File.expand_path(__dir__)) do
20
+ # `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
21
+ # end
22
+ spec.bindir = 'exe'
33
23
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
34
- spec.require_paths = ["lib"]
24
+ spec.require_paths = ['lib']
35
25
  spec.files = Dir['README.md', 'lib/**/*', 'lib/*', 'r_creds.gemspec']
36
26
 
37
-
38
- spec.add_development_dependency "bundler", "~> 1.16"
39
- spec.add_development_dependency "rake", "~> 10.0"
40
- spec.add_development_dependency "rspec", "~> 3.0"
27
+ spec.add_development_dependency 'bundler'
28
+ spec.add_development_dependency 'rake', '~> 12.3'
29
+ spec.add_development_dependency 'rspec', '~> 3.0'
41
30
  end
metadata CHANGED
@@ -1,43 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: r_creds
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - OrestF
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-03-09 00:00:00.000000000 Z
11
+ date: 2021-12-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '1.16'
19
+ version: '0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '1.16'
26
+ version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '10.0'
33
+ version: '12.3'
34
34
  type: :development
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: '10.0'
40
+ version: '12.3'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -68,7 +68,7 @@ homepage: https://github.com/coaxsoft/r_creds
68
68
  licenses:
69
69
  - MIT
70
70
  metadata: {}
71
- post_install_message:
71
+ post_install_message:
72
72
  rdoc_options: []
73
73
  require_paths:
74
74
  - lib
@@ -76,16 +76,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
76
76
  requirements:
77
77
  - - ">="
78
78
  - !ruby/object:Gem::Version
79
- version: 2.0.0
79
+ version: 2.2.0
80
80
  required_rubygems_version: !ruby/object:Gem::Requirement
81
81
  requirements:
82
82
  - - ">="
83
83
  - !ruby/object:Gem::Version
84
84
  version: '0'
85
85
  requirements: []
86
- rubyforge_project:
87
- rubygems_version: 2.7.7
88
- signing_key:
86
+ rubygems_version: 3.1.6
87
+ signing_key:
89
88
  specification_version: 4
90
89
  summary: RCreds makes working with Rails 5.2 credentials easier
91
90
  test_files: []