prius 1.0.0 → 4.0.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
- SHA1:
3
- metadata.gz: 2f204cfe4500248f7ae5ec942f91aa3e367b5507
4
- data.tar.gz: 375c5ede8265db74665bdfa8d5a512e6c2be84d0
2
+ SHA256:
3
+ metadata.gz: a2e2b95c7456b01442cf90ba9ad16d4a4ca872bbcf765f15aefeb0b5ff132003
4
+ data.tar.gz: 1f3cf76e9746fc2433d297e0090a1f4ab166ceda25de176ccee0826e02b99c50
5
5
  SHA512:
6
- metadata.gz: 1c8edc7fcae0e3b43d8bb2385228a8c4667511407724d8348b52e93e5a35bbee2f60e9626291b705a21f39fb21f802be17e750d9ce6e9e998817e9fc24e8eb2d
7
- data.tar.gz: 8514bdb66909f5b16f7dd9173e0478503453fecd6bb0fcf41bab11b37bdc62de96b92107e08d6309a988481d7fa0521f3b4e3402c0957c4f023f8b1fa6e8b804
6
+ metadata.gz: cb70cd3bc19f29b24ed2a980d713a45476a8ff1006f853b6dbc8ab2091f743208d819eaffdf098234114c847420729bf7c7d119c8726f8ca8a02fabc0c95c68f
7
+ data.tar.gz: 53df6a3b348e74b69c193a36ad56b3d5e4c5dc0360347eadd7f570a06b820ebdef8344d921467d7cd6e5221f61499d8890fa7bea5264e1b563a6d760397210f4
@@ -0,0 +1,60 @@
1
+ version: 2
2
+
3
+ references:
4
+ steps: &steps
5
+ - checkout
6
+
7
+ # CircleCI's Ruby images have Git installed, but the JRuby images lack it, so let's
8
+ # make sure it's installed
9
+ - run: apt-get update && apt-get install -y git
10
+
11
+ - type: cache-restore
12
+ key: prius-bundler-{{ checksum "prius.gemspec" }}
13
+
14
+ - run: gem install bundler -v 2.0.1
15
+
16
+ - run: bundle install --path vendor/bundle
17
+
18
+ - type: cache-save
19
+ key: prius-bundler-{{ checksum "prius.gemspec" }}
20
+ paths:
21
+ - vendor/bundle
22
+
23
+ - type: shell
24
+ command: |
25
+ bundle exec rspec --profile 10 \
26
+ --format RspecJunitFormatter \
27
+ --out /tmp/test-results/rspec.xml \
28
+ --format progress \
29
+ spec
30
+
31
+ - type: store_test_results
32
+ path: /tmp/test-results
33
+
34
+ - run: bundle exec rubocop
35
+ jobs:
36
+ build-ruby26:
37
+ docker:
38
+ - image: ruby:2.6
39
+ steps: *steps
40
+ build-ruby27:
41
+ docker:
42
+ - image: ruby:2.7
43
+ steps: *steps
44
+ build-ruby3:
45
+ docker:
46
+ - image: ruby:3
47
+ steps: *steps
48
+ build-jruby93:
49
+ docker:
50
+ - image: jruby:9.3
51
+ steps: *steps
52
+
53
+ workflows:
54
+ version: 2
55
+ tests:
56
+ jobs:
57
+ - build-ruby26
58
+ - build-ruby27
59
+ - build-ruby3
60
+ - build-jruby93
@@ -0,0 +1,7 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: bundler
4
+ directory: "/"
5
+ schedule:
6
+ interval: weekly
7
+ open-pull-requests-limit: 10
data/.rubocop.yml CHANGED
@@ -1,6 +1,8 @@
1
1
  AllCops:
2
2
  Exclude:
3
3
  - prius.gemspec
4
+ - vendor/**/*
5
+ TargetRubyVersion: 2.6
4
6
 
5
7
  # Limit lines to 80 characters.
6
8
  LineLength:
@@ -18,5 +20,9 @@ Style/Documentation:
18
20
  Style/SignalException:
19
21
  EnforcedStyle: 'only_raise'
20
22
 
21
- Style/DotPosition:
23
+ Layout/DotPosition:
22
24
  EnforcedStyle: 'trailing'
25
+
26
+ Metrics/BlockLength:
27
+ Exclude:
28
+ - "spec/**/*_spec.rb"
data/CHANGELOG.md ADDED
@@ -0,0 +1,21 @@
1
+ # 4.0.0
2
+
3
+ * Add support for Ruby 3.0
4
+ * Enforce Ruby 2.6 as minimum required version
5
+ * Drop support for Ruby 2.2, 2.3, 2.4, 2.5
6
+ * Drop support for JRuby versions < 9.3.x (implicity enforced by C Ruby version 2.6 as minimum)
7
+
8
+ # 3.0.0
9
+
10
+ * Enforce Ruby 2.2 as minimum required version
11
+ * Use CircleCI instead of Travis for CI builds
12
+ * Add Dependabot support
13
+ * Some development dependency updates
14
+
15
+ # 2.0.0
16
+
17
+ * Drop support for Ruby versions 1.9, 2.0, 2.1, and add support for 2.3 and 2.4
18
+
19
+ # 1.0.0
20
+
21
+ Initial release
data/Gemfile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source "https://rubygems.org"
2
4
 
3
5
  gemspec
data/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
  Environmentally-friendly application config for Ruby.
3
3
 
4
4
  [![Gem Version](https://badge.fury.io/rb/prius.svg)](http://badge.fury.io/rb/prius)
5
- [![Build Status](https://travis-ci.org/gocardless/prius.svg?branch=master)](https://travis-ci.org/gocardless/prius)
5
+ [![Build Status](https://circleci.com/gh/gocardless/prius.svg?style=svg)](https://app.circleci.com/pipelines/github/gocardless/prius)
6
6
 
7
7
  Prius helps you guarantee that your environment variables are:
8
8
 
@@ -78,3 +78,7 @@ If the environment variable hasn't been loaded, Prius will raise an `UndeclaredN
78
78
  To make running your app in test and development environments easier we
79
79
  recommend using [Dotenv](https://github.com/bkeepers/dotenv) to automatically
80
80
  load a file of dummy config values.
81
+
82
+ ---
83
+
84
+ GoCardless ♥ open source. If you do too, come [join us](https://gocardless.com/about/jobs/software-engineer).
data/lib/prius/errors.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Prius
2
4
  class MissingValueError < StandardError; end
3
5
  class TypeMismatchError < StandardError; end
data/lib/prius/railtie.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Prius
2
4
  class Railtie < Rails::Railtie
3
5
  config.before_configuration do
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "prius/errors"
2
4
 
3
5
  module Prius
@@ -37,6 +39,7 @@ module Prius
37
39
  @env.fetch(name)
38
40
  rescue KeyError
39
41
  return nil unless required
42
+
40
43
  raise MissingValueError, "config value '#{name}' not present"
41
44
  end
42
45
 
@@ -44,22 +47,20 @@ module Prius
44
47
  value = load_string(name, required)
45
48
  return value if value.nil?
46
49
 
47
- unless /\A[0-9]+\z/.match(value)
50
+ unless value =~ /\A[0-9]+\z/
48
51
  raise TypeMismatchError, "'#{name}' value '#{value}' is not an integer"
49
52
  end
53
+
50
54
  value.to_i
51
55
  end
52
56
 
53
57
  def load_bool(name, required)
54
58
  value = load_string(name, required)
55
59
  return nil if value.nil?
60
+ return true if %w[yes y true t 1].include?(value)
61
+ return false if %w[no n false f 0].include?(value)
56
62
 
57
- if /\A(yes|y|true|t|1)\z/i.match(value)
58
- return true
59
- elsif /\A(no|n|false|f|0)\z/i.match(value)
60
- return false
61
- end
62
- raise TypeMismatchError, "'#{name}' value '#{value}' is not an boolean"
63
+ raise TypeMismatchError, "'#{name}' value '#{value}' is not a boolean"
63
64
  end
64
65
  end
65
66
  end
data/lib/prius/version.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Prius
2
- VERSION = "1.0.0".freeze
4
+ VERSION = "4.0.0"
3
5
  end
data/lib/prius.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "prius/registry"
2
4
  require "prius/railtie" if defined?(Rails)
3
5
 
data/prius.gemspec CHANGED
@@ -6,7 +6,7 @@ require 'prius/version'
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = "prius"
8
8
  spec.version = Prius::VERSION
9
- spec.authors = ["Harry Marr"]
9
+ spec.authors = ["GoCardless Engineering"]
10
10
  spec.email = ["engineering@gocardless.com"]
11
11
  spec.description = %q{Environmentally-friendly config}
12
12
  spec.summary = spec.description
@@ -18,6 +18,10 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ["lib"]
20
20
 
21
+ spec.required_ruby_version = ">= 2.6"
22
+
21
23
  spec.add_development_dependency "rspec", "~> 3.1"
22
- spec.add_development_dependency "rubocop", "~> 0.31.0"
24
+ spec.add_development_dependency "rubocop", "~> 1.24"
25
+ spec.add_development_dependency "rspec_junit_formatter", "~> 0.5.1"
26
+ spec.add_development_dependency "rubocop-performance", "~> 1.13"
23
27
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "prius/registry"
2
4
 
3
5
  describe Prius::Registry do
@@ -39,7 +41,7 @@ describe Prius::Registry do
39
41
 
40
42
  it "stores an int" do
41
43
  registry.load(:age, type: :int)
42
- expect(registry.get(:age)).to be_a(Fixnum)
44
+ expect(registry.get(:age)).to be_a(Integer)
43
45
  end
44
46
  end
45
47
 
metadata CHANGED
@@ -1,43 +1,71 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: prius
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 4.0.0
5
5
  platform: ruby
6
6
  authors:
7
- - Harry Marr
8
- autorequire:
7
+ - GoCardless Engineering
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-05-29 00:00:00.000000000 Z
11
+ date: 2022-08-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '3.1'
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
26
  version: '3.1'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rubocop
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ~>
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.31.0
33
+ version: '1.24'
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: 0.31.0
40
+ version: '1.24'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec_junit_formatter
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 0.5.1
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 0.5.1
55
+ - !ruby/object:Gem::Dependency
56
+ name: rubocop-performance
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '1.13'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '1.13'
41
69
  description: Environmentally-friendly config
42
70
  email:
43
71
  - engineering@gocardless.com
@@ -45,9 +73,11 @@ executables: []
45
73
  extensions: []
46
74
  extra_rdoc_files: []
47
75
  files:
48
- - .gitignore
49
- - .rubocop.yml
50
- - .travis.yml
76
+ - ".circleci/config.yml"
77
+ - ".github/dependabot.yml"
78
+ - ".gitignore"
79
+ - ".rubocop.yml"
80
+ - CHANGELOG.md
51
81
  - Gemfile
52
82
  - LICENSE
53
83
  - README.md
@@ -62,26 +92,24 @@ homepage: https://github.com/gocardless/prius
62
92
  licenses:
63
93
  - MIT
64
94
  metadata: {}
65
- post_install_message:
95
+ post_install_message:
66
96
  rdoc_options: []
67
97
  require_paths:
68
98
  - lib
69
99
  required_ruby_version: !ruby/object:Gem::Requirement
70
100
  requirements:
71
- - - '>='
101
+ - - ">="
72
102
  - !ruby/object:Gem::Version
73
- version: '0'
103
+ version: '2.6'
74
104
  required_rubygems_version: !ruby/object:Gem::Requirement
75
105
  requirements:
76
- - - '>='
106
+ - - ">="
77
107
  - !ruby/object:Gem::Version
78
108
  version: '0'
79
109
  requirements: []
80
- rubyforge_project:
81
- rubygems_version: 2.4.2
82
- signing_key:
110
+ rubygems_version: 3.2.15
111
+ signing_key:
83
112
  specification_version: 4
84
113
  summary: Environmentally-friendly config
85
114
  test_files:
86
115
  - spec/prius/registry_spec.rb
87
- has_rdoc:
data/.travis.yml DELETED
@@ -1,18 +0,0 @@
1
- language: ruby
2
-
3
- matrix:
4
- allow_failures:
5
- - rvm: jruby
6
- - rvm: rbx-2
7
-
8
- rvm:
9
- - 1.9.3
10
- - 2.0
11
- - 2.1
12
- - 2.2
13
- - jruby
14
- - rbx-2
15
-
16
- script:
17
- - bundle exec rubocop
18
- - bundle exec rspec spec