envy.benforeva 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 44b9463e1dbafceb661a7ba70ba1a4797bf3ee83
4
+ data.tar.gz: 584efe2c775caa78909b374b465e7fca67211059
5
+ SHA512:
6
+ metadata.gz: 724aee76dd5dc787f498099c5a37a4cc338c27dc6f9fefc486ecb0b728da9552786c3c745eae91518da7b61e1892a68de8588e170d3a5be079d6f5b504045484
7
+ data.tar.gz: a03aed39a5bbd6e615ab8d82e54b4f760e3b601a857d395c1ffbc27dbf1702e196ee345689f0483aa24342ce41c0b40a61ba2f0cc78fe0929c62e263559d249a
@@ -0,0 +1,51 @@
1
+ require 'dotenv'
2
+ require_relative 'envy/deploy.rb'
3
+
4
+ # Module for loading environment variables and failing programs when variables
5
+ # are not set.
6
+ module Envy
7
+ include Dotenv, Deploy
8
+
9
+ EnvMissing = Class.new(StandardError)
10
+
11
+ # Creates environment variables for `.env' and overwrites them with variables
12
+ # present in `.env.test`
13
+ def self.test_envs
14
+ Dotenv.overload('.env.test')
15
+ end
16
+
17
+ # Returns the value of the specified environment variable or raises an
18
+ # EnvMissing exception
19
+ # @param env_name [String] name of the environment variable, which should match an
20
+ # entry in .env* files
21
+ # @raise [EnvMissing] when the environment variable does not exist
22
+ # @return [String, nil] value of envrionment variable when env_name is a valid
23
+ # name and nil otherwise
24
+ def self.load_env(env_name)
25
+ if env_name?(env_name)
26
+ ENV.fetch(env_name){|name| raise EnvMissing, load_env_error_message(name)}
27
+ end
28
+ end
29
+
30
+ # Entity check for EnvName parameter
31
+ # @param data [Object] object under test
32
+ # @return [Boolean] true if data is a valid EnvName, false otherwise
33
+ def self.env_name?(data)
34
+ data.is_a?(String) &&
35
+ (data == data.upcase)
36
+ end
37
+
38
+ # Exception message for EnvMissing in #load_env
39
+ # @param env_name [String] name of the environment variable, which should match an
40
+ # entry in .env* files
41
+ # @return [String] error message
42
+ def self.load_env_error_message(env_name)
43
+ "#{env_name} is missing from the environment. "\
44
+ "Please ensure that the entry #{env_name}=value-of-var is present in " \
45
+ "your .env or .env.* file."
46
+ end
47
+
48
+ def self.deploy_heroku(app_name)
49
+ Deploy.deploy_heroku(app_name)
50
+ end
51
+ end
@@ -0,0 +1,30 @@
1
+ require 'platform-api'
2
+ require 'dotenv'
3
+ Dotenv.load
4
+
5
+ module Deploy
6
+ extend self
7
+
8
+ MissingHerokuToken = Class.new(StandardError)
9
+ TokenName = 'HEROKU_TOKEN'
10
+
11
+ def self.heroku_token
12
+ ENV.fetch(TokenName) do |name|
13
+ raise MissingHerokuToken,
14
+ "The environment variable #{name} has not been set." \
15
+ " The method #deploy_heroku cannot be run without it."
16
+ end
17
+ end
18
+
19
+ def heroku_client
20
+ PlatformAPI.connect_oauth(heroku_token)
21
+ end
22
+
23
+ def deploy_heroku(app_name)
24
+ heroku_client.config_var.update(app_name, config_vars)
25
+ end
26
+
27
+ def config_vars
28
+ Dotenv.load.delete_if{|k| k.eql? TokenName}
29
+ end
30
+ end
@@ -0,0 +1,3 @@
1
+ module Envy
2
+ VERSION = '1.1.0'
3
+ end
metadata ADDED
@@ -0,0 +1,74 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: envy.benforeva
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Andre Dickosn
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2018-07-24 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: dotenv
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'
27
+ - !ruby/object:Gem::Dependency
28
+ name: platform-api
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ description: Envy fails programs dependent on missingenvironment variables
42
+ email: andrebcdickson@gmail.com
43
+ executables: []
44
+ extensions: []
45
+ extra_rdoc_files: []
46
+ files:
47
+ - lib/envy.rb
48
+ - lib/envy/deploy.rb
49
+ - lib/envy/version.rb
50
+ homepage: https://bitbucket.org/benforeva/envy/src/master/
51
+ licenses:
52
+ - MIT
53
+ metadata: {}
54
+ post_install_message:
55
+ rdoc_options: []
56
+ require_paths:
57
+ - lib
58
+ required_ruby_version: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ required_rubygems_version: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ requirements: []
69
+ rubyforge_project:
70
+ rubygems_version: 2.6.14.1
71
+ signing_key:
72
+ specification_version: 4
73
+ summary: strict environment management
74
+ test_files: []