├── .gitattributes ├── .github └── workflows │ ├── lint.yml │ └── unit_tests.yml ├── .gitignore ├── .remove_sorbet_standard.yml ├── .rubocop_more.yml ├── .ruby-version ├── .simplecov ├── .standard.yml ├── .standard_no_sorbet.yml ├── .standard_sorbet.yml ├── .yardopts ├── Appraisals ├── CHANGELOG.md ├── CONTRIBUTING.md ├── Gemfile ├── Gemfile.lock ├── LICENSE ├── README.md ├── Rakefile ├── app ├── assets │ ├── config │ │ └── super_manifest.js │ ├── javascripts │ │ └── super │ │ │ ├── .keep │ │ │ └── application.js │ └── stylesheets │ │ └── super │ │ ├── .keep │ │ └── application.css ├── controllers │ ├── .keep │ └── super │ │ ├── application_controller.rb │ │ ├── foundation_controller.rb │ │ ├── sitewide_controller.rb │ │ ├── substructure_controller.rb │ │ └── view_controller.rb ├── helpers │ └── .keep └── views │ ├── .keep │ ├── layouts │ └── super │ │ └── application.html.erb │ └── super │ ├── application │ ├── _batch_button.html.erb │ ├── _batch_checkbox.csv.erb │ ├── _batch_checkbox.html.erb │ ├── _batch_form.html.erb │ ├── _collection_header.html.erb │ ├── _csv_button.html.erb │ ├── _display_actions.html.erb │ ├── _display_index.html.erb │ ├── _display_rich_text.html.erb │ ├── _display_show.html.erb │ ├── _filter.html.erb │ ├── _flash.html.erb │ ├── _form.html.erb │ ├── _form_field.html.erb │ ├── _form_field__destroy.html.erb │ ├── _form_fieldset.html.erb │ ├── _form_has_many.html.erb │ ├── _form_has_one.html.erb │ ├── _layout.html.erb │ ├── _link.html.erb │ ├── _member_header.html.erb │ ├── _pagination.html.erb │ ├── _panel.html.erb │ ├── _query.html.erb │ ├── _site_footer.html.erb │ ├── _site_header.html.erb │ ├── _sort.html.erb │ ├── _sort_expression.html.erb │ ├── _view_chain.html.erb │ ├── edit.html.erb │ ├── index.csv.erb │ ├── index.html.erb │ ├── new.html.erb │ ├── nothing.html.erb │ └── show.html.erb │ └── feather │ ├── README.md │ └── _x.html ├── bin ├── appraisal ├── bundle ├── foreach ├── multitask ├── prepare_release ├── rails ├── rake ├── release ├── remove_sorbet ├── rubocop ├── spoom ├── srb ├── srb-rbi ├── standardrb ├── tapioca ├── thoroughly_test.rb ├── yard ├── yardoc ├── yarn └── yri ├── config └── locales │ └── en.yml ├── dummy_path.rb ├── frontend └── super-frontend │ ├── dist │ ├── .keep │ ├── application.css │ ├── application.js │ └── package.json │ └── source │ ├── .babelrc.json │ ├── .gitignore │ ├── .node-version │ ├── package.json │ ├── postcss.config.js │ ├── rollup.config.js │ ├── rollup.duplicate.js │ ├── src │ ├── icons │ │ └── feather │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ └── chevron-down.svg │ ├── javascripts │ │ ├── application.js │ │ ├── apply_template_controller.js │ │ ├── batch_controller.js │ │ ├── clean_filter_param_controller.js │ │ ├── clean_filter_params_controller.js │ │ ├── delete_controller.js │ │ ├── flatpickr_controller.js │ │ ├── tab_container_controller.js │ │ ├── tab_controller.js │ │ └── toggle_pending_destruction_controller.js │ └── stylesheets │ │ ├── application.css │ │ ├── super_base.css │ │ └── super_components.css │ ├── tailwind.config.js │ └── yarn.lock ├── gemfiles ├── rails50_sprockets3.gemfile ├── rails50_sprockets3.gemfile.lock ├── rails50_sprockets3_ruby23.gemfile ├── rails50_sprockets3_ruby23.gemfile.lock ├── rails51_sprockets3.gemfile ├── rails51_sprockets3.gemfile.lock ├── rails52_sprockets4.gemfile ├── rails52_sprockets4.gemfile.lock ├── rails60_sprockets4.gemfile ├── rails60_sprockets4.gemfile.lock ├── rails61_sprockets4.gemfile ├── rails61_sprockets4.gemfile.lock ├── rails70_sprockets4.gemfile └── rails70_sprockets4.gemfile.lock ├── lib ├── generators │ └── super │ │ ├── action_text │ │ ├── USAGE │ │ ├── action_text_generator.rb │ │ └── templates │ │ │ ├── pack_super_action_text.css │ │ │ └── pack_super_action_text.js │ │ ├── install │ │ ├── USAGE │ │ ├── install_generator.rb │ │ └── templates │ │ │ ├── base_controller.rb.tt │ │ │ └── initializer.rb.tt │ │ ├── resource │ │ ├── USAGE │ │ ├── resource_generator.rb │ │ └── templates │ │ │ └── resources_controller.rb.tt │ │ └── webpacker │ │ ├── USAGE │ │ ├── templates │ │ └── pack_super_application.js.tt │ │ └── webpacker_generator.rb ├── super.rb ├── super │ ├── action_inquirer.rb │ ├── assets.rb │ ├── badge.rb │ ├── cheat.rb │ ├── client_error.rb │ ├── compatibility.rb │ ├── configuration.rb │ ├── display.rb │ ├── display │ │ ├── guesser.rb │ │ └── schema_types.rb │ ├── error.rb │ ├── filter.rb │ ├── filter │ │ ├── form_object.rb │ │ ├── guesser.rb │ │ ├── operator.rb │ │ └── schema_types.rb │ ├── form.rb │ ├── form │ │ ├── field_transcript.rb │ │ ├── guesser.rb │ │ ├── inline_errors.rb │ │ ├── schema_types.rb │ │ └── strong_params.rb │ ├── form_builder.rb │ ├── form_builder │ │ ├── action_text_methods.rb │ │ ├── base_methods.rb │ │ ├── flatpickr_methods.rb │ │ └── option_methods.rb │ ├── form_builder_helper.rb │ ├── layout.rb │ ├── link.rb │ ├── link_builder.rb │ ├── navigation.rb │ ├── packaged_asset.rb │ ├── pagination.rb │ ├── panel.rb │ ├── partial.rb │ ├── partial │ │ └── resolving.rb │ ├── plugin.rb │ ├── query.rb │ ├── query │ │ └── form_object_interface.rb │ ├── railtie.rb │ ├── render_helper.rb │ ├── reorderable_hash.rb │ ├── reset.rb │ ├── schema.rb │ ├── schema │ │ ├── common.rb │ │ └── guesser.rb │ ├── sort.rb │ ├── useful │ │ ├── builder.rb │ │ ├── deprecations.rb │ │ ├── enum.rb │ │ └── i19.rb │ ├── version.rb │ ├── view_chain.rb │ └── view_helper.rb └── tasks │ └── super │ └── cheat.rake ├── multitask.yaml ├── sorbet ├── config ├── rbi │ ├── annotations │ │ ├── actionmailer.rbi │ │ ├── actionpack.rbi │ │ ├── actionview.rbi │ │ ├── activemodel.rbi │ │ ├── activerecord.rbi │ │ ├── activesupport.rbi │ │ ├── globalid.rbi │ │ ├── railties.rbi │ │ └── rainbow.rbi │ ├── dsl │ │ ├── abstract_controller │ │ │ ├── caching.rbi │ │ │ ├── caching │ │ │ │ └── fragments.rbi │ │ │ ├── callbacks.rbi │ │ │ ├── helpers.rbi │ │ │ ├── rendering.rbi │ │ │ └── url_for.rbi │ │ ├── action_controller │ │ │ ├── caching.rbi │ │ │ ├── conditional_get.rbi │ │ │ ├── content_security_policy.rbi │ │ │ ├── data_streaming.rbi │ │ │ ├── etag_with_flash.rbi │ │ │ ├── etag_with_template_digest.rbi │ │ │ ├── flash.rbi │ │ │ ├── form_builder.rbi │ │ │ ├── helpers.rbi │ │ │ ├── params_wrapper.rbi │ │ │ ├── redirecting.rbi │ │ │ ├── renderers.rbi │ │ │ ├── renderers │ │ │ │ └── all.rbi │ │ │ ├── request_forgery_protection.rbi │ │ │ ├── rescue.rbi │ │ │ ├── test_case │ │ │ │ └── behavior.rbi │ │ │ └── url_for.rbi │ │ ├── action_dispatch │ │ │ ├── integration_test.rbi │ │ │ └── routing │ │ │ │ ├── route_set │ │ │ │ └── mounted_helpers.rbi │ │ │ │ └── url_for.rbi │ │ ├── action_mailer │ │ │ ├── delivery_methods.rbi │ │ │ ├── mail_delivery_job.rbi │ │ │ └── rescuable.rbi │ │ ├── action_view │ │ │ ├── helpers.rbi │ │ │ ├── helpers │ │ │ │ ├── form_helper.rbi │ │ │ │ ├── form_tag_helper.rbi │ │ │ │ └── text_helper.rbi │ │ │ ├── layouts.rbi │ │ │ └── rendering.rbi │ │ ├── active_job │ │ │ ├── callbacks.rbi │ │ │ ├── exceptions.rbi │ │ │ ├── execution.rbi │ │ │ ├── logging.rbi │ │ │ ├── queue_adapter.rbi │ │ │ ├── queue_name.rbi │ │ │ ├── queue_priority.rbi │ │ │ └── test_helper │ │ │ │ └── test_queue_adapter.rbi │ │ ├── active_model │ │ │ ├── attribute_methods.rbi │ │ │ ├── attributes.rbi │ │ │ ├── dirty.rbi │ │ │ ├── serializers │ │ │ │ └── json.rbi │ │ │ ├── validations.rbi │ │ │ └── validations │ │ │ │ └── callbacks.rbi │ │ ├── active_record │ │ │ ├── attribute_methods.rbi │ │ │ ├── attribute_methods │ │ │ │ ├── dirty.rbi │ │ │ │ └── time_zone_conversion.rbi │ │ │ ├── attributes.rbi │ │ │ ├── callbacks.rbi │ │ │ ├── core.rbi │ │ │ ├── destroy_association_async_job.rbi │ │ │ ├── encryption │ │ │ │ └── encryptable_record.rbi │ │ │ ├── inheritance.rbi │ │ │ ├── integration.rbi │ │ │ ├── locking │ │ │ │ └── optimistic.rbi │ │ │ ├── model_schema.rbi │ │ │ ├── nested_attributes.rbi │ │ │ ├── readonly_attributes.rbi │ │ │ ├── reflection.rbi │ │ │ ├── scoping.rbi │ │ │ ├── scoping │ │ │ │ └── default.rbi │ │ │ ├── serialization.rbi │ │ │ ├── signed_id.rbi │ │ │ ├── test_fixtures.rbi │ │ │ ├── timestamp.rbi │ │ │ └── validations.rbi │ │ ├── active_storage │ │ │ └── reflection │ │ │ │ └── active_record_extensions.rbi │ │ ├── active_support │ │ │ ├── actionable_error.rbi │ │ │ ├── callbacks.rbi │ │ │ ├── rescuable.rbi │ │ │ └── testing │ │ │ │ └── file_fixtures.rbi │ │ ├── admin │ │ │ ├── favorite_things_controller.rbi │ │ │ ├── members_controller.rbi │ │ │ ├── ships_controller.rbi │ │ │ └── sinks_controller.rbi │ │ ├── admin_controller.rbi │ │ ├── application_controller.rbi │ │ ├── favorite_thing.rbi │ │ ├── generated_path_helpers_module.rbi │ │ ├── generated_url_helpers_module.rbi │ │ ├── member.rbi │ │ ├── ship.rbi │ │ ├── sink.rbi │ │ ├── sprockets │ │ │ └── rails │ │ │ │ ├── context.rbi │ │ │ │ └── helper.rbi │ │ └── super │ │ │ ├── application_controller.rbi │ │ │ ├── foundation_controller.rbi │ │ │ ├── sitewide_controller.rbi │ │ │ ├── substructure_controller.rbi │ │ │ └── view_controller.rbi │ └── gems │ │ ├── actioncable@7.0.7.2.rbi │ │ ├── actionmailbox@7.0.7.2.rbi │ │ ├── actionmailer@7.0.7.2.rbi │ │ ├── actionpack@7.0.7.2.rbi │ │ ├── actiontext@7.0.7.2.rbi │ │ ├── actionview@7.0.7.2.rbi │ │ ├── activejob@7.0.7.2.rbi │ │ ├── activemodel@7.0.7.2.rbi │ │ ├── activerecord@7.0.7.2.rbi │ │ ├── activestorage@7.0.7.2.rbi │ │ ├── activesupport@7.0.7.2.rbi │ │ ├── addressable@2.8.5.rbi │ │ ├── appraisal@2.5.0.rbi │ │ ├── ast@2.4.2.rbi │ │ ├── base64@0.1.1.rbi │ │ ├── builder@3.2.4.rbi │ │ ├── capybara@3.39.2.rbi │ │ ├── childprocess@3.0.0.rbi │ │ ├── coderay@1.1.3.rbi │ │ ├── concurrent-ruby@1.2.2.rbi │ │ ├── crass@1.0.6.rbi │ │ ├── date@3.3.3.rbi │ │ ├── diff-lcs@1.5.0.rbi │ │ ├── docile@1.4.0.rbi │ │ ├── erubi@1.12.0.rbi │ │ ├── erubis@2.7.0.rbi │ │ ├── globalid@1.2.1.rbi │ │ ├── i18n-debug@1.2.0.rbi │ │ ├── i18n@1.14.1.rbi │ │ ├── json@2.6.3.rbi │ │ ├── language_server-protocol@3.17.0.3.rbi │ │ ├── lint_roller@1.1.0.rbi │ │ ├── loofah@2.21.3.rbi │ │ ├── mail@2.8.1.rbi │ │ ├── marcel@1.0.2.rbi │ │ ├── matrix@0.4.2.rbi │ │ ├── method_source@1.0.0.rbi │ │ ├── mini_mime@1.1.5.rbi │ │ ├── mini_portile2@2.8.4.rbi │ │ ├── minitest-bisect@1.7.0.rbi │ │ ├── minitest-server@1.0.7.rbi │ │ ├── minitest@5.20.0.rbi │ │ ├── mocha@2.1.0.rbi │ │ ├── net-imap@0.3.7.rbi │ │ ├── net-pop@0.1.2.rbi │ │ ├── net-protocol@0.2.1.rbi │ │ ├── net-smtp@0.3.3.rbi │ │ ├── netrc@0.11.0.rbi │ │ ├── nio4r@2.5.9.rbi │ │ ├── nokogiri@1.15.4.rbi │ │ ├── parallel@1.23.0.rbi │ │ ├── parser@3.2.2.3.rbi │ │ ├── path_expander@1.1.1.rbi │ │ ├── pry-rails@0.3.9.rbi │ │ ├── pry@0.14.2.rbi │ │ ├── public_suffix@5.0.3.rbi │ │ ├── puma@4.3.12.rbi │ │ ├── racc@1.7.1.rbi │ │ ├── rack-test@2.1.0.rbi │ │ ├── rack@2.2.8.rbi │ │ ├── rails-dom-testing@2.2.0.rbi │ │ ├── rails-html-sanitizer@1.6.0.rbi │ │ ├── rails@7.0.7.2.rbi │ │ ├── rails_anonymous_controller_testing@0.0.5.rbi │ │ ├── railties@7.0.7.2.rbi │ │ ├── rainbow@3.1.1.rbi │ │ ├── rake@13.0.6.rbi │ │ ├── rbi@0.0.17.rbi │ │ ├── regexp_parser@2.8.1.rbi │ │ ├── rexml@3.2.6.rbi │ │ ├── rubocop-ast@1.29.0.rbi │ │ ├── rubocop-no_sorbet@0.0.0-6baabac52abb42fd85fcdf84cd702ae038a4d063.rbi │ │ ├── rubocop-performance@1.19.0.rbi │ │ ├── rubocop-sorbet@0.7.3.rbi │ │ ├── rubocop@1.56.2.rbi │ │ ├── ruby-progressbar@1.13.0.rbi │ │ ├── ruby2_keywords@0.0.5.rbi │ │ ├── rubyzip@2.3.2.rbi │ │ ├── selenium-webdriver@3.142.7.rbi │ │ ├── simplecov-html@0.12.3.rbi │ │ ├── simplecov@0.22.0.rbi │ │ ├── simplecov_json_formatter@0.1.4.rbi │ │ ├── spoom@1.2.1.rbi │ │ ├── spring@4.1.1.rbi │ │ ├── sprockets-rails@3.4.2.rbi │ │ ├── sprockets@4.2.1.rbi │ │ ├── sqlite3@1.4.4.rbi │ │ ├── standard-custom@1.0.2.rbi │ │ ├── standard-performance@1.2.0.rbi │ │ ├── standard@1.31.0.rbi │ │ ├── tapioca@0.11.8.rbi │ │ ├── thor@1.2.2.rbi │ │ ├── timeout@0.4.0.rbi │ │ ├── tzinfo@2.0.6.rbi │ │ ├── unicode-display_width@2.4.2.rbi │ │ ├── unparser@0.6.8.rbi │ │ ├── webdrivers@4.7.0.rbi │ │ ├── websocket-driver@0.7.6.rbi │ │ ├── websocket-extensions@0.1.5.rbi │ │ ├── xpath@3.2.0.rbi │ │ ├── yard-sorbet@0.8.1.rbi │ │ ├── yard@0.9.34.rbi │ │ └── zeitwerk@2.6.11.rbi └── tapioca │ ├── config.yml │ └── require.rb ├── super.gemspec ├── super_test_engine ├── .gitignore ├── .travis.yml ├── Gemfile ├── Gemfile.lock ├── README.md ├── Rakefile ├── bin │ ├── console │ └── setup ├── lib │ ├── super_test_engine.rb │ └── super_test_engine │ │ ├── copy_app_templates │ │ ├── controllers │ │ │ ├── admin │ │ │ │ ├── favorite_things_controller.rb │ │ │ │ ├── members_controller.rb │ │ │ │ ├── ships_controller.rb │ │ │ │ └── sinks_controller.rb │ │ │ └── admin_controller.rb │ │ ├── migrations │ │ │ ├── 20190216224956_create_members.rb │ │ │ ├── 20190803143320_create_ships.rb │ │ │ ├── 20190806014121_add_ship_to_members.rb │ │ │ ├── 20191126050453_create_favorite_things.rb │ │ │ └── 20210411180249_create_sinks.rb │ │ ├── models │ │ │ ├── favorite_thing.rb │ │ │ ├── member.rb │ │ │ ├── ship.rb │ │ │ └── sink.rb │ │ ├── routes.rb │ │ ├── seeds.rb │ │ └── views │ │ │ └── members │ │ │ └── _favorite_things.html.erb │ │ ├── fixtures │ │ ├── favorite_things.yml │ │ ├── members.yml │ │ └── ships.yml │ │ ├── generate_copy_app.rb │ │ ├── generate_dummy.rb │ │ └── starfleet_seeder.rb └── super_test_engine.gemspec └── test ├── dummy ├── rails50_sprockets3 │ ├── Rakefile │ ├── app │ │ ├── assets │ │ │ ├── config │ │ │ │ └── manifest.js │ │ │ ├── images │ │ │ │ └── .keep │ │ │ ├── javascripts │ │ │ │ ├── application.js │ │ │ │ └── channels │ │ │ │ │ └── .keep │ │ │ └── stylesheets │ │ │ │ └── application.css │ │ ├── controllers │ │ │ ├── admin │ │ │ │ ├── .keep │ │ │ │ ├── favorite_things_controller.rb │ │ │ │ ├── members_controller.rb │ │ │ │ ├── ships_controller.rb │ │ │ │ └── sinks_controller.rb │ │ │ ├── admin_controller.rb │ │ │ ├── application_controller.rb │ │ │ └── concerns │ │ │ │ └── .keep │ │ ├── helpers │ │ │ └── application_helper.rb │ │ ├── jobs │ │ │ └── application_job.rb │ │ ├── models │ │ │ ├── application_record.rb │ │ │ ├── concerns │ │ │ │ └── .keep │ │ │ ├── favorite_thing.rb │ │ │ ├── member.rb │ │ │ ├── ship.rb │ │ │ └── sink.rb │ │ └── views │ │ │ ├── admin │ │ │ └── members │ │ │ │ └── _favorite_things.html.erb │ │ │ └── layouts │ │ │ └── application.html.erb │ ├── bin │ │ ├── bundle │ │ ├── rails │ │ ├── rake │ │ ├── setup │ │ └── update │ ├── config.ru │ ├── config │ │ ├── application.rb │ │ ├── boot.rb │ │ ├── cable.yml │ │ ├── database.yml │ │ ├── environment.rb │ │ ├── environments │ │ │ ├── development.rb │ │ │ ├── production.rb │ │ │ └── test.rb │ │ ├── initializers │ │ │ ├── application_controller_renderer.rb │ │ │ ├── assets.rb │ │ │ ├── backtrace_silencers.rb │ │ │ ├── cookies_serializer.rb │ │ │ ├── filter_parameter_logging.rb │ │ │ ├── inflections.rb │ │ │ ├── mime_types.rb │ │ │ ├── new_framework_defaults.rb │ │ │ ├── session_store.rb │ │ │ ├── super.rb │ │ │ └── wrap_parameters.rb │ │ ├── locales │ │ │ └── en.yml │ │ ├── puma.rb │ │ ├── routes.rb │ │ ├── secrets.yml │ │ └── spring.rb │ ├── db │ │ ├── migrate │ │ │ ├── 20190216224956_create_members.rb │ │ │ ├── 20190803143320_create_ships.rb │ │ │ ├── 20190806014121_add_ship_to_members.rb │ │ │ ├── 20191126050453_create_favorite_things.rb │ │ │ └── 20210411180249_create_sinks.rb │ │ ├── schema.rb │ │ └── seeds.rb │ ├── lib │ │ └── assets │ │ │ └── .keep │ ├── log │ │ └── .keep │ └── public │ │ ├── 404.html │ │ ├── 422.html │ │ ├── 500.html │ │ └── favicon.ico ├── rails51_sprockets3 │ ├── Rakefile │ ├── app │ │ ├── assets │ │ │ ├── config │ │ │ │ └── manifest.js │ │ │ ├── images │ │ │ │ └── .keep │ │ │ ├── javascripts │ │ │ │ ├── application.js │ │ │ │ └── channels │ │ │ │ │ └── .keep │ │ │ └── stylesheets │ │ │ │ └── application.css │ │ ├── controllers │ │ │ ├── admin │ │ │ │ ├── .keep │ │ │ │ ├── favorite_things_controller.rb │ │ │ │ ├── members_controller.rb │ │ │ │ ├── ships_controller.rb │ │ │ │ └── sinks_controller.rb │ │ │ ├── admin_controller.rb │ │ │ ├── application_controller.rb │ │ │ └── concerns │ │ │ │ └── .keep │ │ ├── helpers │ │ │ └── application_helper.rb │ │ ├── jobs │ │ │ └── application_job.rb │ │ ├── models │ │ │ ├── application_record.rb │ │ │ ├── concerns │ │ │ │ └── .keep │ │ │ ├── favorite_thing.rb │ │ │ ├── member.rb │ │ │ ├── ship.rb │ │ │ └── sink.rb │ │ └── views │ │ │ ├── admin │ │ │ └── members │ │ │ │ └── _favorite_things.html.erb │ │ │ └── layouts │ │ │ └── application.html.erb │ ├── bin │ │ ├── bundle │ │ ├── rails │ │ ├── rake │ │ ├── setup │ │ ├── update │ │ └── yarn │ ├── config.ru │ ├── config │ │ ├── application.rb │ │ ├── boot.rb │ │ ├── cable.yml │ │ ├── database.yml │ │ ├── environment.rb │ │ ├── environments │ │ │ ├── development.rb │ │ │ ├── production.rb │ │ │ └── test.rb │ │ ├── initializers │ │ │ ├── application_controller_renderer.rb │ │ │ ├── assets.rb │ │ │ ├── backtrace_silencers.rb │ │ │ ├── cookies_serializer.rb │ │ │ ├── filter_parameter_logging.rb │ │ │ ├── inflections.rb │ │ │ ├── mime_types.rb │ │ │ ├── super.rb │ │ │ └── wrap_parameters.rb │ │ ├── locales │ │ │ └── en.yml │ │ ├── puma.rb │ │ ├── routes.rb │ │ ├── secrets.yml │ │ └── spring.rb │ ├── db │ │ ├── migrate │ │ │ ├── 20190216224956_create_members.rb │ │ │ ├── 20190803143320_create_ships.rb │ │ │ ├── 20190806014121_add_ship_to_members.rb │ │ │ ├── 20191126050453_create_favorite_things.rb │ │ │ └── 20210411180249_create_sinks.rb │ │ ├── schema.rb │ │ └── seeds.rb │ ├── lib │ │ └── assets │ │ │ └── .keep │ ├── log │ │ └── .keep │ ├── package.json │ └── public │ │ ├── 404.html │ │ ├── 422.html │ │ ├── 500.html │ │ └── favicon.ico ├── rails52_sprockets4 │ ├── Rakefile │ ├── app │ │ ├── assets │ │ │ ├── config │ │ │ │ └── manifest.js │ │ │ ├── images │ │ │ │ └── .keep │ │ │ ├── javascripts │ │ │ │ └── application.js │ │ │ └── stylesheets │ │ │ │ └── application.css │ │ ├── controllers │ │ │ ├── admin │ │ │ │ ├── .keep │ │ │ │ ├── favorite_things_controller.rb │ │ │ │ ├── members_controller.rb │ │ │ │ ├── ships_controller.rb │ │ │ │ └── sinks_controller.rb │ │ │ ├── admin_controller.rb │ │ │ ├── application_controller.rb │ │ │ └── concerns │ │ │ │ └── .keep │ │ ├── helpers │ │ │ └── application_helper.rb │ │ ├── jobs │ │ │ └── application_job.rb │ │ ├── models │ │ │ ├── application_record.rb │ │ │ ├── concerns │ │ │ │ └── .keep │ │ │ ├── favorite_thing.rb │ │ │ ├── member.rb │ │ │ ├── ship.rb │ │ │ └── sink.rb │ │ └── views │ │ │ ├── admin │ │ │ └── members │ │ │ │ └── _favorite_things.html.erb │ │ │ └── layouts │ │ │ └── application.html.erb │ ├── bin │ │ ├── bundle │ │ ├── rails │ │ ├── rake │ │ ├── setup │ │ ├── update │ │ └── yarn │ ├── config.ru │ ├── config │ │ ├── application.rb │ │ ├── boot.rb │ │ ├── database.yml │ │ ├── environment.rb │ │ ├── environments │ │ │ ├── development.rb │ │ │ ├── production.rb │ │ │ └── test.rb │ │ ├── initializers │ │ │ ├── application_controller_renderer.rb │ │ │ ├── assets.rb │ │ │ ├── backtrace_silencers.rb │ │ │ ├── content_security_policy.rb │ │ │ ├── cookies_serializer.rb │ │ │ ├── filter_parameter_logging.rb │ │ │ ├── inflections.rb │ │ │ ├── mime_types.rb │ │ │ ├── super.rb │ │ │ └── wrap_parameters.rb │ │ ├── locales │ │ │ └── en.yml │ │ ├── puma.rb │ │ ├── routes.rb │ │ └── spring.rb │ ├── db │ │ ├── migrate │ │ │ ├── 20190216224956_create_members.rb │ │ │ ├── 20190803143320_create_ships.rb │ │ │ ├── 20190806014121_add_ship_to_members.rb │ │ │ ├── 20191126050453_create_favorite_things.rb │ │ │ └── 20210411180249_create_sinks.rb │ │ ├── schema.rb │ │ └── seeds.rb │ ├── lib │ │ └── assets │ │ │ └── .keep │ ├── log │ │ └── .keep │ ├── package.json │ └── public │ │ ├── 404.html │ │ ├── 422.html │ │ ├── 500.html │ │ └── favicon.ico ├── rails60_sprockets4 │ ├── Rakefile │ ├── app │ │ ├── assets │ │ │ ├── config │ │ │ │ └── manifest.js │ │ │ ├── images │ │ │ │ └── .keep │ │ │ └── stylesheets │ │ │ │ └── application.css │ │ ├── controllers │ │ │ ├── admin │ │ │ │ ├── .keep │ │ │ │ ├── favorite_things_controller.rb │ │ │ │ ├── members_controller.rb │ │ │ │ ├── ships_controller.rb │ │ │ │ └── sinks_controller.rb │ │ │ ├── admin_controller.rb │ │ │ ├── application_controller.rb │ │ │ └── concerns │ │ │ │ └── .keep │ │ ├── helpers │ │ │ └── application_helper.rb │ │ ├── javascript │ │ │ └── packs │ │ │ │ └── application.js │ │ ├── jobs │ │ │ └── application_job.rb │ │ ├── models │ │ │ ├── application_record.rb │ │ │ ├── concerns │ │ │ │ └── .keep │ │ │ ├── favorite_thing.rb │ │ │ ├── member.rb │ │ │ ├── ship.rb │ │ │ └── sink.rb │ │ └── views │ │ │ ├── admin │ │ │ └── members │ │ │ │ └── _favorite_things.html.erb │ │ │ └── layouts │ │ │ └── application.html.erb │ ├── bin │ │ ├── rails │ │ ├── rake │ │ └── setup │ ├── config.ru │ ├── config │ │ ├── application.rb │ │ ├── boot.rb │ │ ├── database.yml │ │ ├── environment.rb │ │ ├── environments │ │ │ ├── development.rb │ │ │ ├── production.rb │ │ │ └── test.rb │ │ ├── initializers │ │ │ ├── application_controller_renderer.rb │ │ │ ├── assets.rb │ │ │ ├── backtrace_silencers.rb │ │ │ ├── content_security_policy.rb │ │ │ ├── cookies_serializer.rb │ │ │ ├── filter_parameter_logging.rb │ │ │ ├── inflections.rb │ │ │ ├── mime_types.rb │ │ │ ├── super.rb │ │ │ └── wrap_parameters.rb │ │ ├── locales │ │ │ └── en.yml │ │ ├── puma.rb │ │ ├── routes.rb │ │ └── spring.rb │ ├── db │ │ ├── migrate │ │ │ ├── 20190216224956_create_members.rb │ │ │ ├── 20190803143320_create_ships.rb │ │ │ ├── 20190806014121_add_ship_to_members.rb │ │ │ ├── 20191126050453_create_favorite_things.rb │ │ │ └── 20210411180249_create_sinks.rb │ │ ├── schema.rb │ │ └── seeds.rb │ ├── lib │ │ └── assets │ │ │ └── .keep │ ├── log │ │ └── .keep │ └── public │ │ ├── 404.html │ │ ├── 422.html │ │ ├── 500.html │ │ └── favicon.ico ├── rails61_sprockets4 │ ├── Rakefile │ ├── app │ │ ├── assets │ │ │ ├── config │ │ │ │ └── manifest.js │ │ │ ├── images │ │ │ │ └── .keep │ │ │ └── stylesheets │ │ │ │ └── application.css │ │ ├── controllers │ │ │ ├── admin │ │ │ │ ├── .keep │ │ │ │ ├── favorite_things_controller.rb │ │ │ │ ├── members_controller.rb │ │ │ │ ├── ships_controller.rb │ │ │ │ └── sinks_controller.rb │ │ │ ├── admin_controller.rb │ │ │ ├── application_controller.rb │ │ │ └── concerns │ │ │ │ └── .keep │ │ ├── helpers │ │ │ └── application_helper.rb │ │ ├── javascript │ │ │ └── packs │ │ │ │ └── application.js │ │ ├── jobs │ │ │ └── application_job.rb │ │ ├── models │ │ │ ├── application_record.rb │ │ │ ├── concerns │ │ │ │ └── .keep │ │ │ ├── favorite_thing.rb │ │ │ ├── member.rb │ │ │ ├── ship.rb │ │ │ └── sink.rb │ │ └── views │ │ │ ├── admin │ │ │ └── members │ │ │ │ └── _favorite_things.html.erb │ │ │ └── layouts │ │ │ └── application.html.erb │ ├── bin │ │ ├── rails │ │ ├── rake │ │ └── setup │ ├── config.ru │ ├── config │ │ ├── application.rb │ │ ├── boot.rb │ │ ├── database.yml │ │ ├── environment.rb │ │ ├── environments │ │ │ ├── development.rb │ │ │ ├── production.rb │ │ │ └── test.rb │ │ ├── initializers │ │ │ ├── application_controller_renderer.rb │ │ │ ├── assets.rb │ │ │ ├── backtrace_silencers.rb │ │ │ ├── content_security_policy.rb │ │ │ ├── cookies_serializer.rb │ │ │ ├── filter_parameter_logging.rb │ │ │ ├── inflections.rb │ │ │ ├── mime_types.rb │ │ │ ├── permissions_policy.rb │ │ │ ├── super.rb │ │ │ └── wrap_parameters.rb │ │ ├── locales │ │ │ └── en.yml │ │ ├── puma.rb │ │ └── routes.rb │ ├── db │ │ ├── migrate │ │ │ ├── 20190216224956_create_members.rb │ │ │ ├── 20190803143320_create_ships.rb │ │ │ ├── 20190806014121_add_ship_to_members.rb │ │ │ ├── 20191126050453_create_favorite_things.rb │ │ │ └── 20210411180249_create_sinks.rb │ │ ├── schema.rb │ │ └── seeds.rb │ ├── lib │ │ └── assets │ │ │ └── .keep │ ├── log │ │ └── .keep │ └── public │ │ ├── 404.html │ │ ├── 422.html │ │ ├── 500.html │ │ └── favicon.ico └── rails70_sprockets4 │ ├── Rakefile │ ├── app │ ├── assets │ │ ├── config │ │ │ └── manifest.js │ │ ├── images │ │ │ └── .keep │ │ └── stylesheets │ │ │ └── application.css │ ├── controllers │ │ ├── admin │ │ │ ├── .keep │ │ │ ├── favorite_things_controller.rb │ │ │ ├── members_controller.rb │ │ │ ├── ships_controller.rb │ │ │ └── sinks_controller.rb │ │ ├── admin_controller.rb │ │ ├── application_controller.rb │ │ └── concerns │ │ │ └── .keep │ ├── helpers │ │ └── application_helper.rb │ ├── jobs │ │ └── application_job.rb │ ├── models │ │ ├── application_record.rb │ │ ├── concerns │ │ │ └── .keep │ │ ├── favorite_thing.rb │ │ ├── member.rb │ │ ├── ship.rb │ │ └── sink.rb │ └── views │ │ ├── admin │ │ └── members │ │ │ └── _favorite_things.html.erb │ │ └── layouts │ │ └── application.html.erb │ ├── bin │ ├── rails │ ├── rake │ └── setup │ ├── config.ru │ ├── config │ ├── application.rb │ ├── boot.rb │ ├── database.yml │ ├── environment.rb │ ├── environments │ │ ├── development.rb │ │ ├── production.rb │ │ └── test.rb │ ├── initializers │ │ ├── assets.rb │ │ ├── content_security_policy.rb │ │ ├── filter_parameter_logging.rb │ │ ├── inflections.rb │ │ ├── permissions_policy.rb │ │ └── super.rb │ ├── locales │ │ └── en.yml │ ├── puma.rb │ └── routes.rb │ ├── db │ ├── migrate │ │ ├── 20190216224956_create_members.rb │ │ ├── 20190803143320_create_ships.rb │ │ ├── 20190806014121_add_ship_to_members.rb │ │ ├── 20191126050453_create_favorite_things.rb │ │ └── 20210411180249_create_sinks.rb │ ├── schema.rb │ └── seeds.rb │ ├── lib │ └── assets │ │ └── .keep │ ├── log │ └── .keep │ └── public │ ├── 404.html │ ├── 422.html │ ├── 500.html │ └── favicon.ico ├── features ├── batch_actions_test.rb ├── csv_test.rb └── member_and_collection_actions_test.rb ├── integration ├── accepts_nested_attributes_for_many_test.rb ├── error_flash_message_test.rb ├── filter_test.rb ├── flatpickr_test.rb ├── nested_resource_test.rb ├── pagination_test.rb ├── resource_with_explicit_controls_test.rb └── validations_test.rb ├── lib ├── generators │ └── super │ │ ├── action_text_generator_test.rb │ │ ├── install_generator_test.rb │ │ ├── resource_generator_test.rb │ │ └── webpacker_generator_test.rb └── super │ ├── action_inquirer_test.rb │ ├── assets_test.rb │ ├── badge_test.rb │ ├── cheat_test.rb │ ├── controllers │ ├── application_customized_test.rb │ ├── application_reset_test.rb │ └── destroy_error_test.rb │ ├── display │ └── guesser_test.rb │ ├── display_test.rb │ ├── filter │ └── operator_test.rb │ ├── filter_test.rb │ ├── form │ ├── schema_types_test.rb │ └── strong_params_test.rb │ ├── form_test.rb │ ├── link_builder_test.rb │ ├── link_test.rb │ ├── navigation_test.rb │ ├── packaged_asset_test.rb │ ├── plugin_test.rb │ ├── reorderable_hash_test.rb │ ├── reset_test.rb │ ├── sort │ └── form_object_test.rb │ ├── useful │ ├── enum_test.rb │ └── i19_test.rb │ └── view_chain_test.rb ├── support ├── ad_hoc_view_helpers.rb ├── custom_database_schema.rb └── input_flatpickr.rb └── test_helper.rb /.gitattributes: -------------------------------------------------------------------------------- 1 | /app/assets/**/* linguist-generated 2 | /test/dummy/**/* linguist-generated 3 | /frontend/super-frontend/dist/**/* linguist-generated 4 | -------------------------------------------------------------------------------- /.github/workflows/lint.yml: -------------------------------------------------------------------------------- 1 | name: Lint 2 | 3 | on: [push] 4 | 5 | jobs: 6 | ruby: 7 | runs-on: ubuntu-latest 8 | steps: 9 | - uses: actions/checkout@v2 10 | - uses: ruby/setup-ruby@v1 11 | with: 12 | ruby-version: "2.7" 13 | bundler-cache: true 14 | - run: bin/standardrb --parallel 15 | - run: bin/rubocop --parallel --config .rubocop_more.yml 16 | js: 17 | runs-on: ubuntu-latest 18 | steps: 19 | - uses: actions/checkout@v2 20 | - uses: actions/setup-node@v2 21 | with: 22 | node-version: "12" 23 | - run: yarn install 24 | working-directory: frontend/super-frontend/source 25 | - run: yarn run lintci 26 | working-directory: frontend/super-frontend/source 27 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .bundle/ 2 | log/*.log 3 | pkg/ 4 | test/dummy/**/db/*.sqlite3 5 | test/dummy/**/db/*.sqlite3-journal 6 | test/dummy/**/log/*.log 7 | test/dummy/**/node_modules/ 8 | test/dummy/**/yarn-error.log 9 | test/dummy/**/storage/ 10 | test/dummy/**/tmp/ 11 | test/dummy/**/public/packs* 12 | 13 | node_modules 14 | /tmp/ 15 | /coverage 16 | 17 | .yardoc/ 18 | -------------------------------------------------------------------------------- /.remove_sorbet_standard.yml: -------------------------------------------------------------------------------- 1 | --- 2 | ruby_version: 2.4 3 | extend_config: 4 | - .standard_no_sorbet.yml 5 | ignore: 6 | - "test/dummy/**/*" 7 | -------------------------------------------------------------------------------- /.rubocop_more.yml: -------------------------------------------------------------------------------- 1 | --- 2 | AllCops: 3 | DisabledByDefault: true 4 | 5 | Style/FrozenStringLiteralComment: 6 | Enabled: Yes 7 | Exclude: 8 | - "gemfiles/**/*" 9 | - "test/**/*" 10 | - "super_test_engine/**/*" 11 | -------------------------------------------------------------------------------- /.ruby-version: -------------------------------------------------------------------------------- 1 | 3.0.6 2 | -------------------------------------------------------------------------------- /.simplecov: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | # vim: syntax=ruby 4 | 5 | SimpleCov.command_name("minitest:#{File.basename(SUPER_DUMMY_PATH)}") 6 | -------------------------------------------------------------------------------- /.standard.yml: -------------------------------------------------------------------------------- 1 | --- 2 | ruby_version: 2.4 3 | extend_config: 4 | - .standard_sorbet.yml 5 | ignore: 6 | - "test/dummy/**/*" 7 | -------------------------------------------------------------------------------- /.standard_no_sorbet.yml: -------------------------------------------------------------------------------- 1 | --- 2 | require: 3 | - rubocop-no_sorbet 4 | 5 | AllCops: 6 | TargetRubyVersion: 2.4 7 | DisabledByDefault: true 8 | Exclude: 9 | - "**/node_modules/**/*" 10 | - "**/tmp/**/*" 11 | - "**/vendor/**/*" 12 | - "test/dummy/**/*" 13 | - "super_test_engine/**/*" 14 | - "sorbet/**/*" 15 | 16 | NoSorbet: 17 | Enabled: Yes 18 | -------------------------------------------------------------------------------- /.standard_sorbet.yml: -------------------------------------------------------------------------------- 1 | --- 2 | require: 3 | - rubocop-sorbet 4 | 5 | Sorbet: 6 | DisabledByDefault: false 7 | -------------------------------------------------------------------------------- /.yardopts: -------------------------------------------------------------------------------- 1 | --exclude lib/generators 2 | --markup markdown 3 | - 4 | LICENSE 5 | -------------------------------------------------------------------------------- /app/assets/config/super_manifest.js: -------------------------------------------------------------------------------- 1 | //= link super/application.css 2 | //= link super/application.js 3 | -------------------------------------------------------------------------------- /app/assets/javascripts/super/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/superadministration/super/20fa9fc358349c83ea57674c78206c4d54615a14/app/assets/javascripts/super/.keep -------------------------------------------------------------------------------- /app/assets/stylesheets/super/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/superadministration/super/20fa9fc358349c83ea57674c78206c4d54615a14/app/assets/stylesheets/super/.keep -------------------------------------------------------------------------------- /app/controllers/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/superadministration/super/20fa9fc358349c83ea57674c78206c4d54615a14/app/controllers/.keep -------------------------------------------------------------------------------- /app/helpers/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/superadministration/super/20fa9fc358349c83ea57674c78206c4d54615a14/app/helpers/.keep -------------------------------------------------------------------------------- /app/views/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/superadministration/super/20fa9fc358349c83ea57674c78206c4d54615a14/app/views/.keep -------------------------------------------------------------------------------- /app/views/super/application/_batch_checkbox.csv.erb: -------------------------------------------------------------------------------- 1 | <%= batch_checkbox.locals[:value] -%> 2 | -------------------------------------------------------------------------------- /app/views/super/application/_batch_checkbox.html.erb: -------------------------------------------------------------------------------- 1 | <% if current_action.collection? %> 2 |
3 | <% html_id = "batch-checkbox-#{value.to_s.gsub(/[^a-z0-9]+/, "-")}" %> 4 | 5 | 6 |
7 | <% else %> 8 | <%= value %> 9 | <% end %> 10 | -------------------------------------------------------------------------------- /app/views/super/application/_batch_form.html.erb: -------------------------------------------------------------------------------- 1 |
2 | <%= yield %> 3 |
4 | -------------------------------------------------------------------------------- /app/views/super/application/_collection_header.html.erb: -------------------------------------------------------------------------------- 1 |
2 |

3 | <%= title %> 4 |

5 |
6 | <% resolved_collection_actions.each do |link| %> 7 | <%= super_render( 8 | link, 9 | default_options: { 10 | class: "super-button super-button--border-blue super-button-sm inline-block" 11 | } 12 | ) %> 13 | <% end %> 14 |
15 |
16 | <%= yield if block_given? %> 17 | -------------------------------------------------------------------------------- /app/views/super/application/_display_actions.html.erb: -------------------------------------------------------------------------------- 1 |
2 | <% resolved_member_actions(record).each do |link| %> 3 | <%= super_render link %> 4 | <% end %> 5 |
6 | -------------------------------------------------------------------------------- /app/views/super/application/_display_rich_text.html.erb: -------------------------------------------------------------------------------- 1 | <%= display_rich_text.locals[:rich_text] %> 2 | -------------------------------------------------------------------------------- /app/views/super/application/_display_show.html.erb: -------------------------------------------------------------------------------- 1 | 2 | <% display_show.each_attribute do |attribute_name, attribute_definition| %> 3 | 4 | 13 | 14 | 15 | <% end %> 16 |
5 | <%= 6 | if attribute_definition.respond_to?(:attribute_name) && attribute_definition.attribute_name 7 | attribute_definition.attribute_name 8 | else 9 | model.human_attribute_name(attribute_name) 10 | end 11 | %> 12 | <%= display_show.render_attribute(template: self, record: @record, column: attribute_name) %>
17 | -------------------------------------------------------------------------------- /app/views/super/application/_flash.html.erb: -------------------------------------------------------------------------------- 1 | <% if flash.any? %> 2 | <% colors = { 3 | "notice" => { bg: "bg-blue-100", fg: "text-blue-400", border: "border-blue-600" }, 4 | "alert" => { bg: "bg-red-100", fg: "text-red-400", border: "border-red-600" }, 5 | } %> 6 | 7 |
8 | <% flash.each do |level, messages| %> 9 | <% Array(messages).each do |message| %> 10 | <% color = colors[level.to_s] || colors["notice"] %> 11 |
s %s border-l-4 %s p-4 mt-2" % color %>"> 12 | <%= message %> 13 |
14 | <% end %> 15 | <% end %> 16 |
17 | <% end %> 18 | -------------------------------------------------------------------------------- /app/views/super/application/_form.html.erb: -------------------------------------------------------------------------------- 1 | <%= super_form_for(form_record(@record), url: form_action(@record)) do |f| %> 2 |
3 | <% form.each_attribute do |field, type| %> 4 | <%= super_render( 5 | type, 6 | form: f, 7 | column: field 8 | ) %> 9 | <% end %> 10 | 11 |
12 | <%= f.super.submit class: "super-button--fill-blue mt-2" %> 13 |
14 |
15 | <% end %> 16 | -------------------------------------------------------------------------------- /app/views/super/application/_form_field.html.erb: -------------------------------------------------------------------------------- 1 | <% if form_field.super_builder %> 2 | <%= form.super.public_send(form_field.method_name, column, *form_field.args, **form_field.kwargs) %> 3 | <% else %> 4 | <%= form.public_send(form_field.method_name, column, *form_field.args, **form_field.kwargs) %> 5 | <% end %> 6 | -------------------------------------------------------------------------------- /app/views/super/application/_form_field__destroy.html.erb: -------------------------------------------------------------------------------- 1 | <%= form.super.check_box!(column, field: { data: { action: "toggle-pending-destruction#call" } }) %> 2 | -------------------------------------------------------------------------------- /app/views/super/application/_form_fieldset.html.erb: -------------------------------------------------------------------------------- 1 |
2 | <% if form_fieldset.label.present? %> 3 | <%= form_fieldset.label %> 4 | <% end %> 5 | <% form_fieldset.nested_fields.each do |field, type| %> 6 | <%= super_render(type, form: form, column: field) %> 7 | <% end %> 8 |
9 | -------------------------------------------------------------------------------- /app/views/super/application/_form_has_one.html.erb: -------------------------------------------------------------------------------- 1 |
2 | <% 3 | if form.object.public_send(form_has_one.reader).nil? 4 | form.object.public_send("build_" + form_has_one.reader.to_s) 5 | end 6 | %> 7 | 8 | <%= form.fields_for(form_has_one.reader) do |ff| %> 9 | <%= super_render "form_fieldset", form_fieldset: form_has_one, form: ff %> 10 | <% end %> 11 |
12 | -------------------------------------------------------------------------------- /app/views/super/application/_layout.html.erb: -------------------------------------------------------------------------------- 1 | <% if layout.header %> 2 | <%= super_render layout.header %> 3 | <% end %> 4 | 5 | <% if layout.aside %> 6 |
7 |
8 | <% if layout.main %> 9 | <%= super_render layout.main %> 10 | <% end %> 11 |
12 | 13 |
14 | <%= super_render layout.aside %> 15 |
16 |
17 | <% else %> 18 | <% if layout.main %> 19 | <%= super_render layout.main %> 20 | <% end %> 21 | <% end %> 22 | 23 | <% if layout.footer %> 24 | <%= super_render layout.footer %> 25 | <%= super_render(partial) %> 26 | <% end %> 27 | -------------------------------------------------------------------------------- /app/views/super/application/_link.html.erb: -------------------------------------------------------------------------------- 1 | <%= 2 | link.to_link(self, local_assigns) 3 | %> 4 | -------------------------------------------------------------------------------- /app/views/super/application/_member_header.html.erb: -------------------------------------------------------------------------------- 1 |
2 |

3 | <%= title %> 4 |

5 |
6 | <% resolved_member_actions(@record).each do |link| %> 7 | <%= super_render( 8 | link, 9 | default_options: { 10 | class: "super-button super-button--border-blue super-button-sm inline-block" 11 | } 12 | ) %> 13 | <% end %> 14 |
15 |
16 | <%= yield if block_given? %> 17 | -------------------------------------------------------------------------------- /app/views/super/application/_pagination.html.erb: -------------------------------------------------------------------------------- 1 | <%= yield %> 2 | <% if @pagination.necessary? %> 3 |
4 |
5 | <% @pagination.each do |page_query_params, is_current_page, display| %> 6 | <%= link_to( 7 | display, 8 | paginated_link(page_query_params), 9 | class: "inline-block ml-2 text-lg #{is_current_page ? " text-gray-900" : ""}" 10 | ) %> 11 | <% end %> 12 |
13 |
14 | <% end %> 15 | -------------------------------------------------------------------------------- /app/views/super/application/_panel.html.erb: -------------------------------------------------------------------------------- 1 | <% if panel.resolve(self, block_given? ? Proc.new { yield } : nil).resolved_parts.any? %> 2 |
3 | <% panel.resolved_parts.each do |partial| %> 4 | <%= super_render(partial) %> 5 | <% end %> 6 |
7 | <% end %> 8 | -------------------------------------------------------------------------------- /app/views/super/application/_query.html.erb: -------------------------------------------------------------------------------- 1 | <% if filters_enabled? || sort_enabled? %> 2 |

Query

3 | 4 | <%= form_tag(query.path, method: :get, data: { controller: "clean-filter-params", action: "submit->clean-filter-params#call" }) do %> 5 | <% if filters_enabled? %> 6 | <%= super_render @filter_form %> 7 | <% end %> 8 | <% if sort_enabled? %> 9 | <% if filters_enabled? %> 10 |
11 | <% end %> 12 | <%= super_render @sort_form %> 13 | <% end %> 14 | 15 | <%= submit_tag("Apply", class: "super-button super-button--border-gray mt-6") %> 16 | <% end %> 17 | <% end %> 18 | 19 | <%= yield if block_given? %> 20 | -------------------------------------------------------------------------------- /app/views/super/application/_site_footer.html.erb: -------------------------------------------------------------------------------- 1 |
2 | <%= t("super.layout.powered_by_html", env: Rails.env.capitalize, version: Super::VERSION) %> 3 |
4 | -------------------------------------------------------------------------------- /app/views/super/application/_view_chain.html.erb: -------------------------------------------------------------------------------- 1 | <%= view_chain.handle_super_render(self, local_assigns) %> 2 | -------------------------------------------------------------------------------- /app/views/super/application/edit.html.erb: -------------------------------------------------------------------------------- 1 | <% raise Super::Error::NothingToRender, "edit" if @view.nil? %> 2 | <%= super_render(@view) %> 3 | -------------------------------------------------------------------------------- /app/views/super/application/index.csv.erb: -------------------------------------------------------------------------------- 1 | <%= 2 | attribute_names = @display.each_attribute_name.to_a 3 | 4 | CSV 5 | .generate(write_headers: true, headers: attribute_names) do |csv| 6 | @records.each do |record| 7 | row = attribute_names.map do |attribute_name| 8 | @display.render_attribute(template: self, record: record, column: attribute_name) 9 | end 10 | csv << row 11 | end 12 | end 13 | .html_safe 14 | -%> 15 | -------------------------------------------------------------------------------- /app/views/super/application/index.html.erb: -------------------------------------------------------------------------------- 1 | <% raise Super::Error::NothingToRender, "index" if @view.nil? %> 2 | <%= super_render(@view) %> 3 | -------------------------------------------------------------------------------- /app/views/super/application/new.html.erb: -------------------------------------------------------------------------------- 1 | <% raise Super::Error::NothingToRender, "new" if @view.nil? %> 2 | <%= super_render(@view) %> 3 | -------------------------------------------------------------------------------- /app/views/super/application/nothing.html.erb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/superadministration/super/20fa9fc358349c83ea57674c78206c4d54615a14/app/views/super/application/nothing.html.erb -------------------------------------------------------------------------------- /app/views/super/application/show.html.erb: -------------------------------------------------------------------------------- 1 | <% raise Super::Error::NothingToRender, "show" if @view.nil? %> 2 | <%= super_render(@view) %> 3 | -------------------------------------------------------------------------------- /app/views/super/feather/_x.html: -------------------------------------------------------------------------------- 1 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /bin/foreach: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | # frozen_string_literal: true 3 | 4 | require "optparse" 5 | require "open3" 6 | require_relative "../dummy_path" 7 | 8 | SUPER_RAILS_ROOTS.each do |_gemfile, path| 9 | Dir.chdir(path) do 10 | out, _pid = Open3.capture2e(*ARGV) 11 | $stdout.print(out) 12 | end 13 | end 14 | -------------------------------------------------------------------------------- /bin/remove_sorbet: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -euxo pipefail 4 | 5 | bundle exec standardrb --config .remove_sorbet_standard.yml --fix || true 6 | -------------------------------------------------------------------------------- /bin/yarn: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | # frozen_string_literal: true 3 | 4 | require_relative "../dummy_path" 5 | 6 | APP_ROOT = File.expand_path(File.join("..", SUPER_DUMMY_PATH), __dir__) 7 | 8 | Dir.chdir(APP_ROOT) do 9 | begin 10 | exec "yarnpkg", *ARGV 11 | rescue Errno::ENOENT 12 | $stderr.puts "Yarn executable was not detected in the system." 13 | $stderr.puts "Download Yarn at https://yarnpkg.com/en/docs/install" 14 | exit 1 15 | end 16 | end 17 | -------------------------------------------------------------------------------- /frontend/super-frontend/dist/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/superadministration/super/20fa9fc358349c83ea57674c78206c4d54615a14/frontend/super-frontend/dist/.keep -------------------------------------------------------------------------------- /frontend/super-frontend/dist/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@superadministration/super", 3 | "description": "The frontend code for Super, a Rails admin framework", 4 | "homepage": "https://github.com/superadministration/super", 5 | "license": "LGPL-3.0-only", 6 | "main": "application.js", 7 | "files": [ 8 | "application.js", 9 | "application.css", 10 | "package.json" 11 | ], 12 | "version": "0.20.0" 13 | } 14 | -------------------------------------------------------------------------------- /frontend/super-frontend/source/.babelrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | "@babel/env" 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /frontend/super-frontend/source/.gitignore: -------------------------------------------------------------------------------- 1 | /tmp 2 | -------------------------------------------------------------------------------- /frontend/super-frontend/source/.node-version: -------------------------------------------------------------------------------- 1 | 16.20.0 2 | -------------------------------------------------------------------------------- /frontend/super-frontend/source/postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: [ 3 | require("postcss-import")(), 4 | require("postcss-inline-svg"), 5 | require("tailwindcss")("./tailwind.config.js"), 6 | require("autoprefixer"), 7 | ], 8 | }; 9 | -------------------------------------------------------------------------------- /frontend/super-frontend/source/rollup.duplicate.js: -------------------------------------------------------------------------------- 1 | const fs = require("fs"); 2 | const path = require("path"); 3 | 4 | export default function duplicateFile() { 5 | return { 6 | name: "duplicateFile", 7 | writeBundle: function writeBundle(options, bundle) { 8 | for (let key in bundle) { 9 | let value = bundle[key]; 10 | var basename = path.basename(value.fileName); 11 | var destDir = path.join(__dirname, "../dist"); 12 | var destPath = path.join(destDir, basename); 13 | 14 | if (value.source) { 15 | fs.writeFileSync(destPath, value.source); 16 | } else if (value.code) { 17 | fs.writeFileSync(destPath, value.code); 18 | } 19 | } 20 | }, 21 | }; 22 | } 23 | -------------------------------------------------------------------------------- /frontend/super-frontend/source/src/icons/feather/chevron-down.svg: -------------------------------------------------------------------------------- 1 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /frontend/super-frontend/source/src/javascripts/apply_template_controller.js: -------------------------------------------------------------------------------- 1 | import { Controller } from "stimulus"; 2 | 3 | export default class extends Controller { 4 | static get targets() { 5 | return ["template"]; 6 | } 7 | 8 | call(event) { 9 | event.preventDefault(); 10 | 11 | const unixtime = new Date().getTime(); 12 | let content = this.templateTarget.innerHTML.replace( 13 | /TEMPLATEINDEX/g, 14 | unixtime.toString() 15 | ); 16 | 17 | this.templateTarget.insertAdjacentHTML("beforebegin", content); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /frontend/super-frontend/source/src/javascripts/clean_filter_param_controller.js: -------------------------------------------------------------------------------- 1 | import { Controller } from "stimulus"; 2 | 3 | export default class extends Controller { 4 | static get targets() { 5 | return ["candidate", "control"]; 6 | } 7 | 8 | call() { 9 | let allControlsBlank = this.controlTargets.every(function(el) { 10 | return el.value === ""; 11 | }); 12 | 13 | if (!allControlsBlank) { 14 | return; 15 | } 16 | 17 | this.candidateTargets.forEach(function(el) { 18 | el.disabled = true; 19 | }); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /frontend/super-frontend/source/src/javascripts/clean_filter_params_controller.js: -------------------------------------------------------------------------------- 1 | import { Controller } from "stimulus"; 2 | 3 | export default class extends Controller { 4 | call(event) { 5 | this.element 6 | .querySelectorAll("[data-controller='clean-filter-param']") 7 | .forEach( 8 | function(el) { 9 | let controller = this.application.getControllerForElementAndIdentifier( 10 | el, 11 | "clean-filter-param" 12 | ); 13 | controller.call(); 14 | }.bind(this) 15 | ); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /frontend/super-frontend/source/src/javascripts/delete_controller.js: -------------------------------------------------------------------------------- 1 | import { Controller } from "stimulus"; 2 | 3 | export default class extends Controller { 4 | call(event) { 5 | event.preventDefault(); 6 | this.element.remove(); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /frontend/super-frontend/source/src/javascripts/flatpickr_controller.js: -------------------------------------------------------------------------------- 1 | import { Controller } from "stimulus"; 2 | import flatpickr from "flatpickr"; 3 | 4 | export default class extends Controller { 5 | static get values() { 6 | return { 7 | options: Object, 8 | }; 9 | } 10 | 11 | connect() { 12 | this.flatpickrInstance = flatpickr(this.element, this.optionsValue); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /frontend/super-frontend/source/src/javascripts/toggle_pending_destruction_controller.js: -------------------------------------------------------------------------------- 1 | import { Controller } from "stimulus"; 2 | 3 | export default class extends Controller { 4 | call(event) { 5 | let target = event.target; 6 | 7 | if (target) { 8 | if (target.checked) { 9 | this.element.classList.add("opacity-75", "bg-gray-100"); 10 | } else { 11 | this.element.classList.remove("opacity-75", "bg-gray-100"); 12 | } 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /frontend/super-frontend/source/src/stylesheets/application.css: -------------------------------------------------------------------------------- 1 | @import "tailwindcss/base"; 2 | @import "@github/details-dialog-element/dist/index.css"; 3 | @import "./super_base.css"; 4 | 5 | @import "tailwindcss/components"; 6 | @import "flatpickr/dist/themes/light.css"; 7 | @import "./super_components.css"; 8 | 9 | @import "tailwindcss/utilities"; 10 | -------------------------------------------------------------------------------- /frontend/super-frontend/source/src/stylesheets/super_base.css: -------------------------------------------------------------------------------- 1 | html { 2 | font-size: 15px; 3 | } 4 | 5 | a { 6 | @apply text-blue-700; 7 | } 8 | -------------------------------------------------------------------------------- /gemfiles/rails50_sprockets3.gemfile: -------------------------------------------------------------------------------- 1 | # This file was generated by Appraisal 2 | 3 | source "https://rubygems.org" 4 | 5 | gem "rails", "~> 5.0.0" 6 | gem "sprockets", "~> 3.0" 7 | gem "capybara", "~> 3.32.2" 8 | gem "sqlite3", "~> 1.3.0" 9 | gem "minitest", "~> 5.9.0" 10 | gem "nokogiri", "~> 1.10.10" 11 | gem "simplecov", "~> 0.17.0" 12 | gem "simplecov-html", "~> 0.10.0" 13 | gem "docile", "~> 1.3.5" 14 | gem "globalid", "~> 0.4.2" 15 | 16 | gemspec path: "../" 17 | -------------------------------------------------------------------------------- /gemfiles/rails50_sprockets3_ruby23.gemfile: -------------------------------------------------------------------------------- 1 | # This file was generated by Appraisal 2 | 3 | source "https://rubygems.org" 4 | 5 | gem "rails", "~> 5.0.0" 6 | gem "sprockets", "~> 3.0" 7 | gem "capybara", "~> 3.15.0" 8 | gem "sqlite3", "~> 1.3.0" 9 | gem "minitest", "~> 5.9.0" 10 | gem "nio4r", "~> 2.4.0" 11 | gem "rubyzip", "~> 1.0" 12 | gem "webdrivers", "~> 4.2.0" 13 | gem "nokogiri", "~> 1.10.10" 14 | gem "simplecov", "~> 0.17.0" 15 | gem "simplecov-html", "~> 0.10.0" 16 | gem "docile", "~> 1.3.5" 17 | gem "globalid", "~> 0.4.2" 18 | 19 | gemspec path: "../" 20 | -------------------------------------------------------------------------------- /gemfiles/rails51_sprockets3.gemfile: -------------------------------------------------------------------------------- 1 | # This file was generated by Appraisal 2 | 3 | source "https://rubygems.org" 4 | 5 | gem "rails", "~> 5.1.0" 6 | gem "sprockets", "~> 3.0" 7 | gem "sqlite3", "~> 1.3.0" 8 | gem "globalid", "~> 0.4.2" 9 | 10 | gemspec path: "../" 11 | -------------------------------------------------------------------------------- /gemfiles/rails52_sprockets4.gemfile: -------------------------------------------------------------------------------- 1 | # This file was generated by Appraisal 2 | 3 | source "https://rubygems.org" 4 | 5 | gem "rails", "~> 5.2.0" 6 | gem "sprockets", "~> 4.0" 7 | gem "sqlite3", "~> 1.3.0" 8 | gem "globalid", "~> 0.4.2" 9 | 10 | gemspec path: "../" 11 | -------------------------------------------------------------------------------- /gemfiles/rails60_sprockets4.gemfile: -------------------------------------------------------------------------------- 1 | # This file was generated by Appraisal 2 | 3 | source "https://rubygems.org" 4 | 5 | gem "rails", "~> 6.0.0" 6 | gem "sprockets", "~> 4.0" 7 | gem "sqlite3", "~> 1.4.0" 8 | 9 | gemspec path: "../" 10 | -------------------------------------------------------------------------------- /gemfiles/rails61_sprockets4.gemfile: -------------------------------------------------------------------------------- 1 | # This file was generated by Appraisal 2 | 3 | source "https://rubygems.org" 4 | 5 | gem "rails", "~> 6.1.0" 6 | gem "sprockets", "~> 4.0" 7 | gem "sqlite3", "~> 1.4.0" 8 | gem "rexml" 9 | 10 | gemspec path: "../" 11 | -------------------------------------------------------------------------------- /gemfiles/rails70_sprockets4.gemfile: -------------------------------------------------------------------------------- 1 | # This file was generated by Appraisal 2 | 3 | source "https://rubygems.org" 4 | 5 | gem "rails", "~> 7.0.0" 6 | gem "sprockets-rails", "~> 3.4" 7 | gem "sqlite3", "~> 1.4.0" 8 | gem "rexml" 9 | 10 | gemspec path: "../" 11 | -------------------------------------------------------------------------------- /lib/generators/super/action_text/templates/pack_super_action_text.js: -------------------------------------------------------------------------------- 1 | import * as ActiveStorage from "@rails/activestorage" 2 | ActiveStorage.start() 3 | require("trix") 4 | require("@rails/actiontext") 5 | -------------------------------------------------------------------------------- /lib/generators/super/install/templates/base_controller.rb.tt: -------------------------------------------------------------------------------- 1 | class <%= parent_controller_name.classify %>Controller < Super::ApplicationController 2 | end 3 | -------------------------------------------------------------------------------- /lib/generators/super/install/templates/initializer.rb.tt: -------------------------------------------------------------------------------- 1 | Super.configuration do |c| 2 | c.title = "My Admin Site" 3 | <% if route_namespace != "admin" -%> 4 | c.path = "/<%= route_namespace %>" 5 | <% end -%> 6 | <% if route_namespace != "admin" -%> 7 | c.generator_as = "<%= route_namespace.gsub(%r{/}, "_") %>" 8 | <% end -%> 9 | <% if controller_namespace != "admin" -%> 10 | c.generator_module = "<%= controller_namespace %>" 11 | <% end -%> 12 | end 13 | -------------------------------------------------------------------------------- /lib/generators/super/resource/USAGE: -------------------------------------------------------------------------------- 1 | Description: 2 | Creates a controller 3 | 4 | Example: 5 | rails generate super:resource Thing 6 | 7 | This will create: 8 | app/controllers/admin/things_controller.rb 9 | -------------------------------------------------------------------------------- /lib/generators/super/resource/templates/resources_controller.rb.tt: -------------------------------------------------------------------------------- 1 | <% module_namespacing do -%> 2 | class <%= controller_class_name %>Controller < <%= parent_controller_name.classify %>Controller 3 | private 4 | 5 | def model 6 | <%= class_name %> 7 | end 8 | end 9 | <% end -%> 10 | -------------------------------------------------------------------------------- /lib/generators/super/webpacker/USAGE: -------------------------------------------------------------------------------- 1 | Description: 2 | Creates the necessary files for assets to be served under Webpacker 3 | 4 | Example: 5 | rails generate super:webpacker 6 | 7 | This will: 8 | Create app/javascript/packs/super/application.js 9 | Modify config/initializers/super.rb 10 | -------------------------------------------------------------------------------- /lib/generators/super/webpacker/templates/pack_super_application.js.tt: -------------------------------------------------------------------------------- 1 | import Super from "@superadministration/super"; 2 | import "@superadministration/super/application.css"; 3 | -------------------------------------------------------------------------------- /lib/super/filter.rb: -------------------------------------------------------------------------------- 1 | # typed: true 2 | # frozen_string_literal: true 3 | 4 | module Super 5 | class Filter 6 | def initialize 7 | @schema_type = SchemaTypes.new 8 | @fields = Schema::Fields.new 9 | 10 | yield(@fields, @schema_type) 11 | end 12 | 13 | attr_reader :fields 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /lib/super/form/strong_params.rb: -------------------------------------------------------------------------------- 1 | # typed: true 2 | # frozen_string_literal: true 3 | 4 | module Super 5 | class Form 6 | class StrongParams 7 | def initialize(form_schema) 8 | @form_schema = form_schema 9 | end 10 | 11 | def require(model) 12 | model.model_name.singular 13 | end 14 | 15 | def permit 16 | unfurl(@form_schema) 17 | end 18 | 19 | private 20 | 21 | def unfurl(responds_to_each_attribute) 22 | responds_to_each_attribute.each_attribute.map do |name, type| 23 | if type.nested_fields&.any? 24 | {name => [:id, *unfurl(type)]} 25 | else 26 | name 27 | end 28 | end 29 | end 30 | end 31 | end 32 | end 33 | -------------------------------------------------------------------------------- /lib/super/form_builder/action_text_methods.rb: -------------------------------------------------------------------------------- 1 | # typed: true 2 | # frozen_string_literal: true 3 | 4 | module Super 5 | class FormBuilder 6 | class Wrappers 7 | def rich_text_area(attribute, options = {}) 8 | options, defaults = split_defaults(options, class: "trix-content super-input w-full") 9 | options[:class] = join_classes(defaults[:class], options[:class]) 10 | 11 | @builder.rich_text_area(attribute, options) 12 | end 13 | 14 | define_convenience :rich_text_area 15 | end 16 | end 17 | end 18 | -------------------------------------------------------------------------------- /lib/super/layout.rb: -------------------------------------------------------------------------------- 1 | # typed: true 2 | # frozen_string_literal: true 3 | 4 | require "super/partial/resolving" 5 | 6 | module Super 7 | class Layout 8 | include Super::Partial::Resolving 9 | 10 | def initialize(header: nil, aside: nil, main: nil, footer: nil) 11 | @header = header 12 | @aside = aside 13 | @main = main 14 | @footer = footer 15 | end 16 | 17 | attr_reader :header 18 | attr_reader :aside 19 | attr_reader :main 20 | attr_reader :footer 21 | 22 | def to_partial_path 23 | "layout" 24 | end 25 | end 26 | end 27 | -------------------------------------------------------------------------------- /lib/super/panel.rb: -------------------------------------------------------------------------------- 1 | # typed: true 2 | # frozen_string_literal: true 3 | 4 | require "super/partial/resolving" 5 | 6 | module Super 7 | class Panel 8 | include Super::Partial::Resolving 9 | 10 | def initialize(*parts) 11 | if block_given? 12 | @parts = Array.new(yield) 13 | end 14 | 15 | @parts = parts 16 | end 17 | 18 | attr_reader :parts 19 | 20 | def resolve(template, block) 21 | @resolved_parts ||= resolve_for_rendering(template, parts, block) 22 | self 23 | end 24 | 25 | def resolved_parts 26 | @resolved_parts || [] 27 | end 28 | 29 | def to_partial_path 30 | "panel" 31 | end 32 | end 33 | end 34 | -------------------------------------------------------------------------------- /lib/super/partial.rb: -------------------------------------------------------------------------------- 1 | # typed: true 2 | # frozen_string_literal: true 3 | 4 | module Super 5 | class Partial 6 | def initialize(path, locals: {}) 7 | @to_partial_path = path 8 | @locals = locals 9 | end 10 | 11 | attr_reader :to_partial_path 12 | attr_reader :locals 13 | end 14 | end 15 | -------------------------------------------------------------------------------- /lib/super/partial/resolving.rb: -------------------------------------------------------------------------------- 1 | # typed: true 2 | # frozen_string_literal: true 3 | 4 | module Super 5 | class Partial 6 | module Resolving 7 | module_function 8 | 9 | def resolve_for_rendering(template, partials, block) 10 | if block 11 | partials = [block.call, *partials] 12 | end 13 | 14 | partials = 15 | partials.map do |partial| 16 | if partial.is_a?(Symbol) 17 | template.instance_variable_get(partial) 18 | else 19 | partial 20 | end 21 | end 22 | 23 | partials.compact 24 | end 25 | end 26 | end 27 | end 28 | -------------------------------------------------------------------------------- /lib/super/query/form_object_interface.rb: -------------------------------------------------------------------------------- 1 | # typed: strict 2 | # frozen_string_literal: true 3 | 4 | module Super::Query::FormObjectInterface 5 | extend T::Sig 6 | extend T::Helpers 7 | interface! 8 | 9 | sig { abstract.params(relation: ActiveRecord::Relation).returns(ActiveRecord::Relation) } 10 | def apply_changes(relation) 11 | end 12 | 13 | sig { abstract.returns(String) } 14 | def to_partial_path 15 | end 16 | end 17 | -------------------------------------------------------------------------------- /lib/super/schema/common.rb: -------------------------------------------------------------------------------- 1 | # typed: true 2 | # frozen_string_literal: true 3 | 4 | module Super 5 | class Schema 6 | module Common 7 | def each_attribute_name 8 | if Kernel.block_given? 9 | @fields.keys.each do |key| 10 | yield(key) 11 | end 12 | end 13 | 14 | T.unsafe(self).enum_for(:each_attribute_name) 15 | end 16 | 17 | def each_attribute 18 | if Kernel.block_given? 19 | @fields.each do |key, value| 20 | yield(key, value) 21 | end 22 | end 23 | 24 | T.unsafe(self).enum_for(:each_attribute) 25 | end 26 | end 27 | end 28 | end 29 | -------------------------------------------------------------------------------- /lib/super/useful/deprecations.rb: -------------------------------------------------------------------------------- 1 | # typed: true 2 | # frozen_string_literal: true 3 | 4 | require "active_support/deprecation" 5 | 6 | module Super 7 | module Useful 8 | class Deprecation 9 | VERSIONS = {} 10 | private_constant :VERSIONS 11 | 12 | def self.[](version) 13 | VERSIONS.fetch(version) 14 | end 15 | end 16 | end 17 | end 18 | -------------------------------------------------------------------------------- /lib/super/version.rb: -------------------------------------------------------------------------------- 1 | # typed: strict 2 | # frozen_string_literal: true 3 | 4 | module Super 5 | VERSION = "0.22.0" 6 | end 7 | -------------------------------------------------------------------------------- /lib/super/view_helper.rb: -------------------------------------------------------------------------------- 1 | # typed: true 2 | # frozen_string_literal: true 3 | 4 | module Super 5 | module ViewHelper 6 | module_function 7 | 8 | # For example, calling `classes("always", ["sometimes", condition])` would 9 | # return the string "always sometimes" or "always" 10 | def classes(*list) 11 | result = list.map do |c| 12 | case c 13 | when String 14 | c 15 | when Array 16 | if c.size != 2 17 | Kernel.raise %(Expected exactly two elements (["class", some_condition]), got: #{c.inspect}) 18 | end 19 | 20 | c.first if c.last 21 | end 22 | end 23 | 24 | result.compact.join(" ") 25 | end 26 | end 27 | end 28 | -------------------------------------------------------------------------------- /lib/tasks/super/cheat.rake: -------------------------------------------------------------------------------- 1 | # typed: false 2 | # frozen_string_literal: true 3 | 4 | namespace :super do 5 | task :cheat do 6 | require "super/cheat" 7 | cheat = Super::Cheat.new 8 | cheat.controller 9 | end 10 | end 11 | -------------------------------------------------------------------------------- /sorbet/config: -------------------------------------------------------------------------------- 1 | --dir 2 | . 3 | --ignore=tmp/ 4 | --ignore=vendor/ 5 | -------------------------------------------------------------------------------- /sorbet/rbi/annotations/actionmailer.rbi: -------------------------------------------------------------------------------- 1 | # typed: strict 2 | 3 | # DO NOT EDIT MANUALLY 4 | # This file was pulled from a central RBI files repository. 5 | # Please run `bin/tapioca annotations` to update it. 6 | 7 | class ActionMailer::Base 8 | sig { params(headers: T.untyped, block: T.nilable(T.proc.void)).returns(Mail::Message) } 9 | def mail(headers = nil, &block); end 10 | end 11 | -------------------------------------------------------------------------------- /sorbet/rbi/dsl/abstract_controller/callbacks.rbi: -------------------------------------------------------------------------------- 1 | # typed: true 2 | 3 | # DO NOT EDIT MANUALLY 4 | # This is an autogenerated file for dynamic methods in `AbstractController::Callbacks`. 5 | # Please instead update this file by running `bin/tapioca dsl AbstractController::Callbacks`. 6 | 7 | module AbstractController::Callbacks 8 | include GeneratedInstanceMethods 9 | 10 | mixes_in_class_methods ::ActiveSupport::Callbacks::ClassMethods 11 | mixes_in_class_methods GeneratedClassMethods 12 | 13 | module GeneratedClassMethods 14 | def __callbacks; end 15 | def __callbacks=(value); end 16 | def __callbacks?; end 17 | end 18 | 19 | module GeneratedInstanceMethods 20 | def __callbacks; end 21 | def __callbacks?; end 22 | end 23 | end 24 | -------------------------------------------------------------------------------- /sorbet/rbi/dsl/abstract_controller/helpers.rbi: -------------------------------------------------------------------------------- 1 | # typed: true 2 | 3 | # DO NOT EDIT MANUALLY 4 | # This is an autogenerated file for dynamic methods in `AbstractController::Helpers`. 5 | # Please instead update this file by running `bin/tapioca dsl AbstractController::Helpers`. 6 | 7 | module AbstractController::Helpers 8 | include GeneratedInstanceMethods 9 | 10 | mixes_in_class_methods GeneratedClassMethods 11 | 12 | module GeneratedClassMethods 13 | def _helper_methods; end 14 | def _helper_methods=(value); end 15 | def _helper_methods?; end 16 | end 17 | 18 | module GeneratedInstanceMethods 19 | def _helper_methods; end 20 | def _helper_methods=(value); end 21 | def _helper_methods?; end 22 | end 23 | end 24 | -------------------------------------------------------------------------------- /sorbet/rbi/dsl/abstract_controller/rendering.rbi: -------------------------------------------------------------------------------- 1 | # typed: true 2 | 3 | # DO NOT EDIT MANUALLY 4 | # This is an autogenerated file for dynamic methods in `AbstractController::Rendering`. 5 | # Please instead update this file by running `bin/tapioca dsl AbstractController::Rendering`. 6 | 7 | module AbstractController::Rendering 8 | mixes_in_class_methods ::ActionView::ViewPaths::ClassMethods 9 | end 10 | -------------------------------------------------------------------------------- /sorbet/rbi/dsl/abstract_controller/url_for.rbi: -------------------------------------------------------------------------------- 1 | # typed: true 2 | 3 | # DO NOT EDIT MANUALLY 4 | # This is an autogenerated file for dynamic methods in `AbstractController::UrlFor`. 5 | # Please instead update this file by running `bin/tapioca dsl AbstractController::UrlFor`. 6 | 7 | module AbstractController::UrlFor 8 | include GeneratedInstanceMethods 9 | 10 | mixes_in_class_methods GeneratedClassMethods 11 | 12 | module GeneratedClassMethods 13 | def default_url_options; end 14 | def default_url_options=(value); end 15 | def default_url_options?; end 16 | end 17 | 18 | module GeneratedInstanceMethods 19 | def default_url_options; end 20 | def default_url_options=(value); end 21 | def default_url_options?; end 22 | end 23 | end 24 | -------------------------------------------------------------------------------- /sorbet/rbi/dsl/action_controller/conditional_get.rbi: -------------------------------------------------------------------------------- 1 | # typed: true 2 | 3 | # DO NOT EDIT MANUALLY 4 | # This is an autogenerated file for dynamic methods in `ActionController::ConditionalGet`. 5 | # Please instead update this file by running `bin/tapioca dsl ActionController::ConditionalGet`. 6 | 7 | module ActionController::ConditionalGet 8 | include GeneratedInstanceMethods 9 | 10 | mixes_in_class_methods GeneratedClassMethods 11 | 12 | module GeneratedClassMethods 13 | def etaggers; end 14 | def etaggers=(value); end 15 | def etaggers?; end 16 | end 17 | 18 | module GeneratedInstanceMethods 19 | def etaggers; end 20 | def etaggers=(value); end 21 | def etaggers?; end 22 | end 23 | end 24 | -------------------------------------------------------------------------------- /sorbet/rbi/dsl/action_controller/data_streaming.rbi: -------------------------------------------------------------------------------- 1 | # typed: true 2 | 3 | # DO NOT EDIT MANUALLY 4 | # This is an autogenerated file for dynamic methods in `ActionController::DataStreaming`. 5 | # Please instead update this file by running `bin/tapioca dsl ActionController::DataStreaming`. 6 | 7 | module ActionController::DataStreaming 8 | mixes_in_class_methods ::ActionController::Rendering::ClassMethods 9 | end 10 | -------------------------------------------------------------------------------- /sorbet/rbi/dsl/action_controller/flash.rbi: -------------------------------------------------------------------------------- 1 | # typed: true 2 | 3 | # DO NOT EDIT MANUALLY 4 | # This is an autogenerated file for dynamic methods in `ActionController::Flash`. 5 | # Please instead update this file by running `bin/tapioca dsl ActionController::Flash`. 6 | 7 | module ActionController::Flash 8 | include GeneratedInstanceMethods 9 | 10 | mixes_in_class_methods GeneratedClassMethods 11 | 12 | module GeneratedClassMethods 13 | def _flash_types; end 14 | def _flash_types=(value); end 15 | def _flash_types?; end 16 | end 17 | 18 | module GeneratedInstanceMethods; end 19 | end 20 | -------------------------------------------------------------------------------- /sorbet/rbi/dsl/action_controller/form_builder.rbi: -------------------------------------------------------------------------------- 1 | # typed: true 2 | 3 | # DO NOT EDIT MANUALLY 4 | # This is an autogenerated file for dynamic methods in `ActionController::FormBuilder`. 5 | # Please instead update this file by running `bin/tapioca dsl ActionController::FormBuilder`. 6 | 7 | module ActionController::FormBuilder 8 | include GeneratedInstanceMethods 9 | 10 | mixes_in_class_methods GeneratedClassMethods 11 | 12 | module GeneratedClassMethods 13 | def _default_form_builder; end 14 | def _default_form_builder=(value); end 15 | def _default_form_builder?; end 16 | end 17 | 18 | module GeneratedInstanceMethods; end 19 | end 20 | -------------------------------------------------------------------------------- /sorbet/rbi/dsl/action_controller/params_wrapper.rbi: -------------------------------------------------------------------------------- 1 | # typed: true 2 | 3 | # DO NOT EDIT MANUALLY 4 | # This is an autogenerated file for dynamic methods in `ActionController::ParamsWrapper`. 5 | # Please instead update this file by running `bin/tapioca dsl ActionController::ParamsWrapper`. 6 | 7 | module ActionController::ParamsWrapper 8 | include GeneratedInstanceMethods 9 | 10 | mixes_in_class_methods GeneratedClassMethods 11 | 12 | module GeneratedClassMethods 13 | def _wrapper_options; end 14 | def _wrapper_options=(value); end 15 | def _wrapper_options?; end 16 | end 17 | 18 | module GeneratedInstanceMethods 19 | def _wrapper_options; end 20 | def _wrapper_options=(value); end 21 | def _wrapper_options?; end 22 | end 23 | end 24 | -------------------------------------------------------------------------------- /sorbet/rbi/dsl/action_controller/renderers.rbi: -------------------------------------------------------------------------------- 1 | # typed: true 2 | 3 | # DO NOT EDIT MANUALLY 4 | # This is an autogenerated file for dynamic methods in `ActionController::Renderers`. 5 | # Please instead update this file by running `bin/tapioca dsl ActionController::Renderers`. 6 | 7 | module ActionController::Renderers 8 | include GeneratedInstanceMethods 9 | 10 | mixes_in_class_methods GeneratedClassMethods 11 | 12 | module GeneratedClassMethods 13 | def _renderers; end 14 | def _renderers=(value); end 15 | def _renderers?; end 16 | end 17 | 18 | module GeneratedInstanceMethods 19 | def _renderers; end 20 | def _renderers=(value); end 21 | def _renderers?; end 22 | end 23 | end 24 | -------------------------------------------------------------------------------- /sorbet/rbi/dsl/action_dispatch/integration_test.rbi: -------------------------------------------------------------------------------- 1 | # typed: true 2 | 3 | # DO NOT EDIT MANUALLY 4 | # This is an autogenerated file for dynamic methods in `ActionDispatch::IntegrationTest`. 5 | # Please instead update this file by running `bin/tapioca dsl ActionDispatch::IntegrationTest`. 6 | 7 | class ActionDispatch::IntegrationTest 8 | include GeneratedUrlHelpersModule 9 | include GeneratedPathHelpersModule 10 | end 11 | -------------------------------------------------------------------------------- /sorbet/rbi/dsl/action_dispatch/routing/url_for.rbi: -------------------------------------------------------------------------------- 1 | # typed: true 2 | 3 | # DO NOT EDIT MANUALLY 4 | # This is an autogenerated file for dynamic methods in `ActionDispatch::Routing::UrlFor`. 5 | # Please instead update this file by running `bin/tapioca dsl ActionDispatch::Routing::UrlFor`. 6 | 7 | module ActionDispatch::Routing::UrlFor 8 | include GeneratedInstanceMethods 9 | 10 | mixes_in_class_methods GeneratedClassMethods 11 | 12 | module GeneratedClassMethods 13 | def default_url_options; end 14 | def default_url_options=(value); end 15 | def default_url_options?; end 16 | end 17 | 18 | module GeneratedInstanceMethods 19 | def default_url_options; end 20 | def default_url_options=(value); end 21 | def default_url_options?; end 22 | end 23 | end 24 | -------------------------------------------------------------------------------- /sorbet/rbi/dsl/action_view/helpers.rbi: -------------------------------------------------------------------------------- 1 | # typed: true 2 | 3 | # DO NOT EDIT MANUALLY 4 | # This is an autogenerated file for dynamic methods in `ActionView::Helpers`. 5 | # Please instead update this file by running `bin/tapioca dsl ActionView::Helpers`. 6 | 7 | module ActionView::Helpers 8 | include GeneratedUrlHelpersModule 9 | include GeneratedPathHelpersModule 10 | 11 | mixes_in_class_methods ::ActionView::Helpers::UrlHelper::ClassMethods 12 | mixes_in_class_methods ::ActionView::Helpers::SanitizeHelper::ClassMethods 13 | end 14 | -------------------------------------------------------------------------------- /sorbet/rbi/dsl/action_view/helpers/form_helper.rbi: -------------------------------------------------------------------------------- 1 | # typed: true 2 | 3 | # DO NOT EDIT MANUALLY 4 | # This is an autogenerated file for dynamic methods in `ActionView::Helpers::FormHelper`. 5 | # Please instead update this file by running `bin/tapioca dsl ActionView::Helpers::FormHelper`. 6 | 7 | module ActionView::Helpers::FormHelper 8 | mixes_in_class_methods ::ActionView::Helpers::UrlHelper::ClassMethods 9 | mixes_in_class_methods ::ActionView::Helpers::SanitizeHelper::ClassMethods 10 | end 11 | -------------------------------------------------------------------------------- /sorbet/rbi/dsl/action_view/helpers/form_tag_helper.rbi: -------------------------------------------------------------------------------- 1 | # typed: true 2 | 3 | # DO NOT EDIT MANUALLY 4 | # This is an autogenerated file for dynamic methods in `ActionView::Helpers::FormTagHelper`. 5 | # Please instead update this file by running `bin/tapioca dsl ActionView::Helpers::FormTagHelper`. 6 | 7 | module ActionView::Helpers::FormTagHelper 8 | mixes_in_class_methods ::ActionView::Helpers::UrlHelper::ClassMethods 9 | mixes_in_class_methods ::ActionView::Helpers::SanitizeHelper::ClassMethods 10 | end 11 | -------------------------------------------------------------------------------- /sorbet/rbi/dsl/action_view/helpers/text_helper.rbi: -------------------------------------------------------------------------------- 1 | # typed: true 2 | 3 | # DO NOT EDIT MANUALLY 4 | # This is an autogenerated file for dynamic methods in `ActionView::Helpers::TextHelper`. 5 | # Please instead update this file by running `bin/tapioca dsl ActionView::Helpers::TextHelper`. 6 | 7 | module ActionView::Helpers::TextHelper 8 | mixes_in_class_methods ::ActionView::Helpers::SanitizeHelper::ClassMethods 9 | end 10 | -------------------------------------------------------------------------------- /sorbet/rbi/dsl/action_view/rendering.rbi: -------------------------------------------------------------------------------- 1 | # typed: true 2 | 3 | # DO NOT EDIT MANUALLY 4 | # This is an autogenerated file for dynamic methods in `ActionView::Rendering`. 5 | # Please instead update this file by running `bin/tapioca dsl ActionView::Rendering`. 6 | 7 | module ActionView::Rendering 8 | mixes_in_class_methods ::ActionView::ViewPaths::ClassMethods 9 | end 10 | -------------------------------------------------------------------------------- /sorbet/rbi/dsl/active_job/callbacks.rbi: -------------------------------------------------------------------------------- 1 | # typed: true 2 | 3 | # DO NOT EDIT MANUALLY 4 | # This is an autogenerated file for dynamic methods in `ActiveJob::Callbacks`. 5 | # Please instead update this file by running `bin/tapioca dsl ActiveJob::Callbacks`. 6 | 7 | module ActiveJob::Callbacks 8 | include GeneratedInstanceMethods 9 | 10 | mixes_in_class_methods ::ActiveSupport::Callbacks::ClassMethods 11 | mixes_in_class_methods GeneratedClassMethods 12 | 13 | module GeneratedClassMethods 14 | def __callbacks; end 15 | def __callbacks=(value); end 16 | def __callbacks?; end 17 | end 18 | 19 | module GeneratedInstanceMethods 20 | def __callbacks; end 21 | def __callbacks?; end 22 | end 23 | end 24 | -------------------------------------------------------------------------------- /sorbet/rbi/dsl/active_job/exceptions.rbi: -------------------------------------------------------------------------------- 1 | # typed: true 2 | 3 | # DO NOT EDIT MANUALLY 4 | # This is an autogenerated file for dynamic methods in `ActiveJob::Exceptions`. 5 | # Please instead update this file by running `bin/tapioca dsl ActiveJob::Exceptions`. 6 | 7 | module ActiveJob::Exceptions 8 | include GeneratedInstanceMethods 9 | 10 | mixes_in_class_methods GeneratedClassMethods 11 | 12 | module GeneratedClassMethods 13 | def retry_jitter; end 14 | def retry_jitter=(value); end 15 | end 16 | 17 | module GeneratedInstanceMethods; end 18 | end 19 | -------------------------------------------------------------------------------- /sorbet/rbi/dsl/active_job/logging.rbi: -------------------------------------------------------------------------------- 1 | # typed: true 2 | 3 | # DO NOT EDIT MANUALLY 4 | # This is an autogenerated file for dynamic methods in `ActiveJob::Logging`. 5 | # Please instead update this file by running `bin/tapioca dsl ActiveJob::Logging`. 6 | 7 | module ActiveJob::Logging 8 | include GeneratedInstanceMethods 9 | 10 | mixes_in_class_methods GeneratedClassMethods 11 | 12 | module GeneratedClassMethods 13 | def log_arguments; end 14 | def log_arguments=(value); end 15 | def log_arguments?; end 16 | end 17 | 18 | module GeneratedInstanceMethods; end 19 | end 20 | -------------------------------------------------------------------------------- /sorbet/rbi/dsl/active_job/queue_adapter.rbi: -------------------------------------------------------------------------------- 1 | # typed: true 2 | 3 | # DO NOT EDIT MANUALLY 4 | # This is an autogenerated file for dynamic methods in `ActiveJob::QueueAdapter`. 5 | # Please instead update this file by running `bin/tapioca dsl ActiveJob::QueueAdapter`. 6 | 7 | module ActiveJob::QueueAdapter 8 | include GeneratedInstanceMethods 9 | 10 | mixes_in_class_methods GeneratedClassMethods 11 | 12 | module GeneratedClassMethods 13 | def _queue_adapter; end 14 | def _queue_adapter=(value); end 15 | def _queue_adapter_name; end 16 | def _queue_adapter_name=(value); end 17 | end 18 | 19 | module GeneratedInstanceMethods; end 20 | end 21 | -------------------------------------------------------------------------------- /sorbet/rbi/dsl/active_job/queue_priority.rbi: -------------------------------------------------------------------------------- 1 | # typed: true 2 | 3 | # DO NOT EDIT MANUALLY 4 | # This is an autogenerated file for dynamic methods in `ActiveJob::QueuePriority`. 5 | # Please instead update this file by running `bin/tapioca dsl ActiveJob::QueuePriority`. 6 | 7 | module ActiveJob::QueuePriority 8 | include GeneratedInstanceMethods 9 | 10 | mixes_in_class_methods GeneratedClassMethods 11 | 12 | module GeneratedClassMethods 13 | def priority; end 14 | def priority=(value); end 15 | def priority?; end 16 | end 17 | 18 | module GeneratedInstanceMethods; end 19 | end 20 | -------------------------------------------------------------------------------- /sorbet/rbi/dsl/active_job/test_helper/test_queue_adapter.rbi: -------------------------------------------------------------------------------- 1 | # typed: true 2 | 3 | # DO NOT EDIT MANUALLY 4 | # This is an autogenerated file for dynamic methods in `ActiveJob::TestHelper::TestQueueAdapter`. 5 | # Please instead update this file by running `bin/tapioca dsl ActiveJob::TestHelper::TestQueueAdapter`. 6 | 7 | module ActiveJob::TestHelper::TestQueueAdapter 8 | include GeneratedInstanceMethods 9 | 10 | mixes_in_class_methods GeneratedClassMethods 11 | 12 | module GeneratedClassMethods 13 | def _test_adapter; end 14 | def _test_adapter=(value); end 15 | end 16 | 17 | module GeneratedInstanceMethods; end 18 | end 19 | -------------------------------------------------------------------------------- /sorbet/rbi/dsl/active_model/serializers/json.rbi: -------------------------------------------------------------------------------- 1 | # typed: true 2 | 3 | # DO NOT EDIT MANUALLY 4 | # This is an autogenerated file for dynamic methods in `ActiveModel::Serializers::JSON`. 5 | # Please instead update this file by running `bin/tapioca dsl ActiveModel::Serializers::JSON`. 6 | 7 | module ActiveModel::Serializers::JSON 8 | include GeneratedInstanceMethods 9 | 10 | mixes_in_class_methods GeneratedClassMethods 11 | 12 | module GeneratedClassMethods 13 | def include_root_in_json; end 14 | def include_root_in_json=(value); end 15 | def include_root_in_json?; end 16 | end 17 | 18 | module GeneratedInstanceMethods 19 | def include_root_in_json; end 20 | def include_root_in_json?; end 21 | end 22 | end 23 | -------------------------------------------------------------------------------- /sorbet/rbi/dsl/active_model/validations/callbacks.rbi: -------------------------------------------------------------------------------- 1 | # typed: true 2 | 3 | # DO NOT EDIT MANUALLY 4 | # This is an autogenerated file for dynamic methods in `ActiveModel::Validations::Callbacks`. 5 | # Please instead update this file by running `bin/tapioca dsl ActiveModel::Validations::Callbacks`. 6 | 7 | module ActiveModel::Validations::Callbacks 8 | include GeneratedInstanceMethods 9 | 10 | mixes_in_class_methods GeneratedClassMethods 11 | 12 | module GeneratedClassMethods 13 | def __callbacks; end 14 | def __callbacks=(value); end 15 | def __callbacks?; end 16 | end 17 | 18 | module GeneratedInstanceMethods 19 | def __callbacks; end 20 | def __callbacks?; end 21 | end 22 | end 23 | -------------------------------------------------------------------------------- /sorbet/rbi/dsl/active_record/attributes.rbi: -------------------------------------------------------------------------------- 1 | # typed: true 2 | 3 | # DO NOT EDIT MANUALLY 4 | # This is an autogenerated file for dynamic methods in `ActiveRecord::Attributes`. 5 | # Please instead update this file by running `bin/tapioca dsl ActiveRecord::Attributes`. 6 | 7 | module ActiveRecord::Attributes 8 | include GeneratedInstanceMethods 9 | 10 | mixes_in_class_methods GeneratedClassMethods 11 | 12 | module GeneratedClassMethods 13 | def attributes_to_define_after_schema_loads; end 14 | def attributes_to_define_after_schema_loads=(value); end 15 | def attributes_to_define_after_schema_loads?; end 16 | end 17 | 18 | module GeneratedInstanceMethods; end 19 | end 20 | -------------------------------------------------------------------------------- /sorbet/rbi/dsl/active_record/callbacks.rbi: -------------------------------------------------------------------------------- 1 | # typed: true 2 | 3 | # DO NOT EDIT MANUALLY 4 | # This is an autogenerated file for dynamic methods in `ActiveRecord::Callbacks`. 5 | # Please instead update this file by running `bin/tapioca dsl ActiveRecord::Callbacks`. 6 | 7 | module ActiveRecord::Callbacks 8 | include GeneratedInstanceMethods 9 | 10 | mixes_in_class_methods GeneratedClassMethods 11 | 12 | module GeneratedClassMethods 13 | def __callbacks; end 14 | def __callbacks=(value); end 15 | def __callbacks?; end 16 | end 17 | 18 | module GeneratedInstanceMethods 19 | def __callbacks; end 20 | def __callbacks?; end 21 | end 22 | end 23 | -------------------------------------------------------------------------------- /sorbet/rbi/dsl/active_record/locking/optimistic.rbi: -------------------------------------------------------------------------------- 1 | # typed: true 2 | 3 | # DO NOT EDIT MANUALLY 4 | # This is an autogenerated file for dynamic methods in `ActiveRecord::Locking::Optimistic`. 5 | # Please instead update this file by running `bin/tapioca dsl ActiveRecord::Locking::Optimistic`. 6 | 7 | module ActiveRecord::Locking::Optimistic 8 | include GeneratedInstanceMethods 9 | 10 | mixes_in_class_methods GeneratedClassMethods 11 | 12 | module GeneratedClassMethods 13 | def lock_optimistically; end 14 | def lock_optimistically=(value); end 15 | def lock_optimistically?; end 16 | end 17 | 18 | module GeneratedInstanceMethods 19 | def lock_optimistically; end 20 | def lock_optimistically?; end 21 | end 22 | end 23 | -------------------------------------------------------------------------------- /sorbet/rbi/dsl/active_record/nested_attributes.rbi: -------------------------------------------------------------------------------- 1 | # typed: true 2 | 3 | # DO NOT EDIT MANUALLY 4 | # This is an autogenerated file for dynamic methods in `ActiveRecord::NestedAttributes`. 5 | # Please instead update this file by running `bin/tapioca dsl ActiveRecord::NestedAttributes`. 6 | 7 | module ActiveRecord::NestedAttributes 8 | include GeneratedInstanceMethods 9 | 10 | mixes_in_class_methods GeneratedClassMethods 11 | 12 | module GeneratedClassMethods 13 | def nested_attributes_options; end 14 | def nested_attributes_options=(value); end 15 | def nested_attributes_options?; end 16 | end 17 | 18 | module GeneratedInstanceMethods 19 | def nested_attributes_options; end 20 | def nested_attributes_options?; end 21 | end 22 | end 23 | -------------------------------------------------------------------------------- /sorbet/rbi/dsl/active_record/readonly_attributes.rbi: -------------------------------------------------------------------------------- 1 | # typed: true 2 | 3 | # DO NOT EDIT MANUALLY 4 | # This is an autogenerated file for dynamic methods in `ActiveRecord::ReadonlyAttributes`. 5 | # Please instead update this file by running `bin/tapioca dsl ActiveRecord::ReadonlyAttributes`. 6 | 7 | module ActiveRecord::ReadonlyAttributes 8 | include GeneratedInstanceMethods 9 | 10 | mixes_in_class_methods GeneratedClassMethods 11 | 12 | module GeneratedClassMethods 13 | def _attr_readonly; end 14 | def _attr_readonly=(value); end 15 | def _attr_readonly?; end 16 | end 17 | 18 | module GeneratedInstanceMethods; end 19 | end 20 | -------------------------------------------------------------------------------- /sorbet/rbi/dsl/active_record/scoping.rbi: -------------------------------------------------------------------------------- 1 | # typed: true 2 | 3 | # DO NOT EDIT MANUALLY 4 | # This is an autogenerated file for dynamic methods in `ActiveRecord::Scoping`. 5 | # Please instead update this file by running `bin/tapioca dsl ActiveRecord::Scoping`. 6 | 7 | module ActiveRecord::Scoping 8 | include GeneratedInstanceMethods 9 | 10 | mixes_in_class_methods GeneratedClassMethods 11 | 12 | module GeneratedClassMethods 13 | def default_scope_override; end 14 | def default_scope_override=(value); end 15 | def default_scopes; end 16 | def default_scopes=(value); end 17 | end 18 | 19 | module GeneratedInstanceMethods 20 | def default_scope_override; end 21 | def default_scopes; end 22 | end 23 | end 24 | -------------------------------------------------------------------------------- /sorbet/rbi/dsl/active_record/scoping/default.rbi: -------------------------------------------------------------------------------- 1 | # typed: true 2 | 3 | # DO NOT EDIT MANUALLY 4 | # This is an autogenerated file for dynamic methods in `ActiveRecord::Scoping::Default`. 5 | # Please instead update this file by running `bin/tapioca dsl ActiveRecord::Scoping::Default`. 6 | 7 | module ActiveRecord::Scoping::Default 8 | include GeneratedInstanceMethods 9 | 10 | mixes_in_class_methods GeneratedClassMethods 11 | 12 | module GeneratedClassMethods 13 | def default_scope_override; end 14 | def default_scope_override=(value); end 15 | def default_scopes; end 16 | def default_scopes=(value); end 17 | end 18 | 19 | module GeneratedInstanceMethods 20 | def default_scope_override; end 21 | def default_scopes; end 22 | end 23 | end 24 | -------------------------------------------------------------------------------- /sorbet/rbi/dsl/active_record/serialization.rbi: -------------------------------------------------------------------------------- 1 | # typed: true 2 | 3 | # DO NOT EDIT MANUALLY 4 | # This is an autogenerated file for dynamic methods in `ActiveRecord::Serialization`. 5 | # Please instead update this file by running `bin/tapioca dsl ActiveRecord::Serialization`. 6 | 7 | module ActiveRecord::Serialization 8 | include GeneratedInstanceMethods 9 | 10 | mixes_in_class_methods GeneratedClassMethods 11 | 12 | module GeneratedClassMethods 13 | def include_root_in_json; end 14 | def include_root_in_json=(value); end 15 | def include_root_in_json?; end 16 | end 17 | 18 | module GeneratedInstanceMethods 19 | def include_root_in_json; end 20 | def include_root_in_json?; end 21 | end 22 | end 23 | -------------------------------------------------------------------------------- /sorbet/rbi/dsl/active_record/signed_id.rbi: -------------------------------------------------------------------------------- 1 | # typed: true 2 | 3 | # DO NOT EDIT MANUALLY 4 | # This is an autogenerated file for dynamic methods in `ActiveRecord::SignedId`. 5 | # Please instead update this file by running `bin/tapioca dsl ActiveRecord::SignedId`. 6 | 7 | module ActiveRecord::SignedId 8 | include GeneratedInstanceMethods 9 | 10 | mixes_in_class_methods GeneratedClassMethods 11 | 12 | module GeneratedClassMethods 13 | def signed_id_verifier_secret; end 14 | def signed_id_verifier_secret=(value); end 15 | def signed_id_verifier_secret?; end 16 | end 17 | 18 | module GeneratedInstanceMethods 19 | def signed_id_verifier_secret; end 20 | def signed_id_verifier_secret?; end 21 | end 22 | end 23 | -------------------------------------------------------------------------------- /sorbet/rbi/dsl/active_record/timestamp.rbi: -------------------------------------------------------------------------------- 1 | # typed: true 2 | 3 | # DO NOT EDIT MANUALLY 4 | # This is an autogenerated file for dynamic methods in `ActiveRecord::Timestamp`. 5 | # Please instead update this file by running `bin/tapioca dsl ActiveRecord::Timestamp`. 6 | 7 | module ActiveRecord::Timestamp 8 | include GeneratedInstanceMethods 9 | 10 | mixes_in_class_methods GeneratedClassMethods 11 | 12 | module GeneratedClassMethods 13 | def record_timestamps; end 14 | def record_timestamps=(value); end 15 | def record_timestamps?; end 16 | end 17 | 18 | module GeneratedInstanceMethods 19 | def record_timestamps; end 20 | def record_timestamps=(value); end 21 | def record_timestamps?; end 22 | end 23 | end 24 | -------------------------------------------------------------------------------- /sorbet/rbi/dsl/active_support/actionable_error.rbi: -------------------------------------------------------------------------------- 1 | # typed: true 2 | 3 | # DO NOT EDIT MANUALLY 4 | # This is an autogenerated file for dynamic methods in `ActiveSupport::ActionableError`. 5 | # Please instead update this file by running `bin/tapioca dsl ActiveSupport::ActionableError`. 6 | 7 | module ActiveSupport::ActionableError 8 | include GeneratedInstanceMethods 9 | 10 | mixes_in_class_methods GeneratedClassMethods 11 | 12 | module GeneratedClassMethods 13 | def _actions; end 14 | def _actions=(value); end 15 | def _actions?; end 16 | end 17 | 18 | module GeneratedInstanceMethods 19 | def _actions; end 20 | def _actions=(value); end 21 | def _actions?; end 22 | end 23 | end 24 | -------------------------------------------------------------------------------- /sorbet/rbi/dsl/active_support/callbacks.rbi: -------------------------------------------------------------------------------- 1 | # typed: true 2 | 3 | # DO NOT EDIT MANUALLY 4 | # This is an autogenerated file for dynamic methods in `ActiveSupport::Callbacks`. 5 | # Please instead update this file by running `bin/tapioca dsl ActiveSupport::Callbacks`. 6 | 7 | module ActiveSupport::Callbacks 8 | include GeneratedInstanceMethods 9 | 10 | mixes_in_class_methods GeneratedClassMethods 11 | 12 | module GeneratedClassMethods 13 | def __callbacks; end 14 | def __callbacks=(value); end 15 | def __callbacks?; end 16 | end 17 | 18 | module GeneratedInstanceMethods 19 | def __callbacks; end 20 | def __callbacks?; end 21 | end 22 | end 23 | -------------------------------------------------------------------------------- /sorbet/rbi/dsl/active_support/rescuable.rbi: -------------------------------------------------------------------------------- 1 | # typed: true 2 | 3 | # DO NOT EDIT MANUALLY 4 | # This is an autogenerated file for dynamic methods in `ActiveSupport::Rescuable`. 5 | # Please instead update this file by running `bin/tapioca dsl ActiveSupport::Rescuable`. 6 | 7 | module ActiveSupport::Rescuable 8 | include GeneratedInstanceMethods 9 | 10 | mixes_in_class_methods GeneratedClassMethods 11 | 12 | module GeneratedClassMethods 13 | def rescue_handlers; end 14 | def rescue_handlers=(value); end 15 | def rescue_handlers?; end 16 | end 17 | 18 | module GeneratedInstanceMethods 19 | def rescue_handlers; end 20 | def rescue_handlers=(value); end 21 | def rescue_handlers?; end 22 | end 23 | end 24 | -------------------------------------------------------------------------------- /sorbet/rbi/dsl/active_support/testing/file_fixtures.rbi: -------------------------------------------------------------------------------- 1 | # typed: true 2 | 3 | # DO NOT EDIT MANUALLY 4 | # This is an autogenerated file for dynamic methods in `ActiveSupport::Testing::FileFixtures`. 5 | # Please instead update this file by running `bin/tapioca dsl ActiveSupport::Testing::FileFixtures`. 6 | 7 | module ActiveSupport::Testing::FileFixtures 8 | include GeneratedInstanceMethods 9 | 10 | mixes_in_class_methods GeneratedClassMethods 11 | 12 | module GeneratedClassMethods 13 | def file_fixture_path; end 14 | def file_fixture_path=(value); end 15 | def file_fixture_path?; end 16 | end 17 | 18 | module GeneratedInstanceMethods 19 | def file_fixture_path; end 20 | def file_fixture_path?; end 21 | end 22 | end 23 | -------------------------------------------------------------------------------- /sorbet/rbi/dsl/admin/members_controller.rbi: -------------------------------------------------------------------------------- 1 | # typed: true 2 | 3 | # DO NOT EDIT MANUALLY 4 | # This is an autogenerated file for dynamic methods in `Admin::MembersController`. 5 | # Please instead update this file by running `bin/tapioca dsl Admin::MembersController`. 6 | 7 | class Admin::MembersController 8 | sig { returns(HelperProxy) } 9 | def helpers; end 10 | 11 | module HelperMethods 12 | include ::ActionController::Base::HelperMethods 13 | include ::Super::FoundationController::HelperMethods 14 | include ::Super::SubstructureController::HelperMethods 15 | include ::Super::SitewideController::HelperMethods 16 | include ::Super::ViewHelper 17 | end 18 | 19 | class HelperProxy < ::ActionView::Base 20 | include HelperMethods 21 | end 22 | end 23 | -------------------------------------------------------------------------------- /sorbet/rbi/dsl/admin/ships_controller.rbi: -------------------------------------------------------------------------------- 1 | # typed: true 2 | 3 | # DO NOT EDIT MANUALLY 4 | # This is an autogenerated file for dynamic methods in `Admin::ShipsController`. 5 | # Please instead update this file by running `bin/tapioca dsl Admin::ShipsController`. 6 | 7 | class Admin::ShipsController 8 | sig { returns(HelperProxy) } 9 | def helpers; end 10 | 11 | module HelperMethods 12 | include ::ActionController::Base::HelperMethods 13 | include ::Super::FoundationController::HelperMethods 14 | include ::Super::SubstructureController::HelperMethods 15 | include ::Super::SitewideController::HelperMethods 16 | include ::Super::ViewHelper 17 | end 18 | 19 | class HelperProxy < ::ActionView::Base 20 | include HelperMethods 21 | end 22 | end 23 | -------------------------------------------------------------------------------- /sorbet/rbi/dsl/admin/sinks_controller.rbi: -------------------------------------------------------------------------------- 1 | # typed: true 2 | 3 | # DO NOT EDIT MANUALLY 4 | # This is an autogenerated file for dynamic methods in `Admin::SinksController`. 5 | # Please instead update this file by running `bin/tapioca dsl Admin::SinksController`. 6 | 7 | class Admin::SinksController 8 | sig { returns(HelperProxy) } 9 | def helpers; end 10 | 11 | module HelperMethods 12 | include ::ActionController::Base::HelperMethods 13 | include ::Super::FoundationController::HelperMethods 14 | include ::Super::SubstructureController::HelperMethods 15 | include ::Super::SitewideController::HelperMethods 16 | include ::Super::ViewHelper 17 | end 18 | 19 | class HelperProxy < ::ActionView::Base 20 | include HelperMethods 21 | end 22 | end 23 | -------------------------------------------------------------------------------- /sorbet/rbi/dsl/application_controller.rbi: -------------------------------------------------------------------------------- 1 | # typed: true 2 | 3 | # DO NOT EDIT MANUALLY 4 | # This is an autogenerated file for dynamic methods in `ApplicationController`. 5 | # Please instead update this file by running `bin/tapioca dsl ApplicationController`. 6 | 7 | class ApplicationController 8 | include GeneratedUrlHelpersModule 9 | include GeneratedPathHelpersModule 10 | 11 | sig { returns(HelperProxy) } 12 | def helpers; end 13 | 14 | module HelperMethods 15 | include ::ActionController::Base::HelperMethods 16 | include ::ApplicationHelper 17 | end 18 | 19 | class HelperProxy < ::ActionView::Base 20 | include HelperMethods 21 | end 22 | end 23 | -------------------------------------------------------------------------------- /sorbet/rbi/dsl/super/foundation_controller.rbi: -------------------------------------------------------------------------------- 1 | # typed: true 2 | 3 | # DO NOT EDIT MANUALLY 4 | # This is an autogenerated file for dynamic methods in `Super::FoundationController`. 5 | # Please instead update this file by running `bin/tapioca dsl Super::FoundationController`. 6 | 7 | class Super::FoundationController 8 | sig { returns(HelperProxy) } 9 | def helpers; end 10 | 11 | module HelperMethods 12 | include ::ActionController::Base::HelperMethods 13 | 14 | sig { returns(T.untyped) } 15 | def current_action; end 16 | end 17 | 18 | class HelperProxy < ::ActionView::Base 19 | include HelperMethods 20 | end 21 | end 22 | -------------------------------------------------------------------------------- /sorbet/rbi/dsl/super/view_controller.rbi: -------------------------------------------------------------------------------- 1 | # typed: true 2 | 3 | # DO NOT EDIT MANUALLY 4 | # This is an autogenerated file for dynamic methods in `Super::ViewController`. 5 | # Please instead update this file by running `bin/tapioca dsl Super::ViewController`. 6 | 7 | class Super::ViewController 8 | sig { returns(HelperProxy) } 9 | def helpers; end 10 | 11 | module HelperMethods 12 | include ::ActionController::Base::HelperMethods 13 | include ::Super::FoundationController::HelperMethods 14 | include ::Super::SubstructureController::HelperMethods 15 | include ::Super::SitewideController::HelperMethods 16 | include ::Super::ViewHelper 17 | end 18 | 19 | class HelperProxy < ::ActionView::Base 20 | include HelperMethods 21 | end 22 | end 23 | -------------------------------------------------------------------------------- /sorbet/rbi/gems/builder@3.2.4.rbi: -------------------------------------------------------------------------------- 1 | # typed: true 2 | 3 | # DO NOT EDIT MANUALLY 4 | # This is an autogenerated file for types exported from the `builder` gem. 5 | # Please instead update this file by running `bin/tapioca gem builder`. 6 | 7 | # THIS IS AN EMPTY RBI FILE. 8 | # see https://github.com/Shopify/tapioca#manually-requiring-parts-of-a-gem 9 | -------------------------------------------------------------------------------- /sorbet/rbi/gems/diff-lcs@1.5.0.rbi: -------------------------------------------------------------------------------- 1 | # typed: true 2 | 3 | # DO NOT EDIT MANUALLY 4 | # This is an autogenerated file for types exported from the `diff-lcs` gem. 5 | # Please instead update this file by running `bin/tapioca gem diff-lcs`. 6 | 7 | # THIS IS AN EMPTY RBI FILE. 8 | # see https://github.com/Shopify/tapioca#manually-requiring-parts-of-a-gem 9 | -------------------------------------------------------------------------------- /sorbet/rbi/gems/marcel@1.0.2.rbi: -------------------------------------------------------------------------------- 1 | # typed: true 2 | 3 | # DO NOT EDIT MANUALLY 4 | # This is an autogenerated file for types exported from the `marcel` gem. 5 | # Please instead update this file by running `bin/tapioca gem marcel`. 6 | 7 | # THIS IS AN EMPTY RBI FILE. 8 | # see https://github.com/Shopify/tapioca#manually-requiring-parts-of-a-gem 9 | -------------------------------------------------------------------------------- /sorbet/rbi/gems/mini_portile2@2.8.4.rbi: -------------------------------------------------------------------------------- 1 | # typed: true 2 | 3 | # DO NOT EDIT MANUALLY 4 | # This is an autogenerated file for types exported from the `mini_portile2` gem. 5 | # Please instead update this file by running `bin/tapioca gem mini_portile2`. 6 | 7 | # THIS IS AN EMPTY RBI FILE. 8 | # see https://github.com/Shopify/tapioca#manually-requiring-parts-of-a-gem 9 | -------------------------------------------------------------------------------- /sorbet/rbi/gems/net-pop@0.1.2.rbi: -------------------------------------------------------------------------------- 1 | # typed: true 2 | 3 | # DO NOT EDIT MANUALLY 4 | # This is an autogenerated file for types exported from the `net-pop` gem. 5 | # Please instead update this file by running `bin/tapioca gem net-pop`. 6 | 7 | # THIS IS AN EMPTY RBI FILE. 8 | # see https://github.com/Shopify/tapioca#manually-requiring-parts-of-a-gem 9 | -------------------------------------------------------------------------------- /sorbet/rbi/gems/net-smtp@0.3.3.rbi: -------------------------------------------------------------------------------- 1 | # typed: true 2 | 3 | # DO NOT EDIT MANUALLY 4 | # This is an autogenerated file for types exported from the `net-smtp` gem. 5 | # Please instead update this file by running `bin/tapioca gem net-smtp`. 6 | 7 | # THIS IS AN EMPTY RBI FILE. 8 | # see https://github.com/Shopify/tapioca#manually-requiring-parts-of-a-gem 9 | -------------------------------------------------------------------------------- /sorbet/rbi/gems/rails@7.0.7.2.rbi: -------------------------------------------------------------------------------- 1 | # typed: true 2 | 3 | # DO NOT EDIT MANUALLY 4 | # This is an autogenerated file for types exported from the `rails` gem. 5 | # Please instead update this file by running `bin/tapioca gem rails`. 6 | 7 | # THIS IS AN EMPTY RBI FILE. 8 | # see https://github.com/Shopify/tapioca#manually-requiring-parts-of-a-gem 9 | -------------------------------------------------------------------------------- /sorbet/rbi/gems/rubocop-performance@1.19.0.rbi: -------------------------------------------------------------------------------- 1 | # typed: true 2 | 3 | # DO NOT EDIT MANUALLY 4 | # This is an autogenerated file for types exported from the `rubocop-performance` gem. 5 | # Please instead update this file by running `bin/tapioca gem rubocop-performance`. 6 | 7 | # THIS IS AN EMPTY RBI FILE. 8 | # see https://github.com/Shopify/tapioca#manually-requiring-parts-of-a-gem 9 | -------------------------------------------------------------------------------- /sorbet/rbi/gems/ruby2_keywords@0.0.5.rbi: -------------------------------------------------------------------------------- 1 | # typed: true 2 | 3 | # DO NOT EDIT MANUALLY 4 | # This is an autogenerated file for types exported from the `ruby2_keywords` gem. 5 | # Please instead update this file by running `bin/tapioca gem ruby2_keywords`. 6 | 7 | # THIS IS AN EMPTY RBI FILE. 8 | # see https://github.com/Shopify/tapioca#manually-requiring-parts-of-a-gem 9 | -------------------------------------------------------------------------------- /sorbet/rbi/gems/simplecov_json_formatter@0.1.4.rbi: -------------------------------------------------------------------------------- 1 | # typed: true 2 | 3 | # DO NOT EDIT MANUALLY 4 | # This is an autogenerated file for types exported from the `simplecov_json_formatter` gem. 5 | # Please instead update this file by running `bin/tapioca gem simplecov_json_formatter`. 6 | 7 | # THIS IS AN EMPTY RBI FILE. 8 | # see https://github.com/Shopify/tapioca#manually-requiring-parts-of-a-gem 9 | -------------------------------------------------------------------------------- /sorbet/rbi/gems/spring@4.1.1.rbi: -------------------------------------------------------------------------------- 1 | # typed: true 2 | 3 | # DO NOT EDIT MANUALLY 4 | # This is an autogenerated file for types exported from the `spring` gem. 5 | # Please instead update this file by running `bin/tapioca gem spring`. 6 | 7 | # source://spring//lib/spring/version.rb#1 8 | module Spring; end 9 | 10 | # source://spring//lib/spring/version.rb#2 11 | Spring::VERSION = T.let(T.unsafe(nil), String) 12 | -------------------------------------------------------------------------------- /sorbet/rbi/gems/standard-custom@1.0.2.rbi: -------------------------------------------------------------------------------- 1 | # typed: true 2 | 3 | # DO NOT EDIT MANUALLY 4 | # This is an autogenerated file for types exported from the `standard-custom` gem. 5 | # Please instead update this file by running `bin/tapioca gem standard-custom`. 6 | 7 | # THIS IS AN EMPTY RBI FILE. 8 | # see https://github.com/Shopify/tapioca#manually-requiring-parts-of-a-gem 9 | -------------------------------------------------------------------------------- /sorbet/rbi/gems/standard-performance@1.2.0.rbi: -------------------------------------------------------------------------------- 1 | # typed: true 2 | 3 | # DO NOT EDIT MANUALLY 4 | # This is an autogenerated file for types exported from the `standard-performance` gem. 5 | # Please instead update this file by running `bin/tapioca gem standard-performance`. 6 | 7 | # THIS IS AN EMPTY RBI FILE. 8 | # see https://github.com/Shopify/tapioca#manually-requiring-parts-of-a-gem 9 | -------------------------------------------------------------------------------- /sorbet/rbi/gems/websocket-extensions@0.1.5.rbi: -------------------------------------------------------------------------------- 1 | # typed: true 2 | 3 | # DO NOT EDIT MANUALLY 4 | # This is an autogenerated file for types exported from the `websocket-extensions` gem. 5 | # Please instead update this file by running `bin/tapioca gem websocket-extensions`. 6 | 7 | # THIS IS AN EMPTY RBI FILE. 8 | # see https://github.com/Shopify/tapioca#manually-requiring-parts-of-a-gem 9 | -------------------------------------------------------------------------------- /sorbet/tapioca/config.yml: -------------------------------------------------------------------------------- 1 | gem: 2 | # Add your `gem` command parameters here: 3 | # 4 | # exclude: 5 | # - gem_name 6 | doc: false 7 | # workers: 5 8 | dsl: 9 | # Add your `dsl` command parameters here: 10 | # 11 | # exclude: 12 | # - SomeGeneratorName 13 | # workers: 5 14 | app_root: "test/dummy/rails70_sprockets4" 15 | -------------------------------------------------------------------------------- /sorbet/tapioca/require.rb: -------------------------------------------------------------------------------- 1 | # typed: strict 2 | # frozen_string_literal: true 3 | 4 | # Add your extra requires here (`bin/tapioca require` can be used to bootstrap this list) 5 | require "rails/all" 6 | require "rails/generators" 7 | require "mocha" 8 | require "mocha/mock" 9 | require "spring/version" 10 | -------------------------------------------------------------------------------- /super_test_engine/.gitignore: -------------------------------------------------------------------------------- 1 | /.bundle/ 2 | /.yardoc 3 | /_yardoc/ 4 | /coverage/ 5 | /doc/ 6 | /pkg/ 7 | /spec/reports/ 8 | /tmp/ 9 | -------------------------------------------------------------------------------- /super_test_engine/.travis.yml: -------------------------------------------------------------------------------- 1 | --- 2 | sudo: false 3 | language: ruby 4 | cache: bundler 5 | rvm: 6 | - 2.6.6 7 | before_install: gem install bundler -v 1.17.3 8 | -------------------------------------------------------------------------------- /super_test_engine/Gemfile: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | source "https://rubygems.org" 4 | 5 | git_source(:github) { |repo_name| "https://github.com/#{repo_name}" } 6 | 7 | # Specify your gem's dependencies in super_test_engine.gemspec 8 | gemspec 9 | -------------------------------------------------------------------------------- /super_test_engine/Gemfile.lock: -------------------------------------------------------------------------------- 1 | PATH 2 | remote: . 3 | specs: 4 | super_test_engine (0.1.1) 5 | 6 | GEM 7 | remote: https://rubygems.org/ 8 | specs: 9 | minitest (5.14.4) 10 | rake (13.0.3) 11 | 12 | PLATFORMS 13 | ruby 14 | 15 | DEPENDENCIES 16 | minitest (~> 5.0) 17 | rake 18 | super_test_engine! 19 | 20 | BUNDLED WITH 21 | 1.17.3 22 | -------------------------------------------------------------------------------- /super_test_engine/Rakefile: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require "bundler/gem_tasks" 4 | require "rake/testtask" 5 | 6 | Rake::TestTask.new(:test) do |t| 7 | t.libs << "test" 8 | t.libs << "lib" 9 | t.test_files = FileList["test/**/*_test.rb"] 10 | end 11 | 12 | task default: :test 13 | -------------------------------------------------------------------------------- /super_test_engine/bin/console: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | # frozen_string_literal: true 3 | 4 | require "bundler/setup" 5 | require "super_test_engine" 6 | 7 | # You can add fixtures and/or initialization code here to make experimenting 8 | # with your gem easier. You can also use a different console, if you like. 9 | 10 | # (If you use this, don't forget to add pry to your Gemfile!) 11 | # require "pry" 12 | # Pry.start 13 | 14 | require "irb" 15 | IRB.start(__FILE__) 16 | -------------------------------------------------------------------------------- /super_test_engine/bin/setup: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -euo pipefail 3 | IFS=$'\n\t' 4 | set -vx 5 | 6 | bundle install 7 | 8 | # Do any other automated setup that you need to do here 9 | -------------------------------------------------------------------------------- /super_test_engine/lib/super_test_engine.rb: -------------------------------------------------------------------------------- 1 | # typed: strict 2 | # frozen_string_literal: true 3 | 4 | module SuperTestEngine 5 | VERSION = "0.1.1" 6 | end 7 | -------------------------------------------------------------------------------- /super_test_engine/lib/super_test_engine/copy_app_templates/controllers/admin/sinks_controller.rb: -------------------------------------------------------------------------------- 1 | # typed: true 2 | 3 | class Admin::SinksController < AdminController 4 | private 5 | 6 | def model 7 | Sink 8 | end 9 | end 10 | -------------------------------------------------------------------------------- /super_test_engine/lib/super_test_engine/copy_app_templates/controllers/admin_controller.rb: -------------------------------------------------------------------------------- 1 | # typed: true 2 | 3 | class AdminController < Super::ApplicationController 4 | private 5 | 6 | def site_navigation 7 | Super::Navigation.new do |nav| 8 | nav.link(Member) 9 | nav.link(Ship) 10 | nav.menu("Other") do 11 | nav.rest 12 | end 13 | end 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /super_test_engine/lib/super_test_engine/copy_app_templates/migrations/20190216224956_create_members.rb: -------------------------------------------------------------------------------- 1 | # typed: true 2 | # frozen_string_literal: true 3 | 4 | class CreateMembers < ActiveRecord::Migration[5.0] 5 | def change 6 | create_table :members do |t| 7 | t.string :name, null: false 8 | t.string :rank, null: false 9 | t.string :position 10 | 11 | t.timestamps 12 | end 13 | end 14 | end 15 | -------------------------------------------------------------------------------- /super_test_engine/lib/super_test_engine/copy_app_templates/migrations/20190803143320_create_ships.rb: -------------------------------------------------------------------------------- 1 | # typed: true 2 | # frozen_string_literal: true 3 | 4 | class CreateShips < ActiveRecord::Migration[5.0] 5 | def change 6 | create_table :ships do |t| 7 | t.string :name 8 | t.string :registry 9 | t.string :class_name 10 | 11 | t.timestamps 12 | end 13 | end 14 | end 15 | -------------------------------------------------------------------------------- /super_test_engine/lib/super_test_engine/copy_app_templates/migrations/20190806014121_add_ship_to_members.rb: -------------------------------------------------------------------------------- 1 | # typed: true 2 | # frozen_string_literal: true 3 | 4 | class AddShipToMembers < ActiveRecord::Migration[5.0] 5 | def change 6 | add_reference :members, :ship, foreign_key: true 7 | end 8 | end 9 | -------------------------------------------------------------------------------- /super_test_engine/lib/super_test_engine/copy_app_templates/migrations/20191126050453_create_favorite_things.rb: -------------------------------------------------------------------------------- 1 | # typed: true 2 | # frozen_string_literal: true 3 | 4 | class CreateFavoriteThings < ActiveRecord::Migration[5.0] 5 | def change 6 | create_table :favorite_things do |t| 7 | t.references :member, null: false, foreign_key: true 8 | t.text :name 9 | 10 | t.timestamps 11 | end 12 | end 13 | end 14 | -------------------------------------------------------------------------------- /super_test_engine/lib/super_test_engine/copy_app_templates/migrations/20210411180249_create_sinks.rb: -------------------------------------------------------------------------------- 1 | # typed: true 2 | # frozen_string_literal: true 3 | 4 | class CreateSinks < ActiveRecord::Migration[5.0] 5 | def change 6 | create_table :sinks do |t| 7 | t.string :string_column 8 | t.text :text_column 9 | t.integer :integer_column 10 | t.bigint :bigint_column 11 | t.float :float_column 12 | t.decimal :decimal_column 13 | t.numeric :numeric_column 14 | t.datetime :datetime_column 15 | t.time :time_column 16 | t.date :date_column 17 | t.binary :binary_column 18 | t.boolean :boolean_column 19 | 20 | t.timestamps 21 | end 22 | end 23 | end 24 | -------------------------------------------------------------------------------- /super_test_engine/lib/super_test_engine/copy_app_templates/models/favorite_thing.rb: -------------------------------------------------------------------------------- 1 | # typed: strict 2 | # frozen_string_literal: true 3 | 4 | class FavoriteThing < ApplicationRecord 5 | belongs_to :member 6 | 7 | validates :name, presence: true 8 | 9 | accepts_nested_attributes_for :member 10 | end 11 | -------------------------------------------------------------------------------- /super_test_engine/lib/super_test_engine/copy_app_templates/models/ship.rb: -------------------------------------------------------------------------------- 1 | # typed: strict 2 | # frozen_string_literal: true 3 | 4 | class Ship < ApplicationRecord 5 | has_many :members 6 | end 7 | -------------------------------------------------------------------------------- /super_test_engine/lib/super_test_engine/copy_app_templates/models/sink.rb: -------------------------------------------------------------------------------- 1 | # typed: strict 2 | # frozen_string_literal: true 3 | 4 | class Sink < ApplicationRecord 5 | end 6 | -------------------------------------------------------------------------------- /super_test_engine/lib/super_test_engine/copy_app_templates/routes.rb: -------------------------------------------------------------------------------- 1 | # typed: strict 2 | # frozen_string_literal: true 3 | 4 | Rails.application.routes.draw do 5 | namespace :admin do 6 | resources :members do 7 | post :batch_noop, on: :collection 8 | resources :favorite_things, shallow: true 9 | end 10 | resources :ships 11 | resources :sinks 12 | 13 | root to: redirect("admin/members", status: 302) 14 | end 15 | 16 | root to: redirect("admin/members", status: 302) 17 | end 18 | -------------------------------------------------------------------------------- /super_test_engine/lib/super_test_engine/copy_app_templates/seeds.rb: -------------------------------------------------------------------------------- 1 | # typed: strict 2 | # frozen_string_literal: true 3 | 4 | require "super_test_engine/starfleet_seeder" 5 | StarfleetSeeder.seed 6 | -------------------------------------------------------------------------------- /super_test_engine/lib/super_test_engine/copy_app_templates/views/members/_favorite_things.html.erb: -------------------------------------------------------------------------------- 1 | <%= yield %> 2 | <% if @record.favorite_things.any? %> 3 | <%= render(Super::Panel.new) do %> 4 |

Favorite Things

5 | 6 | 11 | <% end %> 12 | <% end %> 13 | -------------------------------------------------------------------------------- /super_test_engine/lib/super_test_engine/fixtures/favorite_things.yml: -------------------------------------------------------------------------------- 1 | # Read about fixtures at https://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html 2 | 3 | tea: 4 | member: picard 5 | name: Tea, earl grey, hot 6 | 7 | spot: 8 | member: data 9 | name: Spot 10 | -------------------------------------------------------------------------------- /super_test_engine/lib/super_test_engine/fixtures/ships.yml: -------------------------------------------------------------------------------- 1 | --- 2 | uss_enterprise_d: 3 | name: USS Enterprise 4 | registry: NCC-1701-D 5 | class_name: Galaxy 6 | 7 | uss_jenolan: 8 | name: USS Jenolan 9 | registry: NCC-2010 10 | class_name: Sydney 11 | -------------------------------------------------------------------------------- /test/dummy/rails50_sprockets3/Rakefile: -------------------------------------------------------------------------------- 1 | # Add your own tasks in files placed in lib/tasks ending in .rake, 2 | # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake. 3 | 4 | require_relative 'config/application' 5 | 6 | Rails.application.load_tasks 7 | -------------------------------------------------------------------------------- /test/dummy/rails50_sprockets3/app/assets/config/manifest.js: -------------------------------------------------------------------------------- 1 | 2 | //= link_tree ../images 3 | //= link_directory ../javascripts .js 4 | //= link_directory ../stylesheets .css 5 | //= link super_manifest.js 6 | -------------------------------------------------------------------------------- /test/dummy/rails50_sprockets3/app/assets/images/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/superadministration/super/20fa9fc358349c83ea57674c78206c4d54615a14/test/dummy/rails50_sprockets3/app/assets/images/.keep -------------------------------------------------------------------------------- /test/dummy/rails50_sprockets3/app/assets/javascripts/application.js: -------------------------------------------------------------------------------- 1 | // This is a manifest file that'll be compiled into application.js, which will include all the files 2 | // listed below. 3 | // 4 | // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts, 5 | // or any plugin's vendor/assets/javascripts directory can be referenced here using a relative path. 6 | // 7 | // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the 8 | // compiled file. JavaScript code in this file should be added after the last require_* statement. 9 | // 10 | // Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details 11 | // about supported directives. 12 | // 13 | //= require_tree . 14 | -------------------------------------------------------------------------------- /test/dummy/rails50_sprockets3/app/assets/javascripts/channels/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/superadministration/super/20fa9fc358349c83ea57674c78206c4d54615a14/test/dummy/rails50_sprockets3/app/assets/javascripts/channels/.keep -------------------------------------------------------------------------------- /test/dummy/rails50_sprockets3/app/controllers/admin/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/superadministration/super/20fa9fc358349c83ea57674c78206c4d54615a14/test/dummy/rails50_sprockets3/app/controllers/admin/.keep -------------------------------------------------------------------------------- /test/dummy/rails50_sprockets3/app/controllers/admin/sinks_controller.rb: -------------------------------------------------------------------------------- 1 | class Admin::SinksController < AdminController 2 | private 3 | 4 | def model 5 | Sink 6 | end 7 | end 8 | -------------------------------------------------------------------------------- /test/dummy/rails50_sprockets3/app/controllers/admin_controller.rb: -------------------------------------------------------------------------------- 1 | class AdminController < Super::ApplicationController 2 | private 3 | 4 | def site_navigation 5 | Super::Navigation.new do |nav| 6 | nav.link(Member) 7 | nav.link(Ship) 8 | nav.menu("Other") do 9 | nav.rest 10 | end 11 | end 12 | end 13 | end 14 | -------------------------------------------------------------------------------- /test/dummy/rails50_sprockets3/app/controllers/application_controller.rb: -------------------------------------------------------------------------------- 1 | class ApplicationController < ActionController::Base 2 | protect_from_forgery with: :exception 3 | end 4 | -------------------------------------------------------------------------------- /test/dummy/rails50_sprockets3/app/controllers/concerns/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/superadministration/super/20fa9fc358349c83ea57674c78206c4d54615a14/test/dummy/rails50_sprockets3/app/controllers/concerns/.keep -------------------------------------------------------------------------------- /test/dummy/rails50_sprockets3/app/helpers/application_helper.rb: -------------------------------------------------------------------------------- 1 | module ApplicationHelper 2 | end 3 | -------------------------------------------------------------------------------- /test/dummy/rails50_sprockets3/app/jobs/application_job.rb: -------------------------------------------------------------------------------- 1 | class ApplicationJob < ActiveJob::Base 2 | end 3 | -------------------------------------------------------------------------------- /test/dummy/rails50_sprockets3/app/models/application_record.rb: -------------------------------------------------------------------------------- 1 | class ApplicationRecord < ActiveRecord::Base 2 | self.abstract_class = true 3 | end 4 | -------------------------------------------------------------------------------- /test/dummy/rails50_sprockets3/app/models/concerns/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/superadministration/super/20fa9fc358349c83ea57674c78206c4d54615a14/test/dummy/rails50_sprockets3/app/models/concerns/.keep -------------------------------------------------------------------------------- /test/dummy/rails50_sprockets3/app/models/favorite_thing.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | class FavoriteThing < ApplicationRecord 4 | belongs_to :member 5 | 6 | validates :name, presence: true 7 | 8 | accepts_nested_attributes_for :member 9 | end 10 | -------------------------------------------------------------------------------- /test/dummy/rails50_sprockets3/app/models/member.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | class Member < ApplicationRecord 4 | enum rank: { 5 | captain: "Captain", 6 | commander: "Commander", 7 | lieutenant_commander: "Lieutenant Commander", 8 | lieutenant: "Lieutenant", 9 | lieutenant_junior_grade: "Lieutenant Junior Grade", 10 | ensign: "Ensign", 11 | nco: "NCO", 12 | } 13 | 14 | belongs_to :ship 15 | has_many :favorite_things, dependent: :delete_all 16 | 17 | accepts_nested_attributes_for( 18 | :favorite_things, 19 | allow_destroy: true, 20 | reject_if: -> (record) { record[:name].blank? } 21 | ) 22 | 23 | validates :name, presence: true 24 | validates :rank, presence: true 25 | validates :position, presence: true 26 | end 27 | -------------------------------------------------------------------------------- /test/dummy/rails50_sprockets3/app/models/ship.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | class Ship < ApplicationRecord 4 | has_many :members 5 | end 6 | -------------------------------------------------------------------------------- /test/dummy/rails50_sprockets3/app/models/sink.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | class Sink < ApplicationRecord 4 | end 5 | -------------------------------------------------------------------------------- /test/dummy/rails50_sprockets3/app/views/admin/members/_favorite_things.html.erb: -------------------------------------------------------------------------------- 1 | <%= yield %> 2 | <% if @record.favorite_things.any? %> 3 | <%= render(Super::Panel.new) do %> 4 |

Favorite Things

5 | 6 | 11 | <% end %> 12 | <% end %> 13 | -------------------------------------------------------------------------------- /test/dummy/rails50_sprockets3/app/views/layouts/application.html.erb: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Dummy 5 | <%= csrf_meta_tags %> 6 | 7 | <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %> 8 | <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %> 9 | 10 | 11 | 12 | <%= yield %> 13 | 14 | 15 | -------------------------------------------------------------------------------- /test/dummy/rails50_sprockets3/bin/bundle: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__) 3 | load Gem.bin_path('bundler', 'bundle') 4 | -------------------------------------------------------------------------------- /test/dummy/rails50_sprockets3/bin/rails: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | APP_PATH = File.expand_path('../config/application', __dir__) 3 | require_relative '../config/boot' 4 | require 'rails/commands' 5 | -------------------------------------------------------------------------------- /test/dummy/rails50_sprockets3/bin/rake: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require_relative '../config/boot' 3 | require 'rake' 4 | Rake.application.run 5 | -------------------------------------------------------------------------------- /test/dummy/rails50_sprockets3/config.ru: -------------------------------------------------------------------------------- 1 | # This file is used by Rack-based servers to start the application. 2 | 3 | require_relative 'config/environment' 4 | 5 | run Rails.application 6 | -------------------------------------------------------------------------------- /test/dummy/rails50_sprockets3/config/boot.rb: -------------------------------------------------------------------------------- 1 | # Set up gems listed in the Gemfile. 2 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../../Gemfile', __dir__) 3 | 4 | require 'bundler/setup' if File.exist?(ENV['BUNDLE_GEMFILE']) 5 | $LOAD_PATH.unshift File.expand_path('../../../lib', __dir__) 6 | -------------------------------------------------------------------------------- /test/dummy/rails50_sprockets3/config/cable.yml: -------------------------------------------------------------------------------- 1 | development: 2 | adapter: async 3 | 4 | test: 5 | adapter: async 6 | 7 | production: 8 | adapter: redis 9 | url: redis://localhost:6379/1 10 | -------------------------------------------------------------------------------- /test/dummy/rails50_sprockets3/config/database.yml: -------------------------------------------------------------------------------- 1 | # SQLite version 3.x 2 | # gem install sqlite3 3 | # 4 | # Ensure the SQLite 3 gem is defined in your Gemfile 5 | # gem 'sqlite3' 6 | # 7 | default: &default 8 | adapter: sqlite3 9 | pool: 5 10 | timeout: 5000 11 | 12 | development: 13 | <<: *default 14 | database: db/development.sqlite3 15 | 16 | # Warning: The database defined as "test" will be erased and 17 | # re-generated from your development database when you run "rake". 18 | # Do not set this db to the same as development or production. 19 | test: 20 | <<: *default 21 | database: db/test.sqlite3 22 | 23 | production: 24 | <<: *default 25 | database: db/production.sqlite3 26 | -------------------------------------------------------------------------------- /test/dummy/rails50_sprockets3/config/environment.rb: -------------------------------------------------------------------------------- 1 | # Load the Rails application. 2 | require_relative 'application' 3 | 4 | # Initialize the Rails application. 5 | Rails.application.initialize! 6 | -------------------------------------------------------------------------------- /test/dummy/rails50_sprockets3/config/initializers/application_controller_renderer.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # ActiveSupport::Reloader.to_prepare do 4 | # ApplicationController.renderer.defaults.merge!( 5 | # http_host: 'example.org', 6 | # https: false 7 | # ) 8 | # end 9 | -------------------------------------------------------------------------------- /test/dummy/rails50_sprockets3/config/initializers/assets.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Version of your assets, change this if you want to expire all your assets. 4 | Rails.application.config.assets.version = '1.0' 5 | 6 | # Add additional assets to the asset load path 7 | # Rails.application.config.assets.paths << Emoji.images_path 8 | 9 | # Precompile additional assets. 10 | # application.js, application.css, and all non-JS/CSS in app/assets folder are already added. 11 | # Rails.application.config.assets.precompile += %w( search.js ) 12 | -------------------------------------------------------------------------------- /test/dummy/rails50_sprockets3/config/initializers/backtrace_silencers.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces. 4 | # Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ } 5 | 6 | # You can also remove all the silencers if you're trying to debug a problem that might stem from framework code. 7 | # Rails.backtrace_cleaner.remove_silencers! 8 | -------------------------------------------------------------------------------- /test/dummy/rails50_sprockets3/config/initializers/cookies_serializer.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Specify a serializer for the signed and encrypted cookie jars. 4 | # Valid options are :json, :marshal, and :hybrid. 5 | Rails.application.config.action_dispatch.cookies_serializer = :json 6 | -------------------------------------------------------------------------------- /test/dummy/rails50_sprockets3/config/initializers/filter_parameter_logging.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Configure sensitive parameters which will be filtered from the log file. 4 | Rails.application.config.filter_parameters += [:password] 5 | -------------------------------------------------------------------------------- /test/dummy/rails50_sprockets3/config/initializers/inflections.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Add new inflection rules using the following format. Inflections 4 | # are locale specific, and you may define rules for as many different 5 | # locales as you wish. All of these examples are active by default: 6 | # ActiveSupport::Inflector.inflections(:en) do |inflect| 7 | # inflect.plural /^(ox)$/i, '\1en' 8 | # inflect.singular /^(ox)en/i, '\1' 9 | # inflect.irregular 'person', 'people' 10 | # inflect.uncountable %w( fish sheep ) 11 | # end 12 | 13 | # These inflection rules are supported but not enabled by default: 14 | # ActiveSupport::Inflector.inflections(:en) do |inflect| 15 | # inflect.acronym 'RESTful' 16 | # end 17 | -------------------------------------------------------------------------------- /test/dummy/rails50_sprockets3/config/initializers/mime_types.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Add new mime types for use in respond_to blocks: 4 | # Mime::Type.register "text/richtext", :rtf 5 | -------------------------------------------------------------------------------- /test/dummy/rails50_sprockets3/config/initializers/session_store.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | Rails.application.config.session_store :cookie_store, key: '_dummy_session' 4 | -------------------------------------------------------------------------------- /test/dummy/rails50_sprockets3/config/initializers/super.rb: -------------------------------------------------------------------------------- 1 | Super.configuration do |c| 2 | c.title = "My Admin Site" 3 | end 4 | -------------------------------------------------------------------------------- /test/dummy/rails50_sprockets3/config/initializers/wrap_parameters.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # This file contains settings for ActionController::ParamsWrapper which 4 | # is enabled by default. 5 | 6 | # Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array. 7 | ActiveSupport.on_load(:action_controller) do 8 | wrap_parameters format: [:json] 9 | end 10 | 11 | # To enable root element in JSON for ActiveRecord objects. 12 | # ActiveSupport.on_load(:active_record) do 13 | # self.include_root_in_json = true 14 | # end 15 | -------------------------------------------------------------------------------- /test/dummy/rails50_sprockets3/config/locales/en.yml: -------------------------------------------------------------------------------- 1 | # Files in the config/locales directory are used for internationalization 2 | # and are automatically loaded by Rails. If you want to use locales other 3 | # than English, add the necessary files in this directory. 4 | # 5 | # To use the locales, use `I18n.t`: 6 | # 7 | # I18n.t 'hello' 8 | # 9 | # In views, this is aliased to just `t`: 10 | # 11 | # <%= t('hello') %> 12 | # 13 | # To use a different locale, set it with `I18n.locale`: 14 | # 15 | # I18n.locale = :es 16 | # 17 | # This would use the information in config/locales/es.yml. 18 | # 19 | # To learn more, please read the Rails Internationalization guide 20 | # available at http://guides.rubyonrails.org/i18n.html. 21 | 22 | en: 23 | hello: "Hello world" 24 | -------------------------------------------------------------------------------- /test/dummy/rails50_sprockets3/config/routes.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | Rails.application.routes.draw do 4 | namespace :admin do 5 | resources :members do 6 | post :batch_noop, on: :collection 7 | resources :favorite_things, shallow: true 8 | end 9 | resources :ships 10 | resources :sinks 11 | 12 | root to: redirect("admin/members", status: 302) 13 | end 14 | 15 | root to: redirect("admin/members", status: 302) 16 | end 17 | -------------------------------------------------------------------------------- /test/dummy/rails50_sprockets3/config/spring.rb: -------------------------------------------------------------------------------- 1 | %w( 2 | .ruby-version 3 | .rbenv-vars 4 | tmp/restart.txt 5 | tmp/caching-dev.txt 6 | ).each { |path| Spring.watch(path) } 7 | -------------------------------------------------------------------------------- /test/dummy/rails50_sprockets3/db/migrate/20190216224956_create_members.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | class CreateMembers < ActiveRecord::Migration[5.0] 4 | def change 5 | create_table :members do |t| 6 | t.string :name, null: false 7 | t.string :rank, null: false 8 | t.string :position 9 | 10 | t.timestamps 11 | end 12 | end 13 | end 14 | -------------------------------------------------------------------------------- /test/dummy/rails50_sprockets3/db/migrate/20190803143320_create_ships.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | class CreateShips < ActiveRecord::Migration[5.0] 4 | def change 5 | create_table :ships do |t| 6 | t.string :name 7 | t.string :registry 8 | t.string :class_name 9 | 10 | t.timestamps 11 | end 12 | end 13 | end 14 | -------------------------------------------------------------------------------- /test/dummy/rails50_sprockets3/db/migrate/20190806014121_add_ship_to_members.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | class AddShipToMembers < ActiveRecord::Migration[5.0] 4 | def change 5 | add_reference :members, :ship, foreign_key: true 6 | end 7 | end 8 | -------------------------------------------------------------------------------- /test/dummy/rails50_sprockets3/db/migrate/20191126050453_create_favorite_things.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | class CreateFavoriteThings < ActiveRecord::Migration[5.0] 4 | def change 5 | create_table :favorite_things do |t| 6 | t.references :member, null: false, foreign_key: true 7 | t.text :name 8 | 9 | t.timestamps 10 | end 11 | end 12 | end 13 | -------------------------------------------------------------------------------- /test/dummy/rails50_sprockets3/db/migrate/20210411180249_create_sinks.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | class CreateSinks < ActiveRecord::Migration[5.0] 4 | def change 5 | create_table :sinks do |t| 6 | t.string :string_column 7 | t.text :text_column 8 | t.integer :integer_column 9 | t.bigint :bigint_column 10 | t.float :float_column 11 | t.decimal :decimal_column 12 | t.numeric :numeric_column 13 | t.datetime :datetime_column 14 | t.time :time_column 15 | t.date :date_column 16 | t.binary :binary_column 17 | t.boolean :boolean_column 18 | 19 | t.timestamps 20 | end 21 | end 22 | end 23 | -------------------------------------------------------------------------------- /test/dummy/rails50_sprockets3/db/seeds.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require "super_test_engine/starfleet_seeder" 4 | StarfleetSeeder.seed 5 | -------------------------------------------------------------------------------- /test/dummy/rails50_sprockets3/lib/assets/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/superadministration/super/20fa9fc358349c83ea57674c78206c4d54615a14/test/dummy/rails50_sprockets3/lib/assets/.keep -------------------------------------------------------------------------------- /test/dummy/rails50_sprockets3/log/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/superadministration/super/20fa9fc358349c83ea57674c78206c4d54615a14/test/dummy/rails50_sprockets3/log/.keep -------------------------------------------------------------------------------- /test/dummy/rails50_sprockets3/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/superadministration/super/20fa9fc358349c83ea57674c78206c4d54615a14/test/dummy/rails50_sprockets3/public/favicon.ico -------------------------------------------------------------------------------- /test/dummy/rails51_sprockets3/Rakefile: -------------------------------------------------------------------------------- 1 | # Add your own tasks in files placed in lib/tasks ending in .rake, 2 | # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake. 3 | 4 | require_relative 'config/application' 5 | 6 | Rails.application.load_tasks 7 | -------------------------------------------------------------------------------- /test/dummy/rails51_sprockets3/app/assets/config/manifest.js: -------------------------------------------------------------------------------- 1 | 2 | //= link_tree ../images 3 | //= link_directory ../javascripts .js 4 | //= link_directory ../stylesheets .css 5 | //= link super_manifest.js 6 | -------------------------------------------------------------------------------- /test/dummy/rails51_sprockets3/app/assets/images/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/superadministration/super/20fa9fc358349c83ea57674c78206c4d54615a14/test/dummy/rails51_sprockets3/app/assets/images/.keep -------------------------------------------------------------------------------- /test/dummy/rails51_sprockets3/app/assets/javascripts/application.js: -------------------------------------------------------------------------------- 1 | // This is a manifest file that'll be compiled into application.js, which will include all the files 2 | // listed below. 3 | // 4 | // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts, 5 | // or any plugin's vendor/assets/javascripts directory can be referenced here using a relative path. 6 | // 7 | // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the 8 | // compiled file. JavaScript code in this file should be added after the last require_* statement. 9 | // 10 | // Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details 11 | // about supported directives. 12 | // 13 | //= require_tree . 14 | -------------------------------------------------------------------------------- /test/dummy/rails51_sprockets3/app/assets/javascripts/channels/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/superadministration/super/20fa9fc358349c83ea57674c78206c4d54615a14/test/dummy/rails51_sprockets3/app/assets/javascripts/channels/.keep -------------------------------------------------------------------------------- /test/dummy/rails51_sprockets3/app/controllers/admin/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/superadministration/super/20fa9fc358349c83ea57674c78206c4d54615a14/test/dummy/rails51_sprockets3/app/controllers/admin/.keep -------------------------------------------------------------------------------- /test/dummy/rails51_sprockets3/app/controllers/admin/sinks_controller.rb: -------------------------------------------------------------------------------- 1 | class Admin::SinksController < AdminController 2 | private 3 | 4 | def model 5 | Sink 6 | end 7 | end 8 | -------------------------------------------------------------------------------- /test/dummy/rails51_sprockets3/app/controllers/admin_controller.rb: -------------------------------------------------------------------------------- 1 | class AdminController < Super::ApplicationController 2 | private 3 | 4 | def site_navigation 5 | Super::Navigation.new do |nav| 6 | nav.link(Member) 7 | nav.link(Ship) 8 | nav.menu("Other") do 9 | nav.rest 10 | end 11 | end 12 | end 13 | end 14 | -------------------------------------------------------------------------------- /test/dummy/rails51_sprockets3/app/controllers/application_controller.rb: -------------------------------------------------------------------------------- 1 | class ApplicationController < ActionController::Base 2 | protect_from_forgery with: :exception 3 | end 4 | -------------------------------------------------------------------------------- /test/dummy/rails51_sprockets3/app/controllers/concerns/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/superadministration/super/20fa9fc358349c83ea57674c78206c4d54615a14/test/dummy/rails51_sprockets3/app/controllers/concerns/.keep -------------------------------------------------------------------------------- /test/dummy/rails51_sprockets3/app/helpers/application_helper.rb: -------------------------------------------------------------------------------- 1 | module ApplicationHelper 2 | end 3 | -------------------------------------------------------------------------------- /test/dummy/rails51_sprockets3/app/jobs/application_job.rb: -------------------------------------------------------------------------------- 1 | class ApplicationJob < ActiveJob::Base 2 | end 3 | -------------------------------------------------------------------------------- /test/dummy/rails51_sprockets3/app/models/application_record.rb: -------------------------------------------------------------------------------- 1 | class ApplicationRecord < ActiveRecord::Base 2 | self.abstract_class = true 3 | end 4 | -------------------------------------------------------------------------------- /test/dummy/rails51_sprockets3/app/models/concerns/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/superadministration/super/20fa9fc358349c83ea57674c78206c4d54615a14/test/dummy/rails51_sprockets3/app/models/concerns/.keep -------------------------------------------------------------------------------- /test/dummy/rails51_sprockets3/app/models/favorite_thing.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | class FavoriteThing < ApplicationRecord 4 | belongs_to :member 5 | 6 | validates :name, presence: true 7 | 8 | accepts_nested_attributes_for :member 9 | end 10 | -------------------------------------------------------------------------------- /test/dummy/rails51_sprockets3/app/models/member.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | class Member < ApplicationRecord 4 | enum rank: { 5 | captain: "Captain", 6 | commander: "Commander", 7 | lieutenant_commander: "Lieutenant Commander", 8 | lieutenant: "Lieutenant", 9 | lieutenant_junior_grade: "Lieutenant Junior Grade", 10 | ensign: "Ensign", 11 | nco: "NCO", 12 | } 13 | 14 | belongs_to :ship 15 | has_many :favorite_things, dependent: :delete_all 16 | 17 | accepts_nested_attributes_for( 18 | :favorite_things, 19 | allow_destroy: true, 20 | reject_if: -> (record) { record[:name].blank? } 21 | ) 22 | 23 | validates :name, presence: true 24 | validates :rank, presence: true 25 | validates :position, presence: true 26 | end 27 | -------------------------------------------------------------------------------- /test/dummy/rails51_sprockets3/app/models/ship.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | class Ship < ApplicationRecord 4 | has_many :members 5 | end 6 | -------------------------------------------------------------------------------- /test/dummy/rails51_sprockets3/app/models/sink.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | class Sink < ApplicationRecord 4 | end 5 | -------------------------------------------------------------------------------- /test/dummy/rails51_sprockets3/app/views/admin/members/_favorite_things.html.erb: -------------------------------------------------------------------------------- 1 | <%= yield %> 2 | <% if @record.favorite_things.any? %> 3 | <%= render(Super::Panel.new) do %> 4 |

Favorite Things

5 | 6 | 11 | <% end %> 12 | <% end %> 13 | -------------------------------------------------------------------------------- /test/dummy/rails51_sprockets3/app/views/layouts/application.html.erb: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Dummy 5 | <%= csrf_meta_tags %> 6 | 7 | <%= stylesheet_link_tag 'application', media: 'all' %> 8 | <%= javascript_include_tag 'application' %> 9 | 10 | 11 | 12 | <%= yield %> 13 | 14 | 15 | -------------------------------------------------------------------------------- /test/dummy/rails51_sprockets3/bin/bundle: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__) 3 | load Gem.bin_path('bundler', 'bundle') 4 | -------------------------------------------------------------------------------- /test/dummy/rails51_sprockets3/bin/rails: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | APP_PATH = File.expand_path('../config/application', __dir__) 3 | require_relative '../config/boot' 4 | require 'rails/commands' 5 | -------------------------------------------------------------------------------- /test/dummy/rails51_sprockets3/bin/rake: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require_relative '../config/boot' 3 | require 'rake' 4 | Rake.application.run 5 | -------------------------------------------------------------------------------- /test/dummy/rails51_sprockets3/bin/yarn: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | VENDOR_PATH = File.expand_path('..', __dir__) 3 | Dir.chdir(VENDOR_PATH) do 4 | begin 5 | exec "yarnpkg #{ARGV.join(" ")}" 6 | rescue Errno::ENOENT 7 | $stderr.puts "Yarn executable was not detected in the system." 8 | $stderr.puts "Download Yarn at https://yarnpkg.com/en/docs/install" 9 | exit 1 10 | end 11 | end 12 | -------------------------------------------------------------------------------- /test/dummy/rails51_sprockets3/config.ru: -------------------------------------------------------------------------------- 1 | # This file is used by Rack-based servers to start the application. 2 | 3 | require_relative 'config/environment' 4 | 5 | run Rails.application 6 | -------------------------------------------------------------------------------- /test/dummy/rails51_sprockets3/config/boot.rb: -------------------------------------------------------------------------------- 1 | # Set up gems listed in the Gemfile. 2 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../../Gemfile', __dir__) 3 | 4 | require 'bundler/setup' if File.exist?(ENV['BUNDLE_GEMFILE']) 5 | $LOAD_PATH.unshift File.expand_path('../../../lib', __dir__) 6 | -------------------------------------------------------------------------------- /test/dummy/rails51_sprockets3/config/cable.yml: -------------------------------------------------------------------------------- 1 | development: 2 | adapter: async 3 | 4 | test: 5 | adapter: async 6 | 7 | production: 8 | adapter: redis 9 | url: redis://localhost:6379/1 10 | channel_prefix: dummy_production 11 | -------------------------------------------------------------------------------- /test/dummy/rails51_sprockets3/config/database.yml: -------------------------------------------------------------------------------- 1 | # SQLite version 3.x 2 | # gem install sqlite3 3 | # 4 | # Ensure the SQLite 3 gem is defined in your Gemfile 5 | # gem 'sqlite3' 6 | # 7 | default: &default 8 | adapter: sqlite3 9 | pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> 10 | timeout: 5000 11 | 12 | development: 13 | <<: *default 14 | database: db/development.sqlite3 15 | 16 | # Warning: The database defined as "test" will be erased and 17 | # re-generated from your development database when you run "rake". 18 | # Do not set this db to the same as development or production. 19 | test: 20 | <<: *default 21 | database: db/test.sqlite3 22 | 23 | production: 24 | <<: *default 25 | database: db/production.sqlite3 26 | -------------------------------------------------------------------------------- /test/dummy/rails51_sprockets3/config/environment.rb: -------------------------------------------------------------------------------- 1 | # Load the Rails application. 2 | require_relative 'application' 3 | 4 | # Initialize the Rails application. 5 | Rails.application.initialize! 6 | -------------------------------------------------------------------------------- /test/dummy/rails51_sprockets3/config/initializers/application_controller_renderer.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # ActiveSupport::Reloader.to_prepare do 4 | # ApplicationController.renderer.defaults.merge!( 5 | # http_host: 'example.org', 6 | # https: false 7 | # ) 8 | # end 9 | -------------------------------------------------------------------------------- /test/dummy/rails51_sprockets3/config/initializers/assets.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Version of your assets, change this if you want to expire all your assets. 4 | Rails.application.config.assets.version = '1.0' 5 | 6 | # Add additional assets to the asset load path. 7 | # Rails.application.config.assets.paths << Emoji.images_path 8 | # Add Yarn node_modules folder to the asset load path. 9 | Rails.application.config.assets.paths << Rails.root.join('node_modules') 10 | 11 | # Precompile additional assets. 12 | # application.js, application.css, and all non-JS/CSS in the app/assets 13 | # folder are already added. 14 | # Rails.application.config.assets.precompile += %w( admin.js admin.css ) 15 | -------------------------------------------------------------------------------- /test/dummy/rails51_sprockets3/config/initializers/backtrace_silencers.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces. 4 | # Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ } 5 | 6 | # You can also remove all the silencers if you're trying to debug a problem that might stem from framework code. 7 | # Rails.backtrace_cleaner.remove_silencers! 8 | -------------------------------------------------------------------------------- /test/dummy/rails51_sprockets3/config/initializers/cookies_serializer.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Specify a serializer for the signed and encrypted cookie jars. 4 | # Valid options are :json, :marshal, and :hybrid. 5 | Rails.application.config.action_dispatch.cookies_serializer = :json 6 | -------------------------------------------------------------------------------- /test/dummy/rails51_sprockets3/config/initializers/filter_parameter_logging.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Configure sensitive parameters which will be filtered from the log file. 4 | Rails.application.config.filter_parameters += [:password] 5 | -------------------------------------------------------------------------------- /test/dummy/rails51_sprockets3/config/initializers/inflections.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Add new inflection rules using the following format. Inflections 4 | # are locale specific, and you may define rules for as many different 5 | # locales as you wish. All of these examples are active by default: 6 | # ActiveSupport::Inflector.inflections(:en) do |inflect| 7 | # inflect.plural /^(ox)$/i, '\1en' 8 | # inflect.singular /^(ox)en/i, '\1' 9 | # inflect.irregular 'person', 'people' 10 | # inflect.uncountable %w( fish sheep ) 11 | # end 12 | 13 | # These inflection rules are supported but not enabled by default: 14 | # ActiveSupport::Inflector.inflections(:en) do |inflect| 15 | # inflect.acronym 'RESTful' 16 | # end 17 | -------------------------------------------------------------------------------- /test/dummy/rails51_sprockets3/config/initializers/mime_types.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Add new mime types for use in respond_to blocks: 4 | # Mime::Type.register "text/richtext", :rtf 5 | -------------------------------------------------------------------------------- /test/dummy/rails51_sprockets3/config/initializers/super.rb: -------------------------------------------------------------------------------- 1 | Super.configuration do |c| 2 | c.title = "My Admin Site" 3 | end 4 | -------------------------------------------------------------------------------- /test/dummy/rails51_sprockets3/config/initializers/wrap_parameters.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # This file contains settings for ActionController::ParamsWrapper which 4 | # is enabled by default. 5 | 6 | # Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array. 7 | ActiveSupport.on_load(:action_controller) do 8 | wrap_parameters format: [:json] 9 | end 10 | 11 | # To enable root element in JSON for ActiveRecord objects. 12 | # ActiveSupport.on_load(:active_record) do 13 | # self.include_root_in_json = true 14 | # end 15 | -------------------------------------------------------------------------------- /test/dummy/rails51_sprockets3/config/routes.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | Rails.application.routes.draw do 4 | namespace :admin do 5 | resources :members do 6 | post :batch_noop, on: :collection 7 | resources :favorite_things, shallow: true 8 | end 9 | resources :ships 10 | resources :sinks 11 | 12 | root to: redirect("admin/members", status: 302) 13 | end 14 | 15 | root to: redirect("admin/members", status: 302) 16 | end 17 | -------------------------------------------------------------------------------- /test/dummy/rails51_sprockets3/config/spring.rb: -------------------------------------------------------------------------------- 1 | %w( 2 | .ruby-version 3 | .rbenv-vars 4 | tmp/restart.txt 5 | tmp/caching-dev.txt 6 | ).each { |path| Spring.watch(path) } 7 | -------------------------------------------------------------------------------- /test/dummy/rails51_sprockets3/db/migrate/20190216224956_create_members.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | class CreateMembers < ActiveRecord::Migration[5.0] 4 | def change 5 | create_table :members do |t| 6 | t.string :name, null: false 7 | t.string :rank, null: false 8 | t.string :position 9 | 10 | t.timestamps 11 | end 12 | end 13 | end 14 | -------------------------------------------------------------------------------- /test/dummy/rails51_sprockets3/db/migrate/20190803143320_create_ships.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | class CreateShips < ActiveRecord::Migration[5.0] 4 | def change 5 | create_table :ships do |t| 6 | t.string :name 7 | t.string :registry 8 | t.string :class_name 9 | 10 | t.timestamps 11 | end 12 | end 13 | end 14 | -------------------------------------------------------------------------------- /test/dummy/rails51_sprockets3/db/migrate/20190806014121_add_ship_to_members.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | class AddShipToMembers < ActiveRecord::Migration[5.0] 4 | def change 5 | add_reference :members, :ship, foreign_key: true 6 | end 7 | end 8 | -------------------------------------------------------------------------------- /test/dummy/rails51_sprockets3/db/migrate/20191126050453_create_favorite_things.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | class CreateFavoriteThings < ActiveRecord::Migration[5.0] 4 | def change 5 | create_table :favorite_things do |t| 6 | t.references :member, null: false, foreign_key: true 7 | t.text :name 8 | 9 | t.timestamps 10 | end 11 | end 12 | end 13 | -------------------------------------------------------------------------------- /test/dummy/rails51_sprockets3/db/migrate/20210411180249_create_sinks.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | class CreateSinks < ActiveRecord::Migration[5.0] 4 | def change 5 | create_table :sinks do |t| 6 | t.string :string_column 7 | t.text :text_column 8 | t.integer :integer_column 9 | t.bigint :bigint_column 10 | t.float :float_column 11 | t.decimal :decimal_column 12 | t.numeric :numeric_column 13 | t.datetime :datetime_column 14 | t.time :time_column 15 | t.date :date_column 16 | t.binary :binary_column 17 | t.boolean :boolean_column 18 | 19 | t.timestamps 20 | end 21 | end 22 | end 23 | -------------------------------------------------------------------------------- /test/dummy/rails51_sprockets3/db/seeds.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require "super_test_engine/starfleet_seeder" 4 | StarfleetSeeder.seed 5 | -------------------------------------------------------------------------------- /test/dummy/rails51_sprockets3/lib/assets/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/superadministration/super/20fa9fc358349c83ea57674c78206c4d54615a14/test/dummy/rails51_sprockets3/lib/assets/.keep -------------------------------------------------------------------------------- /test/dummy/rails51_sprockets3/log/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/superadministration/super/20fa9fc358349c83ea57674c78206c4d54615a14/test/dummy/rails51_sprockets3/log/.keep -------------------------------------------------------------------------------- /test/dummy/rails51_sprockets3/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "dummy", 3 | "private": true, 4 | "dependencies": {} 5 | } 6 | -------------------------------------------------------------------------------- /test/dummy/rails51_sprockets3/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/superadministration/super/20fa9fc358349c83ea57674c78206c4d54615a14/test/dummy/rails51_sprockets3/public/favicon.ico -------------------------------------------------------------------------------- /test/dummy/rails52_sprockets4/Rakefile: -------------------------------------------------------------------------------- 1 | # Add your own tasks in files placed in lib/tasks ending in .rake, 2 | # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake. 3 | 4 | require_relative 'config/application' 5 | 6 | Rails.application.load_tasks 7 | -------------------------------------------------------------------------------- /test/dummy/rails52_sprockets4/app/assets/config/manifest.js: -------------------------------------------------------------------------------- 1 | //= link_tree ../images 2 | //= link_directory ../javascripts .js 3 | //= link_directory ../stylesheets .css 4 | //= link super_manifest.js 5 | -------------------------------------------------------------------------------- /test/dummy/rails52_sprockets4/app/assets/images/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/superadministration/super/20fa9fc358349c83ea57674c78206c4d54615a14/test/dummy/rails52_sprockets4/app/assets/images/.keep -------------------------------------------------------------------------------- /test/dummy/rails52_sprockets4/app/controllers/admin/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/superadministration/super/20fa9fc358349c83ea57674c78206c4d54615a14/test/dummy/rails52_sprockets4/app/controllers/admin/.keep -------------------------------------------------------------------------------- /test/dummy/rails52_sprockets4/app/controllers/admin/sinks_controller.rb: -------------------------------------------------------------------------------- 1 | class Admin::SinksController < AdminController 2 | private 3 | 4 | def model 5 | Sink 6 | end 7 | end 8 | -------------------------------------------------------------------------------- /test/dummy/rails52_sprockets4/app/controllers/admin_controller.rb: -------------------------------------------------------------------------------- 1 | class AdminController < Super::ApplicationController 2 | private 3 | 4 | def site_navigation 5 | Super::Navigation.new do |nav| 6 | nav.link(Member) 7 | nav.link(Ship) 8 | nav.menu("Other") do 9 | nav.rest 10 | end 11 | end 12 | end 13 | end 14 | -------------------------------------------------------------------------------- /test/dummy/rails52_sprockets4/app/controllers/application_controller.rb: -------------------------------------------------------------------------------- 1 | class ApplicationController < ActionController::Base 2 | end 3 | -------------------------------------------------------------------------------- /test/dummy/rails52_sprockets4/app/controllers/concerns/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/superadministration/super/20fa9fc358349c83ea57674c78206c4d54615a14/test/dummy/rails52_sprockets4/app/controllers/concerns/.keep -------------------------------------------------------------------------------- /test/dummy/rails52_sprockets4/app/helpers/application_helper.rb: -------------------------------------------------------------------------------- 1 | module ApplicationHelper 2 | end 3 | -------------------------------------------------------------------------------- /test/dummy/rails52_sprockets4/app/jobs/application_job.rb: -------------------------------------------------------------------------------- 1 | class ApplicationJob < ActiveJob::Base 2 | end 3 | -------------------------------------------------------------------------------- /test/dummy/rails52_sprockets4/app/models/application_record.rb: -------------------------------------------------------------------------------- 1 | class ApplicationRecord < ActiveRecord::Base 2 | self.abstract_class = true 3 | end 4 | -------------------------------------------------------------------------------- /test/dummy/rails52_sprockets4/app/models/concerns/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/superadministration/super/20fa9fc358349c83ea57674c78206c4d54615a14/test/dummy/rails52_sprockets4/app/models/concerns/.keep -------------------------------------------------------------------------------- /test/dummy/rails52_sprockets4/app/models/favorite_thing.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | class FavoriteThing < ApplicationRecord 4 | belongs_to :member 5 | 6 | validates :name, presence: true 7 | 8 | accepts_nested_attributes_for :member 9 | end 10 | -------------------------------------------------------------------------------- /test/dummy/rails52_sprockets4/app/models/member.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | class Member < ApplicationRecord 4 | enum rank: { 5 | captain: "Captain", 6 | commander: "Commander", 7 | lieutenant_commander: "Lieutenant Commander", 8 | lieutenant: "Lieutenant", 9 | lieutenant_junior_grade: "Lieutenant Junior Grade", 10 | ensign: "Ensign", 11 | nco: "NCO", 12 | } 13 | 14 | belongs_to :ship 15 | has_many :favorite_things, dependent: :delete_all 16 | 17 | accepts_nested_attributes_for( 18 | :favorite_things, 19 | allow_destroy: true, 20 | reject_if: -> (record) { record[:name].blank? } 21 | ) 22 | 23 | validates :name, presence: true 24 | validates :rank, presence: true 25 | validates :position, presence: true 26 | end 27 | -------------------------------------------------------------------------------- /test/dummy/rails52_sprockets4/app/models/ship.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | class Ship < ApplicationRecord 4 | has_many :members 5 | end 6 | -------------------------------------------------------------------------------- /test/dummy/rails52_sprockets4/app/models/sink.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | class Sink < ApplicationRecord 4 | end 5 | -------------------------------------------------------------------------------- /test/dummy/rails52_sprockets4/app/views/admin/members/_favorite_things.html.erb: -------------------------------------------------------------------------------- 1 | <%= yield %> 2 | <% if @record.favorite_things.any? %> 3 | <%= render(Super::Panel.new) do %> 4 |

Favorite Things

5 | 6 | 11 | <% end %> 12 | <% end %> 13 | -------------------------------------------------------------------------------- /test/dummy/rails52_sprockets4/app/views/layouts/application.html.erb: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Dummy 5 | <%= csrf_meta_tags %> 6 | <%= csp_meta_tag %> 7 | 8 | <%= stylesheet_link_tag 'application', media: 'all' %> 9 | <%= javascript_include_tag 'application' %> 10 | 11 | 12 | 13 | <%= yield %> 14 | 15 | 16 | -------------------------------------------------------------------------------- /test/dummy/rails52_sprockets4/bin/bundle: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__) 3 | load Gem.bin_path('bundler', 'bundle') 4 | -------------------------------------------------------------------------------- /test/dummy/rails52_sprockets4/bin/rails: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | APP_PATH = File.expand_path('../config/application', __dir__) 3 | require_relative '../config/boot' 4 | require 'rails/commands' 5 | -------------------------------------------------------------------------------- /test/dummy/rails52_sprockets4/bin/rake: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require_relative '../config/boot' 3 | require 'rake' 4 | Rake.application.run 5 | -------------------------------------------------------------------------------- /test/dummy/rails52_sprockets4/bin/yarn: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | APP_ROOT = File.expand_path('..', __dir__) 3 | Dir.chdir(APP_ROOT) do 4 | begin 5 | exec "yarnpkg", *ARGV 6 | rescue Errno::ENOENT 7 | $stderr.puts "Yarn executable was not detected in the system." 8 | $stderr.puts "Download Yarn at https://yarnpkg.com/en/docs/install" 9 | exit 1 10 | end 11 | end 12 | -------------------------------------------------------------------------------- /test/dummy/rails52_sprockets4/config.ru: -------------------------------------------------------------------------------- 1 | # This file is used by Rack-based servers to start the application. 2 | 3 | require_relative 'config/environment' 4 | 5 | run Rails.application 6 | -------------------------------------------------------------------------------- /test/dummy/rails52_sprockets4/config/boot.rb: -------------------------------------------------------------------------------- 1 | # Set up gems listed in the Gemfile. 2 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../../Gemfile', __dir__) 3 | 4 | require 'bundler/setup' if File.exist?(ENV['BUNDLE_GEMFILE']) 5 | $LOAD_PATH.unshift File.expand_path('../../../lib', __dir__) 6 | -------------------------------------------------------------------------------- /test/dummy/rails52_sprockets4/config/database.yml: -------------------------------------------------------------------------------- 1 | # SQLite version 3.x 2 | # gem install sqlite3 3 | # 4 | # Ensure the SQLite 3 gem is defined in your Gemfile 5 | # gem 'sqlite3' 6 | # 7 | default: &default 8 | adapter: sqlite3 9 | pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> 10 | timeout: 5000 11 | 12 | development: 13 | <<: *default 14 | database: db/development.sqlite3 15 | 16 | # Warning: The database defined as "test" will be erased and 17 | # re-generated from your development database when you run "rake". 18 | # Do not set this db to the same as development or production. 19 | test: 20 | <<: *default 21 | database: db/test.sqlite3 22 | 23 | production: 24 | <<: *default 25 | database: db/production.sqlite3 26 | -------------------------------------------------------------------------------- /test/dummy/rails52_sprockets4/config/environment.rb: -------------------------------------------------------------------------------- 1 | # Load the Rails application. 2 | require_relative 'application' 3 | 4 | # Initialize the Rails application. 5 | Rails.application.initialize! 6 | -------------------------------------------------------------------------------- /test/dummy/rails52_sprockets4/config/initializers/application_controller_renderer.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # ActiveSupport::Reloader.to_prepare do 4 | # ApplicationController.renderer.defaults.merge!( 5 | # http_host: 'example.org', 6 | # https: false 7 | # ) 8 | # end 9 | -------------------------------------------------------------------------------- /test/dummy/rails52_sprockets4/config/initializers/assets.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Version of your assets, change this if you want to expire all your assets. 4 | Rails.application.config.assets.version = '1.0' 5 | 6 | # Add additional assets to the asset load path. 7 | # Rails.application.config.assets.paths << Emoji.images_path 8 | # Add Yarn node_modules folder to the asset load path. 9 | Rails.application.config.assets.paths << Rails.root.join('node_modules') 10 | 11 | # Precompile additional assets. 12 | # application.js, application.css, and all non-JS/CSS in the app/assets 13 | # folder are already added. 14 | # Rails.application.config.assets.precompile += %w( admin.js admin.css ) 15 | -------------------------------------------------------------------------------- /test/dummy/rails52_sprockets4/config/initializers/backtrace_silencers.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces. 4 | # Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ } 5 | 6 | # You can also remove all the silencers if you're trying to debug a problem that might stem from framework code. 7 | # Rails.backtrace_cleaner.remove_silencers! 8 | -------------------------------------------------------------------------------- /test/dummy/rails52_sprockets4/config/initializers/cookies_serializer.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Specify a serializer for the signed and encrypted cookie jars. 4 | # Valid options are :json, :marshal, and :hybrid. 5 | Rails.application.config.action_dispatch.cookies_serializer = :json 6 | -------------------------------------------------------------------------------- /test/dummy/rails52_sprockets4/config/initializers/filter_parameter_logging.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Configure sensitive parameters which will be filtered from the log file. 4 | Rails.application.config.filter_parameters += [:password] 5 | -------------------------------------------------------------------------------- /test/dummy/rails52_sprockets4/config/initializers/inflections.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Add new inflection rules using the following format. Inflections 4 | # are locale specific, and you may define rules for as many different 5 | # locales as you wish. All of these examples are active by default: 6 | # ActiveSupport::Inflector.inflections(:en) do |inflect| 7 | # inflect.plural /^(ox)$/i, '\1en' 8 | # inflect.singular /^(ox)en/i, '\1' 9 | # inflect.irregular 'person', 'people' 10 | # inflect.uncountable %w( fish sheep ) 11 | # end 12 | 13 | # These inflection rules are supported but not enabled by default: 14 | # ActiveSupport::Inflector.inflections(:en) do |inflect| 15 | # inflect.acronym 'RESTful' 16 | # end 17 | -------------------------------------------------------------------------------- /test/dummy/rails52_sprockets4/config/initializers/mime_types.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Add new mime types for use in respond_to blocks: 4 | # Mime::Type.register "text/richtext", :rtf 5 | -------------------------------------------------------------------------------- /test/dummy/rails52_sprockets4/config/initializers/super.rb: -------------------------------------------------------------------------------- 1 | Super.configuration do |c| 2 | c.title = "My Admin Site" 3 | end 4 | -------------------------------------------------------------------------------- /test/dummy/rails52_sprockets4/config/initializers/wrap_parameters.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # This file contains settings for ActionController::ParamsWrapper which 4 | # is enabled by default. 5 | 6 | # Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array. 7 | ActiveSupport.on_load(:action_controller) do 8 | wrap_parameters format: [:json] 9 | end 10 | 11 | # To enable root element in JSON for ActiveRecord objects. 12 | # ActiveSupport.on_load(:active_record) do 13 | # self.include_root_in_json = true 14 | # end 15 | -------------------------------------------------------------------------------- /test/dummy/rails52_sprockets4/config/routes.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | Rails.application.routes.draw do 4 | namespace :admin do 5 | resources :members do 6 | post :batch_noop, on: :collection 7 | resources :favorite_things, shallow: true 8 | end 9 | resources :ships 10 | resources :sinks 11 | 12 | root to: redirect("admin/members", status: 302) 13 | end 14 | 15 | root to: redirect("admin/members", status: 302) 16 | end 17 | -------------------------------------------------------------------------------- /test/dummy/rails52_sprockets4/config/spring.rb: -------------------------------------------------------------------------------- 1 | %w[ 2 | .ruby-version 3 | .rbenv-vars 4 | tmp/restart.txt 5 | tmp/caching-dev.txt 6 | ].each { |path| Spring.watch(path) } 7 | -------------------------------------------------------------------------------- /test/dummy/rails52_sprockets4/db/migrate/20190216224956_create_members.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | class CreateMembers < ActiveRecord::Migration[5.0] 4 | def change 5 | create_table :members do |t| 6 | t.string :name, null: false 7 | t.string :rank, null: false 8 | t.string :position 9 | 10 | t.timestamps 11 | end 12 | end 13 | end 14 | -------------------------------------------------------------------------------- /test/dummy/rails52_sprockets4/db/migrate/20190803143320_create_ships.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | class CreateShips < ActiveRecord::Migration[5.0] 4 | def change 5 | create_table :ships do |t| 6 | t.string :name 7 | t.string :registry 8 | t.string :class_name 9 | 10 | t.timestamps 11 | end 12 | end 13 | end 14 | -------------------------------------------------------------------------------- /test/dummy/rails52_sprockets4/db/migrate/20190806014121_add_ship_to_members.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | class AddShipToMembers < ActiveRecord::Migration[5.0] 4 | def change 5 | add_reference :members, :ship, foreign_key: true 6 | end 7 | end 8 | -------------------------------------------------------------------------------- /test/dummy/rails52_sprockets4/db/migrate/20191126050453_create_favorite_things.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | class CreateFavoriteThings < ActiveRecord::Migration[5.0] 4 | def change 5 | create_table :favorite_things do |t| 6 | t.references :member, null: false, foreign_key: true 7 | t.text :name 8 | 9 | t.timestamps 10 | end 11 | end 12 | end 13 | -------------------------------------------------------------------------------- /test/dummy/rails52_sprockets4/db/migrate/20210411180249_create_sinks.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | class CreateSinks < ActiveRecord::Migration[5.0] 4 | def change 5 | create_table :sinks do |t| 6 | t.string :string_column 7 | t.text :text_column 8 | t.integer :integer_column 9 | t.bigint :bigint_column 10 | t.float :float_column 11 | t.decimal :decimal_column 12 | t.numeric :numeric_column 13 | t.datetime :datetime_column 14 | t.time :time_column 15 | t.date :date_column 16 | t.binary :binary_column 17 | t.boolean :boolean_column 18 | 19 | t.timestamps 20 | end 21 | end 22 | end 23 | -------------------------------------------------------------------------------- /test/dummy/rails52_sprockets4/db/seeds.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require "super_test_engine/starfleet_seeder" 4 | StarfleetSeeder.seed 5 | -------------------------------------------------------------------------------- /test/dummy/rails52_sprockets4/lib/assets/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/superadministration/super/20fa9fc358349c83ea57674c78206c4d54615a14/test/dummy/rails52_sprockets4/lib/assets/.keep -------------------------------------------------------------------------------- /test/dummy/rails52_sprockets4/log/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/superadministration/super/20fa9fc358349c83ea57674c78206c4d54615a14/test/dummy/rails52_sprockets4/log/.keep -------------------------------------------------------------------------------- /test/dummy/rails52_sprockets4/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "dummy", 3 | "private": true, 4 | "dependencies": {} 5 | } 6 | -------------------------------------------------------------------------------- /test/dummy/rails52_sprockets4/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/superadministration/super/20fa9fc358349c83ea57674c78206c4d54615a14/test/dummy/rails52_sprockets4/public/favicon.ico -------------------------------------------------------------------------------- /test/dummy/rails60_sprockets4/Rakefile: -------------------------------------------------------------------------------- 1 | # Add your own tasks in files placed in lib/tasks ending in .rake, 2 | # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake. 3 | 4 | require_relative 'config/application' 5 | 6 | Rails.application.load_tasks 7 | -------------------------------------------------------------------------------- /test/dummy/rails60_sprockets4/app/assets/config/manifest.js: -------------------------------------------------------------------------------- 1 | //= link_tree ../images 2 | //= link_directory ../stylesheets .css 3 | //= link super_manifest.js 4 | -------------------------------------------------------------------------------- /test/dummy/rails60_sprockets4/app/assets/images/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/superadministration/super/20fa9fc358349c83ea57674c78206c4d54615a14/test/dummy/rails60_sprockets4/app/assets/images/.keep -------------------------------------------------------------------------------- /test/dummy/rails60_sprockets4/app/controllers/admin/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/superadministration/super/20fa9fc358349c83ea57674c78206c4d54615a14/test/dummy/rails60_sprockets4/app/controllers/admin/.keep -------------------------------------------------------------------------------- /test/dummy/rails60_sprockets4/app/controllers/admin/sinks_controller.rb: -------------------------------------------------------------------------------- 1 | class Admin::SinksController < AdminController 2 | private 3 | 4 | def model 5 | Sink 6 | end 7 | end 8 | -------------------------------------------------------------------------------- /test/dummy/rails60_sprockets4/app/controllers/admin_controller.rb: -------------------------------------------------------------------------------- 1 | class AdminController < Super::ApplicationController 2 | private 3 | 4 | def site_navigation 5 | Super::Navigation.new do |nav| 6 | nav.link(Member) 7 | nav.link(Ship) 8 | nav.menu("Other") do 9 | nav.rest 10 | end 11 | end 12 | end 13 | end 14 | -------------------------------------------------------------------------------- /test/dummy/rails60_sprockets4/app/controllers/application_controller.rb: -------------------------------------------------------------------------------- 1 | class ApplicationController < ActionController::Base 2 | end 3 | -------------------------------------------------------------------------------- /test/dummy/rails60_sprockets4/app/controllers/concerns/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/superadministration/super/20fa9fc358349c83ea57674c78206c4d54615a14/test/dummy/rails60_sprockets4/app/controllers/concerns/.keep -------------------------------------------------------------------------------- /test/dummy/rails60_sprockets4/app/helpers/application_helper.rb: -------------------------------------------------------------------------------- 1 | module ApplicationHelper 2 | end 3 | -------------------------------------------------------------------------------- /test/dummy/rails60_sprockets4/app/jobs/application_job.rb: -------------------------------------------------------------------------------- 1 | class ApplicationJob < ActiveJob::Base 2 | # Automatically retry jobs that encountered a deadlock 3 | # retry_on ActiveRecord::Deadlocked 4 | 5 | # Most jobs are safe to ignore if the underlying records are no longer available 6 | # discard_on ActiveJob::DeserializationError 7 | end 8 | -------------------------------------------------------------------------------- /test/dummy/rails60_sprockets4/app/models/application_record.rb: -------------------------------------------------------------------------------- 1 | class ApplicationRecord < ActiveRecord::Base 2 | self.abstract_class = true 3 | end 4 | -------------------------------------------------------------------------------- /test/dummy/rails60_sprockets4/app/models/concerns/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/superadministration/super/20fa9fc358349c83ea57674c78206c4d54615a14/test/dummy/rails60_sprockets4/app/models/concerns/.keep -------------------------------------------------------------------------------- /test/dummy/rails60_sprockets4/app/models/favorite_thing.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | class FavoriteThing < ApplicationRecord 4 | belongs_to :member 5 | 6 | validates :name, presence: true 7 | 8 | accepts_nested_attributes_for :member 9 | end 10 | -------------------------------------------------------------------------------- /test/dummy/rails60_sprockets4/app/models/member.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | class Member < ApplicationRecord 4 | enum rank: { 5 | captain: "Captain", 6 | commander: "Commander", 7 | lieutenant_commander: "Lieutenant Commander", 8 | lieutenant: "Lieutenant", 9 | lieutenant_junior_grade: "Lieutenant Junior Grade", 10 | ensign: "Ensign", 11 | nco: "NCO", 12 | } 13 | 14 | belongs_to :ship 15 | has_many :favorite_things, dependent: :delete_all 16 | 17 | accepts_nested_attributes_for( 18 | :favorite_things, 19 | allow_destroy: true, 20 | reject_if: -> (record) { record[:name].blank? } 21 | ) 22 | 23 | validates :name, presence: true 24 | validates :rank, presence: true 25 | validates :position, presence: true 26 | end 27 | -------------------------------------------------------------------------------- /test/dummy/rails60_sprockets4/app/models/ship.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | class Ship < ApplicationRecord 4 | has_many :members 5 | end 6 | -------------------------------------------------------------------------------- /test/dummy/rails60_sprockets4/app/models/sink.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | class Sink < ApplicationRecord 4 | end 5 | -------------------------------------------------------------------------------- /test/dummy/rails60_sprockets4/app/views/admin/members/_favorite_things.html.erb: -------------------------------------------------------------------------------- 1 | <%= yield %> 2 | <% if @record.favorite_things.any? %> 3 | <%= render(Super::Panel.new) do %> 4 |

Favorite Things

5 | 6 | 11 | <% end %> 12 | <% end %> 13 | -------------------------------------------------------------------------------- /test/dummy/rails60_sprockets4/app/views/layouts/application.html.erb: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Dummy 5 | <%= csrf_meta_tags %> 6 | <%= csp_meta_tag %> 7 | 8 | <%= stylesheet_link_tag 'application', media: 'all' %> 9 | 10 | 11 | 12 | <%= yield %> 13 | 14 | 15 | -------------------------------------------------------------------------------- /test/dummy/rails60_sprockets4/bin/rails: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | APP_PATH = File.expand_path('../config/application', __dir__) 3 | require_relative '../config/boot' 4 | require 'rails/commands' 5 | -------------------------------------------------------------------------------- /test/dummy/rails60_sprockets4/bin/rake: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require_relative '../config/boot' 3 | require 'rake' 4 | Rake.application.run 5 | -------------------------------------------------------------------------------- /test/dummy/rails60_sprockets4/config.ru: -------------------------------------------------------------------------------- 1 | # This file is used by Rack-based servers to start the application. 2 | 3 | require_relative 'config/environment' 4 | 5 | run Rails.application 6 | -------------------------------------------------------------------------------- /test/dummy/rails60_sprockets4/config/boot.rb: -------------------------------------------------------------------------------- 1 | # Set up gems listed in the Gemfile. 2 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../../Gemfile', __dir__) 3 | 4 | require 'bundler/setup' if File.exist?(ENV['BUNDLE_GEMFILE']) 5 | $LOAD_PATH.unshift File.expand_path('../../../lib', __dir__) 6 | -------------------------------------------------------------------------------- /test/dummy/rails60_sprockets4/config/database.yml: -------------------------------------------------------------------------------- 1 | # SQLite. Versions 3.8.0 and up are supported. 2 | # gem install sqlite3 3 | # 4 | # Ensure the SQLite 3 gem is defined in your Gemfile 5 | # gem 'sqlite3' 6 | # 7 | default: &default 8 | adapter: sqlite3 9 | pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> 10 | timeout: 5000 11 | 12 | development: 13 | <<: *default 14 | database: db/development.sqlite3 15 | 16 | # Warning: The database defined as "test" will be erased and 17 | # re-generated from your development database when you run "rake". 18 | # Do not set this db to the same as development or production. 19 | test: 20 | <<: *default 21 | database: db/test.sqlite3 22 | 23 | production: 24 | <<: *default 25 | database: db/production.sqlite3 26 | -------------------------------------------------------------------------------- /test/dummy/rails60_sprockets4/config/environment.rb: -------------------------------------------------------------------------------- 1 | # Load the Rails application. 2 | require_relative 'application' 3 | 4 | # Initialize the Rails application. 5 | Rails.application.initialize! 6 | -------------------------------------------------------------------------------- /test/dummy/rails60_sprockets4/config/initializers/application_controller_renderer.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # ActiveSupport::Reloader.to_prepare do 4 | # ApplicationController.renderer.defaults.merge!( 5 | # http_host: 'example.org', 6 | # https: false 7 | # ) 8 | # end 9 | -------------------------------------------------------------------------------- /test/dummy/rails60_sprockets4/config/initializers/assets.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Version of your assets, change this if you want to expire all your assets. 4 | Rails.application.config.assets.version = '1.0' 5 | 6 | # Add additional assets to the asset load path. 7 | # Rails.application.config.assets.paths << Emoji.images_path 8 | 9 | # Precompile additional assets. 10 | # application.js, application.css, and all non-JS/CSS in the app/assets 11 | # folder are already added. 12 | # Rails.application.config.assets.precompile += %w( admin.js admin.css ) 13 | -------------------------------------------------------------------------------- /test/dummy/rails60_sprockets4/config/initializers/backtrace_silencers.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces. 4 | # Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ } 5 | 6 | # You can also remove all the silencers if you're trying to debug a problem that might stem from framework code. 7 | # Rails.backtrace_cleaner.remove_silencers! 8 | -------------------------------------------------------------------------------- /test/dummy/rails60_sprockets4/config/initializers/cookies_serializer.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Specify a serializer for the signed and encrypted cookie jars. 4 | # Valid options are :json, :marshal, and :hybrid. 5 | Rails.application.config.action_dispatch.cookies_serializer = :json 6 | -------------------------------------------------------------------------------- /test/dummy/rails60_sprockets4/config/initializers/filter_parameter_logging.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Configure sensitive parameters which will be filtered from the log file. 4 | Rails.application.config.filter_parameters += [:password] 5 | -------------------------------------------------------------------------------- /test/dummy/rails60_sprockets4/config/initializers/inflections.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Add new inflection rules using the following format. Inflections 4 | # are locale specific, and you may define rules for as many different 5 | # locales as you wish. All of these examples are active by default: 6 | # ActiveSupport::Inflector.inflections(:en) do |inflect| 7 | # inflect.plural /^(ox)$/i, '\1en' 8 | # inflect.singular /^(ox)en/i, '\1' 9 | # inflect.irregular 'person', 'people' 10 | # inflect.uncountable %w( fish sheep ) 11 | # end 12 | 13 | # These inflection rules are supported but not enabled by default: 14 | # ActiveSupport::Inflector.inflections(:en) do |inflect| 15 | # inflect.acronym 'RESTful' 16 | # end 17 | -------------------------------------------------------------------------------- /test/dummy/rails60_sprockets4/config/initializers/mime_types.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Add new mime types for use in respond_to blocks: 4 | # Mime::Type.register "text/richtext", :rtf 5 | -------------------------------------------------------------------------------- /test/dummy/rails60_sprockets4/config/initializers/super.rb: -------------------------------------------------------------------------------- 1 | Super.configuration do |c| 2 | c.title = "My Admin Site" 3 | end 4 | -------------------------------------------------------------------------------- /test/dummy/rails60_sprockets4/config/initializers/wrap_parameters.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # This file contains settings for ActionController::ParamsWrapper which 4 | # is enabled by default. 5 | 6 | # Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array. 7 | ActiveSupport.on_load(:action_controller) do 8 | wrap_parameters format: [:json] 9 | end 10 | 11 | # To enable root element in JSON for ActiveRecord objects. 12 | # ActiveSupport.on_load(:active_record) do 13 | # self.include_root_in_json = true 14 | # end 15 | -------------------------------------------------------------------------------- /test/dummy/rails60_sprockets4/config/routes.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | Rails.application.routes.draw do 4 | namespace :admin do 5 | resources :members do 6 | post :batch_noop, on: :collection 7 | resources :favorite_things, shallow: true 8 | end 9 | resources :ships 10 | resources :sinks 11 | 12 | root to: redirect("admin/members", status: 302) 13 | end 14 | 15 | root to: redirect("admin/members", status: 302) 16 | end 17 | -------------------------------------------------------------------------------- /test/dummy/rails60_sprockets4/config/spring.rb: -------------------------------------------------------------------------------- 1 | Spring.watch( 2 | ".ruby-version", 3 | ".rbenv-vars", 4 | "tmp/restart.txt", 5 | "tmp/caching-dev.txt" 6 | ) 7 | -------------------------------------------------------------------------------- /test/dummy/rails60_sprockets4/db/migrate/20190216224956_create_members.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | class CreateMembers < ActiveRecord::Migration[5.0] 4 | def change 5 | create_table :members do |t| 6 | t.string :name, null: false 7 | t.string :rank, null: false 8 | t.string :position 9 | 10 | t.timestamps 11 | end 12 | end 13 | end 14 | -------------------------------------------------------------------------------- /test/dummy/rails60_sprockets4/db/migrate/20190803143320_create_ships.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | class CreateShips < ActiveRecord::Migration[5.0] 4 | def change 5 | create_table :ships do |t| 6 | t.string :name 7 | t.string :registry 8 | t.string :class_name 9 | 10 | t.timestamps 11 | end 12 | end 13 | end 14 | -------------------------------------------------------------------------------- /test/dummy/rails60_sprockets4/db/migrate/20190806014121_add_ship_to_members.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | class AddShipToMembers < ActiveRecord::Migration[5.0] 4 | def change 5 | add_reference :members, :ship, foreign_key: true 6 | end 7 | end 8 | -------------------------------------------------------------------------------- /test/dummy/rails60_sprockets4/db/migrate/20191126050453_create_favorite_things.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | class CreateFavoriteThings < ActiveRecord::Migration[5.0] 4 | def change 5 | create_table :favorite_things do |t| 6 | t.references :member, null: false, foreign_key: true 7 | t.text :name 8 | 9 | t.timestamps 10 | end 11 | end 12 | end 13 | -------------------------------------------------------------------------------- /test/dummy/rails60_sprockets4/db/migrate/20210411180249_create_sinks.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | class CreateSinks < ActiveRecord::Migration[5.0] 4 | def change 5 | create_table :sinks do |t| 6 | t.string :string_column 7 | t.text :text_column 8 | t.integer :integer_column 9 | t.bigint :bigint_column 10 | t.float :float_column 11 | t.decimal :decimal_column 12 | t.numeric :numeric_column 13 | t.datetime :datetime_column 14 | t.time :time_column 15 | t.date :date_column 16 | t.binary :binary_column 17 | t.boolean :boolean_column 18 | 19 | t.timestamps 20 | end 21 | end 22 | end 23 | -------------------------------------------------------------------------------- /test/dummy/rails60_sprockets4/db/seeds.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require "super_test_engine/starfleet_seeder" 4 | StarfleetSeeder.seed 5 | -------------------------------------------------------------------------------- /test/dummy/rails60_sprockets4/lib/assets/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/superadministration/super/20fa9fc358349c83ea57674c78206c4d54615a14/test/dummy/rails60_sprockets4/lib/assets/.keep -------------------------------------------------------------------------------- /test/dummy/rails60_sprockets4/log/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/superadministration/super/20fa9fc358349c83ea57674c78206c4d54615a14/test/dummy/rails60_sprockets4/log/.keep -------------------------------------------------------------------------------- /test/dummy/rails60_sprockets4/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/superadministration/super/20fa9fc358349c83ea57674c78206c4d54615a14/test/dummy/rails60_sprockets4/public/favicon.ico -------------------------------------------------------------------------------- /test/dummy/rails61_sprockets4/Rakefile: -------------------------------------------------------------------------------- 1 | # Add your own tasks in files placed in lib/tasks ending in .rake, 2 | # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake. 3 | 4 | require_relative "config/application" 5 | 6 | Rails.application.load_tasks 7 | -------------------------------------------------------------------------------- /test/dummy/rails61_sprockets4/app/assets/config/manifest.js: -------------------------------------------------------------------------------- 1 | //= link_tree ../images 2 | //= link_directory ../stylesheets .css 3 | //= link super_manifest.js 4 | -------------------------------------------------------------------------------- /test/dummy/rails61_sprockets4/app/assets/images/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/superadministration/super/20fa9fc358349c83ea57674c78206c4d54615a14/test/dummy/rails61_sprockets4/app/assets/images/.keep -------------------------------------------------------------------------------- /test/dummy/rails61_sprockets4/app/controllers/admin/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/superadministration/super/20fa9fc358349c83ea57674c78206c4d54615a14/test/dummy/rails61_sprockets4/app/controllers/admin/.keep -------------------------------------------------------------------------------- /test/dummy/rails61_sprockets4/app/controllers/admin/sinks_controller.rb: -------------------------------------------------------------------------------- 1 | class Admin::SinksController < AdminController 2 | private 3 | 4 | def model 5 | Sink 6 | end 7 | end 8 | -------------------------------------------------------------------------------- /test/dummy/rails61_sprockets4/app/controllers/admin_controller.rb: -------------------------------------------------------------------------------- 1 | class AdminController < Super::ApplicationController 2 | private 3 | 4 | def site_navigation 5 | Super::Navigation.new do |nav| 6 | nav.link(Member) 7 | nav.link(Ship) 8 | nav.menu("Other") do 9 | nav.rest 10 | end 11 | end 12 | end 13 | end 14 | -------------------------------------------------------------------------------- /test/dummy/rails61_sprockets4/app/controllers/application_controller.rb: -------------------------------------------------------------------------------- 1 | class ApplicationController < ActionController::Base 2 | end 3 | -------------------------------------------------------------------------------- /test/dummy/rails61_sprockets4/app/controllers/concerns/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/superadministration/super/20fa9fc358349c83ea57674c78206c4d54615a14/test/dummy/rails61_sprockets4/app/controllers/concerns/.keep -------------------------------------------------------------------------------- /test/dummy/rails61_sprockets4/app/helpers/application_helper.rb: -------------------------------------------------------------------------------- 1 | module ApplicationHelper 2 | end 3 | -------------------------------------------------------------------------------- /test/dummy/rails61_sprockets4/app/jobs/application_job.rb: -------------------------------------------------------------------------------- 1 | class ApplicationJob < ActiveJob::Base 2 | # Automatically retry jobs that encountered a deadlock 3 | # retry_on ActiveRecord::Deadlocked 4 | 5 | # Most jobs are safe to ignore if the underlying records are no longer available 6 | # discard_on ActiveJob::DeserializationError 7 | end 8 | -------------------------------------------------------------------------------- /test/dummy/rails61_sprockets4/app/models/application_record.rb: -------------------------------------------------------------------------------- 1 | class ApplicationRecord < ActiveRecord::Base 2 | self.abstract_class = true 3 | end 4 | -------------------------------------------------------------------------------- /test/dummy/rails61_sprockets4/app/models/concerns/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/superadministration/super/20fa9fc358349c83ea57674c78206c4d54615a14/test/dummy/rails61_sprockets4/app/models/concerns/.keep -------------------------------------------------------------------------------- /test/dummy/rails61_sprockets4/app/models/favorite_thing.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | class FavoriteThing < ApplicationRecord 4 | belongs_to :member 5 | 6 | validates :name, presence: true 7 | 8 | accepts_nested_attributes_for :member 9 | end 10 | -------------------------------------------------------------------------------- /test/dummy/rails61_sprockets4/app/models/member.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | class Member < ApplicationRecord 4 | enum rank: { 5 | captain: "Captain", 6 | commander: "Commander", 7 | lieutenant_commander: "Lieutenant Commander", 8 | lieutenant: "Lieutenant", 9 | lieutenant_junior_grade: "Lieutenant Junior Grade", 10 | ensign: "Ensign", 11 | nco: "NCO", 12 | } 13 | 14 | belongs_to :ship 15 | has_many :favorite_things, dependent: :delete_all 16 | 17 | accepts_nested_attributes_for( 18 | :favorite_things, 19 | allow_destroy: true, 20 | reject_if: -> (record) { record[:name].blank? } 21 | ) 22 | 23 | validates :name, presence: true 24 | validates :rank, presence: true 25 | validates :position, presence: true 26 | end 27 | -------------------------------------------------------------------------------- /test/dummy/rails61_sprockets4/app/models/ship.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | class Ship < ApplicationRecord 4 | has_many :members 5 | end 6 | -------------------------------------------------------------------------------- /test/dummy/rails61_sprockets4/app/models/sink.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | class Sink < ApplicationRecord 4 | end 5 | -------------------------------------------------------------------------------- /test/dummy/rails61_sprockets4/app/views/admin/members/_favorite_things.html.erb: -------------------------------------------------------------------------------- 1 | <%= yield %> 2 | <% if @record.favorite_things.any? %> 3 | <%= render(Super::Panel.new) do %> 4 |

Favorite Things

5 | 6 | 11 | <% end %> 12 | <% end %> 13 | -------------------------------------------------------------------------------- /test/dummy/rails61_sprockets4/app/views/layouts/application.html.erb: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Dummy 5 | 6 | <%= csrf_meta_tags %> 7 | <%= csp_meta_tag %> 8 | 9 | <%= stylesheet_link_tag 'application', media: 'all' %> 10 | 11 | 12 | 13 | <%= yield %> 14 | 15 | 16 | -------------------------------------------------------------------------------- /test/dummy/rails61_sprockets4/bin/rails: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | APP_PATH = File.expand_path('../config/application', __dir__) 3 | require_relative "../config/boot" 4 | require "rails/commands" 5 | -------------------------------------------------------------------------------- /test/dummy/rails61_sprockets4/bin/rake: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require_relative "../config/boot" 3 | require "rake" 4 | Rake.application.run 5 | -------------------------------------------------------------------------------- /test/dummy/rails61_sprockets4/config.ru: -------------------------------------------------------------------------------- 1 | # This file is used by Rack-based servers to start the application. 2 | 3 | require_relative "config/environment" 4 | 5 | run Rails.application 6 | Rails.application.load_server 7 | -------------------------------------------------------------------------------- /test/dummy/rails61_sprockets4/config/boot.rb: -------------------------------------------------------------------------------- 1 | # Set up gems listed in the Gemfile. 2 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../../Gemfile', __dir__) 3 | 4 | require "bundler/setup" if File.exist?(ENV["BUNDLE_GEMFILE"]) 5 | $LOAD_PATH.unshift File.expand_path('../../../lib', __dir__) 6 | -------------------------------------------------------------------------------- /test/dummy/rails61_sprockets4/config/database.yml: -------------------------------------------------------------------------------- 1 | # SQLite. Versions 3.8.0 and up are supported. 2 | # gem install sqlite3 3 | # 4 | # Ensure the SQLite 3 gem is defined in your Gemfile 5 | # gem 'sqlite3' 6 | # 7 | default: &default 8 | adapter: sqlite3 9 | pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> 10 | timeout: 5000 11 | 12 | development: 13 | <<: *default 14 | database: db/development.sqlite3 15 | 16 | # Warning: The database defined as "test" will be erased and 17 | # re-generated from your development database when you run "rake". 18 | # Do not set this db to the same as development or production. 19 | test: 20 | <<: *default 21 | database: db/test.sqlite3 22 | 23 | production: 24 | <<: *default 25 | database: db/production.sqlite3 26 | -------------------------------------------------------------------------------- /test/dummy/rails61_sprockets4/config/environment.rb: -------------------------------------------------------------------------------- 1 | # Load the Rails application. 2 | require_relative "application" 3 | 4 | # Initialize the Rails application. 5 | Rails.application.initialize! 6 | -------------------------------------------------------------------------------- /test/dummy/rails61_sprockets4/config/initializers/application_controller_renderer.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # ActiveSupport::Reloader.to_prepare do 4 | # ApplicationController.renderer.defaults.merge!( 5 | # http_host: 'example.org', 6 | # https: false 7 | # ) 8 | # end 9 | -------------------------------------------------------------------------------- /test/dummy/rails61_sprockets4/config/initializers/assets.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Version of your assets, change this if you want to expire all your assets. 4 | Rails.application.config.assets.version = '1.0' 5 | 6 | # Add additional assets to the asset load path. 7 | # Rails.application.config.assets.paths << Emoji.images_path 8 | 9 | # Precompile additional assets. 10 | # application.js, application.css, and all non-JS/CSS in the app/assets 11 | # folder are already added. 12 | # Rails.application.config.assets.precompile += %w( admin.js admin.css ) 13 | -------------------------------------------------------------------------------- /test/dummy/rails61_sprockets4/config/initializers/backtrace_silencers.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces. 4 | # Rails.backtrace_cleaner.add_silencer { |line| /my_noisy_library/.match?(line) } 5 | 6 | # You can also remove all the silencers if you're trying to debug a problem that might stem from framework code 7 | # by setting BACKTRACE=1 before calling your invocation, like "BACKTRACE=1 ./bin/rails runner 'MyClass.perform'". 8 | Rails.backtrace_cleaner.remove_silencers! if ENV["BACKTRACE"] 9 | -------------------------------------------------------------------------------- /test/dummy/rails61_sprockets4/config/initializers/cookies_serializer.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Specify a serializer for the signed and encrypted cookie jars. 4 | # Valid options are :json, :marshal, and :hybrid. 5 | Rails.application.config.action_dispatch.cookies_serializer = :json 6 | -------------------------------------------------------------------------------- /test/dummy/rails61_sprockets4/config/initializers/filter_parameter_logging.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Configure sensitive parameters which will be filtered from the log file. 4 | Rails.application.config.filter_parameters += [ 5 | :passw, :secret, :token, :_key, :crypt, :salt, :certificate, :otp, :ssn 6 | ] 7 | -------------------------------------------------------------------------------- /test/dummy/rails61_sprockets4/config/initializers/inflections.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Add new inflection rules using the following format. Inflections 4 | # are locale specific, and you may define rules for as many different 5 | # locales as you wish. All of these examples are active by default: 6 | # ActiveSupport::Inflector.inflections(:en) do |inflect| 7 | # inflect.plural /^(ox)$/i, '\1en' 8 | # inflect.singular /^(ox)en/i, '\1' 9 | # inflect.irregular 'person', 'people' 10 | # inflect.uncountable %w( fish sheep ) 11 | # end 12 | 13 | # These inflection rules are supported but not enabled by default: 14 | # ActiveSupport::Inflector.inflections(:en) do |inflect| 15 | # inflect.acronym 'RESTful' 16 | # end 17 | -------------------------------------------------------------------------------- /test/dummy/rails61_sprockets4/config/initializers/mime_types.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Add new mime types for use in respond_to blocks: 4 | # Mime::Type.register "text/richtext", :rtf 5 | -------------------------------------------------------------------------------- /test/dummy/rails61_sprockets4/config/initializers/permissions_policy.rb: -------------------------------------------------------------------------------- 1 | # Define an application-wide HTTP permissions policy. For further 2 | # information see https://developers.google.com/web/updates/2018/06/feature-policy 3 | # 4 | # Rails.application.config.permissions_policy do |f| 5 | # f.camera :none 6 | # f.gyroscope :none 7 | # f.microphone :none 8 | # f.usb :none 9 | # f.fullscreen :self 10 | # f.payment :self, "https://secure.example.com" 11 | # end 12 | -------------------------------------------------------------------------------- /test/dummy/rails61_sprockets4/config/initializers/super.rb: -------------------------------------------------------------------------------- 1 | Super.configuration do |c| 2 | c.title = "My Admin Site" 3 | end 4 | -------------------------------------------------------------------------------- /test/dummy/rails61_sprockets4/config/initializers/wrap_parameters.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # This file contains settings for ActionController::ParamsWrapper which 4 | # is enabled by default. 5 | 6 | # Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array. 7 | ActiveSupport.on_load(:action_controller) do 8 | wrap_parameters format: [:json] 9 | end 10 | 11 | # To enable root element in JSON for ActiveRecord objects. 12 | # ActiveSupport.on_load(:active_record) do 13 | # self.include_root_in_json = true 14 | # end 15 | -------------------------------------------------------------------------------- /test/dummy/rails61_sprockets4/config/routes.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | Rails.application.routes.draw do 4 | namespace :admin do 5 | resources :members do 6 | post :batch_noop, on: :collection 7 | resources :favorite_things, shallow: true 8 | end 9 | resources :ships 10 | resources :sinks 11 | 12 | root to: redirect("admin/members", status: 302) 13 | end 14 | 15 | root to: redirect("admin/members", status: 302) 16 | end 17 | -------------------------------------------------------------------------------- /test/dummy/rails61_sprockets4/db/migrate/20190216224956_create_members.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | class CreateMembers < ActiveRecord::Migration[5.0] 4 | def change 5 | create_table :members do |t| 6 | t.string :name, null: false 7 | t.string :rank, null: false 8 | t.string :position 9 | 10 | t.timestamps 11 | end 12 | end 13 | end 14 | -------------------------------------------------------------------------------- /test/dummy/rails61_sprockets4/db/migrate/20190803143320_create_ships.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | class CreateShips < ActiveRecord::Migration[5.0] 4 | def change 5 | create_table :ships do |t| 6 | t.string :name 7 | t.string :registry 8 | t.string :class_name 9 | 10 | t.timestamps 11 | end 12 | end 13 | end 14 | -------------------------------------------------------------------------------- /test/dummy/rails61_sprockets4/db/migrate/20190806014121_add_ship_to_members.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | class AddShipToMembers < ActiveRecord::Migration[5.0] 4 | def change 5 | add_reference :members, :ship, foreign_key: true 6 | end 7 | end 8 | -------------------------------------------------------------------------------- /test/dummy/rails61_sprockets4/db/migrate/20191126050453_create_favorite_things.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | class CreateFavoriteThings < ActiveRecord::Migration[5.0] 4 | def change 5 | create_table :favorite_things do |t| 6 | t.references :member, null: false, foreign_key: true 7 | t.text :name 8 | 9 | t.timestamps 10 | end 11 | end 12 | end 13 | -------------------------------------------------------------------------------- /test/dummy/rails61_sprockets4/db/migrate/20210411180249_create_sinks.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | class CreateSinks < ActiveRecord::Migration[5.0] 4 | def change 5 | create_table :sinks do |t| 6 | t.string :string_column 7 | t.text :text_column 8 | t.integer :integer_column 9 | t.bigint :bigint_column 10 | t.float :float_column 11 | t.decimal :decimal_column 12 | t.numeric :numeric_column 13 | t.datetime :datetime_column 14 | t.time :time_column 15 | t.date :date_column 16 | t.binary :binary_column 17 | t.boolean :boolean_column 18 | 19 | t.timestamps 20 | end 21 | end 22 | end 23 | -------------------------------------------------------------------------------- /test/dummy/rails61_sprockets4/db/seeds.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require "super_test_engine/starfleet_seeder" 4 | StarfleetSeeder.seed 5 | -------------------------------------------------------------------------------- /test/dummy/rails61_sprockets4/lib/assets/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/superadministration/super/20fa9fc358349c83ea57674c78206c4d54615a14/test/dummy/rails61_sprockets4/lib/assets/.keep -------------------------------------------------------------------------------- /test/dummy/rails61_sprockets4/log/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/superadministration/super/20fa9fc358349c83ea57674c78206c4d54615a14/test/dummy/rails61_sprockets4/log/.keep -------------------------------------------------------------------------------- /test/dummy/rails61_sprockets4/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/superadministration/super/20fa9fc358349c83ea57674c78206c4d54615a14/test/dummy/rails61_sprockets4/public/favicon.ico -------------------------------------------------------------------------------- /test/dummy/rails70_sprockets4/Rakefile: -------------------------------------------------------------------------------- 1 | # Add your own tasks in files placed in lib/tasks ending in .rake, 2 | # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake. 3 | 4 | require_relative "config/application" 5 | 6 | Rails.application.load_tasks 7 | -------------------------------------------------------------------------------- /test/dummy/rails70_sprockets4/app/assets/config/manifest.js: -------------------------------------------------------------------------------- 1 | //= link_tree ../images 2 | //= link_directory ../stylesheets .css 3 | //= link super_manifest.js 4 | -------------------------------------------------------------------------------- /test/dummy/rails70_sprockets4/app/assets/images/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/superadministration/super/20fa9fc358349c83ea57674c78206c4d54615a14/test/dummy/rails70_sprockets4/app/assets/images/.keep -------------------------------------------------------------------------------- /test/dummy/rails70_sprockets4/app/controllers/admin/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/superadministration/super/20fa9fc358349c83ea57674c78206c4d54615a14/test/dummy/rails70_sprockets4/app/controllers/admin/.keep -------------------------------------------------------------------------------- /test/dummy/rails70_sprockets4/app/controllers/admin/sinks_controller.rb: -------------------------------------------------------------------------------- 1 | class Admin::SinksController < AdminController 2 | private 3 | 4 | def model 5 | Sink 6 | end 7 | end 8 | -------------------------------------------------------------------------------- /test/dummy/rails70_sprockets4/app/controllers/admin_controller.rb: -------------------------------------------------------------------------------- 1 | class AdminController < Super::ApplicationController 2 | private 3 | 4 | def site_navigation 5 | Super::Navigation.new do |nav| 6 | nav.link(Member) 7 | nav.link(Ship) 8 | nav.menu("Other") do 9 | nav.rest 10 | end 11 | end 12 | end 13 | end 14 | -------------------------------------------------------------------------------- /test/dummy/rails70_sprockets4/app/controllers/application_controller.rb: -------------------------------------------------------------------------------- 1 | class ApplicationController < ActionController::Base 2 | end 3 | -------------------------------------------------------------------------------- /test/dummy/rails70_sprockets4/app/controllers/concerns/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/superadministration/super/20fa9fc358349c83ea57674c78206c4d54615a14/test/dummy/rails70_sprockets4/app/controllers/concerns/.keep -------------------------------------------------------------------------------- /test/dummy/rails70_sprockets4/app/helpers/application_helper.rb: -------------------------------------------------------------------------------- 1 | module ApplicationHelper 2 | end 3 | -------------------------------------------------------------------------------- /test/dummy/rails70_sprockets4/app/jobs/application_job.rb: -------------------------------------------------------------------------------- 1 | class ApplicationJob < ActiveJob::Base 2 | # Automatically retry jobs that encountered a deadlock 3 | # retry_on ActiveRecord::Deadlocked 4 | 5 | # Most jobs are safe to ignore if the underlying records are no longer available 6 | # discard_on ActiveJob::DeserializationError 7 | end 8 | -------------------------------------------------------------------------------- /test/dummy/rails70_sprockets4/app/models/application_record.rb: -------------------------------------------------------------------------------- 1 | class ApplicationRecord < ActiveRecord::Base 2 | primary_abstract_class 3 | end 4 | -------------------------------------------------------------------------------- /test/dummy/rails70_sprockets4/app/models/concerns/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/superadministration/super/20fa9fc358349c83ea57674c78206c4d54615a14/test/dummy/rails70_sprockets4/app/models/concerns/.keep -------------------------------------------------------------------------------- /test/dummy/rails70_sprockets4/app/models/favorite_thing.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | class FavoriteThing < ApplicationRecord 4 | belongs_to :member 5 | 6 | validates :name, presence: true 7 | 8 | accepts_nested_attributes_for :member 9 | end 10 | -------------------------------------------------------------------------------- /test/dummy/rails70_sprockets4/app/models/ship.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | class Ship < ApplicationRecord 4 | has_many :members 5 | end 6 | -------------------------------------------------------------------------------- /test/dummy/rails70_sprockets4/app/models/sink.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | class Sink < ApplicationRecord 4 | end 5 | -------------------------------------------------------------------------------- /test/dummy/rails70_sprockets4/app/views/admin/members/_favorite_things.html.erb: -------------------------------------------------------------------------------- 1 | <%= yield %> 2 | <% if @record.favorite_things.any? %> 3 | <%= render(Super::Panel.new) do %> 4 |

Favorite Things

5 | 6 | 11 | <% end %> 12 | <% end %> 13 | -------------------------------------------------------------------------------- /test/dummy/rails70_sprockets4/app/views/layouts/application.html.erb: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Dummy 5 | 6 | <%= csrf_meta_tags %> 7 | <%= csp_meta_tag %> 8 | 9 | <%= stylesheet_link_tag "application" %> 10 | 11 | 12 | 13 | <%= yield %> 14 | 15 | 16 | -------------------------------------------------------------------------------- /test/dummy/rails70_sprockets4/bin/rails: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | APP_PATH = File.expand_path("../config/application", __dir__) 3 | require_relative "../config/boot" 4 | require "rails/commands" 5 | -------------------------------------------------------------------------------- /test/dummy/rails70_sprockets4/bin/rake: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require_relative "../config/boot" 3 | require "rake" 4 | Rake.application.run 5 | -------------------------------------------------------------------------------- /test/dummy/rails70_sprockets4/config.ru: -------------------------------------------------------------------------------- 1 | # This file is used by Rack-based servers to start the application. 2 | 3 | require_relative "config/environment" 4 | 5 | run Rails.application 6 | Rails.application.load_server 7 | -------------------------------------------------------------------------------- /test/dummy/rails70_sprockets4/config/boot.rb: -------------------------------------------------------------------------------- 1 | # Set up gems listed in the Gemfile. 2 | ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../../Gemfile", __dir__) 3 | 4 | require "bundler/setup" if File.exist?(ENV["BUNDLE_GEMFILE"]) 5 | $LOAD_PATH.unshift File.expand_path("../../../lib", __dir__) 6 | -------------------------------------------------------------------------------- /test/dummy/rails70_sprockets4/config/database.yml: -------------------------------------------------------------------------------- 1 | # SQLite. Versions 3.8.0 and up are supported. 2 | # gem install sqlite3 3 | # 4 | # Ensure the SQLite 3 gem is defined in your Gemfile 5 | # gem "sqlite3" 6 | # 7 | default: &default 8 | adapter: sqlite3 9 | pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> 10 | timeout: 5000 11 | 12 | development: 13 | <<: *default 14 | database: db/development.sqlite3 15 | 16 | # Warning: The database defined as "test" will be erased and 17 | # re-generated from your development database when you run "rake". 18 | # Do not set this db to the same as development or production. 19 | test: 20 | <<: *default 21 | database: db/test.sqlite3 22 | 23 | production: 24 | <<: *default 25 | database: db/production.sqlite3 26 | -------------------------------------------------------------------------------- /test/dummy/rails70_sprockets4/config/environment.rb: -------------------------------------------------------------------------------- 1 | # Load the Rails application. 2 | require_relative "application" 3 | 4 | # Initialize the Rails application. 5 | Rails.application.initialize! 6 | -------------------------------------------------------------------------------- /test/dummy/rails70_sprockets4/config/initializers/assets.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Version of your assets, change this if you want to expire all your assets. 4 | Rails.application.config.assets.version = "1.0" 5 | 6 | # Add additional assets to the asset load path. 7 | # Rails.application.config.assets.paths << Emoji.images_path 8 | 9 | # Precompile additional assets. 10 | # application.js, application.css, and all non-JS/CSS in the app/assets 11 | # folder are already added. 12 | # Rails.application.config.assets.precompile += %w( admin.js admin.css ) 13 | -------------------------------------------------------------------------------- /test/dummy/rails70_sprockets4/config/initializers/filter_parameter_logging.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Configure sensitive parameters which will be filtered from the log file. 4 | Rails.application.config.filter_parameters += [ 5 | :passw, :secret, :token, :_key, :crypt, :salt, :certificate, :otp, :ssn 6 | ] 7 | -------------------------------------------------------------------------------- /test/dummy/rails70_sprockets4/config/initializers/inflections.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Add new inflection rules using the following format. Inflections 4 | # are locale specific, and you may define rules for as many different 5 | # locales as you wish. All of these examples are active by default: 6 | # ActiveSupport::Inflector.inflections(:en) do |inflect| 7 | # inflect.plural /^(ox)$/i, "\\1en" 8 | # inflect.singular /^(ox)en/i, "\\1" 9 | # inflect.irregular "person", "people" 10 | # inflect.uncountable %w( fish sheep ) 11 | # end 12 | 13 | # These inflection rules are supported but not enabled by default: 14 | # ActiveSupport::Inflector.inflections(:en) do |inflect| 15 | # inflect.acronym "RESTful" 16 | # end 17 | -------------------------------------------------------------------------------- /test/dummy/rails70_sprockets4/config/initializers/permissions_policy.rb: -------------------------------------------------------------------------------- 1 | # Define an application-wide HTTP permissions policy. For further 2 | # information see https://developers.google.com/web/updates/2018/06/feature-policy 3 | # 4 | # Rails.application.config.permissions_policy do |f| 5 | # f.camera :none 6 | # f.gyroscope :none 7 | # f.microphone :none 8 | # f.usb :none 9 | # f.fullscreen :self 10 | # f.payment :self, "https://secure.example.com" 11 | # end 12 | -------------------------------------------------------------------------------- /test/dummy/rails70_sprockets4/config/initializers/super.rb: -------------------------------------------------------------------------------- 1 | Super.configuration do |c| 2 | c.title = "My Admin Site" 3 | end 4 | -------------------------------------------------------------------------------- /test/dummy/rails70_sprockets4/config/routes.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | Rails.application.routes.draw do 4 | namespace :admin do 5 | resources :members do 6 | post :batch_noop, on: :collection 7 | resources :favorite_things, shallow: true 8 | end 9 | resources :ships 10 | resources :sinks 11 | 12 | root to: redirect("admin/members", status: 302) 13 | end 14 | 15 | root to: redirect("admin/members", status: 302) 16 | end 17 | -------------------------------------------------------------------------------- /test/dummy/rails70_sprockets4/db/migrate/20190216224956_create_members.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | class CreateMembers < ActiveRecord::Migration[5.0] 4 | def change 5 | create_table :members do |t| 6 | t.string :name, null: false 7 | t.string :rank, null: false 8 | t.string :position 9 | 10 | t.timestamps 11 | end 12 | end 13 | end 14 | -------------------------------------------------------------------------------- /test/dummy/rails70_sprockets4/db/migrate/20190803143320_create_ships.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | class CreateShips < ActiveRecord::Migration[5.0] 4 | def change 5 | create_table :ships do |t| 6 | t.string :name 7 | t.string :registry 8 | t.string :class_name 9 | 10 | t.timestamps 11 | end 12 | end 13 | end 14 | -------------------------------------------------------------------------------- /test/dummy/rails70_sprockets4/db/migrate/20190806014121_add_ship_to_members.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | class AddShipToMembers < ActiveRecord::Migration[5.0] 4 | def change 5 | add_reference :members, :ship, foreign_key: true 6 | end 7 | end 8 | -------------------------------------------------------------------------------- /test/dummy/rails70_sprockets4/db/migrate/20191126050453_create_favorite_things.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | class CreateFavoriteThings < ActiveRecord::Migration[5.0] 4 | def change 5 | create_table :favorite_things do |t| 6 | t.references :member, null: false, foreign_key: true 7 | t.text :name 8 | 9 | t.timestamps 10 | end 11 | end 12 | end 13 | -------------------------------------------------------------------------------- /test/dummy/rails70_sprockets4/db/migrate/20210411180249_create_sinks.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | class CreateSinks < ActiveRecord::Migration[5.0] 4 | def change 5 | create_table :sinks do |t| 6 | t.string :string_column 7 | t.text :text_column 8 | t.integer :integer_column 9 | t.bigint :bigint_column 10 | t.float :float_column 11 | t.decimal :decimal_column 12 | t.numeric :numeric_column 13 | t.datetime :datetime_column 14 | t.time :time_column 15 | t.date :date_column 16 | t.binary :binary_column 17 | t.boolean :boolean_column 18 | 19 | t.timestamps 20 | end 21 | end 22 | end 23 | -------------------------------------------------------------------------------- /test/dummy/rails70_sprockets4/db/seeds.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require "super_test_engine/starfleet_seeder" 4 | StarfleetSeeder.seed 5 | -------------------------------------------------------------------------------- /test/dummy/rails70_sprockets4/lib/assets/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/superadministration/super/20fa9fc358349c83ea57674c78206c4d54615a14/test/dummy/rails70_sprockets4/lib/assets/.keep -------------------------------------------------------------------------------- /test/dummy/rails70_sprockets4/log/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/superadministration/super/20fa9fc358349c83ea57674c78206c4d54615a14/test/dummy/rails70_sprockets4/log/.keep -------------------------------------------------------------------------------- /test/dummy/rails70_sprockets4/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/superadministration/super/20fa9fc358349c83ea57674c78206c4d54615a14/test/dummy/rails70_sprockets4/public/favicon.ico -------------------------------------------------------------------------------- /test/features/csv_test.rb: -------------------------------------------------------------------------------- 1 | # typed: false 2 | 3 | require "test_helper" 4 | 5 | class CsvTest < ActionDispatch::IntegrationTest 6 | test "get index csv gets a csv" do 7 | get admin_members_path(format: "csv") 8 | CSV.parse(response.body) 9 | end 10 | end 11 | 12 | class CsvDisabledTest < ActionDispatch::IntegrationTest 13 | controller(Admin::MembersController) do 14 | def csv_enabled? 15 | false 16 | end 17 | end 18 | 19 | test "get index csv redirects back to the index html" do 20 | get anonymous_path(format: "csv", something: "random") 21 | assert_redirected_to(anonymous_path(something: "random")) 22 | end 23 | end 24 | -------------------------------------------------------------------------------- /test/integration/accepts_nested_attributes_for_many_test.rb: -------------------------------------------------------------------------------- 1 | # typed: false 2 | 3 | require "test_helper" 4 | 5 | class AcceptsNestedAttributesForManyTest < CapybaraTest 6 | selenium! 7 | 8 | def test_it_works 9 | visit(edit_admin_member_path(members(:riker))) 10 | 11 | click_on("Add Favorite thing") 12 | 13 | within_fieldset("Favorite thing") do 14 | fill_in("Name", with: "Trumpet") 15 | end 16 | 17 | assert_difference(-> { members(:riker).reload.favorite_things.size }, 1) do 18 | click_on("Update Member") 19 | end 20 | 21 | assert_equal(admin_member_path(members(:riker)), page.current_path) 22 | assert(page.has_content?("Trumpet")) 23 | end 24 | end 25 | -------------------------------------------------------------------------------- /test/integration/error_flash_message_test.rb: -------------------------------------------------------------------------------- 1 | # typed: false 2 | 3 | require "test_helper" 4 | 5 | class ErrorFlashMessageTest < CapybaraTest 6 | def test_default_error_message 7 | Admin::ShipsController.any_instance.stubs(:index).raises(Super::ClientError::BadRequest) 8 | 9 | visit(admin_ships_path) 10 | 11 | assert(page.has_content?("Bad request")) 12 | assert_equal(400, page.status_code) 13 | end 14 | 15 | def test_custom_error_message 16 | Admin::ShipsController 17 | .any_instance 18 | .stubs(:index) 19 | .raises(Super::ClientError::Unauthorized, "Hello!") 20 | 21 | visit(admin_ships_path) 22 | 23 | assert(page.has_content?("Hello!")) 24 | assert_equal(401, page.status_code) 25 | end 26 | end 27 | -------------------------------------------------------------------------------- /test/lib/super/badge_test.rb: -------------------------------------------------------------------------------- 1 | # typed: false 2 | 3 | require "test_helper" 4 | 5 | class BadgeTest < ActiveSupport::TestCase 6 | test %(Badge.new("text", style: :light)) do 7 | badge = build("text", style: :light) 8 | 9 | assert_includes(badge.attr("class"), Super::Badge::STYLES[:light].join(" ")) 10 | end 11 | 12 | test %(Badge.new("test", style: :doesnt_exist)) do 13 | assert_raises(Super::Error::Initialization) do 14 | build("text", style: :doesnt_exist) 15 | end 16 | end 17 | 18 | private 19 | 20 | def build(*args, **kwargs) 21 | badge = Super::Badge.new(*args, **kwargs) 22 | Nokogiri::HTML.fragment(badge.to_s).first_element_child 23 | end 24 | end 25 | -------------------------------------------------------------------------------- /test/lib/super/controllers/application_customized_test.rb: -------------------------------------------------------------------------------- 1 | # typed: false 2 | 3 | require "test_helper" 4 | 5 | class ApplicationCustomizedTest < ActionDispatch::IntegrationTest 6 | controller(Super::ApplicationController) do 7 | def index 8 | end 9 | end 10 | 11 | views["index.html.erb"] = <<~HTML 12 |

Hi

13 | HTML 14 | 15 | def test_it_loads 16 | get "/anonymous" 17 | assert_select "title", Super.configuration.title 18 | assert_select "h1", "Hi" 19 | end 20 | end 21 | -------------------------------------------------------------------------------- /test/lib/super/controllers/application_reset_test.rb: -------------------------------------------------------------------------------- 1 | # typed: false 2 | 3 | require "test_helper" 4 | 5 | class ApplicationResetTest < ActionDispatch::IntegrationTest 6 | controller(Super::ApplicationController) do 7 | include Super::Reset 8 | end 9 | 10 | views["index.html.erb"] = <<~HTML 11 |

Hi

12 | HTML 13 | 14 | def test_it_loads 15 | get "/anonymous" 16 | assert_select "title", Super.configuration.title 17 | assert_select "h1", "Hi" 18 | end 19 | end 20 | -------------------------------------------------------------------------------- /test/lib/super/controllers/destroy_error_test.rb: -------------------------------------------------------------------------------- 1 | # typed: false 2 | 3 | require "test_helper" 4 | 5 | class DestroyErrorTest < ActionDispatch::IntegrationTest 6 | def test_invalid_foreign_key 7 | Admin::ShipsController 8 | .any_instance 9 | .stubs(:destroy_record) 10 | .raises(ActiveRecord::InvalidForeignKey) 11 | 12 | delete(admin_ship_path(Ship.first)) 13 | follow_redirect! 14 | assert_includes(response.body.gsub("'", "'"), I18n.t("super.destroy_error.invalid_foreign_key")) 15 | end 16 | end 17 | -------------------------------------------------------------------------------- /test/lib/super/useful/i19_test.rb: -------------------------------------------------------------------------------- 1 | # typed: strict 2 | 3 | require "test_helper" 4 | 5 | class Super::Useful::I19Test < ActiveSupport::TestCase 6 | test "build_chain" do 7 | result = Super::Useful::I19.build_chain("a", [1, 2, 3], "z") 8 | 9 | assert_equal( 10 | [ 11 | :"a.1.2.3.z", 12 | :"a.1.2.z", 13 | :"a.1.z", 14 | :"a.z" 15 | ], 16 | result 17 | ) 18 | end 19 | end 20 | -------------------------------------------------------------------------------- /test/lib/super/view_chain_test.rb: -------------------------------------------------------------------------------- 1 | # typed: strict 2 | 3 | require "test_helper" 4 | 5 | class ViewChainTest < ActiveSupport::TestCase 6 | test "#erb" do 7 | end 8 | end 9 | -------------------------------------------------------------------------------- /test/support/ad_hoc_view_helpers.rb: -------------------------------------------------------------------------------- 1 | # typed: false 2 | 3 | module AdHocViewHelpers 4 | extend ActiveSupport::Concern 5 | 6 | included do 7 | setup do 8 | if respond_to?(:ad_hoc_view_helpers) 9 | view.extend(ad_hoc_view_helpers) 10 | end 11 | end 12 | end 13 | 14 | class_methods do 15 | def ad_hoc_view_helpers(&block) 16 | define_method(:ad_hoc_view_helpers) do 17 | @ad_hoc_view_helpers = Module.new(&block) 18 | end 19 | end 20 | end 21 | end 22 | -------------------------------------------------------------------------------- /test/support/input_flatpickr.rb: -------------------------------------------------------------------------------- 1 | # typed: false 2 | 3 | module InputFlatpickr 4 | def set_date!(date) 5 | page.first(".flatpickr-monthDropdown-month[value='#{date.month - 1}']").select_option 6 | page.first(".flatpickr-calendar .cur-year").fill_in(with: date.year) 7 | page.find(".flatpickr-day:not(.prevMonthDay):not(.nextMonthDay)", text: /^#{date.day}$/).click 8 | end 9 | 10 | def set_time!(time) 11 | page.first(".flatpickr-hour").fill_in(with: time.hour) 12 | page.first(".flatpickr-minute").fill_in(with: time.min) 13 | page.first(".flatpickr-second").fill_in(with: time.sec) 14 | end 15 | end 16 | --------------------------------------------------------------------------------