herokenv 0.1.0 → 1.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
2
  SHA256:
3
- metadata.gz: 06cf32b8d2b36af9695c5405e7e0d2bc4019584cb321aa74bf33eb66131cfd98
4
- data.tar.gz: b0af7b9916525e02fcbb3c3f33ec5097381af097fde3ad06e1bf2da734fb224f
3
+ metadata.gz: 45a2b028b0258bf97a75a8ab4f0b7fde7219de445628d1b52974027b9a15c6e8
4
+ data.tar.gz: b63dc36202b4ed54be0762fc4fa4f50f156e14f1f25ad456dd2426c5b3f815b4
5
5
  SHA512:
6
- metadata.gz: f2747b1c72241d5d4652cc80fc2f8f2529044d00e5ae4e6904355ea1eddfd766944b764b4bb260b89721d8e55a624acddaf2971af71c751440e873d97ccaf511
7
- data.tar.gz: 4ac0a35c6fb7695318fca16ffa84937271e07d50e9fec200d18c38573cf13c9ba54b4dfbcb54110ee4b208a3caaa35dd5a9976711299eae829b51845b2ce8b23
6
+ metadata.gz: a2e01f77a5da66c9391a29257ccd548f399a2f31f7b3a561b62f555ed70e808491dfe02b350b800fb28fbb08df8e680eef515307e0efb9a429fe478006c07892
7
+ data.tar.gz: 47c8f8df5348f2533844592465ab6f199900775ef3f3ccbde29dc13d5431b2d4be977aa007e1166aa46a2bec74d710222b16fd55e54eee8ad0552f83693bdf12
@@ -0,0 +1,35 @@
1
+ # This workflow uses actions that are not certified by GitHub.
2
+ # They are provided by a third-party and are governed by
3
+ # separate terms of service, privacy policy, and support
4
+ # documentation.
5
+ # This workflow will download a prebuilt Ruby version, install dependencies and run tests with Rake
6
+ # For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby
7
+
8
+ name: Ruby
9
+
10
+ on:
11
+ push:
12
+ branches: [ main ]
13
+ pull_request:
14
+ branches: [ main ]
15
+
16
+ jobs:
17
+ test:
18
+
19
+ runs-on: ubuntu-latest
20
+ strategy:
21
+ matrix:
22
+ ruby-version: ['2.6', '2.7', '3.0']
23
+
24
+ steps:
25
+ - uses: actions/checkout@v2
26
+ - name: Set up Ruby
27
+ # To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
28
+ # change this to (see https://github.com/ruby/setup-ruby#versioning):
29
+ # uses: ruby/setup-ruby@v1
30
+ uses: ruby/setup-ruby@473e4d8fe5dd94ee328fdfca9f8c9c7afc9dae5e
31
+ with:
32
+ ruby-version: ${{ matrix.ruby-version }}
33
+ bundler-cache: true # runs 'bundle install' and caches installed gems automatically
34
+ - name: Run tests
35
+ run: bundle exec rake
data/Gemfile.lock CHANGED
@@ -1,7 +1,8 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- herokenv (0.1.0)
4
+ herokenv (1.0.0)
5
+ platform-api
5
6
 
6
7
  GEM
7
8
  remote: https://rubygems.org/
@@ -12,9 +13,24 @@ GEM
12
13
  rexml
13
14
  diff-lcs (1.4.4)
14
15
  docile (1.4.0)
16
+ erubis (2.7.0)
17
+ excon (0.82.0)
15
18
  hashdiff (1.0.1)
19
+ heroics (0.1.2)
20
+ erubis (~> 2.0)
21
+ excon
22
+ moneta
23
+ multi_json (>= 1.9.2)
24
+ webrick
25
+ moneta (1.0.0)
26
+ multi_json (1.15.0)
27
+ platform-api (3.3.0)
28
+ heroics (~> 0.1.1)
29
+ moneta (~> 1.0.0)
30
+ rate_throttle_client (~> 0.1.0)
16
31
  public_suffix (4.0.6)
17
32
  rake (12.3.3)
33
+ rate_throttle_client (0.1.2)
18
34
  rexml (3.2.5)
19
35
  rspec (3.10.0)
20
36
  rspec-core (~> 3.10.0)
@@ -39,6 +55,7 @@ GEM
39
55
  addressable (>= 2.3.6)
40
56
  crack (>= 0.3.2)
41
57
  hashdiff (>= 0.4.0, < 2.0.0)
58
+ webrick (1.7.0)
42
59
 
43
60
  PLATFORMS
44
61
  ruby
data/README.md CHANGED
@@ -1,8 +1,6 @@
1
1
  # Herokenv
2
2
 
3
- Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/herokenv`. To experiment with that code, run `bin/console` for an interactive prompt.
4
-
5
- TODO: Delete this and the text above, and describe your gem
3
+ Easily pull Heroku environment variables into non-Heroku environments.
6
4
 
7
5
  ## Installation
8
6
 
@@ -22,7 +20,16 @@ Or install it yourself as:
22
20
 
23
21
  ## Usage
24
22
 
25
- TODO: Write usage instructions here
23
+ Before or during the boot stage of your app you can require `herokenv` and have it populate your ENV
24
+ based on the values in a Heroku app.
25
+
26
+ ```ruby
27
+ require 'herokenv'
28
+ herokenv = Herokenv::Client.new(oauth_token: 'xxx', app: 'stark-citadel-2145')
29
+ herokenv.populate_env_from_app
30
+ ```
31
+
32
+ Now your local process will have access to ENV vars that are set in your heroku app.
26
33
 
27
34
  ## Development
28
35
 
data/herokenv.gemspec CHANGED
@@ -27,6 +27,8 @@ Gem::Specification.new do |spec|
27
27
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
28
28
  spec.require_paths = ["lib"]
29
29
 
30
+ spec.add_dependency 'platform-api'
31
+
30
32
  spec.add_development_dependency 'simplecov'
31
33
  spec.add_development_dependency 'webmock'
32
34
  end
data/lib/herokenv.rb CHANGED
@@ -1,3 +1,4 @@
1
+ require "herokenv/client"
1
2
  require "herokenv/version"
2
3
 
3
4
  module Herokenv
@@ -0,0 +1,29 @@
1
+ require 'platform-api'
2
+
3
+ module Herokenv
4
+ class Client
5
+ attr_accessor :oauth_token
6
+ attr_accessor :app
7
+ def initialize(oauth_token:, app:)
8
+ @oauth_token = oauth_token
9
+ @app = app
10
+ end
11
+
12
+ def populate_env_from_app(only: nil, except: nil)
13
+ configs = heroku.config_var.info_for_app(app)
14
+ configs.each_pair do |var, value|
15
+ if except && except.include?(var)
16
+ next
17
+ end
18
+ if only && !only.include?(var)
19
+ next
20
+ end
21
+ ENV[var] = value
22
+ end
23
+ end
24
+
25
+ def heroku
26
+ @heroku ||= PlatformAPI.connect_oauth(oauth_token)
27
+ end
28
+ end
29
+ end
@@ -1,3 +1,3 @@
1
1
  module Herokenv
2
- VERSION = "0.1.0"
2
+ VERSION = "1.0.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: herokenv
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeremy Green
@@ -10,6 +10,20 @@ bindir: exe
10
10
  cert_chain: []
11
11
  date: 2021-06-25 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: platform-api
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: simplecov
15
29
  requirement: !ruby/object:Gem::Requirement
@@ -45,6 +59,7 @@ executables: []
45
59
  extensions: []
46
60
  extra_rdoc_files: []
47
61
  files:
62
+ - ".github/workflows/ruby.yml"
48
63
  - ".gitignore"
49
64
  - ".rspec"
50
65
  - ".travis.yml"
@@ -58,6 +73,7 @@ files:
58
73
  - bin/setup
59
74
  - herokenv.gemspec
60
75
  - lib/herokenv.rb
76
+ - lib/herokenv/client.rb
61
77
  - lib/herokenv/version.rb
62
78
  homepage: https://github.com/Octo-Labs/herokenv
63
79
  licenses: