Gemfile

Summary

Maintainability
Test Coverage
# frozen_string_literal: true

source "https://rubygems.org"

ruby "2.5.8"

git_source(:github) do |repo_name|
  repo_name = "#{repo_name}/#{repo_name}" unless repo_name.include?("/")
  "https://github.com/#{repo_name}.git"
end

## Infrastructure

gem "dhis2", github: "BLSQ/dhis2", branch: "legacy-v2"
gem "paper_trail", "~> 10.1.0"
gem "paper_trail-association_tracking", "~> 1.0.0"
gem "pg", "~> 0.18"
gem "puma", "~> 4.3"
gem "rack", ">= 2.0.6"
gem "rails", "~> 5.2", "< 5.3"
gem "activerecord-nulldb-adapter"
gem "rails_admin", "~> 1.4.2"
gem "sidekiq", "< 6"
gem "sidekiq-throttled", "~> 0.9.0"

## Tooling

gem "bootsnap", "~> 1.3.2"
gem "figaro"
gem "lograge", "~> 0.10.0"
gem "sentry-raven", "~> 2.7.4"

# Feature flipper is the act of enabling/disabling features in your app...
# [flipper](https://github.com/jnunemaker/flipper)
gem "flipper", "~> 0.16.1"
gem "flipper-active_record", "~> 0.16.1"
gem "flipper-ui", "~> 0.16.1"

## Frontend and asset related

gem "bootstrap-datepicker-rails"
gem "bootstrap-sass", "~> 3.4.1"
gem "cocoon"
gem "coffee-rails", "~> 4.2"
gem "jquery-rails", "~> 4.3.3"
gem "jquery-ui-rails", "~> 5.0.5"
gem "rails-jquery-autocomplete"
gem "sassc-rails", "~> 2.0.0"
gem "simple_form"
gem "sprockets", "~> 3.7.2"
gem "turbolinks", "~> 5"
gem "uglifier", ">= 1.3.0"

## Authentication

# Flexible authentication solution for Rails with Warden
# [devise](https://github.com/plataformatec/devise)
gem "devise", "~> 4.7.1"

# Log in as another user in Rails
# [pretender](https://github.com/ankane/pretender)
gem "pretender", "~> 0.3.4"

## API related

gem "aws-sdk-s3", "~> 1.48"
gem "fast_jsonapi"
gem "jbuilder", "~> 2.5"
gem "json", "2.3.0"

## Utilities

gem "deep_cloneable"
gem "differ"
gem "hashdiff"
gem "loofah", ">= 2.2.3"
gem "naturalsort"

## Formula calculation

gem "dentaku"
if ENV["ORBF_DEV_MODE"]
  gem "hesabu", path: "../hesabu"
  gem "orbf-rules_engine", path: "../orbf-rules_engine"
else
  # We're using both of them against the latest master. We should set
  # them to versions when they become more stable
  gem "hesabu", github: "BLSQ/hesabu"
  gem "orbf-rules_engine", github: "BLSQ/orbf-rules_engine", branch: "master"
end
# Like a modern code version of the mythical beast with 100 serpent hea...
# [typhoeus](https://github.com/typhoeus/typhoeus)
gem "typhoeus", "~> 1.3.1"

group :development, :test do
  gem "byebug", platform: :mri

  # Use pry instead of irb: http://pryrepl.org
  gem "pry", "~> 0.12.2"
  gem "pry-rails", "~> 0.3.9"

  gem "database_cleaner"
  gem "factory_bot_rails", "~> 4.11.1"
  gem "faker"
  gem "immigrant"
  gem "rails-controller-testing"
  gem "rest-client-logger", github: "uswitch/rest-client-logger"
  gem "rspec-its"
  gem "rspec-rails", "~> 3.0"
  gem "ruby-prof"
  gem "shoulda-matchers", require: false

  gem "capybara"
  gem "json-diff", "~> 0.4.1"
  gem "rubyzip", "~> 1.3.0"
  gem "selenium-webdriver"
end

group :development do
  gem "annotate", "~> 2.7.4"
  gem "flamegraph"
  gem "listen", "~> 3.0.5"
  gem "memory_profiler"
  gem "pronto"
  gem "pronto-flay", require: false
  gem "pronto-rubocop", require: false
  gem "pronto-simplecov", require: false
  gem "rack-mini-profiler"
  gem "rubocop", require: false
  gem 'rubocop-rails', require: false
  gem "spring"
  gem "spring-watcher-listen", "~> 2.0.0"
  gem "stackprof"
  gem "web-console"
end

group :test do
  gem "rspec-sidekiq"
  gem "simplecov", require: false
  gem "webmock"
end

group :production do
  gem "heroku-deflater"
end

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