Fix rubocop issues, introduce usage of frozen literal to improve performance
This commit is contained in:
		@@ -1,3 +1,5 @@
 | 
			
		||||
# frozen_string_literal: true
 | 
			
		||||
 | 
			
		||||
class AboutController < ApplicationController
 | 
			
		||||
  before_action :set_body_classes
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,5 @@
 | 
			
		||||
# frozen_string_literal: true
 | 
			
		||||
 | 
			
		||||
class AccountsController < ApplicationController
 | 
			
		||||
  layout 'public'
 | 
			
		||||
 | 
			
		||||
@@ -41,10 +43,7 @@ class AccountsController < ApplicationController
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def set_link_headers
 | 
			
		||||
    response.headers['Link'] = LinkHeader.new([
 | 
			
		||||
      [webfinger_account_url, [['rel', 'lrdd'], ['type', 'application/xrd+xml']]],
 | 
			
		||||
      [account_url(@account, format: 'atom'), [['rel', 'alternate'], ['type', 'application/atom+xml']]]
 | 
			
		||||
    ])
 | 
			
		||||
    response.headers['Link'] = LinkHeader.new([[webfinger_account_url, [%w(rel lrdd), %w(type application/xrd+xml)]], [account_url(@account, format: 'atom'), [%w(rel alternate), %w(type application/atom+xml)]]])
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def webfinger_account_url
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,5 @@
 | 
			
		||||
# frozen_string_literal: true
 | 
			
		||||
 | 
			
		||||
class Api::SalmonController < ApiController
 | 
			
		||||
  before_action :set_account
 | 
			
		||||
  respond_to :txt
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,5 @@
 | 
			
		||||
# frozen_string_literal: true
 | 
			
		||||
 | 
			
		||||
class Api::SubscriptionsController < ApiController
 | 
			
		||||
  before_action :set_account
 | 
			
		||||
  respond_to :txt
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,5 @@
 | 
			
		||||
# frozen_string_literal: true
 | 
			
		||||
 | 
			
		||||
class Api::V1::AccountsController < ApiController
 | 
			
		||||
  before_action -> { doorkeeper_authorize! :read }, except: [:follow, :unfollow, :block, :unblock]
 | 
			
		||||
  before_action -> { doorkeeper_authorize! :follow }, only: [:follow, :unfollow, :block, :unblock]
 | 
			
		||||
@@ -20,7 +22,7 @@ class Api::V1::AccountsController < ApiController
 | 
			
		||||
    @accounts = results.map { |f| accounts[f.target_account_id] }
 | 
			
		||||
 | 
			
		||||
    next_path = following_api_v1_account_url(max_id: results.last.id)    if results.size == DEFAULT_ACCOUNTS_LIMIT
 | 
			
		||||
    prev_path = following_api_v1_account_url(since_id: results.first.id) if results.size > 0
 | 
			
		||||
    prev_path = following_api_v1_account_url(since_id: results.first.id) unless results.empty?
 | 
			
		||||
 | 
			
		||||
    set_pagination_headers(next_path, prev_path)
 | 
			
		||||
 | 
			
		||||
@@ -33,7 +35,7 @@ class Api::V1::AccountsController < ApiController
 | 
			
		||||
    @accounts = results.map { |f| accounts[f.account_id] }
 | 
			
		||||
 | 
			
		||||
    next_path = followers_api_v1_account_url(max_id: results.last.id)    if results.size == DEFAULT_ACCOUNTS_LIMIT
 | 
			
		||||
    prev_path = followers_api_v1_account_url(since_id: results.first.id) if results.size > 0
 | 
			
		||||
    prev_path = followers_api_v1_account_url(since_id: results.first.id) unless results.empty?
 | 
			
		||||
 | 
			
		||||
    set_pagination_headers(next_path, prev_path)
 | 
			
		||||
 | 
			
		||||
@@ -56,7 +58,7 @@ class Api::V1::AccountsController < ApiController
 | 
			
		||||
    set_maps(@statuses)
 | 
			
		||||
 | 
			
		||||
    next_path = statuses_api_v1_account_url(max_id: @statuses.last.id)    if @statuses.size == DEFAULT_STATUSES_LIMIT
 | 
			
		||||
    prev_path = statuses_api_v1_account_url(since_id: @statuses.first.id) if @statuses.size > 0
 | 
			
		||||
    prev_path = statuses_api_v1_account_url(since_id: @statuses.first.id) unless @statuses.empty?
 | 
			
		||||
 | 
			
		||||
    set_pagination_headers(next_path, prev_path)
 | 
			
		||||
  end
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,5 @@
 | 
			
		||||
# frozen_string_literal: true
 | 
			
		||||
 | 
			
		||||
class Api::V1::AppsController < ApiController
 | 
			
		||||
  respond_to :json
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,5 @@
 | 
			
		||||
# frozen_string_literal: true
 | 
			
		||||
 | 
			
		||||
class Api::V1::FollowsController < ApiController
 | 
			
		||||
  before_action -> { doorkeeper_authorize! :follow }
 | 
			
		||||
  before_action :require_user!
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,5 @@
 | 
			
		||||
# frozen_string_literal: true
 | 
			
		||||
 | 
			
		||||
class Api::V1::MediaController < ApiController
 | 
			
		||||
  before_action -> { doorkeeper_authorize! :write }
 | 
			
		||||
  before_action :require_user!
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,5 @@
 | 
			
		||||
# frozen_string_literal: true
 | 
			
		||||
 | 
			
		||||
class Api::V1::StatusesController < ApiController
 | 
			
		||||
  before_action -> { doorkeeper_authorize! :read }, except: [:create, :destroy, :reblog, :unreblog, :favourite, :unfavourite]
 | 
			
		||||
  before_action -> { doorkeeper_authorize! :write }, only:  [:create, :destroy, :reblog, :unreblog, :favourite, :unfavourite]
 | 
			
		||||
@@ -10,7 +12,7 @@ class Api::V1::StatusesController < ApiController
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def context
 | 
			
		||||
    @context = OpenStruct.new({ ancestors: @status.ancestors, descendants: @status.descendants })
 | 
			
		||||
    @context = OpenStruct.new(ancestors: @status.ancestors, descendants: @status.descendants)
 | 
			
		||||
    set_maps([@status] + @context[:ancestors] + @context[:descendants])
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
@@ -20,7 +22,7 @@ class Api::V1::StatusesController < ApiController
 | 
			
		||||
    @accounts = results.map { |r| accounts[r.account_id] }
 | 
			
		||||
 | 
			
		||||
    next_path = reblogged_by_api_v1_status_url(max_id: results.last.id)    if results.size == DEFAULT_ACCOUNTS_LIMIT
 | 
			
		||||
    prev_path = reblogged_by_api_v1_status_url(since_id: results.first.id) if results.size > 0
 | 
			
		||||
    prev_path = reblogged_by_api_v1_status_url(since_id: results.first.id) unless results.empty?
 | 
			
		||||
 | 
			
		||||
    set_pagination_headers(next_path, prev_path)
 | 
			
		||||
 | 
			
		||||
@@ -33,7 +35,7 @@ class Api::V1::StatusesController < ApiController
 | 
			
		||||
    @accounts = results.map { |f| accounts[f.account_id] }
 | 
			
		||||
 | 
			
		||||
    next_path = favourited_by_api_v1_status_url(max_id: results.last.id)    if results.size == DEFAULT_ACCOUNTS_LIMIT
 | 
			
		||||
    prev_path = favourited_by_api_v1_status_url(since_id: results.first.id) if results.size > 0
 | 
			
		||||
    prev_path = favourited_by_api_v1_status_url(since_id: results.first.id) unless results.empty?
 | 
			
		||||
 | 
			
		||||
    set_pagination_headers(next_path, prev_path)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,5 @@
 | 
			
		||||
# frozen_string_literal: true
 | 
			
		||||
 | 
			
		||||
class Api::V1::TimelinesController < ApiController
 | 
			
		||||
  before_action -> { doorkeeper_authorize! :read }
 | 
			
		||||
  before_action :require_user!, only: [:home, :mentions]
 | 
			
		||||
@@ -10,7 +12,7 @@ class Api::V1::TimelinesController < ApiController
 | 
			
		||||
    set_maps(@statuses)
 | 
			
		||||
 | 
			
		||||
    next_path = api_v1_home_timeline_url(max_id: @statuses.last.id)    if @statuses.size == DEFAULT_STATUSES_LIMIT
 | 
			
		||||
    prev_path = api_v1_home_timeline_url(since_id: @statuses.first.id) if @statuses.size > 0
 | 
			
		||||
    prev_path = api_v1_home_timeline_url(since_id: @statuses.first.id) unless @statuses.empty?
 | 
			
		||||
 | 
			
		||||
    set_pagination_headers(next_path, prev_path)
 | 
			
		||||
 | 
			
		||||
@@ -23,7 +25,7 @@ class Api::V1::TimelinesController < ApiController
 | 
			
		||||
    set_maps(@statuses)
 | 
			
		||||
 | 
			
		||||
    next_path = api_v1_mentions_timeline_url(max_id: @statuses.last.id)    if @statuses.size == DEFAULT_STATUSES_LIMIT
 | 
			
		||||
    prev_path = api_v1_mentions_timeline_url(since_id: @statuses.first.id) if @statuses.size > 0
 | 
			
		||||
    prev_path = api_v1_mentions_timeline_url(since_id: @statuses.first.id) unless @statuses.empty?
 | 
			
		||||
 | 
			
		||||
    set_pagination_headers(next_path, prev_path)
 | 
			
		||||
 | 
			
		||||
@@ -36,7 +38,7 @@ class Api::V1::TimelinesController < ApiController
 | 
			
		||||
    set_maps(@statuses)
 | 
			
		||||
 | 
			
		||||
    next_path = api_v1_public_timeline_url(max_id: @statuses.last.id)    if @statuses.size == DEFAULT_STATUSES_LIMIT
 | 
			
		||||
    prev_path = api_v1_public_timeline_url(since_id: @statuses.first.id) if @statuses.size > 0
 | 
			
		||||
    prev_path = api_v1_public_timeline_url(since_id: @statuses.first.id) unless @statuses.empty?
 | 
			
		||||
 | 
			
		||||
    set_pagination_headers(next_path, prev_path)
 | 
			
		||||
 | 
			
		||||
@@ -50,7 +52,7 @@ class Api::V1::TimelinesController < ApiController
 | 
			
		||||
    set_maps(@statuses)
 | 
			
		||||
 | 
			
		||||
    next_path = api_v1_hashtag_timeline_url(params[:id], max_id: @statuses.last.id)    if @statuses.size == DEFAULT_STATUSES_LIMIT
 | 
			
		||||
    prev_path = api_v1_hashtag_timeline_url(params[:id], since_id: @statuses.first.id) if @statuses.size > 0
 | 
			
		||||
    prev_path = api_v1_hashtag_timeline_url(params[:id], since_id: @statuses.first.id) unless @statuses.empty?
 | 
			
		||||
 | 
			
		||||
    set_pagination_headers(next_path, prev_path)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,5 @@
 | 
			
		||||
# frozen_string_literal: true
 | 
			
		||||
 | 
			
		||||
class ApiController < ApplicationController
 | 
			
		||||
  DEFAULT_STATUSES_LIMIT = 20
 | 
			
		||||
  DEFAULT_ACCOUNTS_LIMIT = 40
 | 
			
		||||
@@ -51,8 +53,8 @@ class ApiController < ApplicationController
 | 
			
		||||
 | 
			
		||||
  def set_pagination_headers(next_path = nil, prev_path = nil)
 | 
			
		||||
    links = []
 | 
			
		||||
    links << [next_path, [['rel', 'next']]] if next_path
 | 
			
		||||
    links << [prev_path, [['rel', 'prev']]] if prev_path
 | 
			
		||||
    links << [next_path, [%w(rel next)]] if next_path
 | 
			
		||||
    links << [prev_path, [%w(rel prev)]] if prev_path
 | 
			
		||||
    response.headers['Link'] = LinkHeader.new(links)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
@@ -76,7 +78,7 @@ class ApiController < ApplicationController
 | 
			
		||||
    render json: {}, status: 200
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def set_maps(statuses)
 | 
			
		||||
  def set_maps(statuses) # rubocop:disable Style/AccessorMethodName
 | 
			
		||||
    if current_account.nil?
 | 
			
		||||
      @reblogs_map    = {}
 | 
			
		||||
      @favourites_map = {}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,5 @@
 | 
			
		||||
# frozen_string_literal: true
 | 
			
		||||
 | 
			
		||||
class ApplicationController < ActionController::Base
 | 
			
		||||
  # Prevent CSRF attacks by raising an exception.
 | 
			
		||||
  # For APIs, you may want to use :null_session instead.
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,5 @@
 | 
			
		||||
# frozen_string_literal: true
 | 
			
		||||
 | 
			
		||||
class Auth::ConfirmationsController < Devise::ConfirmationsController
 | 
			
		||||
  layout 'auth'
 | 
			
		||||
end
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,5 @@
 | 
			
		||||
# frozen_string_literal: true
 | 
			
		||||
 | 
			
		||||
class Auth::PasswordsController < Devise::PasswordsController
 | 
			
		||||
  layout 'auth'
 | 
			
		||||
end
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,5 @@
 | 
			
		||||
# frozen_string_literal: true
 | 
			
		||||
 | 
			
		||||
class Auth::RegistrationsController < Devise::RegistrationsController
 | 
			
		||||
  layout 'auth'
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,5 @@
 | 
			
		||||
# frozen_string_literal: true
 | 
			
		||||
 | 
			
		||||
class Auth::SessionsController < Devise::SessionsController
 | 
			
		||||
  include Devise::Controllers::Rememberable
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,5 @@
 | 
			
		||||
# frozen_string_literal: true
 | 
			
		||||
 | 
			
		||||
class HomeController < ApplicationController
 | 
			
		||||
  before_action :authenticate_user!
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,5 @@
 | 
			
		||||
# frozen_string_literal: true
 | 
			
		||||
 | 
			
		||||
class MediaController < ApplicationController
 | 
			
		||||
  before_action :set_media_attachment
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,5 @@
 | 
			
		||||
# frozen_string_literal: true
 | 
			
		||||
 | 
			
		||||
class Oauth::AuthorizationsController < Doorkeeper::AuthorizationsController
 | 
			
		||||
  skip_before_action :authenticate_resource_owner!
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,5 @@
 | 
			
		||||
# frozen_string_literal: true
 | 
			
		||||
 | 
			
		||||
class Settings::PreferencesController < ApplicationController
 | 
			
		||||
  layout 'auth'
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,5 @@
 | 
			
		||||
# frozen_string_literal: true
 | 
			
		||||
 | 
			
		||||
class Settings::ProfilesController < ApplicationController
 | 
			
		||||
  layout 'auth'
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,5 @@
 | 
			
		||||
# frozen_string_literal: true
 | 
			
		||||
 | 
			
		||||
class StreamEntriesController < ApplicationController
 | 
			
		||||
  layout 'public'
 | 
			
		||||
 | 
			
		||||
@@ -29,9 +31,7 @@ class StreamEntriesController < ApplicationController
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def set_link_headers
 | 
			
		||||
    response.headers['Link'] = LinkHeader.new([
 | 
			
		||||
      [account_stream_entry_url(@account, @stream_entry, format: 'atom'), [['rel', 'alternate'], ['type', 'application/atom+xml']]]
 | 
			
		||||
    ])
 | 
			
		||||
    response.headers['Link'] = LinkHeader.new([[account_stream_entry_url(@account, @stream_entry, format: 'atom'), [%w(rel alternate), %w(type application/atom+xml)]]])
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def set_stream_entry
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,5 @@
 | 
			
		||||
# frozen_string_literal: true
 | 
			
		||||
 | 
			
		||||
class TagsController < ApplicationController
 | 
			
		||||
  layout 'public'
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,5 @@
 | 
			
		||||
# frozen_string_literal: true
 | 
			
		||||
 | 
			
		||||
class XrdController < ApplicationController
 | 
			
		||||
  before_action :set_default_format_json, only: :webfinger
 | 
			
		||||
  before_action :set_default_format_xml, only: :host_meta
 | 
			
		||||
@@ -26,11 +28,11 @@ class XrdController < ApplicationController
 | 
			
		||||
  private
 | 
			
		||||
 | 
			
		||||
  def set_default_format_xml
 | 
			
		||||
    request.format = 'xml' if request.headers["HTTP_ACCEPT"].nil? && params[:format].nil?
 | 
			
		||||
    request.format = 'xml' if request.headers['HTTP_ACCEPT'].nil? && params[:format].nil?
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def set_default_format_json
 | 
			
		||||
    request.format = 'json' if request.headers["HTTP_ACCEPT"].nil? && params[:format].nil?
 | 
			
		||||
    request.format = 'json' if request.headers['HTTP_ACCEPT'].nil? && params[:format].nil?
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def username_from_resource
 | 
			
		||||
@@ -44,14 +46,14 @@ class XrdController < ApplicationController
 | 
			
		||||
 | 
			
		||||
  def pem_to_magic_key(public_key)
 | 
			
		||||
    modulus, exponent = [public_key.n, public_key.e].map do |component|
 | 
			
		||||
      result = ''
 | 
			
		||||
      result = []
 | 
			
		||||
 | 
			
		||||
      until component.zero?
 | 
			
		||||
        result << [component % 256].pack('C')
 | 
			
		||||
        component >>= 8
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      result.reverse!
 | 
			
		||||
      result.reverse.join
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    (['RSA'] + [modulus, exponent].map { |n| Base64.urlsafe_encode64(n) }).join('.')
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user