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 +4 -4
- data/exercism_config.gemspec +5 -0
- data/lib/exercism_config.rb +1 -0
- data/lib/exercism_config/determine_environment.rb +1 -1
- data/lib/exercism_config/retrieve.rb +18 -0
- data/lib/exercism_config/setup_dynamodb_client.rb +1 -1
- data/lib/exercism_config/setup_s3_client.rb +33 -0
- data/lib/exercism_config/version.rb +1 -1
- data/settings/ci.yml +5 -4
- data/settings/development.yml +5 -4
- data/settings/docker.yml +5 -4
- data/settings/test-docker.yml +9 -0
- data/settings/test-local.yml +9 -0
- metadata +19 -3
- data/bin/setup +0 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 913c636d3aa6d15b8e6747b9b0e3073fee09fad61f9a198ac64e1382a4ca2da5
|
4
|
+
data.tar.gz: 83aac0ef0e856934a3dcf5e096b86beb2a79825493d60772ecdc6f29922995d3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7d328e8f2334c156a54b021386e3504dc9bd92fcf5a377cb0aa67b6ef961866920dfaa47e004fbd8fbec864b910aa92cd5f2ebd961219db7e345dbca9e275338
|
7
|
+
data.tar.gz: '01970fc7b263be6503627d824184aaf76899efd7d1c7dfc1cbd298c5fbc638cc80ad8cdd22e2567f8486270fb890782a958ffd90a95e08de878832857a704c12'
|
data/exercism_config.gemspec
CHANGED
@@ -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
|
data/lib/exercism_config.rb
CHANGED
@@ -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, "
|
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:
|
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
|
+
|
data/settings/ci.yml
CHANGED
@@ -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"] %>
|
data/settings/development.yml
CHANGED
@@ -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
|
-
|
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
|
data/settings/docker.yml
CHANGED
@@ -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.
|
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-
|
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:
|