prelands_rails 0.1.3 → 0.1.4
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 +4 -4
- data/Gemfile.lock +1 -1
- data/lib/prelands_rails/recompile_simple_source/download_zip.rb +39 -0
- data/lib/prelands_rails/recompile_simple_source/upload.rb +39 -0
- data/lib/prelands_rails/recompile_simple_source.rb +58 -0
- data/lib/prelands_rails.rb +4 -0
- data/prelands_rails.gemspec +1 -1
- metadata +6 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9963abae54f24ecedee07af2eda355eb1dda5790141cc4579a4037f2bf12a7d3
|
4
|
+
data.tar.gz: 8e3608256bd2073be0abc06745e323e55748e8e7418b1907af2b446aa7c48018
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5f815e3ba1532e9e34d67931796a82621b9926421db2db46fcd96ee917271f5bbc155076be23e711a5218ca77c916658ffd96626ba3c2f41a8aed2fd7fae42c4
|
7
|
+
data.tar.gz: 822108a653b8296a33a542b195fef4c588b6b6f0d7796e148cf354fbe6b1f8ae421d2fc41616549b02534fae312ba2690c939400339ff0b3af7f6ac805f57423
|
data/Gemfile.lock
CHANGED
@@ -0,0 +1,39 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module PrelandsRails
|
4
|
+
class RecompileSimpleSource
|
5
|
+
#
|
6
|
+
# Скачает и разместит в cache-директории zip-архив с исходником лендинга.
|
7
|
+
#
|
8
|
+
class DownloadZip
|
9
|
+
include ::PrelandsRails::AbstractInteractor
|
10
|
+
include ::Interactor
|
11
|
+
include ::Interactor::Contracts
|
12
|
+
include ::PrelandsRails::Base
|
13
|
+
|
14
|
+
expects do
|
15
|
+
required(:prelanding).filled #.value(type?: ::Preland)
|
16
|
+
end
|
17
|
+
|
18
|
+
assures do
|
19
|
+
required(:archive).filled # Rack::Test::UploadedFile | ActionDispatch::Http::UploadedFile
|
20
|
+
required(:tmp_dest).value(type?: String) # путь к временному файлу
|
21
|
+
end
|
22
|
+
|
23
|
+
def act
|
24
|
+
archive_url = prelanding.preland_simple_source.archive.url
|
25
|
+
destination = make_tmp_path
|
26
|
+
|
27
|
+
IO.copy_stream(Kernel.open(archive_url), destination)
|
28
|
+
|
29
|
+
context.archive = ActionDispatch::Http::UploadedFile.new(tempfile: destination)
|
30
|
+
context.tmp_dest = destination
|
31
|
+
end
|
32
|
+
|
33
|
+
on_breach { |breaches| bad_expects breaches }
|
34
|
+
|
35
|
+
delegate :prelanding,
|
36
|
+
:to => :context
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module PrelandsRails
|
4
|
+
class RecompileSimpleSource
|
5
|
+
#
|
6
|
+
# Сначала удалить файлы преленда из директории +aws_prefix+, затем загрузить.
|
7
|
+
#
|
8
|
+
class Upload
|
9
|
+
include ::PrelandsRails::AbstractInteractor
|
10
|
+
include ::Interactor
|
11
|
+
include ::Interactor::Contracts
|
12
|
+
include ::PrelandsRails::UpdateSimpleSource::Upload::DeleteCompiledFiles
|
13
|
+
|
14
|
+
expects do
|
15
|
+
required(:archive).filled # Входящий архив с исходниками от фрилансера. Rack::Test::UploadedFile | ActionDispatch::Http::UploadedFile
|
16
|
+
required(:compiled_htmls).value(type?: Hash) # скомпилированные исходники { file_name[String] => compiled_content[String], ... }
|
17
|
+
required(:s3_credentials).schema do
|
18
|
+
required(:access_key).filled(:str?)
|
19
|
+
required(:secret_key).filled(:str?)
|
20
|
+
required(:region).filled(:str?)
|
21
|
+
end
|
22
|
+
required(:bucket_names).value(type?: Array)
|
23
|
+
required(:aws_prefix).value(type?: String)
|
24
|
+
required(:files_content).value(type?: Hash) # { file_name => file_content, ... }
|
25
|
+
end
|
26
|
+
|
27
|
+
assures do
|
28
|
+
end
|
29
|
+
|
30
|
+
def act
|
31
|
+
delete_compiled_files
|
32
|
+
result = ::PrelandsRails::CreateSimpleSource::Upload.call context
|
33
|
+
fail! errors: result.errors unless result.success?
|
34
|
+
end
|
35
|
+
|
36
|
+
on_breach { |breaches| bad_expects breaches }
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module PrelandsRails
|
4
|
+
#
|
5
|
+
# Перекомпилировать преленд на основе уже загруженного в aws архива.
|
6
|
+
#
|
7
|
+
class RecompileSimpleSource
|
8
|
+
include ::PrelandsRails::AbstractInteractor
|
9
|
+
include ::Interactor::Organizer
|
10
|
+
include ::Interactor::Contracts
|
11
|
+
|
12
|
+
expects do
|
13
|
+
required(:prelanding).filled#.value(type?: ::Preland)
|
14
|
+
required(:static_js_path).value(type?: String)
|
15
|
+
required(:s3_credentials).schema do
|
16
|
+
required(:access_key).filled(:str?)
|
17
|
+
required(:secret_key).filled(:str?)
|
18
|
+
required(:region).filled(:str?)
|
19
|
+
end
|
20
|
+
required(:bucket_names).value(type?: Array)
|
21
|
+
end
|
22
|
+
|
23
|
+
before do
|
24
|
+
context.expected_locales = context.prelanding.locales.map(&:short_name)
|
25
|
+
context.aws_prefix = context.prelanding.preland_simple_source.aws_prefix
|
26
|
+
end
|
27
|
+
|
28
|
+
assures do
|
29
|
+
required(:expected_locales).filled(type?: Array)
|
30
|
+
required(:aws_prefix).value(type?: String)
|
31
|
+
required(:archive).filled
|
32
|
+
required(:tmp_dest).value(type?: String)
|
33
|
+
required(:incoming_locales).filled(type?: Array)
|
34
|
+
required(:files_content).value(type?: Hash)
|
35
|
+
required(:compiled_htmls).value(type?: Hash)
|
36
|
+
end
|
37
|
+
|
38
|
+
after do
|
39
|
+
clear_tmp_dest
|
40
|
+
context.prelanding.preland_simple_source.update_columns updated_at: Time.now
|
41
|
+
end
|
42
|
+
|
43
|
+
organize DownloadZip,
|
44
|
+
::PrelandsRails::CreateSimpleSource::DetectIncomingLocales,
|
45
|
+
::PrelandsRails::CreateSimpleSource::CheckZipFiles,
|
46
|
+
::PrelandsRails::CreateSimpleSource::Compile,
|
47
|
+
Upload
|
48
|
+
|
49
|
+
on_breach { |breaches| bad_expects breaches }
|
50
|
+
|
51
|
+
private
|
52
|
+
|
53
|
+
def clear_tmp_dest
|
54
|
+
td = context.tmp_dest
|
55
|
+
File.delete(td) if File.exist?(td)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
data/lib/prelands_rails.rb
CHANGED
@@ -39,5 +39,9 @@ require 'prelands_rails/update_simple_source'
|
|
39
39
|
|
40
40
|
require 'prelands_rails/validate_simple_source'
|
41
41
|
|
42
|
+
require 'prelands_rails/recompile_simple_source/upload'
|
43
|
+
require 'prelands_rails/recompile_simple_source/download_zip'
|
44
|
+
require 'prelands_rails/recompile_simple_source'
|
45
|
+
|
42
46
|
module PrelandsRails
|
43
47
|
end
|
data/prelands_rails.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: prelands_rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- C80609A
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-06-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: interactor
|
@@ -312,6 +312,9 @@ files:
|
|
312
312
|
- lib/prelands_rails/create_simple_source/validate_zip_content/validate_incoming_files/zip_archive.rb
|
313
313
|
- lib/prelands_rails/create_simple_source/validate_zip_content/validate_js.rb
|
314
314
|
- lib/prelands_rails/create_simple_source/validate_zip_content/validate_js/js.rb
|
315
|
+
- lib/prelands_rails/recompile_simple_source.rb
|
316
|
+
- lib/prelands_rails/recompile_simple_source/download_zip.rb
|
317
|
+
- lib/prelands_rails/recompile_simple_source/upload.rb
|
315
318
|
- lib/prelands_rails/update_simple_source.rb
|
316
319
|
- lib/prelands_rails/update_simple_source/check_zip_files.rb
|
317
320
|
- lib/prelands_rails/update_simple_source/compile.rb
|
@@ -343,7 +346,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
343
346
|
- !ruby/object:Gem::Version
|
344
347
|
version: '0'
|
345
348
|
requirements: []
|
346
|
-
rubygems_version: 3.1.
|
349
|
+
rubygems_version: 3.1.4
|
347
350
|
signing_key:
|
348
351
|
specification_version: 4
|
349
352
|
summary: Код, занимающийся валидацией и публикацией прелендов V4.
|