# frozen_string_literal: true
source 'https://rubygems.org'
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
ruby '3.2.2'
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '6.1.6.1'
# Use postgresql as the database for Active Record
gem 'pg'
# Use Puma as the app server
gem 'puma', '~> 4.3.10'
# gem "ruby-prof"
# Use SCSS for stylesheets
gem 'sassc-rails'
# Transpile app-like JavaScript. Read more: https://github.com/rails/webpacker
gem 'webpacker', '~> 5.4', '>= 5.4.3'
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 2.11', '>= 2.11.5'
# Use Redis adapter to run Action Cable in production
gem 'redis', '~> 4.0'
# Reduces boot times through caching; required in config/boot.rb
gem 'bootsnap', '>= 1.4.2', require: false
# --- Added Gems (Walsh) --- #
# Used for precompilation
gem 'activerecord-nulldb-adapter'
# Used to create nested forms ()
gem 'cocoon'
gem 'mini_magick'
# Used for a file upload (for logo)
gem 'administrate-field-carrierwave', '~> 0.5.0'
gem 'carrierwave', '~> 1.3.1'
# Used to create friendly IDs (slugs)
gem 'friendly_id', '~> 5.2.5'
# Used to generate sitemap
gem 'sitemap_generator'
# Sentry error logging
gem 'sentry-rails'
gem 'sentry-ruby'
# Used for infinite scroll
gem 'will_paginate', '~> 3.3.0'
# Used for tags
gem 'acts-as-taggable-on', '~> 8.1', '>= 8.1.0'
# Social Media APIs
gem 'koala'
gem 'linkedin-v2', '~> 0.1.9'
gem 'twitter'
# Used for validation
gem 'validates_timeliness', '~> 5.0.0.alpha3'
# Used to get the indefinite article (a/an) for titles
gem 'indefinite_article'
# Used for Ghost
gem 'rack-reverse-proxy', require: 'rack/reverse_proxy'
# Used for maintenance page
gem 'turnout'
# Used to convert currencies
# gem 'money-currencylayer-bank'
gem 'money-open-exchange-rates'
gem 'money-rails', '~> 1.15', '>= 1.15.0'
# Used to replace 'escape_javascript' with a faster implementation
gem 'escape_utils', '~> 1.2.1'
# Used for search
# gem 'opensearch-ruby', '>= 2.0.2'
# gem 'searchkick'
# Used for email
gem 'mjml-rails'
gem 'postmark-rails'
# Used to get country data
gem 'countries', require: 'countries/global'
# Used for stripe
gem 'stripe'
gem 'faraday_middleware-aws-sigv4'
gem 'oj'
gem 'typhoeus'
# Used for permissions
gem 'pundit'
# Used for analytics
gem 'analytics-ruby', '~> 2.4.0', require: 'segment/analytics'
# Used for enforcing no trailing slashes
gem 'rack-rewrite', '~> 1.5.0'
# Used for compressing js
gem 'terser'
# Used for drafting
gem 'amoeba' # to clone
# Used for skylight
gem 'skylight'
# Used for indexing api
gem 'google-apis-indexing_v3', '~> 0.1'
gem 'googleauth'
gem 'omniauth-google-oauth2'
gem 'omniauth-rails_csrf_protection'
# Used for oauth
gem 'google-apis-oauth2_v2'
# Used for putting our domain on external links
gem 'shortener'
# Used to force emails to an address in dev/staging
gem 'sanitize_email'
# Used to support POST request to servers (e.g. Cloudflare Images)
gem 'multipart-post'
# Used to support active storage in administrate
gem 'administrate-field-active_storage'
# Used for aws s3 images
gem 'aws-sdk-s3', require: false
# Used for new relic monitoring
# gem 'newrelic_rpm'
# Used for active storage validations
gem 'active_storage_validations'
# Used for child exists associations
gem 'activerecord_where_assoc', '~> 1.1', '>= 1.1.2'
# Used to add a separate redis database for session management
gem 'redis-session-store'
# Used for signing image links
gem 'ruby-hmac'
# Used for image optimisation
gem 'image_optim_rails'
# Used for analytics (segment replacement)
gem 'posthog-ruby'
# Used to reduce tags to their stem for comparison
gem 'pragmatic_tokenizer'
gem 'stemmify'
# Used for AI
gem 'fasttext'
gem 'ruby-openai'
# Used for scraping jobs and test
gem 'selenium-webdriver'
# gem 'webdrivers' # Easy installation and use of web drivers to run system tests with browsers
gem 'order_as_specified'
# Used for caching/purging cache
gem 'cloudflare'
# Used for PDF parsing
gem 'docsplit'
# Used for rate limiting
gem 'ratelimit'
# Used for handling CORS with Public Jobs API
gem 'rack-cors'
# Used for connecting to Qdrant vector db
gem 'qdrant-ruby'
# Additions for Ruby 3.1/3.2
gem 'net-smtp', require: false
gem 'net-imap', require: false
gem 'net-pop', require: false
gem 'matrix'
# Used for JWT auth
gem 'jwt'
# Used for new email
gem 'resend', '~> 0.7.2'
# Used for full text search
gem 'pg_search'
# Used for webhook verification
gem 'svix'
# --- --- #
group :development, :test do
# Call 'byebug' anywhere in the code to stop execution and get a debugger console
gem 'annotate'
gem 'brakeman'
gem 'bundler-audit'
gem 'byebug', platforms: %i[mri mingw x64_mingw]
gem 'derailed_benchmarks'
gem 'letter_opener_web', '~> 1.4', '>= 1.4.1'
gem 'pry-rails'
gem 'rubocop'
gem 'rubocop-rails'
# Performance
# gem 'bullet'
# gem 'prosopite'
gem 'bumbler'
gem 'pg_query'
end
group :development do
# Access an interactive console on exception pages or by calling 'console' anywhere in the code.
gem 'erb_lint'
gem 'listen', '>= 3.0.5', '< 3.2'
gem 'solargraph'
# 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'
gem 'web-console', '>= 4.2.0'
end
group :test do
# Adds support for Capybara system testing (needs selenium-webdriver/webdrivers)
gem 'capybara', '>= 3.37.1'
end
group :development, :staging do
gem 'memory_profiler'
gem 'rack-mini-profiler', require: false
gem 'flamegraph'
gem 'stackprof'
end
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: %i[mingw mswin x64_mingw jruby]
# Jumpstart dependencies
gem 'jumpstart', path: 'lib/jumpstart'
gem 'administrate', github: 'excid3/administrate', branch: 'jumpstart' # '~> 0.10.0'
gem 'attr_encrypted', '~> 3.1'
gem 'devise', '~> 4.8.1'
gem 'devise_invitable', '~> 2.0', '>= 2.0.6'
gem 'devise_masquerade', '~> 1.3.1'
gem 'image_processing', '~> 1.2'
gem 'inline_svg', '~> 1.9'
gem 'local_time', '~> 2.1'
gem 'name_of_person', '~> 1.0'
gem 'pagy', '~> 3.0'
# gem 'pay', '~> 1.0.0.beta5'
gem 'receipts', '~> 0.2.2'
# We always want the latest versions of these gems, so no version numbers
gem 'omniauth'
gem 'strong_migrations'
gem 'whenever', require: false
# Jumpstart manages a few gems for us, so install them from the extra Gemfile
gem 'sidekiq'