thepracticaldev/dev.to

View on GitHub
Gemfile

Summary

Maintainability
Test Coverage
git_source(:github) { |name| "https://github.com/#{name}.git" }
source "https://rubygems.org"
ruby "2.6.3"

group :production do
  gem "nakayoshi_fork", "~> 0.0.4" # solves CoW friendly problem on MRI 2.2 and later
  gem "rack-host-redirect", "~> 1.3" # Lean and simple host redirection via Rack middleware
end

gem "actionpack-action_caching", "~> 1.2" # Action caching for Action Pack (removed from core in Rails 4.0)
gem "active_record_union", "~> 1.3" # Adds proper union and union_all methods to ActiveRecord::Relation
gem "activerecord-import", "~> 1.0" # Adds ability to bulk create activerecord objects
gem "acts-as-taggable-on", "~> 6.0" # A tagging plugin for Rails applications that allows for custom tagging along dynamic contexts
gem "acts_as_follower", github: "thepracticaldev/acts_as_follower", branch: "master" # Allow any model to follow any other model
gem "addressable", "~> 2.7" # A replacement for the URI implementation that is part of Ruby's standard library
gem "administrate", "~> 0.12" # A Rails engine that helps you put together a super-flexible admin dashboard
gem "ahoy_email", "~> 1.1" # Email analytics for Rails
gem "airbrake", "~> 9.4" # Airbrake is an online tool that provides robust exception tracking in any of your Ruby applications
gem "algoliasearch-rails", "~> 1.23" # Algolia Search is a hosted search engine capable of delivering real-time results from the first keystroke
gem "algorithmia", "~> 1.1" # Ruby Client for Algorithmia Algorithms and Data API
gem "ancestry", "~> 3.0" # Ancestry allows the records of a ActiveRecord model to be organized in a tree structure
gem "autoprefixer-rails", "~> 9.6" # Parse CSS and add vendor prefixes to CSS rules using values from the Can I Use website
gem "aws-sdk-lambda", "~> 1.30" # Official AWS Ruby gem for AWS Lambda
gem "bootsnap", ">= 1.1.0", require: false # Boot large ruby/rails apps faster
gem "buffer", "~> 0.1" # Buffer is a Ruby Wrapper for the Buffer API
gem "carrierwave", "~> 2.0" # Upload files in your Ruby applications, map them to a range of ORMs, store them on different backends
gem "carrierwave-bombshelter", "~> 0.2" # Protect your carrierwave from image bombs
gem "cld", "~> 0.8" # Compact Language Detection for Ruby
gem "cloudinary", "~> 1.11" # Client library for easily using the Cloudinary service
gem "counter_culture", "~> 2.2" # counter_culture provides turbo-charged counter caches that are kept up-to-date
gem "dalli", "~> 2.7" # High performance memcached client for Ruby
gem "delayed_job_active_record", "~> 4.1" # ActiveRecord backend for Delayed::Job
gem "delayed_job_web", "~> 1.4" # Web interface for delayed_job
gem "devise", "~> 4.7" # Flexible authentication solution for Rails
gem "doorkeeper", "~> 5.1" # Oauth 2 provider
gem "draper", "~> 3.1" # Draper adds an object-oriented layer of presentation logic to your Rails apps
gem "dry-struct", "~> 1.0" # Typed structs and value objects
gem "email_validator", "~> 2.0" # Email validator for Rails and ActiveModel
gem "emoji_regex", "~> 2.0" # A pair of Ruby regular expressions for matching Unicode Emoji symbols
gem "envied", "~> 0.9" # Ensure presence and type of your app's ENV-variables
gem "fast_jsonapi", "~> 1.5" # Serializer for Ruby objects
gem "fastly", "~> 1.15" # Client library for the Fastly acceleration system
gem "fastly-rails", "~> 0.8" # Fastly dynamic caching integration for Rails
gem "feedjira", "~> 3.0" # A feed fetching and parsing library
gem "figaro", "~> 1.1" # Simple, Heroku-friendly Rails app configuration using ENV and a single YAML file
gem "fog-aws", "~> 3.5" # 'fog' gem to support Amazon Web Services
gem "front_matter_parser", "~> 0.2" # Parse a front matter from syntactically correct strings or files
gem "gemoji", "~> 3.0.1" # Character information and metadata for standard and custom emoji
gem "gibbon", "~> 3.2" # API wrapper for MailChimp's API
gem "google-api-client", "~> 0.32" # Client for accessing Google APIs
gem "html_truncator", "~> 0.4" # Truncate an HTML string properly
gem "htmlentities", "~> 4.3", ">= 4.3.4"
gem "httparty", "~> 0.17" # Makes http fun! Also, makes consuming restful web services dead easy
gem "inline_svg", "~> 1.5" # Embed SVG documents in your Rails views and style them with CSS
gem "jbuilder", "~> 2.9" # Create JSON structures via a Builder-style DSL
gem "jquery-rails", "~> 4.3" #  A gem to automate using jQuery with Rails
gem "kaminari", "~> 1.1" # A Scope & Engine based, clean, powerful, customizable and sophisticated paginator
gem "liquid", "~> 4.0" # A secure, non-evaling end user template engine with aesthetic markup
gem "nokogiri", "~> 1.10" # HTML, XML, SAX, and Reader parser
gem "octokit", "~> 4.14" # Simple wrapper for the GitHub API
gem "oj", "~> 3.9" # JSON parser and object serializer
gem "omniauth", "~> 1.9" # A generalized Rack framework for multiple-provider authentication
gem "omniauth-github", "~> 1.3" # OmniAuth strategy for GitHub
gem "omniauth-twitter", "~> 1.4" # OmniAuth strategy for Twitter
gem "pg", "~> 1.1" # Pg is the Ruby interface to the PostgreSQL RDBMS
gem "puma", "~> 4.2" # Puma is a simple, fast, threaded, and highly concurrent HTTP 1.1 server
gem "pundit", "~> 2.1" # Object oriented authorization for Rails applications
gem "pusher", "~> 1.3" # Ruby library for Pusher Channels HTTP API
gem "pusher-push-notifications", "~> 1.1" # Pusher Push Notifications Ruby server SDK
gem "rack-timeout", "~> 0.5" # Rack middleware which aborts requests that have been running for longer than a specified timeout
gem "rails", "~> 5.2", ">= 5.2.3" # Ruby on Rails
gem "rails-assets-airbrake-js-client", "~> 1.6", source: "https://rails-assets.org" # Airbrake JavaScript Notifier
gem "rails-observers", "~> 0.1" # Rails observer (removed from core in Rails 4.0)
gem "recaptcha", "~> 5.1", require: "recaptcha/rails" # Helpers for the reCAPTCHA API
gem "redcarpet", "~> 3.5" # A fast, safe and extensible Markdown to (X)HTML parser
gem "reverse_markdown", "~> 1.3" # Map simple html back into markdown
gem "rolify", "~> 5.2" # Very simple Roles library
gem "rouge", "~> 3.11" # A pure-ruby code highlighter
gem "rubyzip", "~> 1.2", ">= 1.3.0" # Rubyzip is a ruby library for reading and writing zip files
gem "s3_direct_upload", "~> 0.1" # Direct Upload to Amazon S3
gem "sail", "~> 1.5" # Sail is a lightweight Rails engine that brings an admin panel for managing configuration settings on a live Rails app
gem "sass-rails", "~> 6.0" # Sass adapter for the Rails asset pipeline
gem "scout_apm", "~> 2.6" # Monitors Ruby apps and reports detailed metrics on performance to Scout
gem "serviceworker-rails", "~> 0.6" # Integrates ServiceWorker into the Rails asset pipeline
gem "sitemap_generator", "~> 6.0" # SitemapGenerator is a framework-agnostic XML Sitemap generator
gem "skylight", "~> 4.1" # Skylight is a smart profiler for Rails, Sinatra, and other Ruby apps
gem "slack-notifier", "~> 2.3" # A slim ruby wrapper for posting to slack webhooks
gem "sprockets", "~> 3.7" # Sprockets is a Rack-based asset packaging system
gem "staccato", "~> 0.5" # Ruby Google Analytics Measurement
gem "storext", "~> 3.1" # Add type-casting and other features on top of ActiveRecord::Store.store_accessor
gem "stripe", "~> 4.23" # Ruby library for the Stripe API
gem "timber", "~> 3.0" # Great Ruby logging made easy
gem "timber-rails", "~> 1.0" #  Timber integration for Rails
gem "twilio-ruby", "~> 5.27" # The official library for communicating with the Twilio REST API
gem "twitter", "~> 6.2" # A Ruby interface to the Twitter API
gem "uglifier", "~> 4.2" # Uglifier minifies JavaScript files
gem "ulid", "~> 1.1" # Universally Unique Lexicographically Sortable Identifier implementation for Ruby
gem "validate_url", "~> 1.0" # Library for validating urls in Rails
gem "webpacker", "~> 3.5" # Use webpack to manage app-like JavaScript modules in Rails
gem "webpush", "~> 1.0" # Encryption Utilities for Web Push payload

group :development do
  gem "better_errors", "~> 2.5" # Provides a better error page for Rails and other Rack apps
  gem "binding_of_caller", "~> 0.8" # Retrieve the binding of a method's caller
  gem "brakeman", "~> 4.6", require: false # Brakeman detects security vulnerabilities in Ruby on Rails applications via static analysis
  gem "bundler-audit", "~> 0.6" # bundler-audit provides patch-level verification for Bundled apps
  gem "derailed_benchmarks", "~> 1.4", require: false # A series of things you can use to benchmark a Rails or Ruby app
  gem "erb_lint", "~> 0.0", require: false # ERB Linter tool
  gem "fix-db-schema-conflicts", "~> 3.0" # Ensures consistent output of db/schema.rb despite local differences in the database
  # switch foreman to stable release when thor dependency is updated to 0.20+
  gem "foreman", github: "thepracticaldev/foreman", ref: "b64e401", require: false # Process manager for applications with multiple components
  gem "guard", "~> 2.15", require: false # Guard is a command line tool to easily handle events on file system modifications
  gem "guard-livereload", "~> 2.5", require: false # Guard::LiveReload automatically reloads your browser when 'view' files are modified
  gem "guard-rspec", "~> 4.7", require: false # Guard::RSpec automatically run your specs
  gem "memory_profiler", "~> 0.9", require: false # Memory profiling routines for Ruby 2.3+
  gem "pry", "~> 0.12" # An IRB alternative and runtime developer console
  gem "pry-rails", "~> 0.3" # Use Pry as your rails console
  gem "web-console", "~> 3.7" # Rails Console on the Browser
  gem "yard", "~> 0.9.20" # YARD is a documentation generation tool for the Ruby programming language
  gem "yard-activerecord", "~> 0.0.16" # YARD extension that handles and interprets methods used when developing applications with ActiveRecord
  gem "yard-activesupport-concern", "~> 0.0.1" # YARD extension that brings support for modules making use of ActiveSupport::Concern
end

group :development, :test do
  gem "awesome_print", "~> 1.8" # Great Ruby dubugging companion: pretty print Ruby objects to visualize their structure
  gem "bullet", "~> 6.0" # help to kill N+1 queries and unused eager loading
  gem "capybara", "~> 3.29" # Capybara is an integration testing tool for rack based web applications
  gem "faker", "~> 2.5" # A library for generating fake data such as names, addresses, and phone numbers
  gem "parallel_tests", "~> 2.29" # Run Test::Unit / RSpec / Cucumber / Spinach in parallel
  gem "pry-byebug", "~> 3.7" # Combine 'pry' with 'byebug'. Adds 'step', 'next', 'finish', 'continue' and 'break' commands to control execution
  gem "rspec-rails", "~> 3.8" # rspec-rails is a testing framework for Rails 3+
  gem "rubocop", "~> 0.75", require: false # Automatic Ruby code style checking tool
  gem "rubocop-performance", "~> 1.5", require: false # A collection of RuboCop cops to check for performance optimizations in Ruby code
  gem "rubocop-rails", "~> 2.3", require: false # Automatic Rails code style checking tool
  gem "rubocop-rspec", "~> 1.35", require: false # Code style checking for RSpec files
  gem "spring", "~> 2.1" # Preloads your application so things like console, rake and tests run faster
  gem "spring-commands-rspec", "~> 1.0" # rspec command for spring
end

group :test do
  gem "approvals", "~> 0.0" # A library to make it easier to do golden-master style testing in Ruby
  gem "factory_bot_rails", "~> 4.11" # factory_bot is a fixtures replacement with a straightforward definition syntax, support for multiple build strategies
  gem "launchy", "~> 2.4" # Launchy is helper class for launching cross-platform applications in a fire and forget manner.
  gem "pundit-matchers", "~> 1.6" # A set of RSpec matchers for testing Pundit authorisation policies
  gem "rspec-retry", "~> 0.6" # retry intermittently failing rspec examples
  gem "ruby-prof", "~> 1.0", require: false # ruby-prof is a fast code profiler for Ruby
  gem "shoulda-matchers", "4.1.2", require: false # Simple one-liner tests for common Rails functionality
  gem "simplecov", "~> 0.17", require: false # Code coverage with a powerful configuration library and automatic merging of coverage across test suites
  gem "stackprof", "~> 0.2", require: false, platforms: :ruby # stackprof is a fast sampling profiler for ruby code, with cpu, wallclock and object allocation samplers
  gem "stripe-ruby-mock", "~> 2.5", require: "stripe_mock" # A drop-in library to test stripe without hitting their servers
  gem "test-prof", "~> 0.10" # Ruby Tests Profiling Toolbox
  gem "timecop", "~> 0.9" # A gem providing "time travel" and "time freezing" capabilities, making it dead simple to test time-dependent code
  gem "vcr", "~> 5.0" # Record your test suite's HTTP interactions and replay them during future test runs for fast, deterministic, accurate tests
  gem "webdrivers", "~> 4.1" # Run Selenium tests more easily with install and updates for all supported webdrivers
  gem "webmock", "~> 3.7" # WebMock allows stubbing HTTP requests and setting expectations on HTTP requests
  gem "zonebie", "~> 0.6.1" # Runs your tests in a random timezone
end

group :doc do
  gem "sdoc", "~> 1.0" # rdoc generator html with javascript search index
end