Skip to content
Snippets Groups Projects
application.rb 2.67 KiB
Newer Older
  • Learn to ignore specific revisions
  • Eugen Rochko's avatar
    Eugen Rochko committed
    require_relative 'boot'
    
    Eugen Rochko's avatar
    Eugen Rochko committed
    
    require 'rails/all'
    
    # Require the gems listed in Gemfile, including any gems
    # you've limited to :test, :development, or :production.
    Bundler.require(*Rails.groups)
    
    
    require_relative '../app/lib/exceptions'
    require_relative '../lib/paperclip/gif_transcoder'
    
    require_relative '../lib/paperclip/video_transcoder'
    
    require_relative '../lib/mastodon/version'
    
    Dotenv::Railtie.load
    
    
    Eugen Rochko's avatar
    Eugen Rochko committed
    module Mastodon
      class Application < Rails::Application
        # Settings in config/environments/* take precedence over those specified here.
        # Application configuration should go into files in config/initializers
        # -- all .rb files in that directory are automatically loaded.
    
        # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
        # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
        # config.time_zone = 'Central Time (US & Canada)'
    
        # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
        # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
    
        config.i18n.available_locales = [
          :en,
    
        config.i18n.default_locale = :en
    
    Eugen Rochko's avatar
    Eugen Rochko committed
    
    
        # config.paths.add File.join('app', 'api'), glob: File.join('**', '*.rb')
        # config.autoload_paths += Dir[Rails.root.join('app', 'api', '*')]
    
        config.active_job.queue_adapter = :sidekiq
    
    
        config.middleware.insert_before 0, Rack::Cors do
          allow do
            origins  '*'
    
            resource '/@:username',  headers: :any, methods: [:get], credentials: false
    
            resource '/api/*',       headers: :any, methods: [:post, :put, :delete, :get, :patch, :options], credentials: false, expose: ['Link', 'X-RateLimit-Reset', 'X-RateLimit-Limit', 'X-RateLimit-Remaining', 'X-Request-Id']
    
            resource '/oauth/token', headers: :any, methods: [:post], credentials: false
    
        config.middleware.use Rack::Deflater
    
        # babel config can be found in .babelrc
        config.browserify_rails.commandline_options   = '--transform babelify --extension=".jsx"'
    
        config.browserify_rails.evaluate_node_modules = true
    
    Eugen Rochko's avatar
    Eugen Rochko committed
    
        config.to_prepare do
    
          Doorkeeper::AuthorizationsController.layout 'public'
    
          Doorkeeper::AuthorizedApplicationsController.layout 'admin'
    
          Doorkeeper::Application.send :include, ApplicationExtension
    
    Eugen Rochko's avatar
    Eugen Rochko committed
        end
    
    Eugen Rochko's avatar
    Eugen Rochko committed
      end
    end