Submitted by @abityastunggal

The remote job board you'll enjoy using.

# 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', ''
# 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'

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'

group :test do
  # Adds support for Capybara system testing (needs selenium-webdriver/webdrivers)
  gem 'capybara', '>= 3.37.1'

group :development, :staging do
  gem 'memory_profiler'
  gem 'rack-mini-profiler', require: false
  gem 'flamegraph'
  gem 'stackprof'

# 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'