eac_tools 0.99.1 → 0.100.0
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 +55 -27
- data/lib/eac_tools/version.rb +1 -1
- data/lib/eac_tools.rb +17 -0
- data/sub/avm/avm.gemspec +3 -3
- data/sub/avm/lib/avm/rspec/setup.rb +1 -0
- data/sub/avm/lib/avm/version.rb +1 -1
- data/sub/avm-eac_ruby_base1/Gemfile +8 -0
- data/sub/avm-eac_ruby_base1/avm-eac_ruby_base1.gemspec +22 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/bundler/gemfile/add_or_replace_gem_line.rb +54 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/bundler/gemfile/dependency.rb +17 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/bundler/gemfile.rb +32 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/bundler/incompatible_parser/depends_on.rb +22 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/bundler/incompatible_parser/gem_conflict.rb +41 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/bundler/incompatible_parser/in_gemfile.rb +14 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/bundler/incompatible_parser/line_buffer.rb +73 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/bundler/incompatible_parser/line_factory.rb +26 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/bundler/incompatible_parser/line_parser_base.rb +17 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/bundler/incompatible_parser/ruby_requirement.rb +13 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/bundler/incompatible_parser/version_requirement.rb +23 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/bundler/incompatible_parser.rb +23 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/file_formats/base/file_resource_name.rb +44 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/file_formats/base.rb +21 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/instances/mixin.rb +17 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/launcher/gem/build.rb +120 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/launcher/gem/specification.rb +61 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/launcher_stereotypes/base/local_project_mixin.rb +24 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/launcher_stereotypes/base/publish.rb +122 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/launcher_stereotypes/base.rb +33 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/preferred_version_requirements.rb +40 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/rspec/setup.rb +15 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/rspec/source_generator.rb +20 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/rspec.rb +9 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/rubocop/configured.rb +29 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/rubocop/envvar.rb +15 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/rubocop/gemfile.rb +39 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/rubocop.rb +52 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/rubygems/gemspec/add_or_replace_gem_line.rb +69 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/rubygems/gemspec/dependency.rb +23 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/rubygems/gemspec.rb +57 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/rubygems/remote.rb +33 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/rubygems/version_file.rb +43 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/rubygems.rb +9 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/runners/base/lib_rename.rb +74 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/runners/base/rubocop.rb +27 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/runners/base.rb +16 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/runners.rb +9 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/source_generators/base/dependencies.rb +59 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/source_generators/base/gemfile_lock.rb +23 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/source_generators/base/options.rb +32 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/source_generators/base/root_module.rb +35 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/source_generators/base/version_builder.rb +58 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/source_generators/base.rb +83 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base/bundle_command.rb +35 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base/bundler.rb +64 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base/rake.rb +39 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base/rubocop.rb +23 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base/rubocop_command.rb +70 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base/rubygems.rb +40 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base/update.rb +21 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base/version.rb +29 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base/version_bump.rb +16 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base.rb +58 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/bundle_update.rb +21 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/gemfile_local/sibling.rb +51 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/gemfile_local.rb +67 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/namespace_replacer.rb +55 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/runners/bundle.rb +26 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/runners/bundler/gemfile_local.rb +57 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/runners/bundler/gemfile_lock/git.rb +58 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/runners/bundler/gemfile_lock.rb +87 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/runners/bundler/incompatible.rb +73 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/runners/bundler.rb +17 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/runners/update_dependencies_requirements.rb +67 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/runners.rb +11 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/tests/base.rb +55 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/tests/minitest.rb +27 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/tests/multiple/decorated_gem.rb +50 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/tests/multiple/result.rb +29 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/tests/multiple.rb +86 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/tests/rspec.rb +23 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/update/sub_update.rb +57 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/update_dependency_requirements.rb +63 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/version.rb +7 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1.rb +14 -0
- data/sub/avm-eac_ruby_base1/locale/en.yml +9 -0
- data/sub/avm-eac_ruby_base1/locale/pt-BR.yml +9 -0
- data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/bundler/incompatible_parser_spec.rb +5 -0
- data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/bundler/incompatible_parser_spec_files/1.source.out +192 -0
- data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/bundler/incompatible_parser_spec_files/1.target.yaml +300 -0
- data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/bundler/incompatible_parser_spec_files/2.source.out +245 -0
- data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/bundler/incompatible_parser_spec_files/2.target.yaml +355 -0
- data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/bundler/incompatible_parser_spec_files/3.source.out +0 -0
- data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/bundler/incompatible_parser_spec_files/3.target.yaml +305 -0
- data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/file_formats/base_spec.rb +13 -0
- data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/file_formats/base_spec_files/Gemfile.source +6 -0
- data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/file_formats/base_spec_files/Gemfile.target +3 -0
- data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/file_formats/base_spec_files/ruby_code.rb.source +6 -0
- data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/file_formats/base_spec_files/ruby_code.rb.target +5 -0
- data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/launcher/gem/build_spec.rb +43 -0
- data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/launcher/gem/specification_spec.rb +57 -0
- data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/launcher_stereotypes/base/publish_spec.rb +25 -0
- data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/launcher_stereotypes/base_spec.rb +21 -0
- data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/preferred_version_requirements_spec.rb +21 -0
- data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/rubygems/gemspec_spec.rb +35 -0
- data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/rubygems/gemspec_spec_files/changes1.source.yaml +5 -0
- data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/rubygems/gemspec_spec_files/changes1.target.txt +15 -0
- data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/rubygems/gemspec_spec_files/the_gem.gemspec +15 -0
- data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/rubygems/version_file_spec.rb +13 -0
- data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/rubygems/version_file_spec_files/a_version_file.rb +7 -0
- data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/runners/base/rubocop_spec.rb +33 -0
- data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/runners/base/rubocop_spec_files/dir1/dir3/Gemfile +5 -0
- data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/runners/base/rubocop_spec_files/dir1/dir3/Gemfile.lock +27 -0
- data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/runners/base/rubocop_spec_files/dir2/empty.rb +1 -0
- data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/runners/base/rubocop_spec_files/dir4/false_command.rb +4 -0
- data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec.rb +16 -0
- data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/dashed-mygem/Gemfile +8 -0
- data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/dashed-mygem/Gemfile.lock +1 -0
- data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/dashed-mygem/_gitignore +2 -0
- data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/dashed-mygem/dashed-mygem.gemspec +19 -0
- data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/dashed-mygem/lib/dashed/mygem/version.rb +7 -0
- data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/dashed-mygem/lib/dashed/mygem.rb +9 -0
- data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/dashed-mygem/spec/rubocop_spec.rb +3 -0
- data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/dashed-mygem/spec/spec_helper.rb +5 -0
- data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/mygem/Gemfile +8 -0
- data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/mygem/Gemfile.lock +1 -0
- data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/mygem/_gitignore +2 -0
- data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/mygem/lib/mygem/version.rb +5 -0
- data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/mygem/lib/mygem.rb +7 -0
- data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/mygem/mygem.gemspec +19 -0
- data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/mygem/spec/rubocop_spec.rb +3 -0
- data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/mygem/spec/spec_helper.rb +5 -0
- data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/sources/base/bundler_spec.rb +28 -0
- data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/sources/base/bundler_spec_files/mygem/Gemfile +5 -0
- data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/sources/base/bundler_spec_files/mygem/Gemfile.lock +19 -0
- data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/sources/base/bundler_spec_files/mygem/Rakefile +14 -0
- data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/sources/base/bundler_spec_files/mygem/exe/myrunner +5 -0
- data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/sources/base/bundler_spec_files/mygem/lib/mygem/version.rb +5 -0
- data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/sources/base/bundler_spec_files/mygem/lib/mygem.rb +7 -0
- data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/sources/base/bundler_spec_files/mygem/mygem.gemspec +17 -0
- data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/sources/base_spec.rb +13 -0
- data/sub/avm-eac_ruby_base1/spec/rubocop_spec.rb +3 -0
- data/sub/avm-eac_ruby_base1/spec/spec_helper.rb +5 -0
- data/sub/avm-eac_ruby_base1/template/avm/eac_ruby_base1/source_generators/base/gemspec.template +19 -0
- data/sub/avm-eac_ruby_base1/template/avm/eac_ruby_base1/source_generators/base/root_lib.template +7 -0
- data/sub/avm-eac_ruby_base1/template/avm/eac_ruby_base1/source_generators/base/static/Gemfile +8 -0
- data/sub/avm-eac_ruby_base1/template/avm/eac_ruby_base1/source_generators/base/static/spec/rubocop_spec.rb +3 -0
- data/sub/avm-eac_ruby_base1/template/avm/eac_ruby_base1/source_generators/base/static/spec/spec_helper.rb.template +5 -0
- data/sub/avm-eac_ruby_base1/template/avm/eac_ruby_base1/source_generators/base/version.template +5 -0
- data/sub/eac_ruby_base0/Gemfile +8 -0
- data/sub/eac_ruby_base0/eac_ruby_base0.gemspec +22 -0
- data/sub/eac_ruby_base0/lib/eac_ruby_base0/application.rb +88 -0
- data/sub/eac_ruby_base0/lib/eac_ruby_base0/application_xdg.rb +34 -0
- data/sub/eac_ruby_base0/lib/eac_ruby_base0/core_ext.rb +5 -0
- data/sub/eac_ruby_base0/lib/eac_ruby_base0/jobs_runner.rb +31 -0
- data/sub/eac_ruby_base0/lib/eac_ruby_base0/patches/class/jobs_runner.rb +9 -0
- data/sub/eac_ruby_base0/lib/eac_ruby_base0/patches/class.rb +4 -0
- data/sub/eac_ruby_base0/lib/eac_ruby_base0/patches.rb +4 -0
- data/sub/eac_ruby_base0/lib/eac_ruby_base0/rspec/setup.rb +14 -0
- data/sub/eac_ruby_base0/lib/eac_ruby_base0/rspec.rb +9 -0
- data/sub/eac_ruby_base0/lib/eac_ruby_base0/runner/contexts.rb +52 -0
- data/sub/eac_ruby_base0/lib/eac_ruby_base0/runner/prepend.rb +39 -0
- data/sub/eac_ruby_base0/lib/eac_ruby_base0/runner.rb +37 -0
- data/sub/eac_ruby_base0/lib/eac_ruby_base0/runner_with.rb +9 -0
- data/sub/eac_ruby_base0/lib/eac_ruby_base0/version.rb +5 -0
- data/sub/eac_ruby_base0/lib/eac_ruby_base0.rb +12 -0
- data/sub/eac_ruby_base0/spec/rubocop_spec.rb +3 -0
- data/sub/eac_ruby_base0/spec/spec_helper.rb +4 -0
- data/sub/eac_ruby_gem_support/Gemfile +8 -0
- data/sub/eac_ruby_gem_support/eac_ruby_gem_support.gemspec +25 -0
- data/sub/eac_ruby_gem_support/lib/eac_ruby_gem_support/rspec/helpers/filesystem.rb +73 -0
- data/sub/eac_ruby_gem_support/lib/eac_ruby_gem_support/rspec/helpers/utils.rb +22 -0
- data/sub/eac_ruby_gem_support/lib/eac_ruby_gem_support/rspec/setup.rb +55 -0
- data/sub/eac_ruby_gem_support/lib/eac_ruby_gem_support/rspec/shared_examples/source_target_fixtures.rb +76 -0
- data/sub/eac_ruby_gem_support/lib/eac_ruby_gem_support/rspec/shared_examples/spec_paths.rb +14 -0
- data/sub/eac_ruby_gem_support/lib/eac_ruby_gem_support/rspec/source_target_fixtures_controller.rb +32 -0
- data/sub/eac_ruby_gem_support/lib/eac_ruby_gem_support/rspec/spec_paths_controller.rb +29 -0
- data/sub/eac_ruby_gem_support/lib/eac_ruby_gem_support/rspec/specs/rubocop.rb +33 -0
- data/sub/eac_ruby_gem_support/lib/eac_ruby_gem_support/source_target_fixtures/source_target_file.rb +19 -0
- data/sub/eac_ruby_gem_support/lib/eac_ruby_gem_support/source_target_fixtures.rb +74 -0
- data/sub/eac_ruby_gem_support/lib/eac_ruby_gem_support/version.rb +5 -0
- data/sub/eac_ruby_gem_support/lib/eac_ruby_gem_support.rb +11 -0
- data/sub/eac_ruby_gem_support/spec/lib/eac_ruby_gem_support/rspec/helpers/filesystem_spec.rb +30 -0
- data/sub/eac_ruby_gem_support/spec/lib/eac_ruby_gem_support/rspec/shared_examples/source_target_fixtures_spec.rb +11 -0
- data/sub/eac_ruby_gem_support/spec/lib/eac_ruby_gem_support/rspec/shared_examples/source_target_fixtures_spec_files/one.source.yaml +2 -0
- data/sub/eac_ruby_gem_support/spec/lib/eac_ruby_gem_support/rspec/shared_examples/source_target_fixtures_spec_files/one.target.yaml +2 -0
- data/sub/eac_ruby_gem_support/spec/lib/eac_ruby_gem_support/rspec/shared_examples/spec_paths_spec.rb +19 -0
- data/sub/eac_ruby_gem_support/spec/lib/eac_ruby_gem_support/source_target_fixtures_spec.rb +27 -0
- data/sub/eac_ruby_gem_support/spec/lib/eac_ruby_gem_support/source_target_fixtures_spec_files/stub1.source.txt +1 -0
- data/sub/eac_ruby_gem_support/spec/lib/eac_ruby_gem_support/source_target_fixtures_spec_files/stub1.target.html +1 -0
- data/sub/eac_ruby_gem_support/spec/lib/eac_ruby_gem_support/source_target_fixtures_spec_files/stub2.source.html +1 -0
- data/sub/eac_ruby_gem_support/spec/lib/eac_ruby_gem_support/source_target_fixtures_spec_files/stub3.target.yaml +1 -0
- data/sub/eac_ruby_gem_support/spec/lib/rubocop_check_spec.rb +3 -0
- data/sub/eac_ruby_gem_support/spec/spec_helper.rb +103 -0
- data/sub/eac_templates/Gemfile +8 -0
- data/sub/eac_templates/README.textile +59 -0
- data/sub/eac_templates/eac_templates.gemspec +21 -0
- data/sub/eac_templates/lib/eac_templates/abstract/directory.rb +42 -0
- data/sub/eac_templates/lib/eac_templates/abstract/file.rb +25 -0
- data/sub/eac_templates/lib/eac_templates/abstract/fs_object.rb +99 -0
- data/sub/eac_templates/lib/eac_templates/abstract/fs_object_by_pathname.rb +13 -0
- data/sub/eac_templates/lib/eac_templates/abstract/with_directory_file_methods.rb +77 -0
- data/sub/eac_templates/lib/eac_templates/core_ext.rb +4 -0
- data/sub/eac_templates/lib/eac_templates/errors/not_found.rb +8 -0
- data/sub/eac_templates/lib/eac_templates/errors/type_mismatch.rb +8 -0
- data/sub/eac_templates/lib/eac_templates/errors.rb +9 -0
- data/sub/eac_templates/lib/eac_templates/interface_methods.rb +12 -0
- data/sub/eac_templates/lib/eac_templates/modules/ancestor/directory.rb +37 -0
- data/sub/eac_templates/lib/eac_templates/modules/ancestor/file.rb +64 -0
- data/sub/eac_templates/lib/eac_templates/modules/ancestor/fs_object.rb +26 -0
- data/sub/eac_templates/lib/eac_templates/modules/ancestor.rb +37 -0
- data/sub/eac_templates/lib/eac_templates/modules/base/directory.rb +72 -0
- data/sub/eac_templates/lib/eac_templates/modules/base/file.rb +31 -0
- data/sub/eac_templates/lib/eac_templates/modules/base/fs_object.rb +16 -0
- data/sub/eac_templates/lib/eac_templates/modules/base.rb +93 -0
- data/sub/eac_templates/lib/eac_templates/modules.rb +9 -0
- data/sub/eac_templates/lib/eac_templates/patches/module/erb_template.rb +9 -0
- data/sub/eac_templates/lib/eac_templates/patches/module/template.rb +9 -0
- data/sub/eac_templates/lib/eac_templates/patches/module.rb +4 -0
- data/sub/eac_templates/lib/eac_templates/patches/object/erb_template.rb +9 -0
- data/sub/eac_templates/lib/eac_templates/patches/object/template.rb +7 -0
- data/sub/eac_templates/lib/eac_templates/patches/object.rb +4 -0
- data/sub/eac_templates/lib/eac_templates/patches.rb +4 -0
- data/sub/eac_templates/lib/eac_templates/sources/directory.rb +37 -0
- data/sub/eac_templates/lib/eac_templates/sources/file.rb +13 -0
- data/sub/eac_templates/lib/eac_templates/sources/from_all_gems.rb +4 -0
- data/sub/eac_templates/lib/eac_templates/sources/from_gem.rb +37 -0
- data/sub/eac_templates/lib/eac_templates/sources/fs_object.rb +58 -0
- data/sub/eac_templates/lib/eac_templates/sources/internal_set.rb +27 -0
- data/sub/eac_templates/lib/eac_templates/sources/set.rb +61 -0
- data/sub/eac_templates/lib/eac_templates/sources/single.rb +34 -0
- data/sub/eac_templates/lib/eac_templates/sources.rb +9 -0
- data/sub/eac_templates/lib/eac_templates/variables/content.rb +52 -0
- data/sub/eac_templates/lib/eac_templates/variables/directory.rb +48 -0
- data/sub/eac_templates/lib/eac_templates/variables/file.rb +26 -0
- data/sub/eac_templates/lib/eac_templates/variables/fs_object.rb +65 -0
- data/sub/eac_templates/lib/eac_templates/variables/not_found_error.rb +7 -0
- data/sub/eac_templates/lib/eac_templates/variables/providers/base.rb +24 -0
- data/sub/eac_templates/lib/eac_templates/variables/providers/config_reader.rb +29 -0
- data/sub/eac_templates/lib/eac_templates/variables/providers/entries_reader.rb +25 -0
- data/sub/eac_templates/lib/eac_templates/variables/providers/generic.rb +25 -0
- data/sub/eac_templates/lib/eac_templates/variables/providers/hash.rb +29 -0
- data/sub/eac_templates/lib/eac_templates/variables/providers.rb +25 -0
- data/sub/eac_templates/lib/eac_templates/variables.rb +9 -0
- data/sub/eac_templates/lib/eac_templates/version.rb +5 -0
- data/sub/eac_templates/lib/eac_templates.rb +15 -0
- data/sub/eac_templates/spec/lib/eac_templates/modules/base/apply_spec.rb +28 -0
- data/sub/eac_templates/spec/lib/eac_templates/modules/base/apply_spec_files/a_module/a/a_a +1 -0
- data/sub/eac_templates/spec/lib/eac_templates/modules/base/apply_spec_files/a_module/a/a_b +1 -0
- data/sub/eac_templates/spec/lib/eac_templates/modules/base/apply_spec_files/a_module/b +1 -0
- data/sub/eac_templates/spec/lib/eac_templates/modules/base/apply_spec_files/a_module/c +1 -0
- data/sub/eac_templates/spec/lib/eac_templates/modules/base/apply_spec_files/prepended_module/a/a_d +1 -0
- data/sub/eac_templates/spec/lib/eac_templates/modules/base/apply_spec_files/prepended_module/c +1 -0
- data/sub/eac_templates/spec/lib/eac_templates/modules/base/apply_spec_files/prepended_module/d +1 -0
- data/sub/eac_templates/spec/lib/eac_templates/modules/base/apply_spec_files/sub_class/a/a_a +1 -0
- data/sub/eac_templates/spec/lib/eac_templates/modules/base/apply_spec_files/sub_class/a/a_b +1 -0
- data/sub/eac_templates/spec/lib/eac_templates/modules/base/apply_spec_files/sub_class/a/a_c +1 -0
- data/sub/eac_templates/spec/lib/eac_templates/modules/base/apply_spec_files/sub_class/a/a_d +1 -0
- data/sub/eac_templates/spec/lib/eac_templates/modules/base/apply_spec_files/sub_class/b +1 -0
- data/sub/eac_templates/spec/lib/eac_templates/modules/base/apply_spec_files/sub_class/c +1 -0
- data/sub/eac_templates/spec/lib/eac_templates/modules/base/apply_spec_files/sub_class/d +1 -0
- data/sub/eac_templates/spec/lib/eac_templates/modules/base/apply_spec_files/super_class/a/a_a +1 -0
- data/sub/eac_templates/spec/lib/eac_templates/modules/base/apply_spec_files/super_class/a/a_b +1 -0
- data/sub/eac_templates/spec/lib/eac_templates/modules/base/apply_spec_files/super_class/b +1 -0
- data/sub/eac_templates/spec/lib/eac_templates/modules/base/apply_spec_files/super_class/c +1 -0
- data/sub/eac_templates/spec/lib/eac_templates/modules/base/child_spec.rb +110 -0
- data/sub/eac_templates/spec/lib/eac_templates/patches/object/template_spec.rb +26 -0
- data/sub/eac_templates/spec/lib/eac_templates/patches/object/template_spec_files/path/my_stub_with_template +1 -0
- data/sub/eac_templates/spec/lib/eac_templates/sources/set_spec.rb +42 -0
- data/sub/eac_templates/spec/lib/eac_templates/sources/set_spec_files/path1/subdir1/file1.template +1 -0
- data/sub/eac_templates/spec/lib/eac_templates/sources/set_spec_files/path1/subdir1/file2 +1 -0
- data/sub/eac_templates/spec/lib/eac_templates/sources/set_spec_files/path2/subdir1/file3.template +1 -0
- data/sub/eac_templates/spec/lib/eac_templates/variables/content_spec.rb +35 -0
- data/sub/eac_templates/spec/lib/eac_templates/variables/content_spec_files/expected_content +2 -0
- data/sub/eac_templates/spec/lib/eac_templates/variables/content_spec_files/source.template +2 -0
- data/sub/eac_templates/spec/rubocop_spec.rb +3 -0
- data/sub/eac_templates/spec/spec_helper/modules_resources_context.rb +45 -0
- data/sub/eac_templates/spec/spec_helper/modules_resources_context_files/path1/a_module/a/a_a +1 -0
- data/sub/eac_templates/spec/spec_helper/modules_resources_context_files/path1/a_module/b +1 -0
- data/sub/eac_templates/spec/spec_helper/modules_resources_context_files/path1/prepended_module/a/a_d.template +1 -0
- data/sub/eac_templates/spec/spec_helper/modules_resources_context_files/path1/sub_class/a/a_c +1 -0
- data/sub/eac_templates/spec/spec_helper/modules_resources_context_files/path1/super_class/a/a_b +1 -0
- data/sub/eac_templates/spec/spec_helper/modules_resources_context_files/path1/super_class/b +1 -0
- data/sub/eac_templates/spec/spec_helper/modules_resources_context_files/path2/a_module/a/a_b +1 -0
- data/sub/eac_templates/spec/spec_helper/modules_resources_context_files/path2/a_module/b +1 -0
- data/sub/eac_templates/spec/spec_helper/modules_resources_context_files/path2/a_module/c +1 -0
- data/sub/eac_templates/spec/spec_helper/modules_resources_context_files/path2/prepended_module/c +1 -0
- data/sub/eac_templates/spec/spec_helper/modules_resources_context_files/path2/prepended_module/d.template +1 -0
- data/sub/eac_templates/spec/spec_helper/modules_resources_context_files/path2/sub_class/a/a_d +1 -0
- data/sub/eac_templates/spec/spec_helper/modules_resources_context_files/path2/sub_class/b +1 -0
- data/sub/eac_templates/spec/spec_helper/modules_resources_context_files/path2/super_class/a/a_b +1 -0
- data/sub/eac_templates/spec/spec_helper/modules_resources_context_files/path2/super_class/b +1 -0
- data/sub/eac_templates/spec/spec_helper.rb +6 -0
- metadata +294 -20
@@ -0,0 +1,39 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_cli/core_ext'
|
4
|
+
require 'eac_cli/speaker'
|
5
|
+
require 'eac_cli/speaker/input_blocked'
|
6
|
+
require 'eac_config/node'
|
7
|
+
require 'eac_fs/contexts'
|
8
|
+
require 'eac_ruby_utils/speaker'
|
9
|
+
|
10
|
+
module EacRubyBase0
|
11
|
+
module Runner
|
12
|
+
module Prepend
|
13
|
+
SYSTEM_STACK_ERROR_FILE = 'system_stack_error'
|
14
|
+
|
15
|
+
def run
|
16
|
+
on_rescue_stack_overflow do
|
17
|
+
if parsed.version?
|
18
|
+
show_version
|
19
|
+
else
|
20
|
+
run_with_subcommand
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def run_run
|
26
|
+
on_context { super }
|
27
|
+
end
|
28
|
+
|
29
|
+
private
|
30
|
+
|
31
|
+
def on_rescue_stack_overflow
|
32
|
+
yield
|
33
|
+
rescue ::SystemStackError => e
|
34
|
+
SYSTEM_STACK_ERROR_FILE.to_pathname.write(e.backtrace.map { |v| "#{v}\n" }.join)
|
35
|
+
raise e
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_cli/core_ext'
|
4
|
+
require 'eac_cli/speaker'
|
5
|
+
require 'eac_cli/speaker/input_blocked'
|
6
|
+
require 'eac_config/node'
|
7
|
+
require 'eac_fs/contexts'
|
8
|
+
require 'eac_ruby_utils/speaker'
|
9
|
+
|
10
|
+
module EacRubyBase0
|
11
|
+
module Runner
|
12
|
+
require_sub __FILE__
|
13
|
+
enable_speaker
|
14
|
+
common_concern do
|
15
|
+
include ::EacCli::RunnerWith::Help
|
16
|
+
include ::EacCli::RunnerWith::Subcommands
|
17
|
+
include ::EacRubyBase0::Runner::Contexts
|
18
|
+
prepend ::EacRubyBase0::Runner::Prepend
|
19
|
+
runner_definition do
|
20
|
+
bool_opt '-q', '--quiet', 'Quiet mode.'
|
21
|
+
bool_opt '-I', '--no-input', 'Fail if a input is requested.'
|
22
|
+
subcommands
|
23
|
+
alt do
|
24
|
+
bool_opt '-V', '--version', 'Show version.', usage: true, required: true
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def application_version
|
30
|
+
runner_context.call(:application).version.to_s
|
31
|
+
end
|
32
|
+
|
33
|
+
def show_version
|
34
|
+
out("#{application_version}\n")
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
$LOAD_PATH.push File.expand_path('lib', __dir__)
|
4
|
+
|
5
|
+
require 'eac_ruby_gem_support/version'
|
6
|
+
|
7
|
+
Gem::Specification.new do |s|
|
8
|
+
s.name = 'eac_ruby_gem_support'
|
9
|
+
s.version = EacRubyGemSupport::VERSION
|
10
|
+
s.authors = ['Esquilo Azul Company']
|
11
|
+
s.summary = 'Development support for Ruby\' Gem.'
|
12
|
+
s.homepage = 'https://github.com/esquilo-azul/eac_ruby_gem_support'
|
13
|
+
s.metadata = { 'source_code_uri' => 'https://github.com/esquilo-azul/eac_ruby_gem_support' }
|
14
|
+
|
15
|
+
s.files = Dir['{lib}/**/*', '.rubocop.yml']
|
16
|
+
|
17
|
+
s.required_ruby_version = '>= 2.7.0'
|
18
|
+
|
19
|
+
s.add_dependency 'eac_ruby_utils', '~> 0.127'
|
20
|
+
s.add_dependency 'rspec', '~> 3.13', '>= 3.13.1'
|
21
|
+
s.add_dependency 'rubocop', '~> 1.76'
|
22
|
+
s.add_dependency 'rubocop-rails', '~> 2.32'
|
23
|
+
s.add_dependency 'rubocop-rspec', '~> 3.6'
|
24
|
+
s.add_dependency 'super_diff', '~> 0.9'
|
25
|
+
end
|
@@ -0,0 +1,73 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'fileutils'
|
4
|
+
require 'tmpdir'
|
5
|
+
require 'tempfile'
|
6
|
+
|
7
|
+
module EacRubyGemSupport
|
8
|
+
module Rspec
|
9
|
+
module Helpers
|
10
|
+
module Filesystem
|
11
|
+
def purge_temp_files
|
12
|
+
::FileUtils.rm_rf(temp_set.pop) while temp_set.any?
|
13
|
+
end
|
14
|
+
|
15
|
+
# @return [Pathname]
|
16
|
+
def temp_copy(source_path)
|
17
|
+
source_path = to_pathname(source_path)
|
18
|
+
if source_path.file?
|
19
|
+
temp_file_copy(source_path)
|
20
|
+
elsif source_path.directory?
|
21
|
+
temp_dir_copy(source_path)
|
22
|
+
else
|
23
|
+
raise "Source path \"#{source_path}\" is not a file or directory"
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
# @return [Pathname]
|
28
|
+
def temp_dir(*mktmpdir_args)
|
29
|
+
add_to_temp_set(::Dir.mktmpdir(*mktmpdir_args))
|
30
|
+
end
|
31
|
+
|
32
|
+
# @return [Pathname]
|
33
|
+
def temp_dir_copy(source_path)
|
34
|
+
r = temp_dir
|
35
|
+
::FileUtils.cp_r("#{source_path}/.", r.to_path)
|
36
|
+
r
|
37
|
+
end
|
38
|
+
|
39
|
+
# @return [Pathname]
|
40
|
+
def temp_file(*tempfile_args)
|
41
|
+
file = ::Tempfile.new(*tempfile_args)
|
42
|
+
path = file.path
|
43
|
+
file.close
|
44
|
+
add_to_temp_set(path)
|
45
|
+
end
|
46
|
+
|
47
|
+
# @return [Pathname]
|
48
|
+
def temp_file_copy(source_path)
|
49
|
+
r = temp_file
|
50
|
+
::FileUtils.cp(to_pathname(source_path).to_path, r.to_path)
|
51
|
+
r
|
52
|
+
end
|
53
|
+
|
54
|
+
# @return [Pathname]
|
55
|
+
def to_pathname(path)
|
56
|
+
path.is_a?(::Pathname) ? path : ::Pathname.new(path.to_s)
|
57
|
+
end
|
58
|
+
|
59
|
+
private
|
60
|
+
|
61
|
+
def add_to_temp_set(path)
|
62
|
+
r = to_pathname(path)
|
63
|
+
temp_set << r
|
64
|
+
r
|
65
|
+
end
|
66
|
+
|
67
|
+
def temp_set
|
68
|
+
@temp_set ||= []
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'fileutils'
|
4
|
+
require 'tmpdir'
|
5
|
+
require 'tempfile'
|
6
|
+
|
7
|
+
module EacRubyGemSupport
|
8
|
+
module Rspec
|
9
|
+
module Helpers
|
10
|
+
module Utils
|
11
|
+
# @return [StandardError, nil] If block raises an error, return this error. If not, return
|
12
|
+
# +nil+.
|
13
|
+
def capture_error
|
14
|
+
yield
|
15
|
+
nil
|
16
|
+
rescue ::StandardError => e
|
17
|
+
e
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
require 'eac_ruby_gem_support/rspec/helpers/filesystem'
|
5
|
+
require 'eac_ruby_gem_support/rspec/helpers/utils'
|
6
|
+
require 'eac_ruby_gem_support/rspec/specs/rubocop'
|
7
|
+
require 'tmpdir'
|
8
|
+
|
9
|
+
module EacRubyGemSupport
|
10
|
+
module Rspec
|
11
|
+
module Setup
|
12
|
+
extend ::ActiveSupport::Concern
|
13
|
+
include ::EacRubyGemSupport::Rspec::Specs::Rubocop
|
14
|
+
|
15
|
+
SETUPS = %w[load_path example_persistence filesystem_helper shared_examples].freeze
|
16
|
+
|
17
|
+
def self.extended(setup_obj)
|
18
|
+
SETUPS.each { |s| setup_obj.send("setup_#{s}") }
|
19
|
+
end
|
20
|
+
|
21
|
+
def setup_filesystem_helper
|
22
|
+
rspec_config.include ::EacRubyGemSupport::Rspec::Helpers::Filesystem
|
23
|
+
rspec_config.include ::EacRubyGemSupport::Rspec::Helpers::Utils
|
24
|
+
rspec_config.after(:each) { purge_temp_files }
|
25
|
+
end
|
26
|
+
|
27
|
+
def setup_load_path
|
28
|
+
$LOAD_PATH.push app_root_path.join('lib').to_path
|
29
|
+
end
|
30
|
+
|
31
|
+
def setup_example_persistence
|
32
|
+
rspec_config.example_status_persistence_file_path = example_persistence_path.to_path
|
33
|
+
end
|
34
|
+
|
35
|
+
def setup_shared_examples
|
36
|
+
require 'eac_ruby_gem_support/rspec/shared_examples/spec_paths'
|
37
|
+
require 'eac_ruby_gem_support/rspec/shared_examples/source_target_fixtures'
|
38
|
+
end
|
39
|
+
|
40
|
+
# @return [Pathname]
|
41
|
+
def example_persistence_path
|
42
|
+
root_tmp.join('example_status_persistence')
|
43
|
+
end
|
44
|
+
|
45
|
+
# The root directory for temporary files.
|
46
|
+
# @return [Pathname]
|
47
|
+
def root_tmp
|
48
|
+
r = ::Pathname.new(::Dir.tmpdir)
|
49
|
+
.join("#{app_root_path.expand_path.to_path.variableize}_specs_tmp")
|
50
|
+
r.mkpath unless r.exist?
|
51
|
+
r
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,76 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_gem_support/rspec/shared_examples/spec_paths'
|
4
|
+
require 'eac_ruby_gem_support/rspec/source_target_fixtures_controller'
|
5
|
+
require 'eac_ruby_gem_support/source_target_fixtures'
|
6
|
+
require 'yaml'
|
7
|
+
|
8
|
+
RSpec.shared_examples 'source_target_fixtures' do |spec_file| # rubocop:disable Metrics/BlockLength
|
9
|
+
include_examples 'spec_paths', spec_file
|
10
|
+
fixtures_controller = EacRubyGemSupport::Rspec::SourceTargetFixturesController
|
11
|
+
.new(spec_paths_controller)
|
12
|
+
|
13
|
+
let(:fixtures_controller) { fixtures_controller }
|
14
|
+
let(:spec_file) { spec_file }
|
15
|
+
|
16
|
+
it 'fixtures directory should exist' do
|
17
|
+
expect(File.directory?(fixtures_controller.fixtures_dir)).to be true
|
18
|
+
end
|
19
|
+
|
20
|
+
context 'with fixtures directory' do
|
21
|
+
it 'has at least one file' do
|
22
|
+
expect(source_target_fixtures.source_target_files.count).to be > 0 # rubocop:disable Style/NumericPredicate
|
23
|
+
end
|
24
|
+
|
25
|
+
fixtures_controller.source_target_fixtures.source_target_files.each do |st|
|
26
|
+
context "when source file is \"#{File.basename(st.source)}\"" do
|
27
|
+
if fixtures_controller.write_target_fixtures?
|
28
|
+
it 'writes target data' do
|
29
|
+
sd = sort_results(source_data(st.source))
|
30
|
+
basename = EacRubyGemSupport::SourceTargetFixtures.source_target_basename(st.source)
|
31
|
+
target_file = File.expand_path("../#{basename}.target#{target_file_extname}", st.source)
|
32
|
+
File.write(target_file, target_content(sd))
|
33
|
+
end
|
34
|
+
else
|
35
|
+
it 'parses data' do
|
36
|
+
assert_source_target_complete(st)
|
37
|
+
sd = source_data(st.source)
|
38
|
+
td = target_data(st.target)
|
39
|
+
expect(sort_results(sd)).to eq(sort_results(td))
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
delegate :source_target_fixtures, to: :fixtures_controller
|
47
|
+
|
48
|
+
def assert_source_target_complete(source_target)
|
49
|
+
expect(source_target.source).to(be_truthy, "Source not found (Target: #{source_target.target})")
|
50
|
+
expect(source_target.target).to(be_truthy, "Target not found (Source: #{source_target.source})")
|
51
|
+
end
|
52
|
+
|
53
|
+
def source_data(source_file)
|
54
|
+
instance = described_class.new(source_file)
|
55
|
+
return instance.data if instance.respond_to?(:data)
|
56
|
+
|
57
|
+
raise "#{instance} has no \"data\" method. You need to implement \"#{instance}.data\" or " \
|
58
|
+
"\"#{self}.source_data(source_file)\""
|
59
|
+
end
|
60
|
+
|
61
|
+
def sort_results(results)
|
62
|
+
results
|
63
|
+
end
|
64
|
+
|
65
|
+
def target_data(target_file)
|
66
|
+
YAML.load_file(target_file)
|
67
|
+
end
|
68
|
+
|
69
|
+
def target_content(data)
|
70
|
+
data.to_yaml
|
71
|
+
end
|
72
|
+
|
73
|
+
def target_file_extname
|
74
|
+
'.yaml'
|
75
|
+
end
|
76
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_gem_support/rspec/spec_paths_controller'
|
4
|
+
require 'eac_ruby_utils/core_ext'
|
5
|
+
|
6
|
+
RSpec.shared_context 'spec_paths' do |the_spec_file|
|
7
|
+
cattr_accessor :spec_paths_controller
|
8
|
+
self.spec_paths_controller = EacRubyGemSupport::Rspec::SpecPathsController.new(self,
|
9
|
+
the_spec_file)
|
10
|
+
|
11
|
+
%i[fixtures_directory spec_directory spec_file].each do |m|
|
12
|
+
let(m) { self.class.spec_paths_controller.send(m) }
|
13
|
+
end
|
14
|
+
end
|
data/sub/eac_ruby_gem_support/lib/eac_ruby_gem_support/rspec/source_target_fixtures_controller.rb
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_gem_support/source_target_fixtures'
|
4
|
+
require 'eac_ruby_utils/core_ext'
|
5
|
+
|
6
|
+
module EacRubyGemSupport
|
7
|
+
module Rspec
|
8
|
+
class SourceTargetFixturesController
|
9
|
+
enable_simple_cache
|
10
|
+
common_constructor :spec_paths_controller
|
11
|
+
delegate :example, to: :spec_paths_controller
|
12
|
+
|
13
|
+
def fixtures_dir
|
14
|
+
if example.respond_to?(:fixtures_dir)
|
15
|
+
example.fixtures_dir
|
16
|
+
else
|
17
|
+
spec_paths_controller.fixtures_directory
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def write_target_fixtures?
|
22
|
+
ENV['WRITE_TARGET_FIXTURES'].to_bool
|
23
|
+
end
|
24
|
+
|
25
|
+
private
|
26
|
+
|
27
|
+
def source_target_fixtures_uncached
|
28
|
+
::EacRubyGemSupport::SourceTargetFixtures.new(fixtures_dir)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
|
5
|
+
module EacRubyGemSupport
|
6
|
+
module Rspec
|
7
|
+
class SpecPathsController
|
8
|
+
# @!attribute [r] spec_file
|
9
|
+
# @return [Pathname]
|
10
|
+
|
11
|
+
# @!method initialize(example, spec_file)
|
12
|
+
# @param example [RSpec::Core::ExampleGroup]
|
13
|
+
# @param spec_file [Pathname]
|
14
|
+
common_constructor :example, :spec_file do
|
15
|
+
self.spec_file = spec_file.to_pathname
|
16
|
+
end
|
17
|
+
|
18
|
+
# @return [Pathname]
|
19
|
+
def fixtures_directory
|
20
|
+
spec_directory.join(spec_file.basename('.*')).basename_sub { |b| "#{b}_files" }
|
21
|
+
end
|
22
|
+
|
23
|
+
# @return [Pathname]
|
24
|
+
def spec_directory
|
25
|
+
spec_file.parent
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'rspec'
|
4
|
+
require 'rubocop'
|
5
|
+
|
6
|
+
module EacRubyGemSupport
|
7
|
+
module Rspec
|
8
|
+
module Specs
|
9
|
+
module Rubocop
|
10
|
+
def describe_rubocop # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
|
11
|
+
this = self
|
12
|
+
::RSpec.describe ::RuboCop do
|
13
|
+
before do
|
14
|
+
::RuboCop::ConfigLoader.ignore_parent_exclusion = true
|
15
|
+
end
|
16
|
+
|
17
|
+
let(:root_path) { this.app_root_path }
|
18
|
+
let(:config_store) do
|
19
|
+
r = ::RuboCop::ConfigStore.new
|
20
|
+
r.for(root_path)
|
21
|
+
r
|
22
|
+
end
|
23
|
+
let(:runner) { ::RuboCop::Runner.new({}, config_store) }
|
24
|
+
|
25
|
+
it 'rubocop return ok' do
|
26
|
+
expect(::Dir.chdir(root_path) { runner.run([]) }).to eq(true)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
data/sub/eac_ruby_gem_support/lib/eac_ruby_gem_support/source_target_fixtures/source_target_file.rb
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
|
5
|
+
module EacRubyGemSupport
|
6
|
+
class SourceTargetFixtures
|
7
|
+
class SourceTargetFile
|
8
|
+
common_constructor :owner, :basename
|
9
|
+
|
10
|
+
def source
|
11
|
+
owner.source_file(basename)
|
12
|
+
end
|
13
|
+
|
14
|
+
def target
|
15
|
+
owner.target_file(basename)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,74 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
|
5
|
+
module EacRubyGemSupport
|
6
|
+
# Lists pairs of source/target files in a directory.
|
7
|
+
class SourceTargetFixtures
|
8
|
+
class << self
|
9
|
+
def source_target_basename(file)
|
10
|
+
m = /^(.+)\.(?:source|target)(?:\..+)?$/.match(File.basename(file))
|
11
|
+
m ? m[1] : nil
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
# @!attribute [r] fixtures_directory
|
16
|
+
# @return [String]
|
17
|
+
|
18
|
+
# @!method initialize(fixtures_directory)
|
19
|
+
# @param fixtures_directory [Pathname]
|
20
|
+
common_constructor :fixtures_directory
|
21
|
+
|
22
|
+
def source_target_files
|
23
|
+
sources_targets_basenames.map do |basename|
|
24
|
+
::EacRubyGemSupport::SourceTargetFixtures::SourceTargetFile.new(self, basename)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def source_files
|
29
|
+
r = []
|
30
|
+
source_target_files.each do |st|
|
31
|
+
r << st.source if st.source
|
32
|
+
end
|
33
|
+
r
|
34
|
+
end
|
35
|
+
|
36
|
+
def target_files
|
37
|
+
r = []
|
38
|
+
source_target_files.each do |st|
|
39
|
+
r << st.target if st.target
|
40
|
+
end
|
41
|
+
r
|
42
|
+
end
|
43
|
+
|
44
|
+
def target_file(basename)
|
45
|
+
fixture_file(basename, 'target')
|
46
|
+
end
|
47
|
+
|
48
|
+
def source_file(basename)
|
49
|
+
fixture_file(basename, 'source')
|
50
|
+
end
|
51
|
+
|
52
|
+
private
|
53
|
+
|
54
|
+
def fixture_file(basename, suffix)
|
55
|
+
prefix = "#{basename}.#{suffix}"
|
56
|
+
Dir.foreach(fixtures_directory) do |item|
|
57
|
+
next if %w[. ..].include?(item)
|
58
|
+
return File.expand_path(item, fixtures_directory) if item.starts_with?(prefix)
|
59
|
+
end
|
60
|
+
nil
|
61
|
+
end
|
62
|
+
|
63
|
+
def sources_targets_basenames
|
64
|
+
basenames = Set.new
|
65
|
+
Dir.foreach(fixtures_directory) do |item|
|
66
|
+
next if %w[. ..].include?(item)
|
67
|
+
|
68
|
+
b = self.class.source_target_basename(item)
|
69
|
+
basenames << b if b.present?
|
70
|
+
end
|
71
|
+
basenames
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
RSpec.describe EacRubyGemSupport::Rspec::Helpers::Filesystem do
|
4
|
+
describe '#temp_file' do
|
5
|
+
let(:a_temp_file) { temp_file }
|
6
|
+
|
7
|
+
it { expect(temp_file).to be_file }
|
8
|
+
end
|
9
|
+
|
10
|
+
describe '#temp_dir' do
|
11
|
+
let(:a_temp_dir) { temp_dir }
|
12
|
+
|
13
|
+
it { expect(temp_dir).to be_directory }
|
14
|
+
end
|
15
|
+
|
16
|
+
describe '#temp_copy' do
|
17
|
+
let(:source_file) { Pathname.new(__FILE__) }
|
18
|
+
let(:source_dir) { source_file.parent }
|
19
|
+
let(:file_copy) { temp_copy(source_file) }
|
20
|
+
let(:dir_copy) { temp_copy(source_dir) }
|
21
|
+
|
22
|
+
it { expect(file_copy).to be_file }
|
23
|
+
it { expect(file_copy.read).to eq(source_file.read) }
|
24
|
+
it { expect(file_copy).not_to eq(source_file) }
|
25
|
+
|
26
|
+
it { expect(dir_copy).to be_directory }
|
27
|
+
it { expect(dir_copy.join(source_file.basename).read).to eq(source_file.read) }
|
28
|
+
it { expect(dir_copy).not_to eq(source_dir) }
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'yaml'
|
4
|
+
|
5
|
+
RSpec.describe "RSpec.shared_examples('source_target_fixtures')" do # rubocop:disable RSpec/DescribeClass
|
6
|
+
include_examples 'source_target_fixtures', __FILE__
|
7
|
+
|
8
|
+
def source_data(file)
|
9
|
+
YAML.load_file(file)
|
10
|
+
end
|
11
|
+
end
|
data/sub/eac_ruby_gem_support/spec/lib/eac_ruby_gem_support/rspec/shared_examples/spec_paths_spec.rb
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
|
5
|
+
RSpec.describe "RSpec.shared_examples('spec_paths')" do # rubocop:disable RSpec/DescribeClass
|
6
|
+
include_context 'spec_paths', __FILE__
|
7
|
+
|
8
|
+
it do
|
9
|
+
expect(spec_file).to eq(__FILE__.to_pathname)
|
10
|
+
end
|
11
|
+
|
12
|
+
it do
|
13
|
+
expect(spec_directory).to eq(__FILE__.to_pathname.dirname)
|
14
|
+
end
|
15
|
+
|
16
|
+
it do
|
17
|
+
expect(fixtures_directory).to eq(__FILE__.to_pathname.dirname.join('spec_paths_spec_files'))
|
18
|
+
end
|
19
|
+
end
|