mirror of
https://github.com/Growstuff/growstuff.git
synced 2026-10-30 02:38:47 -04:00
181 lines
4.1 KiB
Ruby
181 lines
4.1 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
source 'https://rubygems.org'
|
|
|
|
# Match ruby version in .ruby-version
|
|
ruby File.read('.ruby-version')
|
|
|
|
gem 'rails', '~> 8.1.0'
|
|
|
|
gem 'csv'
|
|
|
|
# Asset pipeline: Propshaft serves and fingerprints what esbuild (JavaScript)
|
|
# and Sass (CSS) build into app/assets/builds; npm supplies the front-end libraries.
|
|
gem 'propshaft'
|
|
gem 'jsbundling-rails'
|
|
gem 'cssbundling-rails'
|
|
|
|
gem 'bundler', '>= 2.4.22'
|
|
|
|
gem 'haml'
|
|
gem 'oauth', '1.1.6' # Explicitly pinned, as the maintainer does huge (400 files, 45k lines) changes in point releases - required manual plus agentic security review.
|
|
|
|
# API data
|
|
gem 'graphiti-rails', '~> 0.4'
|
|
gem 'rswag-ui'
|
|
|
|
# JSON pinned until this is resolved across the ecosystem (Oct 26)
|
|
# ArgumentError: unknown keyword: create_additions (ArgumentError)
|
|
#
|
|
# caller: /home/runner/work/growstuff/growstuff/vendor/bundle/ruby/4.0.0/gems/json-3.0.2/lib/json/common.rb:302
|
|
# | Parser.parse(source, options)
|
|
# ^^^^^^
|
|
gem 'json', '< 3'
|
|
gem 'oj' # Speeds up json
|
|
|
|
# planting and harvest predictions
|
|
# based on median values for the crop
|
|
gem 'active_median'
|
|
gem 'active_record_union'
|
|
|
|
gem 'flickraw'
|
|
|
|
gem 'cancancan' # for checking member privileges
|
|
gem 'csv_shaper' # CSV export
|
|
gem 'flipper-active_record' # feature flags admins switch on and off
|
|
|
|
gem 'pg'
|
|
|
|
gem 'active_utils'
|
|
|
|
# Markdown formatting for updates etc
|
|
gem 'kramdown' # the Markdown engine Tilt picks for Haml's :markdown filter
|
|
|
|
# Pagination
|
|
gem 'will_paginate'
|
|
gem 'will_paginate-bootstrap-style'
|
|
|
|
# user signup/login/etc
|
|
gem 'devise'
|
|
|
|
# nicely formatted URLs
|
|
gem 'friendly_id'
|
|
|
|
# validates URLs
|
|
gem "validate_url"
|
|
|
|
# gravatars
|
|
gem 'gravatar-ultimate'
|
|
|
|
# For geolocation
|
|
gem 'geocoder'
|
|
|
|
# DRY-er easier bootstrap 5 forms
|
|
gem "bootstrap_form", ">= 4.5.0"
|
|
|
|
# For connecting to other services (eg Flickr)
|
|
gem 'omniauth', '~> 1.3'
|
|
gem 'omniauth-flickr', '>= 0.0.15'
|
|
|
|
# Pretty charts
|
|
gem "chartkick"
|
|
|
|
|
|
gem "hashie", ">= 3.5.3"
|
|
|
|
gem 'rake', '>= 10.0.0'
|
|
|
|
# locale based flash notices for controllers
|
|
gem "responders"
|
|
|
|
# allows soft delete. Used for members.
|
|
gem 'discard', '>= 1.2'
|
|
|
|
gem 'xmlrpc' # fixes rake error - can be removed if not needed later
|
|
|
|
gem 'puma'
|
|
|
|
gem 'rack-attack'
|
|
|
|
gem 'loofah', '>= 2.19.1'
|
|
gem 'rack-protection', '>= 2.0.1'
|
|
|
|
# Member to member messaging system
|
|
gem 'mailboxer', '>= 0.15.1'
|
|
|
|
gem 'faraday'
|
|
|
|
gem 'rack-cors'
|
|
|
|
gem 'icalendar'
|
|
|
|
# for signups as requested by email service
|
|
gem 'recaptcha'
|
|
|
|
# External APIs for data
|
|
gem "gbifrb"
|
|
|
|
gem "msgpack"
|
|
|
|
group :production do
|
|
gem 'dalli'
|
|
|
|
gem 'scout_apm' # monitoring
|
|
end
|
|
|
|
group :development do
|
|
gem 'better_errors'
|
|
gem 'foreman'
|
|
gem 'letter_opener'
|
|
gem 'listen'
|
|
end
|
|
|
|
group :development, :test do
|
|
gem 'bullet' # performance tuning by finding unnecesary queries
|
|
gem 'capybara' # integration tests
|
|
gem 'capybara-email' # integration tests for email
|
|
gem 'capybara-screenshot' # for test debugging
|
|
gem 'debug', platforms: %i(mri windows), require: 'debug/prelude' # debugging
|
|
gem 'factory_bot_rails' # for creating test data
|
|
gem 'faker'
|
|
gem 'haml-rails' # HTML templating language
|
|
gem 'pry'
|
|
gem 'query_diet'
|
|
gem 'rspec-activemodel-mocks'
|
|
gem 'rspec-rails' # unit testing framework
|
|
gem 'rubocop-capybara'
|
|
gem 'rubocop-factory_bot'
|
|
gem 'rubocop-rails'
|
|
gem 'rubocop-rake'
|
|
gem 'rubocop-rspec'
|
|
gem 'rubocop-rspec_rails'
|
|
|
|
gem 'dotenv-rails'
|
|
|
|
# cli utils
|
|
gem 'haml_lint', '>= 0.25.1', require: false # Checks haml files for goodness
|
|
gem 'i18n-tasks', require: false # adds tests for finding missing and unused translations
|
|
gem 'rspectre', require: false # finds unused code in specs
|
|
gem 'rubocop', require: false
|
|
end
|
|
|
|
group :test do
|
|
gem 'axe-core-capybara'
|
|
gem 'axe-core-rspec'
|
|
gem "percy-capybara", "~> 5.0.0"
|
|
gem 'rails-controller-testing'
|
|
gem "rspec-rebound"
|
|
gem 'selenium-webdriver'
|
|
gem 'timecop'
|
|
gem 'vcr'
|
|
end
|
|
|
|
gem "i18n_data", "~> 1.1"
|
|
|
|
gem "paper_trail", "~> 17.0"
|
|
|
|
gem 'aws-sdk-s3', '~> 1', '>= 1.114.0', require: false
|
|
gem 'sitemap_generator'
|
|
|
|
gem "simplecov", "~> 1.3", group: :test, require: false
|