diff --git a/Gemfile b/Gemfile index 6dc8ab81d8..58f9b0a6a3 100644 --- a/Gemfile +++ b/Gemfile @@ -8,7 +8,23 @@ rails_version = (ENV["RAILS_VERSION"] || "6.1.1").to_s gem "rack-cors" gem "rake", "~> 12.0" # Bundle edge Rails instead: gem 'rails', github: 'rails/rails' -gem "rails", rails_version == "main" ? { git: "https://github.com/rails/rails", ref: "main" } : rails_version +if rails_version != "main" + gem "actionview", rails_version + gem "activemodel", rails_version + gem "activesupport", rails_version + gem "railties", rails_version +else + git "https://github.com/rails/rails", ref: "main" do + # rubocop:disable Bundler/DuplicatedGem + gem "actionview" + gem "activemodel" + gem "activerecord" + gem "activesupport" + gem "railties" + # rubocop:enable Bundler/DuplicatedGem + end +end + # Use Puma as the app server gem "puma", "~> 4.3.6" # Transpile app-like JavaScript. Read more: https://github.com/rails/webpacker @@ -19,22 +35,3 @@ gem "bootsnap", ">= 1.4.2", require: false gem "view_component", path: ENV["VIEW_COMPONENT_PATH"] if ENV["VIEW_COMPONENT_PATH"] gem "view_component_storybook", "~> 0.8.0" - -group :development, :test do - # Call 'byebug' anywhere in the code to stop execution and get a debugger console - gem "minitest", "~> 5.0" - gem "pry-rails" -end - -group :development do - # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring - gem "spring" - gem "spring-watcher-listen", "~> 2.0.0" -end - -group :test do - # Adds support for Capybara system testing and selenium driver - gem "capybara", "~> 3" - - gem "cuprite", "0.11" -end diff --git a/Gemfile.lock b/Gemfile.lock index 2aa48abc64..8b9dc6adfb 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -2,32 +2,14 @@ PATH remote: . specs: primer_view_components (0.0.34) - octicons_helper (>= 9.0.0, < 13.0.0) - rails (>= 5.0.0, < 7.0) + actionview (>= 5.0.0) + activesupport (>= 5.0.0) + octicons_helper (>= 13.0.0) view_component (>= 2.0.0, < 3.0) GEM remote: https://rubygems.org/ specs: - actioncable (6.1.1) - actionpack (= 6.1.1) - activesupport (= 6.1.1) - nio4r (~> 2.0) - websocket-driver (>= 0.6.1) - actionmailbox (6.1.1) - actionpack (= 6.1.1) - activejob (= 6.1.1) - activerecord (= 6.1.1) - activestorage (= 6.1.1) - activesupport (= 6.1.1) - mail (>= 2.7.1) - actionmailer (6.1.1) - actionpack (= 6.1.1) - actionview (= 6.1.1) - activejob (= 6.1.1) - activesupport (= 6.1.1) - mail (~> 2.5, >= 2.5.4) - rails-dom-testing (~> 2.0) actionpack (6.1.1) actionview (= 6.1.1) activesupport (= 6.1.1) @@ -35,33 +17,14 @@ GEM rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (6.1.1) - actionpack (= 6.1.1) - activerecord (= 6.1.1) - activestorage (= 6.1.1) - activesupport (= 6.1.1) - nokogiri (>= 1.8.5) actionview (6.1.1) activesupport (= 6.1.1) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.1, >= 1.2.0) - activejob (6.1.1) - activesupport (= 6.1.1) - globalid (>= 0.3.6) activemodel (6.1.1) activesupport (= 6.1.1) - activerecord (6.1.1) - activemodel (= 6.1.1) - activesupport (= 6.1.1) - activestorage (6.1.1) - actionpack (= 6.1.1) - activejob (= 6.1.1) - activerecord (= 6.1.1) - activesupport (= 6.1.1) - marcel (~> 0.3.1) - mimemagic (~> 0.3.2) activesupport (6.1.1) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) @@ -100,9 +63,7 @@ GEM concurrent-ruby (~> 1.1) websocket-driver (>= 0.6, < 0.8) ffi (1.14.2) - globalid (0.4.2) - activesupport (>= 4.2.0) - i18n (1.8.9) + i18n (1.8.10) concurrent-ruby (~> 1.0) jaro_winkler (1.5.4) listen (3.4.0) @@ -111,37 +72,30 @@ GEM loofah (2.9.0) crass (~> 1.0.2) nokogiri (>= 1.5.9) - mail (2.7.1) - mini_mime (>= 0.1.1) - marcel (0.3.3) - mimemagic (~> 0.3.2) method_source (1.0.0) - mimemagic (0.3.8) - nokogiri (~> 1) - mini_mime (1.0.2) + mini_mime (1.1.0) mini_portile2 (2.5.0) minitest (5.14.4) mocha (1.12.0) msgpack (1.3.3) - nio4r (2.5.4) - nokogiri (1.11.1) + nio4r (2.5.7) + nokogiri (1.11.2) mini_portile2 (~> 2.5.0) racc (~> 1.4) - nokogiri (1.11.1-x86_64-darwin) + nokogiri (1.11.2-x86_64-darwin) racc (~> 1.4) - octicons (12.1.0) + octicons (13.0.0) nokogiri (>= 1.6.3.1) - octicons_helper (12.1.0) - octicons (= 12.1.0) - rails + octicons_helper (13.0.0) + actionview + octicons (= 13.0.0) + railties parallel (1.20.1) parser (3.0.0.0) ast (~> 2.4.1) pry (0.13.1) coderay (~> 1.1) method_source (~> 1.0) - pry-rails (0.3.9) - pry (>= 0.10.4) public_suffix (4.0.6) puma (4.3.7) nio4r (~> 2.0) @@ -153,21 +107,6 @@ GEM rack rack-test (1.1.0) rack (>= 1.0, < 3) - rails (6.1.1) - actioncable (= 6.1.1) - actionmailbox (= 6.1.1) - actionmailer (= 6.1.1) - actionpack (= 6.1.1) - actiontext (= 6.1.1) - actionview (= 6.1.1) - activejob (= 6.1.1) - activemodel (= 6.1.1) - activerecord (= 6.1.1) - activestorage (= 6.1.1) - activesupport (= 6.1.1) - bundler (>= 1.15.0) - railties (= 6.1.1) - sprockets-rails (>= 2.0.0) rails-dom-testing (2.0.3) activesupport (>= 4.2.0) nokogiri (>= 1.6) @@ -214,10 +153,6 @@ GEM simplecov terminal-table simplecov-html (0.12.3) - spring (2.1.1) - spring-watcher-listen (2.0.1) - listen (>= 2.7, < 4.0) - spring (>= 1.2, < 3.0) sprockets (4.0.2) concurrent-ruby (~> 1.0) rack (> 1, < 3) @@ -253,6 +188,9 @@ PLATFORMS x86_64-darwin-19 DEPENDENCIES + actionview (= 6.1.1) + activemodel (= 6.1.1) + activesupport (= 6.1.1) allocation_tracer (~> 0.6.3) benchmark-ips (~> 2.8.4) bootsnap (>= 1.4.2) @@ -263,18 +201,17 @@ DEPENDENCIES mocha primer_view_components! pry - pry-rails puma (~> 4.3.6) rack-cors - rails (= 6.1.1) + railties (= 6.1.1) rake (~> 12.0) rubocop (= 0.82) rubocop-github (~> 0.16.0) rubocop-performance (~> 1.7) simplecov (~> 0.18.0) simplecov-console (~> 0.7.2) - spring - spring-watcher-listen (~> 2.0.0) + sprockets + sprockets-rails view_component_storybook (~> 0.8.0) webpacker (~> 5.0) yard (~> 0.9.25) diff --git a/app/components/primer/base_component.rb b/app/components/primer/base_component.rb index f0cd1758e1..793ee6e518 100644 --- a/app/components/primer/base_component.rb +++ b/app/components/primer/base_component.rb @@ -25,8 +25,6 @@ module Primer class BaseComponent < Primer::Component status :beta - include TestSelectorHelper - # ## HTML attributes # # System arguments include most HTML attributes. For example: diff --git a/app/components/primer/component.rb b/app/components/primer/component.rb index f5674ca3f2..7f6c8c4202 100644 --- a/app/components/primer/component.rb +++ b/app/components/primer/component.rb @@ -10,6 +10,7 @@ class Component < ViewComponent::Base include ClassNameHelper include FetchOrFallbackHelper include OcticonsHelper + include TestSelectorHelper include JoinStyleArgumentsHelper include ViewHelper include Status::Dsl diff --git a/app/components/primer/octicon_component.rb b/app/components/primer/octicon_component.rb index f72d296736..56c5281a95 100644 --- a/app/components/primer/octicon_component.rb +++ b/app/components/primer/octicon_component.rb @@ -5,10 +5,6 @@ module Primer class OcticonComponent < Primer::Component status :beta - include ClassNameHelper - include TestSelectorHelper - include OcticonsHelper - SIZE_DEFAULT = :small SIZE_MAPPINGS = { SIZE_DEFAULT => 16, diff --git a/demo/Gemfile b/demo/Gemfile index f8825e119f..32f714ccf6 100644 --- a/demo/Gemfile +++ b/demo/Gemfile @@ -7,7 +7,23 @@ rails_version = (ENV["RAILS_VERSION"] || "6.1.1").to_s gem "rake", "~> 12.0" gem "rack-cors" # Bundle edge Rails instead: gem 'rails', github: 'rails/rails' -gem "rails", rails_version == "master" ? { github: "rails/rails" } : rails_version +if rails_version != "main" + gem "actionview", rails_version + gem "activemodel", rails_version + gem "activesupport", rails_version + gem "railties", rails_version +else + git "https://github.com/rails/rails", ref: "main" do + # rubocop:disable Bundler/DuplicatedGem + gem "actionview" + gem "activemodel" + gem "activerecord" + gem "activesupport" + gem "railties" + # rubocop:enable Bundler/DuplicatedGem + end +end + # Use Puma as the app server gem "puma", "~> 4.3.6" @@ -19,8 +35,8 @@ gem "view_component_storybook", "~> 0.8.0" group :development, :test do # Call 'byebug' anywhere in the code to stop execution and get a debugger console - gem "minitest", "~> 5.0" - gem "pry-rails" + gem "sprockets" + gem "sprockets-rails" end group :development do @@ -28,8 +44,3 @@ group :development do gem "spring" gem "spring-watcher-listen", "~> 2.0.0" end - -group :test do - # Adds support for Capybara system testing and selenium driver - gem "capybara", "~> 3" -end diff --git a/demo/Gemfile.lock b/demo/Gemfile.lock index 2b272949e5..8576b2d101 100644 --- a/demo/Gemfile.lock +++ b/demo/Gemfile.lock @@ -2,8 +2,9 @@ PATH remote: .. specs: primer_view_components (0.0.34) + actionview (>= 5.0.0) + activesupport (>= 5.0.0) octicons_helper (>= 9.0.0, < 13.0.0) - rails (>= 5.0.0, < 7.0) view_component (>= 2.0.0, < 3.0) GEM @@ -68,20 +69,9 @@ GEM minitest (>= 5.1) tzinfo (~> 2.0) zeitwerk (~> 2.3) - addressable (2.7.0) - public_suffix (>= 2.0.2, < 5.0) bootsnap (1.4.7) msgpack (~> 1.0) builder (3.2.4) - capybara (3.33.0) - addressable - mini_mime (>= 0.1.3) - nokogiri (~> 1.8) - rack (>= 1.6.0) - rack-test (>= 0.6.3) - regexp_parser (~> 1.5) - xpath (~> 3.2) - coderay (1.1.3) concurrent-ruby (1.1.8) crass (1.0.6) erubi (1.10.0) @@ -101,10 +91,10 @@ GEM marcel (0.3.3) mimemagic (~> 0.3.2) method_source (1.0.0) - mimemagic (0.3.9) + mimemagic (0.3.10) nokogiri (~> 1) rake - mini_mime (1.0.2) + mini_mime (1.1.0) mini_portile2 (2.5.0) minitest (5.14.4) msgpack (1.3.3) @@ -117,12 +107,6 @@ GEM octicons_helper (12.1.0) octicons (= 12.1.0) rails - pry (0.13.1) - coderay (~> 1.1) - method_source (~> 1.0) - pry-rails (0.3.9) - pry (>= 0.10.4) - public_suffix (4.0.5) puma (4.3.6) nio4r (~> 2.0) racc (1.5.2) @@ -161,7 +145,6 @@ GEM rb-fsevent (0.10.4) rb-inotify (0.10.1) ffi (~> 1.0) - regexp_parser (1.7.1) spring (2.1.0) spring-watcher-listen (2.0.1) listen (>= 2.7, < 4.0) @@ -183,25 +166,25 @@ GEM websocket-driver (0.7.3) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) - xpath (3.2.0) - nokogiri (~> 1.8) zeitwerk (2.4.2) PLATFORMS ruby DEPENDENCIES + actionview (= 6.1.1) + activemodel (= 6.1.1) + activesupport (= 6.1.1) bootsnap (>= 1.4.2) - capybara (~> 3) - minitest (~> 5.0) primer_view_components! - pry-rails puma (~> 4.3.6) rack-cors - rails (= 6.1.1) + railties (= 6.1.1) rake (~> 12.0) spring spring-watcher-listen (~> 2.0.0) + sprockets + sprockets-rails view_component_storybook (~> 0.8.0) BUNDLED WITH diff --git a/demo/config/application.rb b/demo/config/application.rb index 0b1fcdadef..9e241c3067 100644 --- a/demo/config/application.rb +++ b/demo/config/application.rb @@ -5,7 +5,6 @@ require "action_controller/railtie" require "action_view/railtie" require "sprockets/railtie" -require "rails/test_unit/railtie" require "view_component/engine" require "view_component/storybook/engine" require "primer/view_components/engine" diff --git a/demo/config/cable.yml b/demo/config/cable.yml deleted file mode 100644 index 5a8a13d116..0000000000 --- a/demo/config/cable.yml +++ /dev/null @@ -1,10 +0,0 @@ -development: - adapter: async - -test: - adapter: test - -production: - adapter: redis - url: <%= ENV.fetch("REDIS_URL") { "redis://localhost:6379/1" } %> - channel_prefix: demo_production diff --git a/demo/config/storage.yml b/demo/config/storage.yml deleted file mode 100644 index d32f76e8fb..0000000000 --- a/demo/config/storage.yml +++ /dev/null @@ -1,34 +0,0 @@ -test: - service: Disk - root: <%= Rails.root.join("tmp/storage") %> - -local: - service: Disk - root: <%= Rails.root.join("storage") %> - -# Use rails credentials:edit to set the AWS secrets (as aws:access_key_id|secret_access_key) -# amazon: -# service: S3 -# access_key_id: <%= Rails.application.credentials.dig(:aws, :access_key_id) %> -# secret_access_key: <%= Rails.application.credentials.dig(:aws, :secret_access_key) %> -# region: us-east-1 -# bucket: your_own_bucket - -# Remember not to checkin your GCS keyfile to a repository -# google: -# service: GCS -# project: your_project -# credentials: <%= Rails.root.join("path/to/gcs.keyfile") %> -# bucket: your_own_bucket - -# Use rails credentials:edit to set the Azure Storage secret (as azure_storage:storage_access_key) -# microsoft: -# service: AzureStorage -# storage_account_name: your_account_name -# storage_access_key: <%= Rails.application.credentials.dig(:azure_storage, :storage_access_key) %> -# container: your_container_name - -# mirror: -# service: Mirror -# primary: local -# mirrors: [ amazon, google, microsoft ] diff --git a/primer_view_components.gemspec b/primer_view_components.gemspec index 16f70e3221..4b423b05ec 100644 --- a/primer_view_components.gemspec +++ b/primer_view_components.gemspec @@ -27,14 +27,17 @@ Gem::Specification.new do |spec| spec.files = Dir["CHANGELOG.md", "LICENSE.txt", "README.md", "lib/**/*", "app/**/*", "static/statuses.json"] spec.require_paths = ["lib"] - spec.add_runtime_dependency "octicons_helper", [">= 9.0.0", "< 13.0.0"] - spec.add_runtime_dependency "rails", [">= 5.0.0", "< 7.0"] + spec.add_runtime_dependency "actionview", ">= 5.0.0" + spec.add_runtime_dependency "activesupport", ">= 5.0.0" + spec.add_runtime_dependency "octicons_helper", ">= 13.0.0" spec.add_runtime_dependency "view_component", [">= 2.0.0", "< 3.0"] spec.add_development_dependency "allocation_tracer", "~> 0.6.3" spec.add_development_dependency "benchmark-ips", "~> 2.8.4" + spec.add_development_dependency "capybara", "~> 3" + spec.add_development_dependency "cuprite", "= 0.11" spec.add_development_dependency "listen", "~> 3.0" - spec.add_development_dependency "minitest", "= 5.6.0" + spec.add_development_dependency "minitest", "~> 5.0" spec.add_development_dependency "mocha" spec.add_development_dependency "pry" spec.add_development_dependency "rubocop", "= 0.82" @@ -42,5 +45,7 @@ Gem::Specification.new do |spec| spec.add_development_dependency "rubocop-performance", "~> 1.7" spec.add_development_dependency "simplecov", "~> 0.18.0" spec.add_development_dependency "simplecov-console", "~> 0.7.2" + spec.add_development_dependency "sprockets" + spec.add_development_dependency "sprockets-rails" spec.add_development_dependency "yard", "~> 0.9.25" end