exercism_config 0.14.0 → 0.15.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: ac25eddfab6f5189cbeeace2f871ed2e5f3e3c7f8604c29b3acd7075374c5f9b
4
- data.tar.gz: 2ffb5ae56efa786c3b7726774250a24e3058cfc94827841d5fb2ba2c7c1b487a
3
+ metadata.gz: 35f4b596c7b39b71b98bcb4b7527c8e24123a1394cc4be0534e43327f687a424
4
+ data.tar.gz: 584ca75bfcce88f47f376fb0170a21fccaa7077d3267a98fc7476637a0d33993
5
5
  SHA512:
6
- metadata.gz: 25f501c4b986003944faf82fdf7bf760cb54235d5e7ffdaf2820e22d0c4620ffe6c51439dbc16bcff62e4b91a136c8fd886556daf5d4c1ad83da16bd6ff4a4f1
7
- data.tar.gz: 27b2e746e4f226d86f9bbc285bb8191cd5388dacb990265879a052c5d617d0f4996f7cf3db553f6a6b0b192eda97cfa2068a783b450916662ceba6ded0603774
6
+ metadata.gz: 2b2329c0819e6eed73f9a7aa07e3faf17c7dc2892bd232ce0557f527f920e76bd67143415646107c3503a9782d4ebd7afd6f7969cb448c97836ce4e56d2d4739
7
+ data.tar.gz: cc76afee5a592ff5d6867e0558eaae30c0be245701712ff3f386ef8ceeb5c6ffd8a759a001ab5dd850a60d4dd08e0c552ef86f19eb641aff636c8391ee70aafc
@@ -3,8 +3,9 @@ require 'mandate'
3
3
  require "ostruct"
4
4
  require 'json'
5
5
 
6
+ require_relative 'exercism_config/determine_environment'
6
7
  require_relative 'exercism_config/generate_aws_settings'
7
- require_relative 'exercism_config/setup_dynamodb_client.rb'
8
+ require_relative 'exercism_config/setup_dynamodb_client'
8
9
  require_relative 'exercism_config/retrieve'
9
10
  require_relative 'exercism_config/generate_aws_settings'
10
11
  require_relative "exercism_config/version"
@@ -15,6 +16,10 @@ module Exercism
15
16
  class ConfigError < RuntimeError
16
17
  end
17
18
 
19
+ def self.environment
20
+ @environment ||= ExercismConfig::DetermineEnvironment.()
21
+ end
22
+
18
23
  def self.config
19
24
  @config ||= ExercismConfig::Retrieve.()
20
25
  end
@@ -2,10 +2,6 @@ module ExercismConfig
2
2
  class GenerateAwsSettings
3
3
  include Mandate
4
4
 
5
- def initialize(environment)
6
- @environment = environment
7
- end
8
-
9
5
  def call
10
6
  {
11
7
  region: 'eu-west-2',
@@ -17,7 +13,7 @@ module ExercismConfig
17
13
 
18
14
  memoize
19
15
  def aws_access_key_id
20
- case environment
16
+ case Exercism.environment
21
17
  when :development, :test
22
18
  "FAKE"
23
19
  else
@@ -27,7 +23,7 @@ module ExercismConfig
27
23
 
28
24
  memoize
29
25
  def aws_secret_access_key
30
- case environment
26
+ case Exercism.environment
31
27
  when :development, :test
32
28
  "FAKE"
33
29
  else
@@ -37,24 +33,10 @@ module ExercismConfig
37
33
 
38
34
  memoize
39
35
  def profile
40
- case environment
36
+ case Exercism.environment
41
37
  when :production
42
38
  "exercism_staging"
43
39
  end
44
40
  end
45
-
46
- memoize
47
- def environment
48
- return @environment.to_sym if @environment
49
-
50
- env = ENV["EXERCISM_ENV"] || ENV["RAILS_ENV"] || ENV["APP_ENV"]
51
- raise Exercism::ConfigError, "No environment set - set one of EXERCISM_ENV, RAILS_ENV or APP_ENV" unless env
52
-
53
- unless %w[development test production].include?(env)
54
- raise Exercism::ConfigError, "environments must be one of development test production. Got #{env}"
55
- end
56
-
57
- env.to_sym
58
- end
59
41
  end
60
42
  end
@@ -2,12 +2,8 @@ module ExercismConfig
2
2
  class Retrieve
3
3
  include Mandate
4
4
 
5
- def initialize(environment = nil)
6
- @environment = environment
7
- end
8
-
9
5
  def call
10
- client = SetupDynamodbClient.(environment)
6
+ client = SetupDynamodbClient.()
11
7
 
12
8
  resp = client.scan({table_name: "config"})
13
9
  items = resp.to_h[:items]
@@ -16,13 +12,13 @@ module ExercismConfig
16
12
  end
17
13
 
18
14
  # Tweak things for dynamodb when we're running in test mode
19
- if environment == :test
15
+ if Exercism.environment == :test
20
16
  %w{dynamodb_tooling_jobs_table}.each do |key|
21
17
  data[key] = "#{data[key]}-test"
22
18
  end
23
19
  end
24
20
 
25
- aws_settings = GenerateAwsSettings.(environment)
21
+ aws_settings = GenerateAwsSettings.()
26
22
  Exercism::Config.new(data, aws_settings)
27
23
  rescue Exercism::ConfigError
28
24
  raise
@@ -43,20 +39,6 @@ module ExercismConfig
43
39
 
44
40
  Aws::DynamoDB::Client.new(config)
45
41
  end
46
-
47
- memoize
48
- def environment
49
- return @environment.to_sym if @environment
50
-
51
- env = ENV["EXERCISM_ENV"] || ENV["RAILS_ENV"] || ENV["APP_ENV"]
52
- raise Exercism::ConfigError, "No environment set - set one of EXERCISM_ENV, RAILS_ENV or APP_ENV" unless env
53
-
54
- unless %w[development test production].include?(env)
55
- raise Exercism::ConfigError, "environments must be one of development test production. Got #{env}"
56
- end
57
-
58
- env.to_sym
59
- end
60
42
  end
61
43
  end
62
44
 
@@ -2,12 +2,8 @@ module ExercismConfig
2
2
  class SetupDynamodbClient
3
3
  include Mandate
4
4
 
5
- def initialize(environment)
6
- @environment = environment
7
- end
8
-
9
5
  def call
10
- aws_settings = GenerateAwsSettings.(environment).merge(
6
+ aws_settings = GenerateAwsSettings.().merge(
11
7
  endpoint: config_endpoint,
12
8
 
13
9
  # We don't want a profile for this AWS service
@@ -23,7 +19,7 @@ module ExercismConfig
23
19
 
24
20
  memoize
25
21
  def config_endpoint
26
- case environment
22
+ case Exercism.environment
27
23
  when :development, :test
28
24
  host = ENV["EXERCISM_DOCKER"] ? "dynamodb:8000" : "localhost:3039"
29
25
  "http://#{host}"
@@ -1,3 +1,3 @@
1
1
  module ExercismConfig
2
- VERSION = "0.14.0"
2
+ VERSION = "0.15.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: exercism_config
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.14.0
4
+ version: 0.15.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeremy Walker