prelands_rails 0.1.0 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.ci/dver.rb +5 -0
- data/.dockerignore +17 -0
- data/.gitlab-ci.yml +30 -0
- data/.rspec +0 -1
- data/Dockerfile +27 -0
- data/Gemfile.lock +9 -1
- data/Makefile +11 -0
- data/build_and_push.sh +4 -0
- data/docker-compose.local.yml +9 -0
- data/lib/prelands_rails/concerns/base.rb +11 -3
- data/lib/prelands_rails/create_simple_source/check_zip_files/extract_files.rb +2 -2
- data/lib/prelands_rails/create_simple_source/check_zip_files.rb +4 -0
- data/lib/prelands_rails/create_simple_source/upload.rb +1 -1
- data/lib/prelands_rails/create_simple_source/validate_zip_content/validate_css/css.rb +60 -0
- data/lib/prelands_rails/create_simple_source/validate_zip_content/validate_css.rb +35 -0
- data/lib/prelands_rails/create_simple_source/validate_zip_content/validate_incoming_files/zip_archive.rb +88 -0
- data/lib/prelands_rails/create_simple_source/validate_zip_content/validate_incoming_files.rb +31 -0
- data/lib/prelands_rails/create_simple_source/validate_zip_content.rb +1 -1
- data/lib/prelands_rails.rb +4 -2
- data/prelands_rails.gemspec +10 -7
- metadata +61 -25
- data/.travis.yml +0 -6
- data/lib/prelands_rails/version.rb +0 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bb269383807073d60b3d1bbbc793a0537fe1c5b1871a61e8767af3013a8a2742
|
4
|
+
data.tar.gz: add40d4bae32d158efa85befd0a18189e2ae1297679734c6963097cf64dc3ae5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 24ebaa868025398394259598cc51af5f1be747ddb20cd4686119656144cc4b24fff0f3b8fef108091d2faaf918266f9b552804298e1d4064ead74d99e786f4ac
|
7
|
+
data.tar.gz: 53c7459c4e48e4e30f78e4375f2825ad8e0e9ca4088a076ef20be4fb6d84c27b1685cf5d66ee4a000b8af192cdb554fb5a3563b5bbfbe5b2ae775a93d133141a
|
data/.ci/dver.rb
ADDED
data/.dockerignore
ADDED
data/.gitlab-ci.yml
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
stages:
|
2
|
+
- test
|
3
|
+
- gem_build
|
4
|
+
- gem_push
|
5
|
+
|
6
|
+
default:
|
7
|
+
image: registry.gitlab.com/c80609a/prelands_rails:latest
|
8
|
+
|
9
|
+
publish:gem:
|
10
|
+
stage: gem_push
|
11
|
+
image: ruby:2.7
|
12
|
+
before_script:
|
13
|
+
- mkdir -p ~/.gem
|
14
|
+
- wget "${CREDS}" -O ~/.gem/credentials
|
15
|
+
- chmod 0600 ~/.gem/credentials
|
16
|
+
- cat ~/.gem/credentials
|
17
|
+
script:
|
18
|
+
- gem build *.gemspec
|
19
|
+
- export YVER=$(ruby .ci/dver.rb)
|
20
|
+
- echo $YVER
|
21
|
+
- gem yank prelands_rails -v $YVER
|
22
|
+
- gem push *.gem
|
23
|
+
only:
|
24
|
+
- tags
|
25
|
+
|
26
|
+
rspec:
|
27
|
+
stage: test
|
28
|
+
script:
|
29
|
+
- rspec
|
30
|
+
|
data/.rspec
CHANGED
data/Dockerfile
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
# Stage: ruby ##########################################################################################################
|
2
|
+
FROM ruby:2.7.3-alpine3.13 as ruby
|
3
|
+
LABEL description="Base ruby image used by other stages"
|
4
|
+
|
5
|
+
# Stage runner #########################################################################################################
|
6
|
+
FROM ruby as runner
|
7
|
+
LABEL description="Builds an image ready to be run"
|
8
|
+
|
9
|
+
# Install build deps and gems from all environments under vendor/bundle path
|
10
|
+
RUN apk add --update --no-cache \
|
11
|
+
build-base git zip sqlite-dev shared-mime-info
|
12
|
+
|
13
|
+
RUN addgroup -g 1000 -S app \
|
14
|
+
&& adduser -u 1000 -S app -G app \
|
15
|
+
&& mkdir -p /home/app/tmp \
|
16
|
+
&& chown -R app:app /home/app
|
17
|
+
|
18
|
+
USER app
|
19
|
+
WORKDIR /home/app
|
20
|
+
|
21
|
+
# Copy source files according to .dockerignore policy
|
22
|
+
# Make sure your .dockerignore file is properly configure to ensure proper layer caching
|
23
|
+
COPY --chown=app:app . /home/app
|
24
|
+
|
25
|
+
RUN bundle install --jobs 8 --retry 3
|
26
|
+
|
27
|
+
ENTRYPOINT ["bundle", "exec"]
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
prelands_rails (0.1.
|
4
|
+
prelands_rails (0.1.1)
|
5
5
|
aws-sdk
|
6
6
|
interactor (~> 3.0)
|
7
7
|
interactor-contracts
|
@@ -1399,6 +1399,10 @@ GEM
|
|
1399
1399
|
rake (>= 0.8.7)
|
1400
1400
|
thor (>= 0.20.3, < 2.0)
|
1401
1401
|
rake (12.3.3)
|
1402
|
+
rspec (3.10.0)
|
1403
|
+
rspec-core (~> 3.10.0)
|
1404
|
+
rspec-expectations (~> 3.10.0)
|
1405
|
+
rspec-mocks (~> 3.10.0)
|
1402
1406
|
rspec-core (3.10.1)
|
1403
1407
|
rspec-support (~> 3.10.0)
|
1404
1408
|
rspec-expectations (3.10.1)
|
@@ -1429,6 +1433,8 @@ GEM
|
|
1429
1433
|
thread_safe (0.3.6)
|
1430
1434
|
tzinfo (1.2.9)
|
1431
1435
|
thread_safe (~> 0.1)
|
1436
|
+
tzinfo-data (1.2021.5)
|
1437
|
+
tzinfo (>= 1.0.0)
|
1432
1438
|
websocket-driver (0.7.5)
|
1433
1439
|
websocket-extensions (>= 0.1.0)
|
1434
1440
|
websocket-extensions (0.1.5)
|
@@ -1449,8 +1455,10 @@ DEPENDENCIES
|
|
1449
1455
|
rails (= 6.0.2.1)
|
1450
1456
|
rails-controller-testing
|
1451
1457
|
rake (~> 12.0)
|
1458
|
+
rspec
|
1452
1459
|
rspec-rails (~> 4.0)
|
1453
1460
|
sqlite3
|
1461
|
+
tzinfo-data
|
1454
1462
|
|
1455
1463
|
BUNDLED WITH
|
1456
1464
|
2.1.4
|
data/Makefile
CHANGED
@@ -1,4 +1,15 @@
|
|
1
|
+
.PHONY: test all
|
2
|
+
|
1
3
|
DIR = $(shell pwd)
|
2
4
|
|
3
5
|
setup_local_gem:
|
4
6
|
bundle config local.prelands_rails $(DIR)
|
7
|
+
|
8
|
+
all:
|
9
|
+
@docker-compose -f docker-compose.local.yml build
|
10
|
+
|
11
|
+
test:
|
12
|
+
@docker-compose -f docker-compose.local.yml run runner rspec
|
13
|
+
|
14
|
+
build_and_push_docker:
|
15
|
+
./build_and_push.sh
|
data/build_and_push.sh
ADDED
@@ -5,8 +5,11 @@ module PrelandsRails
|
|
5
5
|
|
6
6
|
private
|
7
7
|
|
8
|
-
RX_HTML_FILE
|
9
|
-
|
8
|
+
RX_HTML_FILE = /\.html/
|
9
|
+
RX_CSS_FILE = /\.css/.freeze
|
10
|
+
NAME_RX = /index_(\w{2})\.html/
|
11
|
+
# DIST_FOLDER = 'dist'
|
12
|
+
# KNOWN_FILES_EXTENSIONS = /\.(gif|jpe?g|tiff?|png|webp|bmp|mov|avi|wmv|flv|3gp|mp4|mpg|css|js|ico|icon)/.freeze
|
10
13
|
|
11
14
|
# извлекаем входящие html файлы из контекста
|
12
15
|
def incoming_html_files
|
@@ -18,8 +21,13 @@ module PrelandsRails
|
|
18
21
|
context.compiled_htmls.select { |key| key =~ RX_HTML_FILE }
|
19
22
|
end
|
20
23
|
|
24
|
+
# извлекаем входящие css файлы из контекста
|
25
|
+
def incoming_css_files
|
26
|
+
context.files_content.select { |key| key =~ RX_CSS_FILE }
|
27
|
+
end
|
28
|
+
|
21
29
|
def make_tmp_path
|
22
|
-
'tmp
|
30
|
+
'/tmp/%s' % SecureRandom.uuid
|
23
31
|
end
|
24
32
|
end
|
25
33
|
end
|
@@ -12,14 +12,14 @@ module PrelandsRails
|
|
12
12
|
next unless expected_files.find_index { |efile| efile.name == entry.name }.present?
|
13
13
|
|
14
14
|
# Extract
|
15
|
-
tmp_path =
|
15
|
+
tmp_path = make_tmp_path
|
16
16
|
entry.extract tmp_path
|
17
17
|
|
18
18
|
# Read into memory
|
19
19
|
content = entry.get_input_stream.read
|
20
20
|
|
21
21
|
# Remove tmp file
|
22
|
-
File.delete(tmp_path) if File.exist?(tmp_path)
|
22
|
+
# File.delete(tmp_path) if File.exist?(tmp_path)
|
23
23
|
|
24
24
|
[entry.name, content]
|
25
25
|
end.compact.to_h
|
@@ -27,6 +27,7 @@ module PrelandsRails
|
|
27
27
|
|
28
28
|
assures do
|
29
29
|
required(:files_content).value(type?: Hash) # js,html,css: { file_name => file_content, ... }
|
30
|
+
required(:incoming_files).value(type?: Array) # список всех файлов архива { ftype, name }
|
30
31
|
end
|
31
32
|
|
32
33
|
before do
|
@@ -56,6 +57,9 @@ module PrelandsRails
|
|
56
57
|
rx1 = /\.(css|js|html)/
|
57
58
|
files = @expected_files.select { |file| file.ftype == :file && file.name =~ rx1 }
|
58
59
|
context.files_content, context.tmp_paths = read_into_memory files, context.archive.tempfile
|
60
|
+
|
61
|
+
# фиксируем список всех файлов из архива
|
62
|
+
context.incoming_files = incoming_files
|
59
63
|
end
|
60
64
|
|
61
65
|
def incoming_files
|
@@ -0,0 +1,60 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module PrelandsRails
|
4
|
+
class CreateSimpleSource
|
5
|
+
class ValidateZipContent
|
6
|
+
class ValidateCss
|
7
|
+
#
|
8
|
+
# Принимает строку с css и валидирует её.
|
9
|
+
# Правила, обязательные для всех css файлов.
|
10
|
+
#
|
11
|
+
class Css
|
12
|
+
attr_reader :errors
|
13
|
+
|
14
|
+
CUSTOM_FONTS = /\.(eot|woff|woff2|ttf)/.freeze
|
15
|
+
SVG_LINKS_DETECTED = /\.svg/.freeze
|
16
|
+
IMAGES_BAD_PATH = /\/images/.freeze
|
17
|
+
|
18
|
+
# @param [String] string Содержимое css файла.
|
19
|
+
def initialize(string)
|
20
|
+
@errors = []
|
21
|
+
@string = string
|
22
|
+
end
|
23
|
+
|
24
|
+
def valid?
|
25
|
+
@errors = [
|
26
|
+
check_svg_links,
|
27
|
+
check_images_relative_paths,
|
28
|
+
check_custom_fonts_absence
|
29
|
+
].compact
|
30
|
+
|
31
|
+
@errors.none?
|
32
|
+
end
|
33
|
+
|
34
|
+
private
|
35
|
+
|
36
|
+
# @return [nil] Если всё ОК
|
37
|
+
# @return [String] Иначе - вернёт сообщение об ошибке
|
38
|
+
|
39
|
+
def check_svg_links
|
40
|
+
return unless @string =~ SVG_LINKS_DETECTED
|
41
|
+
|
42
|
+
'Links to svg detected inside css file. Please, use inline variant of svg.'
|
43
|
+
end
|
44
|
+
|
45
|
+
def check_images_relative_paths
|
46
|
+
return unless @string =~ IMAGES_BAD_PATH
|
47
|
+
|
48
|
+
'Images urls in css files must be relative.'
|
49
|
+
end
|
50
|
+
|
51
|
+
def check_custom_fonts_absence
|
52
|
+
return unless @string =~ CUSTOM_FONTS
|
53
|
+
|
54
|
+
'Custom fonts detected in css files. Please, use Google fonts.'
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module PrelandsRails
|
4
|
+
class CreateSimpleSource
|
5
|
+
class ValidateZipContent
|
6
|
+
#
|
7
|
+
# Валидирует все css файлы.
|
8
|
+
#
|
9
|
+
class ValidateCss
|
10
|
+
include ::PrelandsRails::AbstractInteractor
|
11
|
+
include ::Interactor
|
12
|
+
include ::Interactor::Contracts
|
13
|
+
include ::PrelandsRails::Base
|
14
|
+
|
15
|
+
expects do
|
16
|
+
required(:files_content).value(type?: Hash) # { file_name => file_content, ... }
|
17
|
+
end
|
18
|
+
|
19
|
+
assures do
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
def act
|
24
|
+
errors =
|
25
|
+
incoming_css_files.map do |key, content|
|
26
|
+
content = Css.new(content)
|
27
|
+
next if content.valid?
|
28
|
+
[key, content.errors]
|
29
|
+
end.compact.to_h
|
30
|
+
fail! errors: errors if errors.any?
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,88 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module PrelandsRails
|
4
|
+
class CreateSimpleSource
|
5
|
+
class ValidateZipContent
|
6
|
+
class ValidateIncomingFiles
|
7
|
+
class ZipArchive
|
8
|
+
attr_reader :errors
|
9
|
+
|
10
|
+
# @param [Array<{ftype, name}>] incoming_files
|
11
|
+
def initialize(incoming_files)
|
12
|
+
@errors = []
|
13
|
+
@incoming_files = incoming_files
|
14
|
+
end
|
15
|
+
|
16
|
+
def valid?
|
17
|
+
@errors = [
|
18
|
+
check_app_js,
|
19
|
+
check_app_css,
|
20
|
+
check_favicon,
|
21
|
+
check_svg_absence
|
22
|
+
].compact
|
23
|
+
|
24
|
+
@errors.none?
|
25
|
+
end
|
26
|
+
|
27
|
+
private
|
28
|
+
|
29
|
+
# @return [nil] Если `index.js` находится в корне zip-архива.
|
30
|
+
# @return [String] Иначе - вернёт сообщение об ошибке
|
31
|
+
def check_app_js
|
32
|
+
check 'index.js', 'index.js',
|
33
|
+
'The «index.js» JAVASCRIPT file is not found in the zip-archive',
|
34
|
+
'The «index.js» JAVASCRIPT file is not in root of the zip-archive: expected «index.js», got «%s»'
|
35
|
+
end
|
36
|
+
|
37
|
+
def check_app_css
|
38
|
+
check 'index.css', 'index.css',
|
39
|
+
'The «index.css» STYLES file is not found in the zip-archive',
|
40
|
+
'The «index.css» STYLES file is not in root of the zip-archive: expected «index.css», got «%s»'
|
41
|
+
end
|
42
|
+
|
43
|
+
def check_favicon
|
44
|
+
check 'icon.ico', /icon\.ico/,
|
45
|
+
'favicon file is not found in the zip-archive',
|
46
|
+
'favicon file is not in root of the zip-archive: got «%s»'
|
47
|
+
end
|
48
|
+
|
49
|
+
def check_svg_absence
|
50
|
+
checka /\.svg/, 'svg files detected, move inside css'
|
51
|
+
end
|
52
|
+
|
53
|
+
protected
|
54
|
+
|
55
|
+
def check(pattern, name, absent_error, wrong_place_error)
|
56
|
+
error = absent_error
|
57
|
+
|
58
|
+
@incoming_files.each do |file|
|
59
|
+
if file.name[pattern]
|
60
|
+
error = nil
|
61
|
+
unless file.name.index(name)&.zero?
|
62
|
+
error = wrong_place_error % file.name
|
63
|
+
end
|
64
|
+
break
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
error
|
69
|
+
end
|
70
|
+
|
71
|
+
# check absence
|
72
|
+
def checka(pattern, present_error)
|
73
|
+
error = nil
|
74
|
+
|
75
|
+
@incoming_files.each do |file|
|
76
|
+
if file.name[pattern]
|
77
|
+
error = present_error
|
78
|
+
break
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
error
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module PrelandsRails
|
4
|
+
class CreateSimpleSource
|
5
|
+
class ValidateZipContent
|
6
|
+
#
|
7
|
+
# Проверит наличие файлов в zip-архиве и их требуемую вложенность.
|
8
|
+
#
|
9
|
+
class ValidateIncomingFiles
|
10
|
+
include ::PrelandsRails::AbstractInteractor
|
11
|
+
include ::Interactor
|
12
|
+
include ::Interactor::Contracts
|
13
|
+
include ::PrelandsRails::Base
|
14
|
+
|
15
|
+
expects do
|
16
|
+
required(:incoming_files).value(type?: Array) # список всех файлов архива { ftype, name }
|
17
|
+
end
|
18
|
+
|
19
|
+
assures do
|
20
|
+
end
|
21
|
+
|
22
|
+
def act
|
23
|
+
zip_archive = ZipArchive.new context.incoming_files
|
24
|
+
unless zip_archive.valid?
|
25
|
+
fail! errors: zip_archive.errors.join('; ')
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
data/lib/prelands_rails.rb
CHANGED
@@ -1,7 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'prelands_rails/version'
|
4
|
-
|
5
3
|
require 'zip'
|
6
4
|
require 'interactor'
|
7
5
|
require 'interactor/contracts'
|
@@ -18,7 +16,11 @@ require 'prelands_rails/create_simple_source/check_zip_files'
|
|
18
16
|
require 'prelands_rails/create_simple_source/validate_zip_content/validate_html/html'
|
19
17
|
require 'prelands_rails/create_simple_source/validate_zip_content/validate_html'
|
20
18
|
require 'prelands_rails/create_simple_source/validate_zip_content/validate_js/js'
|
19
|
+
require 'prelands_rails/create_simple_source/validate_zip_content/validate_css/css'
|
20
|
+
require 'prelands_rails/create_simple_source/validate_zip_content/validate_incoming_files/zip_archive'
|
21
21
|
require 'prelands_rails/create_simple_source/validate_zip_content/validate_js'
|
22
|
+
require 'prelands_rails/create_simple_source/validate_zip_content/validate_css'
|
23
|
+
require 'prelands_rails/create_simple_source/validate_zip_content/validate_incoming_files'
|
22
24
|
require 'prelands_rails/create_simple_source/validate_zip_content'
|
23
25
|
require 'prelands_rails/create_simple_source/compile/html_compiler'
|
24
26
|
require 'prelands_rails/create_simple_source/compile'
|
data/prelands_rails.gemspec
CHANGED
@@ -1,10 +1,11 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
if File.exist?('lib/prelands_rails/version')
|
2
|
+
lib = File.expand_path("lib", __dir__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
end
|
4
5
|
|
5
6
|
Gem::Specification.new do |spec|
|
6
7
|
spec.name = "prelands_rails"
|
7
|
-
spec.version =
|
8
|
+
spec.version = "0.1.2"
|
8
9
|
spec.authors = ["C80609A"]
|
9
10
|
spec.email = ["c080609a@gmail.com"]
|
10
11
|
|
@@ -34,15 +35,17 @@ Gem::Specification.new do |spec|
|
|
34
35
|
spec.add_dependency 'aws-sdk'
|
35
36
|
|
36
37
|
spec.add_development_dependency 'bundler', '~> 2.0'
|
38
|
+
spec.add_development_dependency 'mimemagic'
|
39
|
+
spec.add_development_dependency 'sqlite3'
|
40
|
+
spec.add_development_dependency 'rake', '~> 12.0'
|
37
41
|
spec.add_development_dependency 'rails', '6.0.2.1'
|
38
42
|
spec.add_development_dependency 'byebug'
|
39
43
|
spec.add_development_dependency 'awesome_print'
|
40
44
|
spec.add_development_dependency 'factory_bot_rails'
|
41
45
|
spec.add_development_dependency 'database_cleaner'
|
42
|
-
spec.add_development_dependency '
|
46
|
+
spec.add_development_dependency 'rspec'
|
43
47
|
spec.add_development_dependency 'rspec-rails', '~> 4.0'
|
44
48
|
spec.add_development_dependency 'rails-controller-testing'
|
45
49
|
spec.add_development_dependency 'paperclip', '5.0.0'
|
46
|
-
spec.add_development_dependency '
|
47
|
-
spec.add_development_dependency 'sqlite3'
|
50
|
+
spec.add_development_dependency 'tzinfo-data'
|
48
51
|
end
|
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.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- C80609A
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-12-
|
11
|
+
date: 2021-12-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: interactor
|
@@ -80,6 +80,48 @@ dependencies:
|
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '2.0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: mimemagic
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: sqlite3
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: rake
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '12.0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '12.0'
|
83
125
|
- !ruby/object:Gem::Dependency
|
84
126
|
name: rails
|
85
127
|
requirement: !ruby/object:Gem::Requirement
|
@@ -151,19 +193,19 @@ dependencies:
|
|
151
193
|
- !ruby/object:Gem::Version
|
152
194
|
version: '0'
|
153
195
|
- !ruby/object:Gem::Dependency
|
154
|
-
name:
|
196
|
+
name: rspec
|
155
197
|
requirement: !ruby/object:Gem::Requirement
|
156
198
|
requirements:
|
157
|
-
- - "
|
199
|
+
- - ">="
|
158
200
|
- !ruby/object:Gem::Version
|
159
|
-
version: '
|
201
|
+
version: '0'
|
160
202
|
type: :development
|
161
203
|
prerelease: false
|
162
204
|
version_requirements: !ruby/object:Gem::Requirement
|
163
205
|
requirements:
|
164
|
-
- - "
|
206
|
+
- - ">="
|
165
207
|
- !ruby/object:Gem::Version
|
166
|
-
version: '
|
208
|
+
version: '0'
|
167
209
|
- !ruby/object:Gem::Dependency
|
168
210
|
name: rspec-rails
|
169
211
|
requirement: !ruby/object:Gem::Requirement
|
@@ -207,21 +249,7 @@ dependencies:
|
|
207
249
|
- !ruby/object:Gem::Version
|
208
250
|
version: 5.0.0
|
209
251
|
- !ruby/object:Gem::Dependency
|
210
|
-
name:
|
211
|
-
requirement: !ruby/object:Gem::Requirement
|
212
|
-
requirements:
|
213
|
-
- - ">="
|
214
|
-
- !ruby/object:Gem::Version
|
215
|
-
version: '0'
|
216
|
-
type: :development
|
217
|
-
prerelease: false
|
218
|
-
version_requirements: !ruby/object:Gem::Requirement
|
219
|
-
requirements:
|
220
|
-
- - ">="
|
221
|
-
- !ruby/object:Gem::Version
|
222
|
-
version: '0'
|
223
|
-
- !ruby/object:Gem::Dependency
|
224
|
-
name: sqlite3
|
252
|
+
name: tzinfo-data
|
225
253
|
requirement: !ruby/object:Gem::Requirement
|
226
254
|
requirements:
|
227
255
|
- - ">="
|
@@ -241,11 +269,14 @@ executables: []
|
|
241
269
|
extensions: []
|
242
270
|
extra_rdoc_files: []
|
243
271
|
files:
|
272
|
+
- ".ci/dver.rb"
|
273
|
+
- ".dockerignore"
|
244
274
|
- ".gitignore"
|
275
|
+
- ".gitlab-ci.yml"
|
245
276
|
- ".rspec"
|
246
277
|
- ".ruby-version"
|
247
|
-
- ".travis.yml"
|
248
278
|
- CODE_OF_CONDUCT.md
|
279
|
+
- Dockerfile
|
249
280
|
- Gemfile
|
250
281
|
- Gemfile.lock
|
251
282
|
- LICENSE.txt
|
@@ -254,6 +285,8 @@ files:
|
|
254
285
|
- Rakefile
|
255
286
|
- bin/console
|
256
287
|
- bin/setup
|
288
|
+
- build_and_push.sh
|
289
|
+
- docker-compose.local.yml
|
257
290
|
- lib/prelands_rails.rb
|
258
291
|
- lib/prelands_rails/concerns/abstract_interactor.rb
|
259
292
|
- lib/prelands_rails/concerns/base.rb
|
@@ -271,8 +304,12 @@ files:
|
|
271
304
|
- lib/prelands_rails/create_simple_source/upload.rb
|
272
305
|
- lib/prelands_rails/create_simple_source/upload/uploader.rb
|
273
306
|
- lib/prelands_rails/create_simple_source/validate_zip_content.rb
|
307
|
+
- lib/prelands_rails/create_simple_source/validate_zip_content/validate_css.rb
|
308
|
+
- lib/prelands_rails/create_simple_source/validate_zip_content/validate_css/css.rb
|
274
309
|
- lib/prelands_rails/create_simple_source/validate_zip_content/validate_html.rb
|
275
310
|
- lib/prelands_rails/create_simple_source/validate_zip_content/validate_html/html.rb
|
311
|
+
- lib/prelands_rails/create_simple_source/validate_zip_content/validate_incoming_files.rb
|
312
|
+
- lib/prelands_rails/create_simple_source/validate_zip_content/validate_incoming_files/zip_archive.rb
|
276
313
|
- lib/prelands_rails/create_simple_source/validate_zip_content/validate_js.rb
|
277
314
|
- lib/prelands_rails/create_simple_source/validate_zip_content/validate_js/js.rb
|
278
315
|
- lib/prelands_rails/update_simple_source.rb
|
@@ -283,7 +320,6 @@ files:
|
|
283
320
|
- lib/prelands_rails/update_simple_source/upload/delete_compiled_files.rb
|
284
321
|
- lib/prelands_rails/update_simple_source/validate_zip_content.rb
|
285
322
|
- lib/prelands_rails/validate_simple_source.rb
|
286
|
-
- lib/prelands_rails/version.rb
|
287
323
|
- prelands_rails.gemspec
|
288
324
|
homepage: https://gitlab.com/c80609a/prelands_rails
|
289
325
|
licenses:
|
@@ -307,7 +343,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
307
343
|
- !ruby/object:Gem::Version
|
308
344
|
version: '0'
|
309
345
|
requirements: []
|
310
|
-
rubygems_version: 3.1.
|
346
|
+
rubygems_version: 3.1.6
|
311
347
|
signing_key:
|
312
348
|
specification_version: 4
|
313
349
|
summary: Код, занимающийся валидацией и публикацией прелендов V4.
|
data/.travis.yml
DELETED