exercism_config 0.22.0 → 0.28.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: 9d04d6dcac3ff734c956cc7c17dfb5b89189d6eed7155b10bd16d4c32f614803
4
- data.tar.gz: '097db1c56e98ae198500107728f42ff66644e63ca701984d8c011967997ec50e'
3
+ metadata.gz: 913c636d3aa6d15b8e6747b9b0e3073fee09fad61f9a198ac64e1382a4ca2da5
4
+ data.tar.gz: 83aac0ef0e856934a3dcf5e096b86beb2a79825493d60772ecdc6f29922995d3
5
5
  SHA512:
6
- metadata.gz: 2641075761befa26d18ce70585b44cec77ae173f5776d0803a8cfe82b300f350704192dc786511ef899218aaa0059d5ddd08d692a3ace4ec9f1b0cf7ed35d7ee
7
- data.tar.gz: 868cf09c1a605b02b547290221081afee195ff9367955be86ac3924d791f6eaf2662398679edea0cc28c7fd26e2718a3acb1c9039109129640113fcbf837d3d9
6
+ metadata.gz: 7d328e8f2334c156a54b021386e3504dc9bd92fcf5a377cb0aa67b6ef961866920dfaa47e004fbd8fbec864b910aa92cd5f2ebd961219db7e345dbca9e275338
7
+ data.tar.gz: '01970fc7b263be6503627d824184aaf76899efd7d1c7dfc1cbd298c5fbc638cc80ad8cdd22e2567f8486270fb890782a958ffd90a95e08de878832857a704c12'
@@ -30,4 +30,9 @@ Gem::Specification.new do |spec|
30
30
  spec.add_development_dependency "rake", "~> 12.3"
31
31
  spec.add_development_dependency "minitest", "~> 5.0"
32
32
  spec.add_development_dependency "mocha"
33
+
34
+ # This isn't a compulsary dependency
35
+ # but can be used if someone puts it in their
36
+ # own gemfile
37
+ spec.add_development_dependency "aws-sdk-s3"
33
38
  end
@@ -6,6 +6,7 @@ require 'json'
6
6
  require_relative 'exercism_config/determine_environment'
7
7
  require_relative 'exercism_config/generate_aws_settings'
8
8
  require_relative 'exercism_config/setup_dynamodb_client'
9
+ require_relative 'exercism_config/setup_s3_client'
9
10
  require_relative 'exercism_config/retrieve'
10
11
  require_relative 'exercism_config/generate_aws_settings'
11
12
  require_relative "exercism_config/version"
@@ -7,7 +7,7 @@ module ExercismConfig
7
7
  raise Exercism::ConfigError, "No environment set - set one of EXERCISM_ENV, RAILS_ENV or APP_ENV" unless env
8
8
 
9
9
  unless %w[development test production].include?(env)
10
- raise Exercism::ConfigError, "environments must be one of development test production. Got #{env}"
10
+ raise Exercism::ConfigError, "environment must be one of development, test or production. Got #{env}."
11
11
  end
12
12
 
13
13
  env.to_sym
@@ -3,6 +3,24 @@ module ExercismConfig
3
3
  include Mandate
4
4
 
5
5
  def call
6
+ return generate_mock if Exercism.environment == :test
7
+ retrieve_from_dynamodb
8
+ end
9
+
10
+ private
11
+
12
+ def generate_mock
13
+ require 'erb'
14
+ require 'yaml'
15
+
16
+ filename = ENV["EXERCISM_DOCKER"] ? "test-docker" : "test-local"
17
+ settings_file = File.expand_path("../../../settings/#{filename}.yml", __FILE__)
18
+ settings = YAML.load(ERB.new(File.read(settings_file)).result)
19
+
20
+ Exercism::Config.new(settings, {})
21
+ end
22
+
23
+ def retrieve_from_dynamodb
6
24
  client = SetupDynamoDBClient.()
7
25
 
8
26
  resp = client.scan({table_name: "config"})
@@ -22,7 +22,7 @@ module ExercismConfig
22
22
  return nil unless %i[development test].include?(Exercism.environment)
23
23
  return "http://127.0.0.1:#{ENV["DYNAMODB_PORT"]}" if ENV["EXERCISM_CI"]
24
24
 
25
- host = ENV["EXERCISM_DOCKER"] ? "dynamodb:8000" : "localhost:3039"
25
+ host = ENV["EXERCISM_DOCKER"] ? "dynamodb:8000" : "localhost:3040"
26
26
  "http://#{host}"
27
27
  end
28
28
  end
@@ -0,0 +1,33 @@
1
+ module ExercismConfig
2
+ class SetupS3Client
3
+ include Mandate
4
+
5
+ def call
6
+ require 'aws-sdk-s3'
7
+
8
+ aws_settings = GenerateAwsSettings.().merge(
9
+ endpoint: config_endpoint,
10
+ force_path_style: true,
11
+
12
+ # We don't want a profile for this AWS service
13
+ # as we run it locally. But we do normally, so
14
+ # we locally override this here.
15
+ profile: nil
16
+ ).select {|k,v|v}
17
+ Aws::S3::Client.new(aws_settings)
18
+ end
19
+
20
+ private
21
+ attr_reader :environment
22
+
23
+ memoize
24
+ def config_endpoint
25
+ return nil unless %i[development test].include?(Exercism.environment)
26
+ return "http://127.0.0.1:#{ENV["S3_PORT"]}" if ENV["EXERCISM_CI"]
27
+
28
+ host = ENV["EXERCISM_DOCKER"] ? "s3:9090" : "localhost:3041"
29
+ "http://#{host}"
30
+ end
31
+ end
32
+ end
33
+
@@ -1,3 +1,3 @@
1
1
  module ExercismConfig
2
- VERSION = "0.22.0"
2
+ VERSION = "0.28.0"
3
3
  end
@@ -1,7 +1,8 @@
1
+ anycable_redis_url: redis://127.0.0.1:6379/1
2
+ anycable_rpc_host: 127.0.0.1:50051
1
3
  aws_iterations_bucket: exercism-staging-iterations
2
4
  dynamodb_tooling_jobs_table: tooling_jobs
5
+ mysql_master_endpoint: 127.0.0.1
6
+ mysql_port: <%= ENV["MYSQL_PORT"] %>
7
+ spi_url: http://127.0.0.1:3020
3
8
  tooling_orchestrator_url: http://127.0.0.1:3021
4
- anycable_redis_url: redis://127.0.0.1:6379/1
5
- anycable_rpc_host: 127.0.0.1:50051
6
- rds_master_endpoint: 127.0.0.1
7
- rds_port: <%= ENV["MYSQL_PORT"] %>
@@ -1,7 +1,8 @@
1
+ anycable_redis_url: redis://127.0.0.1:6379/1
2
+ anycable_rpc_host: 127.0.0.1:50051
1
3
  aws_iterations_bucket: exercism-staging-iterations
2
4
  dynamodb_tooling_jobs_table: tooling_jobs
3
- tooling_orchestrator_url: http://127.0.0.1:3021
4
- anycable_redis_url: 'redis://127.0.0.1:6379/1'
5
- anycable_rpc_host: '127.0.0.1:50051'
6
- rds_master_endpoint: localhost
5
+ mysql_master_endpoint: localhost
7
6
  mysql_socket: /tmp/mysql.sock
7
+ spi_url: http://127.0.0.1:3020
8
+ tooling_orchestrator_url: http://127.0.0.1:3021
@@ -1,7 +1,8 @@
1
+ anycable_redis_url: redis://redis:6379/1
2
+ anycable_rpc_host: 0.0.0.0:50051
1
3
  aws_iterations_bucket: exercism-staging-iterations
2
4
  dynamodb_tooling_jobs_table: tooling_jobs
5
+ mysql_master_endpoint: mysql
6
+ mysql_port: 3306
7
+ spi_url: http://website:3020
3
8
  tooling_orchestrator_url: http://tooling-orchestrator:3021
4
- anycable_redis_url: redis://redis:6379/1
5
- anycable_rpc_host: 0.0.0.0:50051
6
- rds_master_endpoint: mysql
7
- rds_port: 3306
@@ -0,0 +1,9 @@
1
+ anycable_redis_url: redis://some_anycable_redis_url:1234/9
2
+ anycable_rpc_host: 1.2.3.4:9876543
3
+ aws_iterations_bucket: some-iterations-bucket
4
+ dynamodb_tooling_jobs_table: some_tooling_table
5
+ spi_url: http://some_url:1234
6
+ tooling_orchestrator_url: http://some_orchestrator_url:1234
7
+
8
+ mysql_master_endpoint: mysql
9
+ mysql_port: 3306
@@ -0,0 +1,9 @@
1
+ anycable_redis_url: redis://some_anycable_redis_url:1234/9
2
+ anycable_rpc_host: 1.2.3.4:9876543
3
+ aws_iterations_bucket: some-iterations-bucket
4
+ dynamodb_tooling_jobs_table: some_tooling_table
5
+ spi_url: http://some_url:1234
6
+ tooling_orchestrator_url: http://some_orchestrator_url:1234
7
+
8
+ mysql_master_endpoint: localhost
9
+ mysql_socket: /tmp/mysql.sock
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: exercism_config
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.22.0
4
+ version: 0.28.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeremy Walker
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-07-29 00:00:00.000000000 Z
11
+ date: 2020-08-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-dynamodb
@@ -108,6 +108,20 @@ dependencies:
108
108
  - - ">="
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: aws-sdk-s3
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
111
125
  description:
112
126
  email:
113
127
  - jez.walker@gmail.com
@@ -123,7 +137,6 @@ files:
123
137
  - README.md
124
138
  - Rakefile
125
139
  - bin/console
126
- - bin/setup
127
140
  - bin/setup_exercism_config
128
141
  - exercism_config.gemspec
129
142
  - lib/exercism/config.rb
@@ -132,10 +145,13 @@ files:
132
145
  - lib/exercism_config/generate_aws_settings.rb
133
146
  - lib/exercism_config/retrieve.rb
134
147
  - lib/exercism_config/setup_dynamodb_client.rb
148
+ - lib/exercism_config/setup_s3_client.rb
135
149
  - lib/exercism_config/version.rb
136
150
  - settings/ci.yml
137
151
  - settings/development.yml
138
152
  - settings/docker.yml
153
+ - settings/test-docker.yml
154
+ - settings/test-local.yml
139
155
  homepage: https://exercism.io
140
156
  licenses: []
141
157
  metadata:
data/bin/setup DELETED
@@ -1,8 +0,0 @@
1
- setup_#!/usr/bin/env bash
2
- set -euo pipefail
3
- IFS=$'\n\t'
4
- set -vx
5
-
6
- bundle install
7
-
8
- # Do any other automated setup that you need to do here