source "https://rubygems.org"
git_source(:github) { |repo| "https://github.com/#{repo}.git" }

ruby "2.6.3"

# Bundle edge Rails instead: gem "rails", github: "rails/rails"
gem "rails", "~> 6.0.3.1"
# Use postgresql as the database for Active Record
gem "pg", "~> 0.18"
# Use Puma as the app server
gem "puma", "~> 3.11"
# Use SCSS for stylesheets
gem "sass-rails", "~> 5.0"
gem "webpacker", "~> 4.0.7"
# Use Uglifier as compressor for JavaScript assets
gem "uglifier", "~> 4.1.20"

# Use CoffeeScript for .coffee assets and views
gem "coffee-rails", "~> 5.0"
# Turbolinks makes navigating your web application faster. Read more: https://github.com/turbolinks/turbolinks
gem "turbolinks", "~> 5"
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem "jbuilder", "~> 2.5"
# Use Redis adapter to run Action Cable in production
gem "redis", "~> 4.0", group: [:production, :review]

# Use ActiveStorage variant
gem "mini_magick", "~> 4.8"
gem "active_storage_base64", "~> 1.0.0"
gem "image_processing", "~> 1.2"

# Use Amazon Web Services S3 for file uploads in production
gem "aws-sdk-s3", "~> 1.31.0", require: false, group: [:production, :review]
# Allow AWS API requests to be signed using IAM credentials
gem "aws-sigv4", "~> 1.0.2"

# Reduces boot times through caching; required in config/boot.rb
gem "bootsnap", ">= 1.1.0", require: false

# Background processing library
gem "sidekiq", "~> 5.2.5"
# Sidekiq web console requires a specific version of Rack to work
gem "rack", github: "rack/rack", ref: "f690bb71425aa31d7b9b3113829af773950d8ab5"

# General-purpose JavaScript library
gem "jquery-rails", "~> 4.3.1"

# Pagination framework
gem "will_paginate", "~> 3.2.1"

# Front-end framework and associated helpers
gem "bootstrap", "~> 4.4.0"
gem "bootstrap_form", "~> 4.3.0"
gem "country_select", "~> 3.1.1"
gem "font-awesome-rails", "~> 4.7.0.2"
gem "will_paginate-bootstrap4", "~> 0.2.2"

# Engine for static pages
gem "high_voltage", "~> 3.0.0"

# Ruby wrapper for Segment analytics API
gem "analytics-ruby", require: "segment"

# A PDF generation library and pre-packaged binaries for WKHTMLTOPDF dependency
gem "pdfkit", "~> 0.8.2", require: "pdfkit"
gem "wkhtmltopdf-binary", "~> 0.12.3.1", group: [:development, :test]
gem "wkhtmltopdf-heroku", "~> 2.12.5.0", group: [:production, :review]
# A PDF library for merging files together
gem "hexapdf", "~> 0.9.0"

# Authentication framework
gem "oath", "~> 1.1.0"
gem "oath-generators", "~> 1.0.1"

# Authorization framework
gem "pundit", "~> 2.0.0"

# Standardized data migrations
gem "rails-data-migrations", "~> 1.2.0"

# Connects business objects and REST web services
gem "activeresource", "5.1.0"

# Markdown parser
gem "redcarpet", "~> 3.4.0"

# Additional middleware for Rack
gem "rack-contrib", "~> 2.0.1"

# Tagging plugin
gem "acts-as-taggable-on", github: "tbuehl/acts-as-taggable-on", branch: "fix/rails-6-and-failing-specs"

# Value class for SMPTE timecode information
gem "timecode", "~> 2.2.2"

# Generate xlsx (Excel) templates 
gem "axlsx", "~> 3.0.0.pre"
gem "axlsx_rails", "~> 0.5.2"
gem "axlsx_styler", "~> 0.2.0"

# Shows errors when using SJR templates
gem "better_sjr", "~> 1.0.0"

# Enable full-text searching using PostgreSQL
gem "pg_search", "~> 2.1.2"

# Provides support for dealing with money and currency
gem "money-rails", "~> 1.13.0"

# Ruby library that encodes QR Codes
gem "rqrcode", "~> 0.10.1"

# API wrapper for Sentry exception tracking service
gem "sentry-raven", "~> 2.11.0"

# Store settings as a serialized Hash for ActiveRecord models
gem "ledermann-rails-settings", "~> 2.4.3"

gem "httparty", "~> 0.17.0"

gem "remember_me", "1.0.0", github: "exosyphon-earthvectors/remember_me", branch: "remove-mongoid-dependency"

# Helper for creating conditional CSS class strings
gem "css-class-string", "~> 0.1.1"

# Manages and displays breadcrumb trails
gem "loaf", "~> 0.8.1"

# Library for reading and writing zip files
gem 'rubyzip', '~> 1.2.4'

# Mux API library for live streaming
# TODO - Update the gem as soon as version 1.5.0 is out.
gem 'mux_ruby', git: 'git://github.com/muxinc/mux-ruby.git', branch: 'test-mode'

# CORS policies
gem 'rack-cors'

# Ruby wrappers for the HubSpot REST API
gem "hubspot-ruby"

group :development, :test, :review do
  # Call "byebug" anywhere in the code to stop execution and get a debugger console
  gem "byebug", "~> 11.0.1", platforms: [:mri, :mingw, :x64_mingw]

  gem "rails-controller-testing", "~> 1.0.4"

  # Testing framework
  gem "rspec-rails", "~> 4.0.0.beta2"

  # Fixture replacement for generating test data
  gem "factory_bot_rails", "~> 4.8.2"

  # Acceptance test framework for web applications
  gem "capybara", "~> 3.28.0"

  # Enable headless browser testing for Capybara using Chrome
  gem "webdrivers", "~> 4.0"

  # RSpec matchers for common testing expectations
  gem "shoulda-matchers", "~> 4.0"

  # Temporary table-backed ActiveRecord models
  gem "temping", "~> 3.10.0"

  # PDF parsing
  gem "pdf-reader", "~> 2.1.0"

  # Stubbing HTTP requests
  gem "webmock"
end

group :development do
  # Access an interactive console on exception pages or by calling "console" anywhere in the code.
  gem "web-console", "~> 4.0.1"
  gem "listen", ">= 3.0.5", "< 3.2"
  # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
  gem "spring", "~> 2.1.0"
  gem "spring-watcher-listen", "~> 2.0.0"
  # Rake tasks for sorting YAML files
  gem "i18n_yaml_sorter", "~> 0.2.0"
  # Loading .env files for environment variables
  gem "dotenv-rails", "~> 2.7.5"
  # Shell commands for Heroku apps
  gem "parity", "~> 3.2.0"
  # Run scheduled jobs
  gem "clockwork", "~> 2.0.4"
end

gem "jsonapi-rails"
gem "knock"
gem "rubocop"

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

# Datepicker
gem 'bootstrap-datepicker-rails'

# Zoom.us integration
gem 'zoom_rb', github: 'blazejkotowski/zoom_rb', branch: 'roles-api'
