jpmobile 5.2.3 → 6.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (69) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +1 -1
  3. data/.onkcop-config.yml +423 -0
  4. data/.rubocop.yml +8 -10
  5. data/.ruby-version +1 -1
  6. data/Gemfile +2 -2
  7. data/Gemfile.lock +155 -130
  8. data/README.md +2 -2
  9. data/jpmobile.gemspec +3 -1
  10. data/lib/jpmobile.rb +1 -0
  11. data/lib/jpmobile/emoticon.rb +6 -6
  12. data/lib/jpmobile/filter.rb +7 -2
  13. data/lib/jpmobile/hook_action_view.rb +4 -10
  14. data/lib/jpmobile/hook_test_request.rb +1 -1
  15. data/lib/jpmobile/mail.rb +3 -3
  16. data/lib/jpmobile/mobile/android.rb +1 -1
  17. data/lib/jpmobile/mobile/au.rb +2 -2
  18. data/lib/jpmobile/mobile/black_berry.rb +1 -1
  19. data/lib/jpmobile/mobile/ddipocket.rb +1 -1
  20. data/lib/jpmobile/mobile/docomo.rb +2 -2
  21. data/lib/jpmobile/mobile/emobile.rb +2 -2
  22. data/lib/jpmobile/mobile/ipad.rb +1 -1
  23. data/lib/jpmobile/mobile/iphone.rb +1 -1
  24. data/lib/jpmobile/mobile/softbank.rb +2 -2
  25. data/lib/jpmobile/mobile/vodafone.rb +2 -2
  26. data/lib/jpmobile/mobile/willcom.rb +2 -2
  27. data/lib/jpmobile/mobile/windows_phone.rb +1 -1
  28. data/lib/jpmobile/rails.rb +8 -6
  29. data/lib/jpmobile/resolver.rb +4 -37
  30. data/lib/jpmobile/session/active_record_store.rb +1 -1
  31. data/lib/jpmobile/session/mem_cache_store.rb +1 -1
  32. data/lib/jpmobile/trans_sid.rb +1 -1
  33. data/lib/jpmobile/util.rb +2 -2
  34. data/lib/jpmobile/version.rb +1 -1
  35. data/lib/tasks/jpmobile_tasks.rake +4 -4
  36. data/spec/rack/jpmobile/emoticon_spec.rb +48 -48
  37. data/spec/rack_helper.rb +1 -1
  38. data/spec/unit/receive_mail_spec.rb +9 -9
  39. data/spec/unit/util_spec.rb +4 -4
  40. data/test/rails/overrides/app/controllers/mobile_spec_controller.rb +1 -1
  41. data/test/rails/overrides/app/mailboxes/application_mailbox.rb +3 -0
  42. data/test/rails/overrides/app/mailboxes/mobile_mailer_mailbox.rb +5 -0
  43. data/test/rails/overrides/app/mailers/decorated_mailer.rb +1 -1
  44. data/test/rails/overrides/db/migrate/20201111033056_create_active_storage_tables.active_storage.rb +36 -0
  45. data/test/rails/overrides/db/migrate/20201111033057_create_action_mailbox_tables.action_mailbox.rb +14 -0
  46. data/test/rails/overrides/spec/controllers/hankaku_filter_controller_spec.rb +1 -1
  47. data/test/rails/overrides/spec/controllers/template_path_spec.rb +2 -0
  48. data/test/rails/overrides/spec/fixtures/{mobile_mailer → files/mobile_mailer}/au-attached.eml +0 -0
  49. data/test/rails/overrides/spec/fixtures/{mobile_mailer → files/mobile_mailer}/au-decomail.eml +0 -0
  50. data/test/rails/overrides/spec/fixtures/{mobile_mailer → files/mobile_mailer}/au-emoji.eml +0 -0
  51. data/test/rails/overrides/spec/fixtures/{mobile_mailer → files/mobile_mailer}/au-emoji2.eml +0 -0
  52. data/test/rails/overrides/spec/fixtures/{mobile_mailer → files/mobile_mailer}/au-emoji5.eml +0 -0
  53. data/test/rails/overrides/spec/fixtures/{mobile_mailer → files/mobile_mailer}/bounced-jp.eml +0 -0
  54. data/test/rails/overrides/spec/fixtures/{mobile_mailer → files/mobile_mailer}/docomo-emoji.eml +0 -0
  55. data/test/rails/overrides/spec/fixtures/{mobile_mailer → files/mobile_mailer}/docomo-gmail-sjis.eml +0 -0
  56. data/test/rails/overrides/spec/fixtures/{mobile_mailer → files/mobile_mailer}/docomo-jis.eml +0 -0
  57. data/{spec/unit/email-fixtures → test/rails/overrides/spec/fixtures/files/mobile_mailer}/iphone-message.eml +0 -0
  58. data/test/rails/overrides/spec/fixtures/{mobile_mailer → files/mobile_mailer}/no-from.eml +0 -0
  59. data/test/rails/overrides/spec/fixtures/{mobile_mailer → files/mobile_mailer}/non-jp.eml +0 -0
  60. data/test/rails/overrides/spec/fixtures/{mobile_mailer → files/mobile_mailer}/photo.jpg +0 -0
  61. data/test/rails/overrides/spec/fixtures/{mobile_mailer → files/mobile_mailer}/softbank-blank.eml +0 -0
  62. data/test/rails/overrides/spec/fixtures/{mobile_mailer → files/mobile_mailer}/softbank-emoji-utf8.eml +0 -0
  63. data/test/rails/overrides/spec/fixtures/{mobile_mailer → files/mobile_mailer}/softbank-emoji.eml +0 -0
  64. data/test/rails/overrides/spec/fixtures/{mobile_mailer → files/mobile_mailer}/softbank-gmail-sjis.eml +0 -0
  65. data/test/rails/overrides/spec/fixtures/{mobile_mailer → files/mobile_mailer}/softbank-gmail-utf8.eml +0 -0
  66. data/test/rails/overrides/spec/mailboxes/mobile_mailer_mailbox_spec.rb +265 -0
  67. data/test/rails/overrides/spec/mailers/mobile_mailer_spec.rb +0 -305
  68. data/test/rails/overrides/spec/requests/emobile_spec.rb +2 -2
  69. metadata +80 -42
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c92ac3e77de3857e601a5653a647135ec5e5b82e67fe306afba25eaad9a20585
4
- data.tar.gz: 621199b8e70b5964c2ee1e7a66b9b86c953806a82918419fdf4eeae3320c205c
3
+ metadata.gz: 6bab78dead8150c7f549c51a24def0b6d7542773124441f604f44f26c3149471
4
+ data.tar.gz: d4dfbd95df916aad34e7aef2d2cb49ac2e5e6255252119532f423633b4721ebd
5
5
  SHA512:
6
- metadata.gz: e0ca9b2c6a50f7c0a55b94ce6020192d0b8de7c737987d45aef5fd566165504d4a3106329217fe2a9d3b1d7334128d8bc50dc0287b0e66b00a8ec80aaf0e83e7
7
- data.tar.gz: fccba8f4826c4ce692ecb5bee0799737fbfd49fe99515ce41354b2e9cc13a949d86f92972ecd82776cf7a9e54c813c79bd49b9382e0639dc260e9a73dbd0d2ba
6
+ metadata.gz: 8ba8b8c5b09d7fa8ca65841cdd1bf30e495e28acb1b1b4a7fb17efcea063fee036828ce5d2508827adbe0dce760d4ecb74d9a5462389f93ae3e9f058ebf68b24
7
+ data.tar.gz: f9438f49c04aae66db70c2839f91ab0fe307fef8e17b74259ae74cfb01f7c5b62fa6819485ea150b96d80d2fd93ff8c998a7f99d1d64628ed34093f66be8c3b7
@@ -3,7 +3,7 @@ jobs:
3
3
  test-job:
4
4
  working_directory: ~/jpmobile
5
5
  docker:
6
- - image: circleci/ruby:2.5-node-browsers
6
+ - image: circleci/ruby:2.7-node-browsers
7
7
  environment:
8
8
  BUNDLE_JOBS: 3
9
9
  BUNDLE_RETRY: 3
@@ -0,0 +1,423 @@
1
+ # 自動生成されるものはチェック対象から除外する
2
+ AllCops:
3
+ Exclude:
4
+ - "node_modules/**/*" # rubocop config/default.yml
5
+ - "vendor/**/*" # rubocop config/default.yml
6
+ - "db/schema.rb"
7
+
8
+ #################### Layout ################################
9
+
10
+ # メソッドをグループ分けして書き順を揃えておくと読みやすくなる。
11
+ # 多少のツラミはあるかもしれない。
12
+ # TODO: Categories を調整することで
13
+ # https://github.com/pocke/rubocop-rails-order_model_declarative_methods
14
+ # を再現できそう。
15
+ Layout/ClassStructure:
16
+ Enabled: true
17
+
18
+ # メソッドチェーンの改行は末尾に . を入れる
19
+ # * REPL に貼り付けた際の暴発を防ぐため
20
+ # * 途中にコメントをはさむことができて実用上圧倒的に便利
21
+ Layout/DotPosition:
22
+ EnforcedStyle: trailing
23
+
24
+ # 桁揃えが綺麗にならないことが多いので migration は除外
25
+ Layout/ExtraSpacing:
26
+ Exclude:
27
+ - "db/migrate/*.rb"
28
+
29
+ # special_inside_parentheses (default) と比べて
30
+ # * 横に長くなりづらい
31
+ # * メソッド名の長さが変わったときに diff が少ない
32
+ Layout/FirstArrayElementIndentation:
33
+ EnforcedStyle: consistent
34
+
35
+ # ({ と hash を開始した場合に ( の位置にインデントさせる
36
+ # そもそも {} が必要ない可能性が高いが Style/BracesAroundHashParameters はチェックしないことにしたので
37
+ Layout/FirstHashElementIndentation:
38
+ EnforcedStyle: consistent
39
+
40
+ # private/protected は一段深くインデントする
41
+ Layout/IndentationConsistency:
42
+ EnforcedStyle: indented_internal_methods
43
+
44
+ # メソッドチェーン感がより感じられるインデントにする
45
+ Layout/MultilineMethodCallIndentation:
46
+ EnforcedStyle: indented_relative_to_receiver
47
+
48
+ # {} は 1 行で書くときに主に使われるので、スペースよりも
49
+ # 横に長くならない方が嬉しさが多い。
50
+ # そもそも {| のスタイルの方が一般的だったと認識している。
51
+ Layout/SpaceInsideBlockBraces:
52
+ SpaceBeforeBlockParameters: false
53
+
54
+ #################### Lint ##################################
55
+
56
+ # spec 内では
57
+ # expect { subject }.to change { foo }
58
+ # という書き方をよく行うので () を省略したい。
59
+ # { foo } は明らかに change に紐付く。
60
+ Lint/AmbiguousBlockAssociation:
61
+ Exclude:
62
+ - "spec/**/*_spec.rb"
63
+
64
+ # Style/EmptyCaseCondition と同じく網羅の表現力が empty when を認めた方が高いし、
65
+ # 頻出する対象を最初の when で撥ねるのはパフォーマンス向上で頻出する。
66
+ # また、
67
+ # case foo
68
+ # when 42
69
+ # # nop
70
+ # when 1..100
71
+ # ...
72
+ # end
73
+ # と、下の when がキャッチしてしまう場合等に対応していない。
74
+ # See. http://tech.sideci.com/entry/2016/11/01/105900
75
+ Lint/EmptyWhen:
76
+ Enabled: false
77
+
78
+ # RuntimeError は「特定の Error を定義できない場合」なので、
79
+ # 定義できるエラーは RuntimeError ではなく StandardError を継承する。
80
+ Lint/InheritException:
81
+ EnforcedStyle: standard_error
82
+
83
+ # * 同名のメソッドがある場合にローカル変数に `_` を付ける
84
+ # * 一時変数として `_` を付ける
85
+ # というテクニックは頻出する
86
+ Lint/UnderscorePrefixedVariableName:
87
+ Enabled: false
88
+
89
+ # 子クラスで実装させるつもりで中身が
90
+ # raise NotImplementedError
91
+ # のみのメソッドが引っかかるので。
92
+ # (raise せずに中身が空だと IgnoreEmptyMethods でセーフ)
93
+ Lint/UnusedMethodArgument:
94
+ Enabled: false
95
+
96
+ # select 以外では引っかからないと思うので
97
+ # mutating_methods のチェックを有効に。
98
+ # TODO: select は引数が無い (ブロックのみ) の場合にだけチェックする
99
+ # ようにすると誤検知がほぼ無くなる?
100
+ Lint/Void:
101
+ CheckForMethodsWithNoSideEffects: true
102
+
103
+ #################### Metrics ###############################
104
+
105
+ # 30 まではギリギリ許せる範囲だったけど
106
+ # リリースごとに 3 ずつぐらい下げていきます。20 まで下げたい。
107
+ Metrics/AbcSize:
108
+ Max: 24
109
+
110
+ # Gemfile, Guardfile は DSL 的で基本的に複雑にはならないので除外
111
+ # rake, rspec, environments, routes は巨大な block 不可避なので除外
112
+ # TODO: ExcludedMethods の精査
113
+ Metrics/BlockLength:
114
+ Exclude:
115
+ - "Rakefile"
116
+ - "**/*.rake"
117
+ - "spec/**/*.rb"
118
+ - "Gemfile"
119
+ - "Guardfile"
120
+ - "config/environments/*.rb"
121
+ - "config/routes.rb"
122
+ - "config/routes/**/*.rb"
123
+ - "*.gemspec"
124
+
125
+ # 6 は強すぎるので緩める
126
+ Metrics/CyclomaticComplexity:
127
+ Max: 10
128
+
129
+ # * 警告 120文字
130
+ # * 禁止 160文字
131
+ # のイメージ
132
+ Layout/LineLength:
133
+ Max: 160
134
+ Exclude:
135
+ - "db/migrate/*.rb"
136
+
137
+ # 20 行超えるのは migration ファイル以外滅多に無い
138
+ Metrics/MethodLength:
139
+ Max: 20
140
+ Exclude:
141
+ - "db/migrate/*.rb"
142
+
143
+ # 分岐の数。ガード句を多用しているとデフォルト 7 だと厳しい
144
+ Metrics/PerceivedComplexity:
145
+ Max: 8
146
+
147
+
148
+ #################### Naming ################################
149
+
150
+ # has_ から始まるメソッドは許可する
151
+ Naming/PredicateName:
152
+ ForbiddenPrefixes:
153
+ - "is_"
154
+ - "have_"
155
+ NamePrefix:
156
+ - "is_"
157
+ - "have_"
158
+
159
+ # 3 文字未満だと指摘されるが、未使用を示す _ や e(rror), b(lock),
160
+ # n(umber) といった 1 文字変数は頻出するし、前置詞(by, to, ...)や
161
+ # よく知られた省略語 (op: operator とか pk: primary key とか) も妥当。
162
+ # 変数 s にどんな文字列かを形容したい場合と、不要な場合とがある=無効
163
+ Naming/MethodParameterName:
164
+ Enabled: false
165
+
166
+ #################### Performance ###########################
167
+
168
+ # downcase or upcase しての比較はイディオムの域なので、多少の
169
+ # パフォーマンスの違いがあろうが casecmp に変える意義を感じない
170
+ Performance/Casecmp:
171
+ Enabled: false
172
+
173
+
174
+ #################### Security ##############################
175
+
176
+ # 毎回 YAML.safe_load(yaml_str, [Date, Time]) するのは面倒で。。
177
+ Security/YAMLLoad:
178
+ Enabled: false
179
+
180
+
181
+ #################### Style #################################
182
+
183
+ # レキシカルスコープの扱いが alias_method の方が自然。
184
+ # https://ernie.io/2014/10/23/in-defense-of-alias/ のように
185
+ # 問題になる場合は自分で緩める。
186
+ Style/Alias:
187
+ EnforcedStyle: prefer_alias_method
188
+
189
+ # redirect_to xxx and return のイディオムを維持したい
190
+ Style/AndOr:
191
+ EnforcedStyle: conditionals
192
+
193
+ # 日本語のコメントを許可する
194
+ Style/AsciiComments:
195
+ Enabled: false
196
+
197
+ # do .. end から更にメソッドチェーンすると見づらいので
198
+ # auto-correct せず、自分で修正する
199
+ # spec 内は見た目が綺麗になるので許可
200
+ Style/BlockDelimiters:
201
+ AutoCorrect: false
202
+ Exclude:
203
+ - "spec/**/*_spec.rb"
204
+
205
+ # option 等、明示的にハッシュにした方が分かりやすい場合もある
206
+ Style/BracesAroundHashParameters:
207
+ Enabled: false
208
+
209
+ # scope が違うとか親 module の存在確認が必要とかデメリットはあるが、
210
+ # namespace 付きのクラスはかなり頻繁に作るので簡単に書きたい。
211
+ Style/ClassAndModuleChildren:
212
+ Enabled: false
213
+
214
+ # Style/CollectionMethods 自体は無効になっているのだが、
215
+ # https://github.com/bbatsov/rubocop/issues/1084
216
+ # https://github.com/bbatsov/rubocop/issues/1334
217
+ # Performance/Detect がこの設定値を見るので PreferredMethods だけ変更しておく。
218
+ #
219
+ # デフォルト値から変えたのは
220
+ # find -> detect
221
+ # ActiveRecord の find と間違えやすいため
222
+ # reduce -> inject
223
+ # detect, reject, select と並べたときに韻を踏んでいるため。
224
+ # collect -> map を維持しているのは文字数が圧倒的に少ないため。
225
+ Style/CollectionMethods:
226
+ PreferredMethods:
227
+ detect: "detect"
228
+ find: "detect"
229
+ inject: "inject"
230
+ reduce: "inject"
231
+
232
+ # ドキュメントの無い public class を許可する
233
+ Style/Documentation:
234
+ Enabled: false
235
+
236
+ # !! のイディオムは積極的に使う
237
+ Style/DoubleNegation:
238
+ Enabled: false
239
+
240
+ # case
241
+ # when ios?
242
+ # when android?
243
+ # end
244
+ # のようなものは case の方が網羅の表現力が高い
245
+ Style/EmptyCaseCondition:
246
+ Enabled: false
247
+
248
+ # 明示的に else で nil を返すのは分かりやすいので許可する
249
+ Style/EmptyElse:
250
+ EnforcedStyle: empty
251
+
252
+ # 空メソッドの場合だけ1行で書かなければいけない理由が無い
253
+ # 「セミコロンは使わない」に寄せた方がルールがシンプル
254
+ Style/EmptyMethod:
255
+ EnforcedStyle: expanded
256
+
257
+ # いずれかに揃えるのならば `sprintf` や `format` より String#% が好きです
258
+ Style/FormatString:
259
+ EnforcedStyle: percent
260
+
261
+ # まだ対応するには早い
262
+ Style/FrozenStringLiteralComment:
263
+ Enabled: false
264
+
265
+ # if 文の中に 3 行程度のブロックを書くぐらいは許容した方が現実的
266
+ # NOTE: https://github.com/bbatsov/rubocop/commit/29945958034db13af9e8ff385ec58cb9eb464596
267
+ # の影響で、if 文の中身が 1 行の場合に警告されるようになっている。
268
+ # Style/IfUnlessModifier の設定見てくれないかなぁ? (v0.36.0)
269
+ Style/GuardClause:
270
+ MinBodyLength: 5
271
+
272
+ # rake タスクの順序の hash は rocket を許可する
273
+ Style/HashSyntax:
274
+ Exclude:
275
+ - "**/*.rake"
276
+ - "Rakefile"
277
+
278
+ # 平たくしてしまうと条件のグルーピングが脳内モデルとズレやすい
279
+ Style/IfInsideElse:
280
+ Enabled: false
281
+
282
+ # 条件式の方を意識させたい場合には後置の if/unless を使わない方が分かりやすい
283
+ Style/IfUnlessModifier:
284
+ Enabled: false
285
+
286
+ # scope 等は複数行でも lambda ではなく ->{} で揃えた方が見た目が綺麗
287
+ Style/Lambda:
288
+ EnforcedStyle: literal
289
+
290
+ # end.some_method とチェインするのはダサい
291
+ # Style/BlockDelimiters と相性が悪いけど、頑張ってコードを修正してください
292
+ Style/MethodCalledOnDoEndBlock:
293
+ Enabled: true
294
+
295
+ # この 2 つは単発で動かすのが分かっているので Object を汚染しても問題ない。
296
+ # spec/dummy は Rails Engine を開発するときに絶対に引っかかるので入れておく。
297
+ Style/MixinUsage:
298
+ Exclude:
299
+ - "bin/setup"
300
+ - "bin/update"
301
+ - "spec/dummy/bin/setup"
302
+ - "spec/dummy/bin/update"
303
+
304
+ # 1_000_000 と区切り文字が 2 個以上必要になる場合のみ _ 区切りを必須にする
305
+ # 10_000_00 は許可しない。(これは例えば 10000 ドルをセント単位にする時に便利だが
306
+ # 頻出しないので foolproof に振る
307
+ Style/NumericLiterals:
308
+ MinDigits: 7
309
+ Strict: true
310
+
311
+ # foo.positive? は foo > 0 に比べて意味が曖昧になる
312
+ # foo.zero? は許可したいけどメソッドごとに指定できないので一括で disable に
313
+ Style/NumericPredicate:
314
+ Enabled: false
315
+
316
+ # falsy な場合という条件式の方を意識させたい場合がある。
317
+ # Style/IfUnlessModifier と同じ雰囲気。
318
+ Style/OrAssignment:
319
+ Enabled: false
320
+
321
+ # 正規表現にマッチさせた時の特殊変数の置き換えは Regex.last_match ではなく
322
+ # 名前付きキャプチャを使って参照したいので auto-correct しない
323
+ Style/PerlBackrefs:
324
+ AutoCorrect: false
325
+
326
+ # Hash#has_key? の方が key? よりも意味が通る
327
+ Style/PreferredHashMethods:
328
+ EnforcedStyle: verbose
329
+
330
+ # 受け取り側で multiple assignment しろというのを明示
331
+ Style/RedundantReturn:
332
+ AllowMultipleReturnValues: true
333
+
334
+ # 特に model 内において、ローカル変数とメソッド呼び出しの区別をつけた方が分かりやすい場合が多い
335
+ Style/RedundantSelf:
336
+ Enabled: false
337
+
338
+ # 無指定だと StandardError を rescue するのは常識の範疇なので。
339
+ Style/RescueStandardError:
340
+ EnforcedStyle: implicit
341
+
342
+ # user&.admin? が、[nil, true, false] の 3 値を返すことに一瞬で気づけず
343
+ # boolean を返すっぽく見えてしまうので無効に。
344
+ # user && user.admin? なら短絡評価で nil が返ってくるのが一目で分かるので。
345
+ # (boolean を返すメソッド以外なら積極的に使いたいんだけどねぇ
346
+ #
347
+ # 他に auto-correct してはいけないパターンとして
348
+ # if hoge && hoge.count > 1
349
+ # がある。
350
+ Style/SafeNavigation:
351
+ Enabled: false
352
+
353
+ # spec 内は見た目が綺麗になるので許可
354
+ Style/Semicolon:
355
+ Exclude:
356
+ - "spec/**/*_spec.rb"
357
+
358
+ # * 式展開したい場合に書き換えるのが面倒
359
+ # * 文章ではダブルクォートよりもシングルクォートの方が頻出する
360
+ # ことから EnforcedStyle: double_quotes 推奨
361
+ Style/StringLiterals:
362
+ EnforcedStyle: double_quotes
363
+
364
+ # 式展開中でもダブルクォートを使う
365
+ # 普段の文字列リテラルがダブルクォートなので使い分けるのが面倒
366
+ Style/StringLiteralsInInterpolation:
367
+ EnforcedStyle: double_quotes
368
+
369
+ # String#intern は ruby の内部表現すぎるので String#to_sym を使う
370
+ Style/StringMethods:
371
+ Enabled: true
372
+
373
+ # %w() と %i() が見分けづらいので Style/WordArray と合わせて無効に。
374
+ # 書き手に委ねるという意味で、Enabled: false にしています。使っても良い。
375
+ Style/SymbolArray:
376
+ Enabled: false
377
+
378
+ # 三項演算子は分かりやすく使いたい。
379
+ # () を外さない方が条件式が何なのか読み取りやすいと感じる。
380
+ Style/TernaryParentheses:
381
+ EnforcedStyle: require_parentheses_when_complex
382
+
383
+ # 複数行の場合はケツカンマを入れる(引数)
384
+ # Ruby は関数の引数もカンマを許容しているので
385
+ # * 単行は常にケツカンマ無し
386
+ # * 複数行は常にケツカンマ有り
387
+ # に統一したい。
388
+ # 見た目がアレだが、ES2017 でも関数引数のケツカンマが許容されるので
389
+ # 世界はそちらに向かっている。
390
+ Style/TrailingCommaInArguments:
391
+ EnforcedStyleForMultiline: comma
392
+
393
+ # 複数行の場合はケツカンマを入れる(Arrayリテラル)
394
+ # JSON がケツカンマを許していないという反対意見もあるが、
395
+ # 古い JScript の仕様に縛られる必要は無い。
396
+ # IE9 以降はリテラルでケツカンマ OK なので正しい差分行の検出に寄せる。
397
+ # 2 insertions(+), 1 deletion(-) ではなく、1 insertions
398
+ Style/TrailingCommaInArrayLiteral:
399
+ EnforcedStyleForMultiline: comma
400
+
401
+ # 複数行の場合はケツカンマを入れる(Hashリテラル)
402
+ Style/TrailingCommaInHashLiteral:
403
+ EnforcedStyleForMultiline: comma
404
+
405
+ # %w() と %i() が見分けづらいので Style/SymbolArray と合わせて無効に。
406
+ # 書き手に委ねるという意味で、Enabled: false にしています。使っても良い。
407
+ Style/WordArray:
408
+ Enabled: false
409
+
410
+ # 0 <= foo && foo < 5 のように数直線上に並べるのは
411
+ # コードを読みやすくするテクニックなので equality_operators_only に。
412
+ # Style/YodaCondition:
413
+ # # TODO: rubocop 0.63.0以降はforbid_for_equality_operators_onlyなので依存を引き上げれば有効にできる
414
+ # EnforcedStyle: forbid_for_equality_operators_only
415
+
416
+ # 条件式で arr.size > 0 が使われた時に
417
+ # if !arr.empty?
418
+ # else
419
+ # end
420
+ # に修正されるのが嫌。
421
+ # 中身を入れ替えて否定外しても良いんだけど、どちらが例外的な処理なのかが分かりづらくなる。
422
+ Style/ZeroLengthPredicate:
423
+ Enabled: false
@@ -1,14 +1,11 @@
1
- inherit_gem:
2
- onkcop:
3
- - "config/rubocop.yml"
4
- # uncomment if use rails cops
5
- # - "config/rails.yml"
6
- # uncomment if use rspec cops
7
- # - "config/rspec.yml"
1
+ require: rubocop-performance
2
+
3
+ inherit_from: './.onkcop-config.yml'
8
4
 
9
5
  AllCops:
10
- TargetRubyVersion: 2.4
6
+ TargetRubyVersion: 2.7
11
7
  Exclude:
8
+ - 'tmp/**/*'
12
9
  - 'bin/*'
13
10
  - 'db/schema.rb'
14
11
  - 'vendor/bundle/**/*'
@@ -85,7 +82,7 @@ Metrics/PerceivedComplexity:
85
82
  - 'lib/jpmobile/mobile/docomo.rb'
86
83
  - 'lib/jpmobile/trans_sid.rb'
87
84
 
88
- Metrics/LineLength:
85
+ Layout/LineLength:
89
86
  Exclude:
90
87
  - '**/*_spec.rb'
91
88
  - 'lib/jpmobile/emoticon/z_combine.rb'
@@ -123,8 +120,9 @@ Metrics/MethodLength:
123
120
  - 'lib/jpmobile/helpers.rb'
124
121
  - 'lib/jpmobile/mail.rb'
125
122
  - 'lib/jpmobile/resolver.rb'
123
+ - 'test/rails/overrides/db/migrate/*'
126
124
 
127
- Lint/HandleExceptions:
125
+ Lint/SuppressedException:
128
126
  Exclude:
129
127
  - 'lib/jpmobile/emoticon.rb'
130
128
  - 'lib/jpmobile/fallback_view_selector.rb'