Skip to content
This repository was archived by the owner on Nov 15, 2023. It is now read-only.

Commit eedb5d1

Browse files
authored
style: 💄 $ rubocop -A app/controllers (#128)
1 parent c6a5121 commit eedb5d1

18 files changed

+188
-92
lines changed

.rubocop.yml

+51
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
# inherit_from: .rubocop_todo.yml
2+
3+
require:
4+
- rubocop-rails
5+
6+
AllCops:
7+
NewCops: enable
8+
DisplayCopNames: true
9+
Exclude:
10+
- 'vendor/**/*'
11+
- 'node_modules/**/*'
12+
- 'spec/**/*'
13+
- 'db/schema.rb'
14+
- 'db/**/*'
15+
- 'config/**/*'
16+
- 'Guardfile'
17+
- 'bin/**/*'
18+
- 'tmp/**/*'
19+
20+
Style/Documentation:
21+
Enabled: false
22+
23+
Style/FrozenStringLiteralComment:
24+
Enabled: false
25+
26+
Style/StringLiterals:
27+
EnforcedStyle: single_quotes
28+
29+
Style/StringLiteralsInInterpolation:
30+
EnforcedStyle: single_quotes
31+
32+
Style/TrailingCommaInArrayLiteral:
33+
EnforcedStyleForMultiline: comma
34+
35+
Metrics/BlockLength:
36+
Max: 52
37+
38+
Metrics/ClassLength:
39+
Max: 500
40+
41+
Metrics/CyclomaticComplexity:
42+
Max: 16
43+
44+
Metrics/MethodLength:
45+
Max: 65
46+
47+
Metrics/PerceivedComplexity:
48+
Max: 17
49+
50+
Metrics/ModuleLength:
51+
Max: 160

app/controllers/after_party_controller.rb

+10-9
Original file line numberDiff line numberDiff line change
@@ -11,25 +11,24 @@ def index
1111
end
1212

1313
private
14-
def after_party_get_method
14+
15+
def after_party_get_method # rubocop:disable Metrics/AbcSize
1516
# ex. https://twitter.com/nyaka_y/status/874979736308416512
16-
all_records = Hashtag.all.map { |rec| rec.attributes }
17+
all_records = Hashtag.all.map(&:attributes)
1718
@all_rec_tweet_ids = []
1819
all_records.each do |record|
19-
@all_rec_tweet_ids << record["tweet_id"]
20+
@all_rec_tweet_ids << record['tweet_id']
2021
end
2122

22-
tag_records = Hashtag.where(tagname: "幻水総選挙2017後夜祭").map { |rec| rec.attributes }
23+
tag_records = Hashtag.where(tagname: '幻水総選挙2017後夜祭').map(&:attributes)
2324
@tag_rec_tweet_ids = []
2425
tag_records.each do |record|
25-
@tag_rec_tweet_ids << record["tweet_id"]
26+
@tag_rec_tweet_ids << record['tweet_id']
2627
end
2728

2829
@result_ids = []
2930
@tag_rec_tweet_ids.each do |tweet_id|
30-
# if @all_rec_tweet_ids.count(tweet_id) == 1
31-
@result_ids << tweet_id
32-
# end
31+
@result_ids << tweet_id
3332
end
3433

3534
# tomochin = without_retweets_and_gensosenkyo_loose_limited_period # Array
@@ -54,6 +53,8 @@ def after_party_get_method
5453
end
5554

5655
@kaminari_page_per = 20
57-
@kaminaried_tweets = Kaminari.paginate_array(last_result_tweets).page(params[:page]).per(@kaminari_page_per) # HACK: 個別に設定を決めないようにする
56+
57+
# HACK: 個別に設定を決めないようにする
58+
@kaminaried_tweets = Kaminari.paginate_array(last_result_tweets).page(params[:page]).per(@kaminari_page_per)
5859
end
5960
end

app/controllers/check_vote_controller.rb

+4-5
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,15 @@ class CheckVoteController < ApplicationController
33
include TweetsJoinUsers
44
include SelectTweetsByHashtag
55

6-
def index
7-
end
6+
def index; end
87

9-
def result
10-
@screen_name = params[:screen_name].nil? ? "" : params[:screen_name].gsub(/@/, "")
8+
def result # rubocop:disable Metrics/AbcSize
9+
@screen_name = params[:screen_name].nil? ? '' : params[:screen_name].gsub(/@/, '')
1110

1211
# tweets_by_specific_user = tweets_by_specific_user(@screen_name)
1312
# tweets_by_specific_user = tweets_by_specific_user_limited_period(@screen_name)
1413
tweets_by_specific_user = tweets_by_specific_user_limited_loose_period(@screen_name)
15-
select_tweets_by_hashtag = select_tweets_by_hashtag(tweets_by_specific_user, "幻水総選挙2017投票", "幻水総選挙2017")
14+
select_tweets_by_hashtag = select_tweets_by_hashtag(tweets_by_specific_user, '幻水総選挙2017投票', '幻水総選挙2017')
1615

1716
# TODO: コントローラに詰め込みすぎ
1817
unreadable_tweet_ids = IsReadableTweet.where(is_readable: false)

app/controllers/concerns/for_get_method_at_members.rb

+10-6
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
module ForGetMethodAtMembers
2-
def show_vote_result
2+
def show_vote_result # rubocop:disable Metrics/AbcSize
33
source_tweets = without_retweets_and_gensosenkyo_loose_limited_period
4-
selected_tweets = select_tweets_by_hashtag(source_tweets, "幻水総選挙2017投票")
4+
selected_tweets = select_tweets_by_hashtag(source_tweets, '幻水総選挙2017投票')
55

66
# TODO: コントローラに詰め込みすぎ
77
unreadable_tweet_ids = IsReadableTweet.where(is_readable: false)
@@ -15,12 +15,14 @@ def show_vote_result
1515
end
1616

1717
@kaminari_page_per = 20
18-
@kaminaried_tweets = Kaminari.paginate_array(result_tweets.reverse).page(params[:page]).per(@kaminari_page_per) # HACK: 個別に設定を決めないようにする
18+
19+
# HACK: 個別に設定を決めないようにする
20+
@kaminaried_tweets = Kaminari.paginate_array(result_tweets.reverse).page(params[:page]).per(@kaminari_page_per)
1921
end
2022

21-
def show_vote_result_after_party
23+
def show_vote_result_after_party # rubocop:disable Metrics/AbcSize
2224
source_tweets = for_after_party
23-
selected_tweets = select_tweets_by_hashtag(source_tweets, "幻水総選挙2017後夜祭")
25+
selected_tweets = select_tweets_by_hashtag(source_tweets, '幻水総選挙2017後夜祭')
2426

2527
# TODO: コントローラに詰め込みすぎ
2628
unreadable_tweet_ids = IsReadableTweet.where(is_readable: false)
@@ -34,6 +36,8 @@ def show_vote_result_after_party
3436
end
3537

3638
@kaminari_page_per = 20
37-
@kaminaried_tweets = Kaminari.paginate_array(result_tweets.reverse).page(params[:page]).per(@kaminari_page_per) # HACK: 個別に設定を決めないようにする
39+
40+
# HACK: 個別に設定を決めないようにする
41+
@kaminaried_tweets = Kaminari.paginate_array(result_tweets.reverse).page(params[:page]).per(@kaminari_page_per)
3842
end
3943
end

app/controllers/concerns/for_post_method_at_members.rb

+8-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
module ForPostMethodAtMembers
2-
def show_vote_result_with_search(serach_word)
2+
def show_vote_result_with_search(serach_word) # rubocop:disable Metrics/AbcSize
33
source_tweets = without_retweets_and_gensosenkyo_loose_limited_period
4-
selected_tweets = select_tweets_by_hashtag(source_tweets, "幻水総選挙2017投票")
4+
selected_tweets = select_tweets_by_hashtag(source_tweets, '幻水総選挙2017投票')
55

66
# TODO: コントローラに詰め込みすぎ
77
unreadable_tweet_ids = IsReadableTweet.where(is_readable: false)
@@ -21,6 +21,11 @@ def show_vote_result_with_search(serach_word)
2121
end
2222

2323
@kaminari_page_per = 20
24-
@kaminaried_tweets = Kaminari.paginate_array(@last_result_tweets.reverse).page(params[:page]).per(@kaminari_page_per) # HACK: 個別に設定を決めないようにする
24+
25+
# HACK: 個別に設定を決めないようにする
26+
@kaminaried_tweets = Kaminari
27+
.paginate_array(@last_result_tweets.reverse)
28+
.page(params[:page])
29+
.per(@kaminari_page_per)
2530
end
2631
end

app/controllers/concerns/select_tweets_by_hashtag.rb

+5-2
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
module SelectTweetsByHashtag
22
# HACK: 引数 hashtag は、複数の値を取れるようにする(現状は場当たり的にも程がある)
3-
def select_tweets_by_hashtag(tweets, hashtag_a, hashtag_b="")
3+
def select_tweets_by_hashtag(tweets, hashtag_a, hashtag_b = '')
44
@selected_tweets = []
5+
56
tweets.each do |tweet|
67
target_tweets = Hashtag.where(tweet_id: tweet.tweet_id)
7-
target_tweets.each do |target_tweet|
8+
9+
target_tweets.each do |target_tweet| # rubocop:disable Lint/UnreachableLoop (FIXME:)
810
@selected_tweets << tweet if target_tweet.tagname == hashtag_a || target_tweet.tagname == hashtag_b
11+
912
break # TODO: 「どちらかが含まれていた時点で終了」ということであるが、論理的に複雑である
1013
end
1114
end
+21-11
Original file line numberDiff line numberDiff line change
@@ -1,51 +1,61 @@
1+
# rubocop:disable Layout/LineLength
12
module TweetsJoinUsers
23
# TODO: find_by_sql は良くない
34
def without_retweets
4-
Tweet.find_by_sql([%Q{SELECT * FROM tweets INNER JOIN users ON tweets.user_id = users.user_id WHERE is_retweet = false ORDER BY tweets.tweeted_at DESC}])
5+
Tweet.find_by_sql([%(SELECT * FROM tweets INNER JOIN users ON tweets.user_id = users.user_id WHERE is_retweet = false ORDER BY tweets.tweeted_at DESC)])
56
end
67

78
# TODO: find_by_sql は良くない
89
# TODO: NOT DRY
910
def without_retweets_and_limited_period
10-
Tweet.find_by_sql([%Q{SELECT * FROM tweets INNER JOIN users ON tweets.user_id = users.user_id WHERE (is_retweet = false) AND (tweeted_at BETWEEN '2017/06/16 12:00:00' AND '2017/06/18 00:00:00') ORDER BY tweets.tweeted_at DESC}])
11+
Tweet.find_by_sql([%{SELECT * FROM tweets INNER JOIN users ON tweets.user_id = users.user_id WHERE (is_retweet = false) AND (tweeted_at BETWEEN '2017/06/16 12:00:00' AND '2017/06/18 00:00:00') ORDER BY tweets.tweeted_at DESC}])
1112
end
1213

1314
def without_retweets_and_loose_limited_period
14-
Tweet.find_by_sql([%Q{SELECT * FROM tweets INNER JOIN users ON tweets.user_id = users.user_id WHERE (is_retweet = false) AND (tweeted_at BETWEEN '2017/06/16 11:45:00' AND '2017/06/18 03:00:00') ORDER BY tweets.tweeted_at DESC}])
15+
Tweet.find_by_sql([%{SELECT * FROM tweets INNER JOIN users ON tweets.user_id = users.user_id WHERE (is_retweet = false) AND (tweeted_at BETWEEN '2017/06/16 11:45:00' AND '2017/06/18 03:00:00') ORDER BY tweets.tweeted_at DESC}])
1516
end
1617

1718
def without_retweets_and_gensosenkyo_loose_limited_period
18-
Tweet.find_by_sql([%Q{SELECT * FROM tweets INNER JOIN users ON tweets.user_id = users.user_id WHERE (is_retweet = false) AND (users.screen_name != 'gensosenkyo') AND (tweeted_at BETWEEN '2017/06/16 11:45:00' AND '2017/06/18 03:00:00') ORDER BY tweets.tweeted_at DESC}])
19+
Tweet.find_by_sql([%{SELECT * FROM tweets INNER JOIN users ON tweets.user_id = users.user_id WHERE (is_retweet = false) AND (users.screen_name != 'gensosenkyo') AND (tweeted_at BETWEEN '2017/06/16 11:45:00' AND '2017/06/18 03:00:00') ORDER BY tweets.tweeted_at DESC}])
1920
end
2021

2122
def without_retweets_and_gensosenkyo_loose_limited_period_name_sort
22-
Tweet.find_by_sql([%Q{SELECT * FROM tweets INNER JOIN users ON tweets.user_id = users.user_id WHERE (is_retweet = false) AND (users.screen_name != 'gensosenkyo') AND (tweeted_at BETWEEN '2017/06/16 11:45:00' AND '2017/06/18 03:00:00') ORDER BY users.screen_name ASC}])
23+
Tweet.find_by_sql([%{SELECT * FROM tweets INNER JOIN users ON tweets.user_id = users.user_id WHERE (is_retweet = false) AND (users.screen_name != 'gensosenkyo') AND (tweeted_at BETWEEN '2017/06/16 11:45:00' AND '2017/06/18 03:00:00') ORDER BY users.screen_name ASC}])
2324
end
2425

2526
def for_after_party
26-
Tweet.find_by_sql([%Q{SELECT * FROM tweets INNER JOIN users ON tweets.user_id = users.user_id WHERE (is_retweet = false) AND (tweeted_at > '2017/06/24 11:45:00') ORDER BY tweets.tweeted_at DESC}])
27+
Tweet.find_by_sql([%{SELECT * FROM tweets INNER JOIN users ON tweets.user_id = users.user_id WHERE (is_retweet = false) AND (tweeted_at > '2017/06/24 11:45:00') ORDER BY tweets.tweeted_at DESC}])
2728
end
2829

2930
# TODO: find_by_sql は良くない
3031
def tweets_by_specific_user(screen_name)
31-
Tweet.find_by_sql([%Q{SELECT * FROM tweets INNER JOIN users ON tweets.user_id = users.user_id WHERE screen_name = ? AND is_retweet = false ORDER BY tweets.tweeted_at DESC}, screen_name])
32+
Tweet.find_by_sql([
33+
%(SELECT * FROM tweets INNER JOIN users ON tweets.user_id = users.user_id WHERE screen_name = ? AND is_retweet = false ORDER BY tweets.tweeted_at DESC), screen_name
34+
])
3235
end
3336

3437
# TODO: find_by_sql は良くない
3538
# TODO: NOT DRY
3639
def tweets_by_specific_user_limited_period(screen_name)
37-
Tweet.find_by_sql([%Q{SELECT * FROM tweets INNER JOIN users ON tweets.user_id = users.user_id WHERE (screen_name = ?) AND (is_retweet = false) AND (tweeted_at BETWEEN '2017/06/16 12:00:00' AND '2017/06/18 00:00:00') ORDER BY tweets.tweeted_at DESC}, screen_name])
40+
Tweet.find_by_sql([
41+
%{SELECT * FROM tweets INNER JOIN users ON tweets.user_id = users.user_id WHERE (screen_name = ?) AND (is_retweet = false) AND (tweeted_at BETWEEN '2017/06/16 12:00:00' AND '2017/06/18 00:00:00') ORDER BY tweets.tweeted_at DESC}, screen_name
42+
])
3843
end
3944

4045
def tweets_by_specific_user_limited_loose_period(screen_name)
41-
Tweet.find_by_sql([%Q{SELECT * FROM tweets INNER JOIN users ON tweets.user_id = users.user_id WHERE (screen_name = ?) AND (is_retweet = false) AND (tweeted_at BETWEEN '2017/06/16 11:45:00' AND '2017/06/18 03:00:00') ORDER BY tweets.tweeted_at DESC}, screen_name])
46+
Tweet.find_by_sql([
47+
%{SELECT * FROM tweets INNER JOIN users ON tweets.user_id = users.user_id WHERE (screen_name = ?) AND (is_retweet = false) AND (tweeted_at BETWEEN '2017/06/16 11:45:00' AND '2017/06/18 03:00:00') ORDER BY tweets.tweeted_at DESC}, screen_name
48+
])
4249
end
4350

4451
def tweets_by_specific_user_limited_count_vote_period(screen_name)
45-
Tweet.find_by_sql([%Q{SELECT * FROM tweets INNER JOIN users ON tweets.user_id = users.user_id WHERE (screen_name = ?) AND (is_retweet = false) AND (tweeted_at BETWEEN '2017/06/25 02:45:00' AND '2017/06/25 10:00:00') ORDER BY tweets.tweeted_at ASC}, screen_name])
52+
Tweet.find_by_sql([
53+
%{SELECT * FROM tweets INNER JOIN users ON tweets.user_id = users.user_id WHERE (screen_name = ?) AND (is_retweet = false) AND (tweeted_at BETWEEN '2017/06/25 02:45:00' AND '2017/06/25 10:00:00') ORDER BY tweets.tweeted_at ASC}, screen_name
54+
])
4655
end
4756

4857
def attached_image_uri(target_tweet_id)
49-
Tweet.find_by_sql([%Q{SELECT * FROM attached_images WHERE tweet_id = ? ORDER BY media_id ASC}, target_tweet_id])
58+
Tweet.find_by_sql([%(SELECT * FROM attached_images WHERE tweet_id = ? ORDER BY media_id ASC), target_tweet_id])
5059
end
5160
end
61+
# rubocop:enable Layout/LineLength

app/controllers/count_vote_controller.rb

+5-2
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,15 @@ def index
1111
end
1212

1313
private
14+
1415
# hyper dirty code...
1516
def show_count_vote_tweet
16-
source_tweets = tweets_by_specific_user_limited_count_vote_period("gensosenkyo")
17+
source_tweets = tweets_by_specific_user_limited_count_vote_period('gensosenkyo')
1718
result_tweets = source_tweets
1819

1920
@kaminari_page_per = 10
20-
@kaminaried_tweets = Kaminari.paginate_array(result_tweets).page(params[:page]).per(@kaminari_page_per) # HACK: 個別に設定を決めないようにする
21+
22+
# HACK: 個別に設定を決めないようにする
23+
@kaminaried_tweets = Kaminari.paginate_array(result_tweets).page(params[:page]).per(@kaminari_page_per)
2124
end
2225
end

app/controllers/for_members_all_vote_controller.rb

+12-4
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,10 @@ class ForMembersAllVoteController < ApplicationController
77
layout 'application_members'
88

99
def index
10-
authenticate_or_request_with_http_basic("Hello, gensosenkyo staff!") do |username, password|
10+
authenticate_or_request_with_http_basic('Hello, gensosenkyo staff!') do |username, password|
1111
username == ENV['MEMBERS_PAGE_AUTH_USERNAME'] && password == ENV['MEMBERS_PAGE_AUTH_PASSWORD']
1212
end
13+
1314
for_get_method if request.get?
1415
for_post_method(params[:search_word]) if request.post?
1516
end
@@ -29,10 +30,12 @@ def for_get_method
2930
end
3031

3132
@kaminari_page_per = 20
32-
@kaminaried_tweets = Kaminari.paginate_array(last_result_tweets.reverse).page(params[:page]).per(@kaminari_page_per) # HACK: 個別に設定を決めないようにする
33+
34+
# HACK: 個別に設定を決めないようにする
35+
@kaminaried_tweets = Kaminari.paginate_array(last_result_tweets.reverse).page(params[:page]).per(@kaminari_page_per)
3336
end
3437

35-
def for_post_method(search_word)
38+
def for_post_method(search_word) # rubocop:disable Metrics/AbcSize
3639
source_tweets = without_retweets
3740

3841
# TODO: コントローラに詰め込みすぎ
@@ -53,6 +56,11 @@ def for_post_method(search_word)
5356
end
5457

5558
@kaminari_page_per = 20
56-
@kaminaried_tweets = Kaminari.paginate_array(@lastest_result_tweets.reverse).page(params[:page]).per(@kaminari_page_per) # HACK: 個別に設定を決めないようにする
59+
60+
# HACK: 個別に設定を決めないようにする
61+
@kaminaried_tweets = Kaminari
62+
.paginate_array(@lastest_result_tweets.reverse)
63+
.page(params[:page])
64+
.per(@kaminari_page_per)
5765
end
5866
end

app/controllers/for_members_check_vote_controller.rb

+12-8
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@ class ForMembersCheckVoteController < ApplicationController
77
layout 'application_members'
88
# before_action :site_http_basic_authenticate_with
99

10-
def show
11-
authenticate_or_request_with_http_basic("Hello, gensosenkyo staff!") do |username, password|
10+
def show # rubocop:disable Metrics/AbcSize
11+
authenticate_or_request_with_http_basic('Hello, gensosenkyo staff!') do |username, password|
1212
username == ENV['MEMBERS_PAGE_AUTH_USERNAME'] && password == ENV['MEMBERS_PAGE_AUTH_PASSWORD']
1313
end
1414

15-
@screen_name = params[:search_tw_id].nil? ? "" : params[:search_tw_id].gsub(/@/, "")
15+
@screen_name = params[:search_tw_id].nil? ? '' : params[:search_tw_id].gsub(/@/, '')
1616
source_tweets = tweets_by_specific_user(@screen_name)
1717

1818
# TODO: コントローラに詰め込みすぎ
@@ -27,15 +27,17 @@ def show
2727
end
2828

2929
@kaminari_page_per = 20
30-
@kaminaried_tweets = Kaminari.paginate_array(last_result_tweets.reverse).page(params[:page]).per(@kaminari_page_per) # HACK: 個別に設定を決めないようにする
30+
31+
# HACK: 個別に設定を決めないようにする
32+
@kaminaried_tweets = Kaminari.paginate_array(last_result_tweets.reverse).page(params[:page]).per(@kaminari_page_per)
3133
end
3234

33-
def result
34-
authenticate_or_request_with_http_basic("Hello, gensosenkyo staff!") do |username, password|
35+
def result # rubocop:disable Metrics/AbcSize
36+
authenticate_or_request_with_http_basic('Hello, gensosenkyo staff!') do |username, password|
3537
username == ENV['MEMBERS_PAGE_AUTH_USERNAME'] && password == ENV['MEMBERS_PAGE_AUTH_PASSWORD']
3638
end
3739

38-
@screen_name = params[:search_tw_id].nil? ? "" : params[:search_tw_id].gsub(/@/, "")
40+
@screen_name = params[:search_tw_id].nil? ? '' : params[:search_tw_id].gsub(/@/, '')
3941
source_tweets = tweets_by_specific_user(@screen_name)
4042

4143
# TODO: コントローラに詰め込みすぎ
@@ -50,6 +52,8 @@ def result
5052
end
5153

5254
@kaminari_page_per = 20
53-
@kaminaried_tweets = Kaminari.paginate_array(last_result_tweets.reverse).page(params[:page]).per(@kaminari_page_per) # HACK: 個別に設定を決めないようにする
55+
56+
# HACK: 個別に設定を決めないようにする
57+
@kaminaried_tweets = Kaminari.paginate_array(last_result_tweets.reverse).page(params[:page]).per(@kaminari_page_per)
5458
end
5559
end

app/controllers/for_members_controller.rb

+2-3
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ class ForMembersController < ApplicationController
88
before_action :site_http_basic_authenticate_with
99

1010
def site_http_basic_authenticate_with
11-
authenticate_or_request_with_http_basic("Hello, gensosenkyo staff!") do |username, password|
11+
authenticate_or_request_with_http_basic('Hello, gensosenkyo staff!') do |username, password|
1212
username == ENV['MEMBERS_PAGE_AUTH_USERNAME'] && password == ENV['MEMBERS_PAGE_AUTH_PASSWORD']
1313
end
1414
end
@@ -18,6 +18,5 @@ def index
1818
# show_vote_result_with_search(params[:search_word]) if request.post?
1919
end
2020

21-
def requirement
22-
end
21+
def requirement; end
2322
end

0 commit comments

Comments
 (0)