diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index f8753d511..fba3b8234 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -17,21 +17,19 @@ ], // Use 'service' property to list services to start as part of the container. More info: https://code.visualstudio.com/docs/remote/containers-advanced#_developing-inside-a-container-service "service": "rails-app", - // Use 'service' property to list services to start as part of the container. More info: https://code.visualstudio.com/docs/remote/containers-advanced#_developing-inside-a-container-service - "runServices": [ - "search", - "search-console", - "selenium" - ], "containerEnv": { "DEVCONTAINER_APP_HOST": "http://rails-app", "CAPYBARA_SERVER_PORT": "45678", "SELENIUM_URL": "http://selenium:4444/wd/hub", - "SEARCH_URL": "http://search:9200", - "SEARCH_DRIVER": "opensearch" + "OPENSEARCH_URL": "https://admin:Howcoq-kinhin-timxi6@search:9200", + "DB_HOST": "database" }, // Use 'postCreateCommand' to run commands after the container is created. "postCreateCommand": "bin/setup --skip-server", + "features": { + "ghcr.io/rails/devcontainer/features/postgres-client:1": {}, + "ghcr.io/rails/devcontainer/features/bundler-cache:1": {} + }, // Configure tool-specific properties. "customizations": { "codespaces": { diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 9631401e2..26574c7b0 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -9,6 +9,7 @@ on: - completed branches: - main + - colby/next env: REGISTRY: ghcr.io @@ -36,7 +37,7 @@ jobs: # set latest tag for default branch type=raw,value=latest,enable={{is_default_branch}} type=raw,value=deploy-${{ github.run_number }},enable=true - type=edge,enable=true,branch=$repo.default_branch + type=edge,enable=true,branch={{branch}} type=sha,format=long,enable=true - name: Set up Docker Buildx diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 44659dee8..eaf93d4a3 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -4,6 +4,7 @@ on: push: branches: - main + - colby/next paths-ignore: - "**.md" pull_request: @@ -25,7 +26,7 @@ jobs: bundler-cache: true - name: Run Ruby linting - run: bin/standardrb --no-fix + run: bin/rubocop test-import: runs-on: ubuntu-latest @@ -43,6 +44,20 @@ jobs: --health-interval 10s --health-timeout 5s --health-retries 10 + database: + image: postgres:17.4 + ports: + - 5432:5432 + env: + POSTGRES_USER: postgres + POSTGRES_PASSWORD: postgres + POSTGRES_DB: postgres + options: >- + --health-cmd "pg_isready -U postgres -d postgres -h localhost -p 5432 || exit 1" + --health-start-period 30s + --health-interval 10s + --health-timeout 5s + --health-retries 10 steps: - uses: actions/checkout@v4 @@ -52,10 +67,17 @@ jobs: with: bundler-cache: true + - name: Setup Rails Application + env: + OPENSEARCH_URL: "http://search:9200" + DB_HOST: database + run: bin/setup --skip-server + - name: Test Importing Ruby Documentation env: - SEARCH_URL: "http://localhost:9200" - run: bin/rails "import:ruby[3.4]" + OPENSEARCH_URL: "http://search:9200" + DB_HOST: database + run: bin/rails import:ruby test: runs-on: ubuntu-latest @@ -73,7 +95,20 @@ jobs: --health-interval 10s --health-timeout 5s --health-retries 10 - + database: + image: postgres:17.4 + ports: + - 5432:5432 + env: + POSTGRES_USER: postgres + POSTGRES_PASSWORD: postgres + POSTGRES_DB: postgres + options: >- + --health-cmd "pg_isready -U postgres -d postgres -h localhost -p 5432 || exit 1" + --health-start-period 30s + --health-interval 10s + --health-timeout 5s + --health-retries 10 steps: - uses: actions/checkout@v4 @@ -82,7 +117,16 @@ jobs: with: bundler-cache: true + - name: Setup Rails Application + env: + OPENSEARCH_URL: "http://search:9200" + DB_HOST: database + run: bin/setup --skip-server + - name: Run Tests + env: + OPENSEARCH_URL: "http://search:9200" + DB_HOST: database run: bin/rails test test-system: @@ -110,5 +154,8 @@ jobs: with: bundler-cache: true + - name: Setup Rails Application + run: bin/setup --skip-server + - name: Run Tests run: bin/rails test:system diff --git a/.gitignore b/.gitignore index 45e0cd595..81f3e7148 100644 --- a/.gitignore +++ b/.gitignore @@ -46,3 +46,5 @@ /config/credentials/production.key /config/credentials/preview.key + +/config/database.yml diff --git a/.rubocop.yml b/.rubocop.yml new file mode 100644 index 000000000..75db5f006 --- /dev/null +++ b/.rubocop.yml @@ -0,0 +1,2 @@ +inherit_gem: + rubocop-rails-omakase: rubocop.yml \ No newline at end of file diff --git a/.standard.yml b/.standard.yml deleted file mode 100644 index 740d018ee..000000000 --- a/.standard.yml +++ /dev/null @@ -1,10 +0,0 @@ -fix: true -parallel: true -format: progress -default_ignores: true - -ignore: - - 'config/**/*.rb' - -plugins: - - standard-rails diff --git a/Dockerfile b/Dockerfile index f07b5e13f..6ae3934af 100644 --- a/Dockerfile +++ b/Dockerfile @@ -25,7 +25,7 @@ FROM base as build RUN --mount=type=cache,id=dev-apt-cache,sharing=locked,target=/var/cache/apt \ --mount=type=cache,id=dev-apt-lib,sharing=locked,target=/var/lib/apt \ apt-get update -qq && \ - apt-get install --no-install-recommends -y build-essential libpq-dev libyaml-dev pkg-config + apt-get install --no-install-recommends -y build-essential libcurl4 libpq-dev # Install application gems COPY --link Gemfile Gemfile.lock ./ @@ -56,7 +56,7 @@ FROM base RUN --mount=type=cache,id=dev-apt-cache,sharing=locked,target=/var/cache/apt \ --mount=type=cache,id=dev-apt-lib,sharing=locked,target=/var/lib/apt \ apt-get update -qq && \ - apt-get install --no-install-recommends -y curl libjemalloc2 libsqlite3-0 libyaml-dev postgresql-client ruby-foreman sudo + apt-get install --no-install-recommends -y curl libjemalloc2 postgresql-client ruby-foreman sudo # Copy built artifacts: gems, application COPY --from=build "${BUNDLE_PATH}" "${BUNDLE_PATH}" diff --git a/Gemfile b/Gemfile index 4401b2d81..52e996e11 100644 --- a/Gemfile +++ b/Gemfile @@ -2,55 +2,57 @@ source "https://rubygems.org" ruby "~> 3.0" -gem "rails" -gem "bootsnap", ">= 1.1.0", require: false -gem "puma" +gem "bootsnap", require: false +gem "pg" gem "propshaft" -gem "sqlite3" -gem "thruster" +gem "puma" +gem "rails" +gem "solid_cache" +gem "solid_queue" +gem "strong_migrations" +gem "thruster", require: false -gem "elasticsearch-persistence" -gem "opensearch-aws-sigv4" gem "opensearch-ruby" +gem "searchkick" +gem "anyway_config" +gem "aws-sdk-core" +gem "dogstatsd-ruby" gem "http" -gem "typhoeus", require: false -gem "kaminari", "~> 1.2.2" +gem "importmap-rails" gem "inline_svg" -gem "tty-spinner", require: false gem "lograge" gem "logstash-event" gem "meta-tags" +gem "rbs", require: false gem "rdoc", require: false -gem "trenni-sanitize", require: false -gem "pastel", require: false gem "rouge", require: false -gem "rbs", require: false -gem "anyway_config" -gem "dry-struct" -gem "view_component" -gem "dogstatsd-ruby" -gem "importmap-rails" -gem "tailwindcss-rails" gem "stimulus-rails" -gem "aws-sdk-core" +gem "tailwindcss-rails" +gem "trenni-sanitize", require: false +gem "typhoeus" +gem "view_component" + +gem "maintenance_tasks" +gem "mission_control-jobs" group :development, :test do - gem "debug" - gem "factory_bot" + gem "brakeman", require: false + gem "bundler-audit", require: false + gem "debug", platforms: %i[mri windows], require: "debug/prelude" + gem "rubocop-rails-omakase", require: false + gem "bullet" end group :development do - gem "web-console", ">= 3.3.0" - gem "listen", ">= 3.0.5", "< 3.10" - gem "standard" - gem "standard-rails" gem "dockerfile-rails" + gem "web-console" end group :test do - gem "capybara", ">= 2.15" + gem "capybara" gem "selenium-webdriver" + gem "vcr" gem "webmock" end diff --git a/Gemfile.lock b/Gemfile.lock index c47b35af4..b7e568f12 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -76,7 +76,7 @@ GEM public_suffix (>= 2.0.2, < 7.0) anyway_config (2.7.2) ruby-next-core (~> 1.0) - ast (2.4.2) + ast (2.4.3) aws-eventstream (1.3.2) aws-partitions (1.1082.0) aws-sdk-core (3.222.1) @@ -94,7 +94,15 @@ GEM bindex (0.8.1) bootsnap (1.18.4) msgpack (~> 1.2) + brakeman (7.0.2) + racc builder (3.3.0) + bullet (8.0.3) + activesupport (>= 3.0.0) + uniform_notifier (~> 1.11) + bundler-audit (0.9.2) + bundler (>= 1.2.0, < 3) + thor (~> 1.0) capybara (3.40.0) addressable matrix @@ -110,6 +118,7 @@ GEM bigdecimal rexml crass (1.0.6) + csv (3.3.4) date (3.4.1) ddtrace (0.48.0) ffi (~> 1.0) @@ -122,74 +131,17 @@ GEM dogstatsd-ruby (5.6.1) domain_name (0.6.20240107) drb (2.2.1) - dry-core (1.1.0) - concurrent-ruby (~> 1.0) - logger - zeitwerk (~> 2.6) - dry-inflector (1.2.0) - dry-logic (1.6.0) - bigdecimal - concurrent-ruby (~> 1.0) - dry-core (~> 1.1) - zeitwerk (~> 2.6) - dry-struct (1.8.0) - dry-core (~> 1.1) - dry-types (~> 1.8, >= 1.8.2) - ice_nine (~> 0.11) - zeitwerk (~> 2.6) - dry-types (1.8.2) - bigdecimal (~> 3.0) - concurrent-ruby (~> 1.0) - dry-core (~> 1.0) - dry-inflector (~> 1.0) - dry-logic (~> 1.4) - zeitwerk (~> 2.6) - elasticsearch (7.17.0) - elasticsearch-api (= 7.17.0) - elasticsearch-transport (= 7.17.0) - elasticsearch-api (7.17.0) - multi_json - elasticsearch-model (7.2.1) - activesupport (> 3) - elasticsearch (~> 7) - hashie - elasticsearch-persistence (7.2.1) - activemodel (> 4) - activesupport (> 4) - elasticsearch (~> 7) - elasticsearch-model (= 7.2.1) - hashie - elasticsearch-transport (7.17.0) - faraday (~> 1) - multi_json erubi (1.13.1) + et-orbi (1.2.11) + tzinfo ethon (0.16.0) ffi (>= 1.15.0) - factory_bot (6.4.6) - activesupport (>= 5.0.0) - faraday (1.10.4) - faraday-em_http (~> 1.0) - faraday-em_synchrony (~> 1.0) - faraday-excon (~> 1.1) - faraday-httpclient (~> 1.0) - faraday-multipart (~> 1.0) - faraday-net_http (~> 1.0) - faraday-net_http_persistent (~> 1.0) - faraday-patron (~> 1.0) - faraday-rack (~> 1.0) - faraday-retry (~> 1.0) - ruby2_keywords (>= 0.0.4) - faraday-em_http (1.0.0) - faraday-em_synchrony (1.0.0) - faraday-excon (1.1.0) - faraday-httpclient (1.0.1) - faraday-multipart (1.1.0) - multipart-post (~> 2.0) - faraday-net_http (1.0.2) - faraday-net_http_persistent (1.2.0) - faraday-patron (1.0.0) - faraday-rack (1.0.0) - faraday-retry (1.0.3) + faraday (2.13.0) + faraday-net_http (>= 2.0, < 3.5) + json + logger + faraday-net_http (3.4.0) + net-http (>= 0.5.0) ffi (1.17.1-aarch64-linux-gnu) ffi (1.17.1-aarch64-linux-musl) ffi (1.17.1-arm64-darwin) @@ -198,6 +150,9 @@ GEM ffi-compiler (1.0.1) ffi (>= 1.0.0) rake + fugit (1.11.1) + et-orbi (~> 1, >= 1.2.11) + raabro (~> 1.4) globalid (1.2.1) activesupport (>= 6.1) hashdiff (1.1.2) @@ -213,7 +168,6 @@ GEM http-form_data (2.3.0) i18n (1.14.7) concurrent-ruby (~> 1.0) - ice_nine (0.11.2) importmap-rails (2.1.0) actionpack (>= 6.0.0) activesupport (>= 6.0.0) @@ -227,24 +181,11 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) jmespath (1.6.2) + job-iteration (1.10.0) + activejob (>= 6.1) json (2.7.2) - kaminari (1.2.2) - activesupport (>= 4.1.0) - kaminari-actionview (= 1.2.2) - kaminari-activerecord (= 1.2.2) - kaminari-core (= 1.2.2) - kaminari-actionview (1.2.2) - actionview - kaminari-core (= 1.2.2) - kaminari-activerecord (1.2.2) - activerecord - kaminari-core (= 1.2.2) - kaminari-core (1.2.2) - language_server-protocol (3.17.0.3) + language_server-protocol (3.17.0.4) lint_roller (1.1.0) - listen (3.9.0) - rb-fsevent (~> 0.10, >= 0.10.3) - rb-inotify (~> 0.9, >= 0.9.10) llhttp-ffi (0.5.0) ffi-compiler (~> 1.0) rake (~> 13.0) @@ -263,6 +204,14 @@ GEM net-imap net-pop net-smtp + maintenance_tasks (2.11.0) + actionpack (>= 7.0) + activejob (>= 7.0) + activerecord (>= 7.0) + csv + job-iteration (>= 1.3.6) + railties (>= 7.0) + zeitwerk (>= 2.6.2) marcel (1.0.4) matrix (0.4.2) meta-tags (2.22.1) @@ -270,9 +219,20 @@ GEM method_source (1.1.0) mini_mime (1.1.5) minitest (5.25.5) + mission_control-jobs (1.0.2) + actioncable (>= 7.1) + actionpack (>= 7.1) + activejob (>= 7.1) + activerecord (>= 7.1) + importmap-rails (>= 1.2.1) + irb (~> 1.13) + railties (>= 7.1) + stimulus-rails + turbo-rails msgpack (1.8.0) multi_json (1.15.0) - multipart-post (2.4.1) + net-http (0.6.0) + uri net-imap (0.5.6) date net-protocol @@ -293,21 +253,18 @@ GEM racc (~> 1.4) nokogiri (1.18.7-x86_64-linux-gnu) racc (~> 1.4) - opensearch-aws-sigv4 (1.3.0) - aws-sigv4 (>= 1) - opensearch-ruby (>= 1.0.1, < 4.0) opensearch-ruby (3.4.0) faraday (>= 1.0, < 3) multi_json (>= 1.0) - parallel (1.26.2) - parser (3.3.4.2) + parallel (1.27.0) + parser (3.3.8.0) ast (~> 2.4.1) racc - pastel (0.8.0) - tty-color (~> 0.5) + pg (1.5.9) pp (0.6.2) prettyprint prettyprint (0.2.0) + prism (1.4.0) propshaft (1.1.0) actionpack (>= 7.0.0) activesupport (>= 7.0.0) @@ -319,6 +276,7 @@ GEM public_suffix (6.0.1) puma (6.6.0) nio4r (~> 2.0) + raabro (1.4.0) racc (1.8.1) rack (3.1.12) rack-session (2.1.0) @@ -361,9 +319,6 @@ GEM rake (13.2.1) rake-compiler (1.1.1) rake - rb-fsevent (0.11.2) - rb-inotify (0.10.1) - ffi (~> 1.0) rbs (3.8.1) logger rdoc (6.13.1) @@ -375,31 +330,42 @@ GEM rack (>= 1.4) rexml (3.4.1) rouge (4.5.1) - rubocop (1.65.1) + rubocop (1.69.0) json (~> 2.3) language_server-protocol (>= 3.17.0) parallel (~> 1.10) parser (>= 3.3.0.2) rainbow (>= 2.2.2, < 4.0) regexp_parser (>= 2.4, < 3.0) - rexml (>= 3.2.5, < 4.0) - rubocop-ast (>= 1.31.1, < 2.0) + rubocop-ast (>= 1.36.1, < 2.0) ruby-progressbar (~> 1.7) - unicode-display_width (>= 2.4.0, < 3.0) - rubocop-ast (1.32.0) - parser (>= 3.3.1.0) - rubocop-performance (1.21.1) + unicode-display_width (>= 2.4.0, < 4.0) + rubocop-ast (1.44.1) + parser (>= 3.3.7.2) + prism (~> 1.4) + rubocop-minitest (0.37.0) + lint_roller (~> 1.1) + rubocop (>= 1.61, < 2.0) + rubocop-ast (>= 1.38.0, < 2.0) + rubocop-performance (1.23.1) rubocop (>= 1.48.1, < 2.0) rubocop-ast (>= 1.31.1, < 2.0) - rubocop-rails (2.25.1) + rubocop-rails (2.29.1) activesupport (>= 4.2.0) rack (>= 1.1) - rubocop (>= 1.33.0, < 2.0) + rubocop (>= 1.52.0, < 2.0) rubocop-ast (>= 1.31.1, < 2.0) + rubocop-rails-omakase (1.0.0) + rubocop + rubocop-minitest + rubocop-performance + rubocop-rails ruby-next-core (1.1.1) ruby-progressbar (1.13.0) - ruby2_keywords (0.0.5) rubyzip (2.3.2) + searchkick (5.5.0) + activemodel (>= 7.1) + hashie securerandom (0.4.1) selenium-webdriver (4.23.0) base64 (~> 0.2) @@ -407,29 +373,22 @@ GEM rexml (~> 3.2, >= 3.2.5) rubyzip (>= 1.2.2, < 3.0) websocket (~> 1.0) - sqlite3 (2.5.0-aarch64-linux-gnu) - sqlite3 (2.5.0-aarch64-linux-musl) - sqlite3 (2.5.0-arm64-darwin) - sqlite3 (2.5.0-x86_64-darwin) - sqlite3 (2.5.0-x86_64-linux-gnu) - standard (1.40.0) - language_server-protocol (~> 3.17.0.2) - lint_roller (~> 1.0) - rubocop (~> 1.65.0) - standard-custom (~> 1.0.0) - standard-performance (~> 1.4) - standard-custom (1.0.2) - lint_roller (~> 1.0) - rubocop (~> 1.50) - standard-performance (1.4.0) - lint_roller (~> 1.1) - rubocop-performance (~> 1.21.0) - standard-rails (1.1.0) - lint_roller (~> 1.0) - rubocop-rails (~> 2.25.0) + solid_cache (1.0.7) + activejob (>= 7.2) + activerecord (>= 7.2) + railties (>= 7.2) + solid_queue (1.1.4) + activejob (>= 7.1) + activerecord (>= 7.1) + concurrent-ruby (>= 1.3.1) + fugit (~> 1.11.0) + railties (>= 7.1) + thor (~> 1.3.1) stimulus-rails (1.3.4) railties (>= 6.0.0) stringio (3.1.6) + strong_migrations (2.3.0) + activerecord (>= 7) tailwindcss-rails (4.2.1) railties (>= 7.0.0) tailwindcss-ruby (~> 4.0) @@ -448,17 +407,21 @@ GEM rake-compiler trenni-sanitize (0.6.1) trenni (~> 3.5) - tty-color (0.5.1) - tty-cursor (0.7.1) - tty-spinner (0.9.3) - tty-cursor (~> 0.7) + turbo-rails (2.0.13) + actionpack (>= 7.1.0) + railties (>= 7.1.0) typhoeus (1.4.1) ethon (>= 0.9.0) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - unicode-display_width (2.5.0) + unicode-display_width (3.1.4) + unicode-emoji (~> 4.0, >= 4.0.4) + unicode-emoji (4.0.4) + uniform_notifier (1.16.0) uri (1.0.3) useragent (0.16.11) + vcr (6.3.1) + base64 view_component (3.21.0) activesupport (>= 5.2.0, < 8.1) concurrent-ruby (~> 1.0) @@ -486,6 +449,7 @@ PLATFORMS aarch64-linux-musl arm64-darwin-21 arm64-darwin-22 + arm64-darwin-24 x86_64-darwin-21 x86_64-darwin-22 x86_64-linux @@ -493,44 +457,45 @@ PLATFORMS DEPENDENCIES anyway_config aws-sdk-core - bootsnap (>= 1.1.0) - capybara (>= 2.15) + bootsnap + brakeman + bullet + bundler-audit + capybara ddtrace debug dockerfile-rails dogstatsd-ruby - dry-struct - elasticsearch-persistence - factory_bot http importmap-rails inline_svg - kaminari (~> 1.2.2) - listen (>= 3.0.5, < 3.10) lograge logstash-event + maintenance_tasks meta-tags - opensearch-aws-sigv4 + mission_control-jobs opensearch-ruby - pastel + pg propshaft puma rails rbs rdoc rouge + rubocop-rails-omakase + searchkick selenium-webdriver - sqlite3 - standard - standard-rails + solid_cache + solid_queue stimulus-rails + strong_migrations tailwindcss-rails thruster trenni-sanitize - tty-spinner typhoeus + vcr view_component - web-console (>= 3.3.0) + web-console webmock RUBY VERSION diff --git a/Procfile.dev b/Procfile.dev index 673f54a5f..634ed6658 100644 --- a/Procfile.dev +++ b/Procfile.dev @@ -1,2 +1,3 @@ web: bundle exec rails server -p 3000 css: bin/rails tailwindcss:watch +job: bin/jobs \ No newline at end of file diff --git a/app/components/header/search_component.html.erb b/app/components/header/search_component.html.erb index 8bff62bfd..2c9349fd8 100644 --- a/app/components/header/search_component.html.erb +++ b/app/components/header/search_component.html.erb @@ -1,33 +1,31 @@ -
- <%= form_tag(search_path(version: @ruby_version), method: :get, class: "m-0") do %> -
- - - value="<%= search_query %>" - class="bg-white shadow-md py-3 z-0 text-gray-800 placeholder-gray-600 rounded px-3 pl-10 py-2 w-full outline-none" - autofocus - <% else %> - class="bg-red-800 focus:bg-white focus:text-black dark:focus:bg-white dark:focus:text-black dark:bg-gray-800 py-2 placeholder-white rounded px-3 pl-10 w-full outline-none" - <% end %> - /> -
"> -
+
+
+ + + value="<%= search_query %>" + class="bg-white shadow-md py-3 z-0 text-gray-800 placeholder-gray-600 rounded px-3 pl-10 py-2 w-full outline-none" + autofocus + <% else %> + class="bg-red-800 focus:bg-white focus:text-black dark:focus:bg-white dark:focus:text-black dark:bg-gray-800 py-2 placeholder-white rounded px-3 pl-10 w-full outline-none" + <% end %> + /> +
">
- <% end %> +
diff --git a/app/components/header/search_component.rb b/app/components/header/search_component.rb index b023ae4f5..265a51191 100644 --- a/app/components/header/search_component.rb +++ b/app/components/header/search_component.rb @@ -3,7 +3,7 @@ module Header class SearchComponent < ViewComponent::Base def initialize(version: Current.ruby_version) - @ruby_version = version.to_s + @ruby_version = version end def homepage? diff --git a/app/components/header/version_selector_component.html.erb b/app/components/header/version_selector_component.html.erb index 60db9fbb8..6fec1a961 100644 --- a/app/components/header/version_selector_component.html.erb +++ b/app/components/header/version_selector_component.html.erb @@ -1,7 +1,7 @@
@@ -35,7 +35,7 @@
- <%= render Header::VersionSelectorComponent.new(versions: RubyConfig.ruby_versions) %> + <%= render Header::VersionSelectorComponent.new(versions: RubyVersion.all) %> <%= render Header::ThemeSelectorComponent.new %>
<% end %> diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index 8f9afd0f7..0a2197bde 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -14,7 +14,6 @@ <%= csrf_meta_tags %> <%= csp_meta_tag %> - <%= content_for(:head) %> <%= stylesheet_link_tag "tailwind", "data-turbo-track": "reload" %> <%= javascript_importmap_tags %> <%= javascript_include_tag "theme" if Current.theme.dynamic? %> diff --git a/app/views/objects/show.html.erb b/app/views/objects/show.html.erb index 76b4ad174..19f0e97be 100644 --- a/app/views/objects/show.html.erb +++ b/app/views/objects/show.html.erb @@ -3,14 +3,14 @@ <% content_for :mobile_menu do %>