|
source 'https://rubygems.org'
|
|
|
|
ruby '2.6.6'
|
|
|
|
gem 'http'
|
|
gem 'rails', '~> 5.1.0'
|
|
gem 'puma'
|
|
gem 'puma-cloudwatch'
|
|
gem 'pg', '~> 0.18'
|
|
gem 'config', '1.7.0'
|
|
gem 'has_scope'
|
|
gem 'rails-i18n'
|
|
gem 'state_machines-activerecord'
|
|
gem 'sidekiq', '~> 6.5.5'
|
|
gem 'sidekiq-cron'
|
|
gem 'sidekiq-unique-jobs'
|
|
gem 'sidekiq-limit_fetch'
|
|
gem 'sidekiq-cloudwatchmetrics'
|
|
gem 'redis', '>= 3', '< 5'
|
|
gem 'premailer-rails'
|
|
gem 'public_activity'
|
|
gem 'momentjs-rails', '>= 2.9.0'
|
|
gem 'bootstrap3-datetimepicker-rails', '~> 4.17.47'
|
|
gem 'bootstrap-datepicker-rails'
|
|
gem 'bootstrap-daterangepicker-rails'
|
|
gem 'jquery-timepicker-rails'
|
|
gem 'kaminari'
|
|
gem 'impressionist', '1.6.0'
|
|
gem 'deterministic'
|
|
gem 'dotenv-rails'
|
|
gem "jsonb_accessor", "~> 1.0.0"
|
|
gem 'order_as_specified'
|
|
gem 'will_paginate', '~> 3.1.0'
|
|
gem 'enumerate_it'
|
|
gem 'zendesk_api'
|
|
gem 'gaffe'
|
|
gem 'paper_trail'
|
|
gem 'acts_as_favoritor'
|
|
gem 'httparty'
|
|
gem 'httmultiparty'
|
|
gem 'rack-cors'
|
|
gem 'copy_carrierwave_file'
|
|
gem 'slack-notifier', '~> 2.3.2'
|
|
gem 'remotipart', '~> 1.2', '>= 1.2.1'
|
|
gem 'composite_primary_keys', git: 'https://github.com/composite-primary-keys/composite_primary_keys.git', branch: 'ar_5.1.x'
|
|
gem 'acts_as_list'
|
|
gem 'countries'
|
|
gem 'net-sftp'
|
|
gem 'redis-mutex'
|
|
gem 'platform-api'
|
|
gem 'globalid', '~> 1.0.1'
|
|
gem 'google_drive'
|
|
|
|
# AWS
|
|
gem 'aws-sdk-s3', '~> 1'
|
|
gem 'aws-sdk-sqs', '~> 1'
|
|
|
|
#AWS autoscaling
|
|
gem "judoscale-rails"
|
|
gem "judoscale-sidekiq"
|
|
|
|
# Payments
|
|
gem 'stripe', '~> 3.8.0'
|
|
|
|
# Asset management
|
|
gem 'sass-rails', '~> 5.0'
|
|
gem 'uglifier', '>= 1.3.0'
|
|
gem 'sass-json-vars'
|
|
|
|
gem "newrelic_rpm"
|
|
gem "sentry-ruby"
|
|
gem "sentry-rails"
|
|
gem "sentry-sidekiq"
|
|
|
|
gem 'jbuilder', '~> 2.0'
|
|
|
|
gem 'videojs_rails'
|
|
|
|
gem 'whenever', :require => false
|
|
|
|
# Javascript Environment. Should be small since we use NPM
|
|
gem 'jquery-rails'
|
|
gem 'jquery-ui-rails'
|
|
gem "browserify-rails"
|
|
gem "gon"
|
|
gem "select2-rails"
|
|
gem 'lodash-rails'
|
|
gem "jquery-slick-rails"
|
|
gem 'lightbox2-rails'
|
|
|
|
# PDF Generation
|
|
gem 'prawn', '~> 1.0.0'
|
|
gem 'prawn-table', '~> 0.2.0'
|
|
gem 'prawn-markup'
|
|
gem 'combine_pdf'
|
|
gem 'pdf-reader'
|
|
gem 'grim'
|
|
gem 'wicked_pdf'
|
|
gem 'wkhtmltopdf-heroku', '2.12.4'
|
|
gem 'libreconv'
|
|
gem 'wkhtmltopdf-binary-edge', '~> 0.12.6.0'
|
|
|
|
# Document uploading
|
|
gem 'fog-aws', '2.0.1'
|
|
gem 'carrierwave', '~> 2.1.1'
|
|
gem 'mini_magick'
|
|
gem 'file_validators'
|
|
gem 'curb'
|
|
|
|
gem 'zip-zip', '~> 0.1'
|
|
gem 'rubyzip', '~> 1.3.0'
|
|
gem 'caxlsx', '~> 2.0.1', require: false # Better maintained the Axlsx ecosystem
|
|
gem 'axlsx_rails', '~> 0.5.2', require: false
|
|
|
|
# Authentication and Authorization
|
|
gem 'devise'
|
|
gem 'devise_invitable', '~> 1.7.0'
|
|
gem 'devise_masquerade'
|
|
gem 'devise-security'
|
|
gem 'rotp'
|
|
|
|
gem 'rails_email_validator'
|
|
gem 'pundit', '1.1.0'
|
|
|
|
# Postgres Searching
|
|
gem 'pg_search'
|
|
gem 'ransack'
|
|
gem 'elasticsearch-model', git: 'https://github.com/elastic/elasticsearch-rails.git', tag: 'v7.1.0'
|
|
gem 'elasticsearch-rails', git: 'https://github.com/elastic/elasticsearch-rails.git', tag: 'v7.1.0'
|
|
gem 'elasticsearch-persistence', git: 'https://github.com/elastic/elasticsearch-rails.git', tag: 'v7.1.0'
|
|
|
|
# API and JWT related
|
|
gem 'devise-jwt', '~> 0.6.0'
|
|
gem 'savon'
|
|
gem 'doorkeeper', git: 'https://github.com/smatatechnologies/doorkeeper', branch: 'smata-v5.4.0'
|
|
gem 'oauth2'
|
|
gem 'omniauth-oauth2', '~> 1.7.0'
|
|
|
|
# Firebase
|
|
gem 'googleauth'
|
|
gem 'fcm', git: 'https://github.com/blasterun/fcm.git', branch: 'master'
|
|
|
|
# Maps & Locations
|
|
gem 'geokit-rails'
|
|
gem 'browser', '~> 5.3'
|
|
|
|
# Templating & UI
|
|
gem 'bootstrap-sass', '~> 3.3.6'
|
|
gem 'font-awesome-rails'
|
|
gem 'slim-rails'
|
|
gem 'simple_form'
|
|
gem 'nested_form'
|
|
gem 'cocoon'
|
|
gem 'virtus'
|
|
gem 'loofah', '~> 2.19.1'
|
|
gem "mustache"
|
|
gem "active_link_to"
|
|
|
|
# Emailing
|
|
gem 'sanitize_email'
|
|
gem 'email_validator'
|
|
gem 'valid_email2'
|
|
|
|
# Tags
|
|
gem 'acts-as-taggable-on', '~> 6.0'
|
|
gem 'bootstrap-tagsinput-rails'
|
|
|
|
# Twilio
|
|
gem 'twilio-ruby', require: false
|
|
|
|
# CSV
|
|
gem 'smarter_csv'
|
|
|
|
# Static pages
|
|
gem 'high_voltage', '~> 3.0.0'
|
|
|
|
# Domain redirect
|
|
gem 'rack-host-redirect'
|
|
|
|
# Rate limiter
|
|
gem 'rack-attack'
|
|
|
|
# View decorator
|
|
gem 'draper', '~> 3.1.0'
|
|
|
|
gem 'request_store_rails', '~> 2.0.0'
|
|
|
|
gem 'fullcalendar-rails'
|
|
gem 'active_model_serializers'
|
|
gem 'google-cloud-vision'
|
|
gem 'google-cloud-storage'
|
|
gem 'jquery-countdown-rails'
|
|
|
|
# shorten URL
|
|
gem 'shortener'
|
|
# Trix rich text editor
|
|
gem 'trix-rails', require: 'trix'
|
|
# Calculate business days/hours
|
|
gem 'business_time'
|
|
# Working hours
|
|
gem 'working_hours'
|
|
|
|
#soft delete
|
|
gem "paranoia", "~> 2.2"
|
|
gem 'dropbox_api'
|
|
|
|
gem 'sendgrid-ruby'
|
|
gem 'sendgrid-actionmailer'
|
|
gem 'mail'
|
|
|
|
# Multiple upload
|
|
gem "jquery-fileupload-rails"
|
|
|
|
# Zoom API
|
|
gem 'zoom_rb', git: "https://github.com/smatatechnologies/zoom_rb.git", branch: "master"
|
|
|
|
# Data import
|
|
gem 'activerecord-import'
|
|
|
|
# Rubocop
|
|
gem 'rubocop', require: false
|
|
|
|
# Cloning
|
|
gem 'clowne'
|
|
|
|
#aws healthcheck
|
|
gem 'health_check'
|
|
|
|
# Log
|
|
gem 'lograge'
|
|
gem 'logdna'
|
|
|
|
group :development, :test do
|
|
gem 'byebug'
|
|
gem 'elasticsearch-extensions'
|
|
gem 'mini_portile2', '2.8.4'
|
|
|
|
# Seeds
|
|
gem 'factory_girl_rails'
|
|
gem 'faker'
|
|
gem 'ffaker'
|
|
gem 'seedbank'
|
|
|
|
# Rubocop
|
|
gem 'rubocop', require: false
|
|
|
|
# Time
|
|
gem 'timecop'
|
|
|
|
gem 'brakeman'
|
|
gem 'ci_reporter'
|
|
gem 'ci_reporter_rspec'
|
|
gem 'simplecov', :require => false
|
|
gem 'rspec-rails', '~> 3.5'
|
|
gem 'rails-controller-testing'
|
|
gem 'guard'
|
|
gem 'guard-zeus'
|
|
gem 'guard-rspec'
|
|
gem 'guard-bundler'
|
|
gem 'rspec-nc', require: false
|
|
gem "test-prof"
|
|
gem "rspec_junit_formatter", require: false
|
|
|
|
# Pry
|
|
gem 'pry'
|
|
gem 'pry-rails'
|
|
gem 'pry-nav'
|
|
gem 'awesome_print'
|
|
|
|
# Deployment
|
|
gem "mina", "~> 1.0.6", require: false
|
|
gem 'mina-multistage', require: false
|
|
gem 'mina-multi_server', require: false
|
|
gem 'mina-sitemap_generator', require: false
|
|
gem "mina-webpacker", require: false
|
|
gem "mina-whenever", require: false
|
|
|
|
# Webmock
|
|
gem "webmock"
|
|
gem "shoulda-matchers", "~> 4.0"
|
|
gem "vcr"
|
|
end
|
|
|
|
group :development do
|
|
gem 'web-console', '~> 3.0'
|
|
gem "letter_opener"
|
|
gem 'bullet'
|
|
gem 'derailed'
|
|
gem 'state_machines-graphviz', require: false
|
|
end
|
|
|
|
group :staging, :production do
|
|
gem 'cloudflare-rails'
|
|
end
|