Files

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