eac_tools 0.86.7 → 0.86.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +16 -9
  3. data/lib/eac_tools/version.rb +1 -1
  4. data/sub/avm-eac_webapp_base0/Gemfile +8 -0
  5. data/sub/avm-eac_webapp_base0/avm-eac_webapp_base0.gemspec +25 -0
  6. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/executables.rb +26 -0
  7. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/file_formats/css/file_apply.rb +48 -0
  8. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/file_formats/css.rb +22 -0
  9. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/file_formats/html.rb +43 -0
  10. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/file_formats/javascript.rb +22 -0
  11. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/file_formats/json.rb +25 -0
  12. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/file_formats/provider.rb +24 -0
  13. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/file_formats/xml.rb +26 -0
  14. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/file_formats.rb +11 -0
  15. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/apache_base.rb +33 -0
  16. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/apache_host.rb +78 -0
  17. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/apache_path.rb +42 -0
  18. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/base/apache.rb +44 -0
  19. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/base/install.rb +22 -0
  20. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/base.rb +44 -0
  21. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/deploy/appended_directories.rb +27 -0
  22. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/deploy/build.rb +50 -0
  23. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/deploy/scm.rb +72 -0
  24. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/deploy/setup_files_unit.rb +53 -0
  25. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/deploy/version.rb +26 -0
  26. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/deploy/write_on_target.rb +20 -0
  27. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/deploy.rb +73 -0
  28. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/processes/web_server.rb +37 -0
  29. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/processes.rb +13 -0
  30. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/runners/apache_host.rb +36 -0
  31. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/runners/apache_path.rb +40 -0
  32. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/runners/data/load.rb +60 -0
  33. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/runners/deploy.rb +43 -0
  34. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/runners.rb +13 -0
  35. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/sources/base.rb +15 -0
  36. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/sources.rb +11 -0
  37. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/version.rb +7 -0
  38. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0.rb +9 -0
  39. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/css_spec.rb +7 -0
  40. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/css_spec_files/css1.source.css +11 -0
  41. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/css_spec_files/css1.target.css +11 -0
  42. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/html_spec.rb +7 -0
  43. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/html_spec_files/html_code.html.erb.source +8 -0
  44. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/html_spec_files/html_code.html.erb.target +8 -0
  45. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/html_spec_files/html_code.html.source +5 -0
  46. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/html_spec_files/html_code.html.target +5 -0
  47. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/javascript_spec.rb +7 -0
  48. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/javascript_spec_files/javascript_code1.js.source +29 -0
  49. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/javascript_spec_files/javascript_code1.js.target +21 -0
  50. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/json_spec.rb +7 -0
  51. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/json_spec_files/json_code.json.source +8 -0
  52. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/json_spec_files/json_code.json.target +7 -0
  53. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/xml_spec.rb +7 -0
  54. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/xml_spec_files/xml_code.xml.source +11 -0
  55. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/xml_spec_files/xml_code.xml.target +9 -0
  56. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/instances/base_spec.rb +11 -0
  57. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/sources/base_spec.rb +7 -0
  58. data/sub/avm-eac_webapp_base0/spec/rubocop_spec.rb +3 -0
  59. data/sub/avm-eac_webapp_base0/spec/spec_helper.rb +4 -0
  60. data/sub/avm-eac_webapp_base0/template/avm/eac_webapp_base0/instances/apache_host/no_ssl.conf +11 -0
  61. data/sub/avm-eac_webapp_base0/template/avm/eac_webapp_base0/instances/apache_path/default.conf +7 -0
  62. metadata +62 -4
@@ -0,0 +1,50 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/files/appender'
4
+ require 'avm/files/deploy'
5
+ require 'eac_ruby_utils/envs'
6
+ require 'eac_ruby_utils/fs/temp'
7
+
8
+ module Avm
9
+ module EacWebappBase0
10
+ module Instances
11
+ class Deploy
12
+ module Build
13
+ private
14
+
15
+ attr_accessor :build_dir
16
+
17
+ def append_instance_content
18
+ ::Avm::Files::Appender
19
+ .new
20
+ .variables_source_set(variables_source)
21
+ .append_templatized_directory(template.path)
22
+ .append_templatized_directories(appended_directories)
23
+ .append_file_content(version_target_path, version)
24
+ .write_appended_on(build_dir)
25
+ end
26
+
27
+ def build_dir_env
28
+ ::EacRubyUtils::Envs.local
29
+ end
30
+
31
+ def create_build_dir
32
+ self.build_dir = ::EacRubyUtils::Fs::Temp.directory
33
+ end
34
+
35
+ def remove_build_dir
36
+ build_dir&.remove
37
+ end
38
+
39
+ def build_content
40
+ infom 'Writing Git source code...'
41
+ scm.commit(commit_reference).deploy_to_env_path(
42
+ build_dir_env,
43
+ build_dir
44
+ ).variables_source_set(variables_source).run
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,72 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module EacWebappBase0
5
+ module Instances
6
+ class Deploy
7
+ module Scm
8
+ DEFAULT_REMOTE_NAME = 'origin'
9
+
10
+ def commit_reference_uncached
11
+ git_fetch
12
+ r = git.rev_parse(git_reference_found)
13
+ return r if r
14
+
15
+ raise ::Avm::Result::Error, "No commit SHA1 found for \"#{git_reference_found}\""
16
+ end
17
+
18
+ def git_fetch_uncached
19
+ infom "Fetching remote \"#{git_remote_name}\" from \"#{git_repository_path}\"..."
20
+ git.remote(git_remote_name).fetch
21
+ end
22
+
23
+ def git_reference
24
+ options[OPTION_REFERENCE] || DEFAULT_REFERENCE
25
+ end
26
+
27
+ def git_reference_found_uncached
28
+ %w[git_reference instance_branch master_branch].map { |b| send(b) }.find(&:present?) ||
29
+ raise(
30
+ ::Avm::Result::Error,
31
+ 'No git reference found (Searched for option, instance and master)'
32
+ )
33
+ end
34
+
35
+ def git_remote_hashs_uncached
36
+ git.remote(git_remote_name).ls.hashes
37
+ end
38
+
39
+ def git_remote_name
40
+ DEFAULT_REMOTE_NAME
41
+ end
42
+
43
+ def git_repository_path
44
+ instance.source_instance.read_entry(::Avm::Instances::EntryKeys::INSTALL_PATH)
45
+ end
46
+
47
+ # @return [EacGit::Local]
48
+ def git_uncached
49
+ scm.git_repo
50
+ end
51
+
52
+ def instance_branch
53
+ remote_branch(instance.id)
54
+ end
55
+
56
+ def remote_branch(name)
57
+ git_remote_hashs.key?("refs/heads/#{name}") ? "#{git_remote_name}/#{name}" : nil
58
+ end
59
+
60
+ def master_branch
61
+ remote_branch('master')
62
+ end
63
+
64
+ # @return [Avm::Scms::Base]
65
+ def scm
66
+ instance.application.local_source.scm
67
+ end
68
+ end
69
+ end
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,53 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module EacWebappBase0
5
+ module Instances
6
+ class Deploy
7
+ class SetupFilesUnit < ::SimpleDelegator
8
+ enable_method_class
9
+ attr_reader :data_key, :fs_path_subpath
10
+
11
+ def initialize(deploy, data_key, fs_path_subpath)
12
+ super(deploy)
13
+ @data_key = data_key
14
+ @fs_path_subpath = fs_path_subpath
15
+ end
16
+
17
+ def result
18
+ assert_source_directory
19
+ link_source_target
20
+ end
21
+
22
+ def assert_source_directory
23
+ infom "Asserting \"#{data_key}\" source directory..."
24
+ instance.host_env.command('mkdir', '-p', source_path).execute!
25
+ end
26
+
27
+ def source_path
28
+ ::File.join(instance.install_data_path, data_key.to_s)
29
+ end
30
+
31
+ def target_path
32
+ ::File.join(instance.read_entry(::Avm::Instances::EntryKeys::INSTALL_PATH),
33
+ fs_path_subpath.to_s)
34
+ end
35
+
36
+ def link_source_target
37
+ infom "Linking \"#{data_key}\" directory..."
38
+ return unless remove_target
39
+
40
+ instance.host_env.command('ln', '-s', source_path, target_path).execute!
41
+ end
42
+
43
+ private
44
+
45
+ # @return [Boolean]
46
+ def remove_target
47
+ instance.host_env.command('rm', '-rf', target_path).execute.fetch(:exit_code).zero?
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module EacWebappBase0
5
+ module Instances
6
+ class Deploy
7
+ module Version
8
+ VERSION_TARGET_PATH = 'VERSION'
9
+
10
+ def version
11
+ ([::Time.now, commit_reference] + version_git_refs).join('|')
12
+ end
13
+
14
+ def version_git_refs
15
+ git_remote_hashs.select { |_name, sha1| sha1 == commit_reference }.keys
16
+ .map { |ref| ref.gsub(%r{\Arefs/}, '') }.reject { |ref| ref == 'HEAD' }
17
+ end
18
+
19
+ def version_target_path
20
+ VERSION_TARGET_PATH
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+
5
+ module Avm
6
+ module EacWebappBase0
7
+ module Instances
8
+ class Deploy
9
+ module WriteOnTarget
10
+ def write_on_target
11
+ ::Avm::Files::Deploy.new(
12
+ instance.host_env,
13
+ instance.read_entry(::Avm::Instances::EntryKeys::INSTALL_PATH)
14
+ ).append_plain_directory(build_dir).run
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,73 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'active_support/callbacks'
4
+ require 'avm/entries/jobs/base'
5
+ require 'eac_ruby_utils/core_ext'
6
+ require 'eac_templates/core_ext'
7
+ require 'net/http'
8
+
9
+ module Avm
10
+ module EacWebappBase0
11
+ module Instances
12
+ class Deploy
13
+ require_sub __FILE__, include_modules: true, require_dependency: true
14
+
15
+ DEFAULT_REFERENCE = 'HEAD'
16
+
17
+ REQUEST_TEST_JOB = 'request_test'
18
+ JOBS = (%w[create_build_dir build_content append_instance_content write_on_target
19
+ setup_files_units assert_instance_branch] + [REQUEST_TEST_JOB]).freeze
20
+
21
+ include ::Avm::Entries::Jobs::Base
22
+
23
+ lists.add_symbol :option, :appended_directories, :no_request_test, :reference
24
+
25
+ def option_list
26
+ ::Avm::EacWebappBase0::Instances::Deploy.lists.option
27
+ end
28
+
29
+ def run
30
+ super
31
+ ensure
32
+ remove_build_dir
33
+ end
34
+
35
+ def start_banner
36
+ infov 'Instance', instance
37
+ infov 'Git reference (User)', git_reference.if_present('- BLANK -')
38
+ infov 'Git remote name', git_remote_name
39
+ infov 'Git reference (Found)', git_reference_found
40
+ infov 'Git commit SHA1', commit_reference
41
+ infov 'Appended directories', appended_directories
42
+ end
43
+
44
+ def setup_files_units
45
+ instance.data_package.units.values.map(&:installation_files_data).select(&:present?)
46
+ .each { |unit_install| setup_files_unit(unit_install.key, unit_install.subpath) }
47
+ end
48
+
49
+ def assert_instance_branch
50
+ infom 'Setting instance branch...'
51
+ git.command('push', git_remote_name, "#{commit_reference}:refs/heads/#{instance.id}",
52
+ '-f').execute!
53
+ end
54
+
55
+ def request_test
56
+ infom 'Requesting web interface...'
57
+ uri = URI(instance.read_entry('web.url'))
58
+ response = ::Net::HTTP.get_response(uri)
59
+ infov 'Response status', response.code
60
+ fatal_error "Request to #{uri} failed" unless response.code.to_i == 200
61
+ end
62
+
63
+ protected
64
+
65
+ def jobs
66
+ r = super
67
+ r.delete(REQUEST_TEST_JOB) if options[OPTION_NO_REQUEST_TEST]
68
+ r
69
+ end
70
+ end
71
+ end
72
+ end
73
+ end
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/instances/process'
4
+ require 'eac_ruby_utils/core_ext'
5
+
6
+ module Avm
7
+ module EacWebappBase0
8
+ module Instances
9
+ module Processes
10
+ class WebServer < ::Avm::Instances::Process
11
+ def available?
12
+ instance.apache_resource.present?
13
+ end
14
+
15
+ def enable
16
+ apache_resource_change(__method__)
17
+ end
18
+
19
+ def enabled?
20
+ instance.apache_resource.enabled?
21
+ end
22
+
23
+ def disable
24
+ apache_resource_change(__method__)
25
+ end
26
+
27
+ private
28
+
29
+ def apache_resource_change(action)
30
+ instance.apache_resource.send(action)
31
+ instance.platform_instance.apache.service(:reload)
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+
5
+ module Avm
6
+ module EacWebappBase0
7
+ module Instances
8
+ module Processes
9
+ require_sub __FILE__
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_cli/core_ext'
4
+
5
+ module Avm
6
+ module EacWebappBase0
7
+ module Instances
8
+ module Runners
9
+ class ApacheHost
10
+ runner_with :help do
11
+ desc 'Configure Apache virtual host for instance.'
12
+ bool_opt '-c', '--certbot', 'Install certbot.'
13
+ end
14
+
15
+ def run
16
+ result = stereotype_apache_host_class.new(runner_context.call(:instance),
17
+ stereotype_apache_host_options).run
18
+ if result.error?
19
+ fatal_error result.to_s
20
+ else
21
+ infov 'Result', result.label
22
+ end
23
+ end
24
+
25
+ def stereotype_apache_host_class
26
+ "#{runner_context.call(:instance).class.name.deconstantize}::ApacheHost".constantize
27
+ end
28
+
29
+ def stereotype_apache_host_options
30
+ { certbot: parsed.certbot? }
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_cli/core_ext'
4
+
5
+ module Avm
6
+ module EacWebappBase0
7
+ module Instances
8
+ module Runners
9
+ class ApachePath
10
+ runner_with :help do
11
+ desc 'Configure Apache path configuration for instance.'
12
+ end
13
+
14
+ def run
15
+ infov 'ApachePath class', stereotype_apache_path_class
16
+ if result.error?
17
+ fatal_error result.to_s
18
+ else
19
+ infov 'Result', result.label
20
+ end
21
+ end
22
+
23
+ private
24
+
25
+ def apache_path_uncached
26
+ stereotype_apache_path_class.new(runner_context.call(:instance))
27
+ end
28
+
29
+ def result_uncached
30
+ apache_path.run
31
+ end
32
+
33
+ def stereotype_apache_path_class
34
+ runner_context.call(:instance).apache_path_class
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,60 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'active_support/core_ext/numeric/time'
4
+ require 'avm/result'
5
+ require 'eac_cli/speaker'
6
+ require 'eac_ruby_utils/simple_cache'
7
+
8
+ module Avm
9
+ module EacWebappBase0
10
+ module Instances
11
+ module Runners
12
+ class Data
13
+ class Load
14
+ runner_with :help do
15
+ desc 'Load utility for EacRailsBase instance.'
16
+ arg_opt '-S', '--source-instance', 'Informa a instância a ser extraída o dump.'
17
+ pos_arg :dump_path, optional: true
18
+ end
19
+
20
+ def run
21
+ return fatal_error("Dump \"#{dump_path}\" does not exist") unless
22
+ ::File.exist?(dump_path)
23
+
24
+ load_dump
25
+ success("Dump loaded from \"#{dump_path}\"")
26
+ end
27
+
28
+ def dump_path_uncached
29
+ return parsed.dump_path.to_s if parsed.dump_path.present?
30
+ return source_instance_dump_path if parsed.source_instance.present?
31
+
32
+ raise "Dump path unknown (Options: #{parsed})"
33
+ end
34
+
35
+ def source_instance_dump_path
36
+ runner_context.call(:instance).class.by_id(parsed.source_instance).run_subcommand(
37
+ ::Avm::EacWebappBase0::Instances::Runners::Data::Dump, []
38
+ )
39
+ end
40
+
41
+ def load_dump
42
+ info "Loading dump \"#{dump_path}\"..."
43
+ package_load.run
44
+ end
45
+
46
+ def dump_instance_method
47
+ :dump_database
48
+ end
49
+
50
+ private
51
+
52
+ def package_load_uncached
53
+ runner_context.call(:instance).data_package.load(dump_path)
54
+ end
55
+ end
56
+ end
57
+ end
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/instances/runner'
4
+ require 'avm/path_string'
5
+ require 'eac_cli/core_ext'
6
+
7
+ module Avm
8
+ module EacWebappBase0
9
+ module Instances
10
+ module Runners
11
+ class Deploy
12
+ runner_with :help do
13
+ desc 'Deploy for instance.'
14
+ arg_opt '-r', '--reference', 'Git reference to deploy.'
15
+ arg_opt '-a', '--append-dirs', 'Append directories to deploy (List separated by ":").'
16
+ bool_opt '-T', '--no-request-test', 'Do not test web interface after deploy.'
17
+ end
18
+
19
+ def deploy_class
20
+ runner_context.call(:stereotype_module).const_get('Instances').const_get('Deploy')
21
+ rescue ::NameError
22
+ runner_context.call(:stereotype_module).const_get('Deploy')
23
+ end
24
+
25
+ def run
26
+ result = deploy_class.new(runner_context.call(:instance), deploy_options).run
27
+ if result.error?
28
+ fatal_error result.to_s
29
+ else
30
+ infov 'Result', result.label
31
+ end
32
+ end
33
+
34
+ def deploy_options
35
+ { reference: parsed.reference,
36
+ appended_directories: ::Avm::PathString.paths(parsed.append_dirs),
37
+ no_request_test: parsed.no_request_test? }
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+
5
+ module Avm
6
+ module EacWebappBase0
7
+ module Instances
8
+ module Runners
9
+ require_sub __FILE__
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/eac_generic_base0/sources/base'
4
+
5
+ module Avm
6
+ module EacWebappBase0
7
+ module Sources
8
+ class Base < ::Avm::EacGenericBase0::Sources::Base
9
+ def valid?
10
+ false
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+
5
+ module Avm
6
+ module EacWebappBase0
7
+ module Sources
8
+ require_sub __FILE__
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module EacWebappBase0
5
+ VERSION = '0.18.4'
6
+ end
7
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+
5
+ module Avm
6
+ module EacWebappBase0
7
+ require_sub __FILE__
8
+ end
9
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/eac_webapp_base0/file_formats/css'
4
+
5
+ RSpec.describe Avm::EacWebappBase0::FileFormats::Css do
6
+ include_examples 'avm_file_formats_with_fixtures', __FILE__
7
+ end
@@ -0,0 +1,11 @@
1
+
2
+ h1, h2 { font-color: red }
3
+
4
+
5
+ /* Comment */
6
+
7
+
8
+ .teste
9
+ {
10
+ border-style: dashed
11
+ }
@@ -0,0 +1,11 @@
1
+ h1, h2 {
2
+ font-color: red;
3
+ }
4
+
5
+
6
+ /* Comment */
7
+
8
+
9
+ .teste {
10
+ border-style: dashed;
11
+ }
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/eac_webapp_base0/file_formats/html'
4
+
5
+ RSpec.describe Avm::EacWebappBase0::FileFormats::Html do
6
+ include_examples 'avm_file_formats_with_fixtures', __FILE__
7
+ end
@@ -0,0 +1,8 @@
1
+ <html>
2
+ <body>
3
+ <p>Unformatted code</p>
4
+ <% array.each do |item| %>
5
+ <%= '<b>' + item + '</br>' %>
6
+ <% end %>
7
+ </body>
8
+ </html>
@@ -0,0 +1,8 @@
1
+ <html>
2
+ <body>
3
+ <p>Unformatted code</p>
4
+ <% array.each do |item| %>
5
+ <%= '<b>' + item + '</br>' %>
6
+ <% end %>
7
+ </body>
8
+ </html>
@@ -0,0 +1,5 @@
1
+ <html>
2
+ <body>
3
+ <p>Unformatted code</p>
4
+ </body>
5
+ </html>
@@ -0,0 +1,5 @@
1
+ <html>
2
+ <body>
3
+ <p>Unformatted code</p>
4
+ </body>
5
+ </html>
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/eac_webapp_base0/file_formats/javascript'
4
+
5
+ RSpec.describe Avm::EacWebappBase0::FileFormats::Javascript do
6
+ include_examples 'avm_file_formats_with_fixtures', __FILE__
7
+ end