source "https://rubygems.org"

ruby "3.2.3"

# Configuration management. keep on top of Gemfile
gem "dotenv-rails", groups: %i[development test]

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem "rails", "~> 7.1.0"
gem "rake"
gem "sprockets-rails"

# JSON serializer
gem "active_model_serializers", "~> 0.9"

# Use postgresql and mongo as the database for Active Record
gem "mongoid", "8.1.3" # https://www.mongodb.com/docs/mongoid/current/reference/compatibility/#rails-compatibility
gem "pg"

# Use Puma as the app server
gem "puma", "5.6.8"

# Authentication libraries
gem "cancancan", "~> 3.6.1"
gem "cancancan-mongoid", "~> 2.0"
gem "devise", "~> 4.8"
gem "devise_invitable", "~> 2.0"
gem "omniauth", "~> 1.8"
gem "omniauth-facebook", "~> 3.0"

# Colored output to console
gem "colored"

# Background jobs
gem "sidekiq", "~> 7.3"

# Structured seed data
gem "seedbank"

# ISO 3166 standard countries
gem "countries", require: "countries/global"

# Pusher Client
gem "pusher"

# ActiveRecord data translations
gem "globalize"

# Abort requests that are taking too long
gem "rack-timeout"

# wrapper for tomorrow.io API
gem "tomorrowio_rb", "~>0.0.3"

gem "geocoder"
gem "nearest_time_zone"

gem "symmetric-encryption"

gem "ruby-progressbar", require: false

gem "kaminari-actionview"
gem "kaminari-mongoid"
gem "rack-cors", "2.0.1", require: "rack/cors" # freezing to gemfile.lock version because heroku is not respecting lockfile
gem "simplecov", require: false, group: :test

group :development, :test do
  # Call 'byebug' anywhere in the code to stop execution and get a debugger console
  gem "bullet"
  gem "byebug"
  gem "database_cleaner"
  gem "database_cleaner-mongoid"
  gem "erb_lint", require: false
  gem "factory_bot_rails"
  # Generate Fake data
  gem "ffaker"
  gem "pry-byebug"
  gem "pry-doc"
  gem "pry-rails"
  gem "rspec-rails"
  gem "standardrb"
end

group :development do
  gem "annotate"
  gem "awesome_print"
  gem "better_errors"
  gem "brakeman"
  gem "foreman", require: false
  gem "letter_opener"
end

group :test do
  gem "capybara"
  gem "cuprite"
  gem "mongoid-rspec"
  gem "shoulda-matchers"
  gem "vcr"
  gem "webmock"
end

group :production do
  gem "rails_12factor"
end

# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem "tzinfo-data", platforms: %i[mingw mswin x64_mingw jruby]

gem "bugsnag"
