Fix rubocop issues, introduce usage of frozen literal to improve performance
This commit is contained in:
		
					parent
					
						
							
								a91c3ef6ce
							
						
					
				
			
			
				commit
				
					
						fdc17bea58
					
				
			
		
					 96 changed files with 329 additions and 126 deletions
				
			
		|  | @ -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('.') | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue