зеркало из
https://github.com/rs-pro/activeadmin-quill_editor.git
synced 2026-08-28 15:36:17 +03:00
- Add Appraisal gem for managing multiple test gemfiles - Create test matrix for Rails 6.1-8.0 and ActiveAdmin 2.9-4.x - Consolidate multiple workflow files into single ci.yml - Use matrix strategy to test across Ruby 3.0-3.3 - Remove deprecated individual workflow files - Add gemfiles/ to gitignore as they're generated - Improve backward compatibility support
93 строки
2.2 KiB
Ruby
93 строки
2.2 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
source 'https://rubygems.org'
|
|
|
|
def eval_version(dependency, version)
|
|
return [dependency] if version.empty?
|
|
|
|
# Handle versions that already have operators like ~>, >=, etc.
|
|
if version.match?(/^[~<>=]/)
|
|
[dependency, version]
|
|
else
|
|
# Add ~> operator and ensure version has at least 2 dots
|
|
version.count('.') < 2 ? [dependency, "~> #{version}.0"] : [dependency, "~> #{version}"]
|
|
end
|
|
end
|
|
|
|
if ENV['DEVEL'] == '1'
|
|
gem 'activeadmin_quill_editor', path: './'
|
|
else
|
|
gemspec
|
|
end
|
|
|
|
ruby_ver = ENV.fetch('RUBY_VERSION', '')
|
|
|
|
rails_ver = ENV.fetch('RAILS_VERSION', '')
|
|
rails = eval_version('rails', rails_ver)
|
|
gem(*rails)
|
|
|
|
active_admin_ver = ENV.fetch('ACTIVEADMIN_VERSION', '')
|
|
active_admin_requirement =
|
|
if active_admin_ver.empty?
|
|
'~> 4.0.0.beta16'
|
|
elsif active_admin_ver.match?(/[a-zA-Z]/) || active_admin_ver.match?(/^[~<>=]/)
|
|
active_admin_ver
|
|
else
|
|
target = Gem::Version.new(active_admin_ver)
|
|
if target >= Gem::Version.new('4.0')
|
|
'~> 4.0.0.beta16'
|
|
else
|
|
active_admin_ver.count('.') < 2 ? "~> #{active_admin_ver}.0" : "~> #{active_admin_ver}"
|
|
end
|
|
end
|
|
|
|
gem 'activeadmin', active_admin_requirement
|
|
|
|
ruby32 = ruby_ver.empty? || Gem::Version.new(ruby_ver) >= Gem::Version.new('3.2')
|
|
rails72 = rails_ver.empty? || Gem::Version.new(rails_ver) >= Gem::Version.new('7.2')
|
|
sqlite3 = ruby32 && rails72 ? ['sqlite3'] : ['sqlite3', '~> 1.4']
|
|
gem(*sqlite3)
|
|
|
|
gem 'zeitwerk', '~> 2.6.18' unless ruby32
|
|
|
|
# NOTE: to avoid error: uninitialized constant ActiveSupport::LoggerThreadSafeLevel::Logger
|
|
gem 'concurrent-ruby', '1.3.4'
|
|
|
|
# Misc
|
|
gem 'bigdecimal'
|
|
gem 'csv'
|
|
gem 'mutex_m'
|
|
gem 'puma'
|
|
|
|
# Asset pipeline - use Propshaft for Rails 8, Sprockets for older versions
|
|
rails80 = rails_ver.empty? || Gem::Version.new(rails_ver) >= Gem::Version.new('8.0')
|
|
if rails80
|
|
gem 'importmap-rails' # Required for ActiveAdmin 4
|
|
gem 'propshaft'
|
|
else
|
|
gem 'sassc'
|
|
gem 'sprockets-rails'
|
|
end
|
|
|
|
# Testing
|
|
gem 'capybara'
|
|
gem 'cuprite'
|
|
gem 'rspec_junit_formatter'
|
|
gem 'rspec-rails'
|
|
gem 'simplecov', require: false
|
|
gem 'super_diff'
|
|
|
|
# Linters
|
|
gem 'fasterer'
|
|
gem 'rubocop'
|
|
gem 'rubocop-capybara'
|
|
gem 'rubocop-packaging'
|
|
gem 'rubocop-performance'
|
|
gem 'rubocop-rails'
|
|
gem 'rubocop-rspec'
|
|
gem 'rubocop-rspec_rails'
|
|
|
|
# Tools
|
|
gem 'appraisal'
|
|
gem 'pry-rails'
|