# frozen_string_literal: true source 'https://rubygems.org' # if there is a super emergency and rubygems is playing up, try #source 'http://production.cf.rubygems.org' gem 'bootsnap', require: false, platform: :mri def rails_master? ENV["RAILS_MASTER"] == '1' end if rails_master? gem 'arel', git: 'https://github.com/rails/arel.git' gem 'rails', git: 'https://github.com/rails/rails.git' else # until rubygems gives us optional dependencies we are stuck with this # bundle update actionmailer actionpack actionview activemodel activerecord activesupport railties gem 'actionmailer', '6.0.0' gem 'actionpack', '6.0.0' gem 'actionview', '6.0.0' gem 'activemodel', '6.0.0' gem 'activerecord', '6.0.0' gem 'activesupport', '6.0.0' gem 'railties', '6.0.0' gem 'sprockets-rails' end # this will eventually be added to rails, # allows us to precompile all our templates in the unicorn master gem 'actionview_precompiler', require: false gem 'seed-fu' gem 'mail', require: false gem 'mini_mime' gem 'mini_suffix' gem 'hiredis' # holding off redis upgrade temporarily as it is having issues with our current # freedom patch, we will follow this up. # # FrozenError: can't modify frozen Hash # /var/www/discourse/vendor/bundle/ruby/2.5.0/gems/redis-4.1.0/lib/redis/client.rb:93:in `delete' # /var/www/discourse/vendor/bundle/ruby/2.5.0/gems/redis-4.1.0/lib/redis/client.rb:93:in `initialize' # /var/www/discourse/lib/freedom_patches/redis.rb:7:in `initialize' gem 'redis', '4.0.1', require: ["redis", "redis/connection/hiredis"] gem 'redis-namespace' gem 'active_model_serializers', '~> 0.8.3' gem 'onebox', '1.9.15' gem 'http_accept_language', '~>2.0.5', require: false gem 'ember-rails', '0.18.5' gem 'discourse-ember-source', '~> 3.10.0' gem 'ember-handlebars-template', '0.8.0' gem 'barber' gem 'message_bus' gem 'rails_multisite' gem 'fast_xs', platform: :mri # may move to xorcist post: https://github.com/fny/xorcist/issues/4 gem 'fast_xor', platform: :mri gem 'fastimage' gem 'aws-sdk-s3', require: false gem 'aws-sdk-sns', require: false gem 'excon', require: false gem 'unf', require: false gem 'email_reply_trimmer', '~> 0.1' # Forked until https://github.com/toy/image_optim/pull/162 is merged # https://github.com/discourse/image_optim gem 'discourse_image_optim', require: 'image_optim' gem 'multi_json' gem 'mustache' gem 'nokogiri' gem 'css_parser', require: false gem 'omniauth' gem 'omniauth-openid' gem 'openid-redis-store' gem 'omniauth-facebook' gem 'omniauth-twitter' gem 'omniauth-instagram' gem 'omniauth-github' gem 'omniauth-oauth2', require: false gem 'omniauth-google-oauth2' gem 'oj' gem 'pg' gem 'mini_sql' gem 'pry-rails', require: false gem 'r2', '~> 0.2.5', require: false gem 'rake' gem 'thor', require: false gem 'diffy', require: false gem 'rinku' gem 'sanitize' gem 'sidekiq' gem 'mini_scheduler' # for sidekiq web gem 'tilt', require: false gem 'execjs', require: false gem 'mini_racer' gem 'highline', '~> 1.7.0', require: false gem 'rack-protection' # security gem 'cbor', require: false gem 'cose', require: false # Gems used only for assets and not required in production environments by default. # Allow everywhere for now cause we are allowing asset debugging in production group :assets do gem 'uglifier' gem 'rtlit', require: false # for css rtling end group :test do gem 'webmock', require: false gem 'fakeweb', '~> 1.3.0', require: false gem 'minitest', require: false gem 'simplecov', require: false gem "test-prof" end group :test, :development do gem 'rspec' gem 'mock_redis' gem 'listen', require: false gem 'certified', require: false # later appears to break Fabricate(:topic, category: category) gem 'fabrication', require: false gem 'mocha', require: false gem 'rb-fsevent', require: RUBY_PLATFORM =~ /darwin/i ? 'rb-fsevent' : false gem 'rb-inotify', '~> 0.9', require: RUBY_PLATFORM =~ /linux/i ? 'rb-inotify' : false gem 'rspec-rails', '4.0.0.beta2', require: false gem 'shoulda-matchers', '~> 3.1', '>= 3.1.3', require: false gem 'rspec-html-matchers' gem 'pry-nav' gem 'byebug', require: ENV['RM_INFO'].nil? gem 'rubocop', require: false gem 'parallel_tests' end group :development do gem 'ruby-prof', require: false gem 'bullet', require: !!ENV['BULLET'] gem 'better_errors' gem 'binding_of_caller' gem 'yaml-lint' # waiting on 2.7.5 per: https://github.com/ctran/annotate_models/pull/595 if rails_master? gem 'annotate', git: 'https://github.com/ctran/annotate_models.git' else gem 'annotate' end end # this is an optional gem, it provides a high performance replacement # to String#blank? a method that is called quite frequently in current # ActiveRecord, this may change in the future gem 'fast_blank', platform: :mri # this provides a very efficient lru cache gem 'lru_redux' gem 'htmlentities', require: false # IMPORTANT: mini profiler monkey patches, so it better be required last # If you want to amend mini profiler to do the monkey patches in the railties # we are open to it. by deferring require to the initializer we can configure discourse installs without it gem 'flamegraph', require: false gem 'rack-mini-profiler', require: false gem 'unicorn', require: false, platform: :mri gem 'puma', require: false gem 'rbtrace', require: false, platform: :mri gem 'gc_tracer', require: false, platform: :mri # required for feed importing and embedding gem 'ruby-readability', require: false gem 'stackprof', require: false, platform: :mri gem 'memory_profiler', require: false, platform: :mri gem 'cppjieba_rb', require: false gem 'lograge', require: false gem 'logstash-event', require: false gem 'logstash-logger', require: false gem 'logster' gem 'sassc', require: false gem "sassc-rails" gem 'rotp' gem 'rqrcode' gem 'rubyzip', require: false gem 'sshkey', require: false gem 'rchardet', require: false gem 'lz4-ruby', require: false, platform: :mri if ENV["IMPORT"] == "1" gem 'mysql2' gem 'redcarpet' gem 'sqlite3', '~> 1.3', '>= 1.3.13' gem 'ruby-bbcode-to-md', git: 'https://github.com/nlalonde/ruby-bbcode-to-md' gem 'reverse_markdown' gem 'tiny_tds' gem 'csv', '~> 3.0' end gem 'webpush', require: false gem 'colored2', require: false gem 'maxminddb'