docomo-nlu 0.2.7 → 0.3.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (283) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +48 -0
  3. data/.reek.yml +98 -0
  4. data/.rubocop.rspec.yml +67 -0
  5. data/.rubocop.ruby.yml +419 -0
  6. data/.rubocop.yml +18 -16
  7. data/.ruby-version +1 -1
  8. data/Gemfile.lock +114 -130
  9. data/docomo-nlu.gemspec +8 -7
  10. data/lib/docomo-nlu.rb +4 -4
  11. data/lib/{docomo-nlu → docomo_nlu}/config.rb +3 -3
  12. data/lib/docomo_nlu/management.rb +32 -0
  13. data/lib/{docomo-nlu/management/V26 → docomo_nlu/management}/account.rb +1 -1
  14. data/lib/{docomo-nlu/management/V26 → docomo_nlu/management}/aiml_base.rb +6 -5
  15. data/lib/{docomo-nlu/management/V26 → docomo_nlu/management}/base.rb +1 -1
  16. data/lib/{docomo-nlu/management/V26 → docomo_nlu/management}/bot.rb +1 -1
  17. data/lib/{docomo-nlu/management/V26 → docomo_nlu/management}/bot_log.rb +3 -2
  18. data/lib/{docomo-nlu/management/V26 → docomo_nlu/management}/config.rb +1 -1
  19. data/lib/{docomo-nlu/management/V26 → docomo_nlu/management}/default_predicate.rb +1 -1
  20. data/lib/{docomo-nlu/management/V26 → docomo_nlu/management}/entry.rb +1 -1
  21. data/lib/{docomo-nlu/management/V26 → docomo_nlu/management}/log.rb +1 -1
  22. data/lib/{docomo-nlu/management/V26 → docomo_nlu/management}/map.rb +1 -1
  23. data/lib/docomo_nlu/management/multipart_base.rb +85 -0
  24. data/lib/{docomo-nlu/management/V26 → docomo_nlu/management}/ng_word.rb +3 -2
  25. data/lib/{docomo-nlu/management/V23/multipart_base.rb → docomo_nlu/management/ok_ng_base.rb} +20 -25
  26. data/lib/{docomo-nlu/management/V26 → docomo_nlu/management}/ok_word.rb +3 -2
  27. data/lib/{docomo-nlu/management/V26 → docomo_nlu/management}/organization.rb +1 -1
  28. data/lib/{docomo-nlu/management/V26 → docomo_nlu/management}/organization_member.rb +1 -1
  29. data/lib/{docomo-nlu/management/V26 → docomo_nlu/management}/predicate_name.rb +1 -1
  30. data/lib/{docomo-nlu/management/V26 → docomo_nlu/management}/project.rb +1 -1
  31. data/lib/{docomo-nlu/management/V26 → docomo_nlu/management}/project_member.rb +1 -1
  32. data/lib/{docomo-nlu/management/V26 → docomo_nlu/management}/property.rb +1 -1
  33. data/lib/{docomo-nlu/management/V26 → docomo_nlu/management}/provider.rb +1 -1
  34. data/lib/{docomo-nlu/management/V26 → docomo_nlu/management}/scenario.rb +1 -1
  35. data/lib/{docomo-nlu/management/V26 → docomo_nlu/management}/scenario_project.rb +1 -1
  36. data/lib/{docomo-nlu/management/V26 → docomo_nlu/management}/scenario_util.rb +1 -1
  37. data/lib/{docomo-nlu/management/V26 → docomo_nlu/management}/set.rb +1 -1
  38. data/lib/{docomo-nlu/management/V26 → docomo_nlu/management}/task_project.rb +1 -1
  39. data/lib/{docomo-nlu → docomo_nlu}/spontaneous.rb +5 -5
  40. data/lib/{docomo-nlu → docomo_nlu}/version.rb +1 -1
  41. data/vcr/vcr_cassettes/{V26 → management}/account/count.yml +0 -0
  42. data/vcr/vcr_cassettes/{V26 → management}/account/create.yml +0 -0
  43. data/vcr/vcr_cassettes/{V26 → management}/account/delete.yml +0 -0
  44. data/vcr/vcr_cassettes/{V26 → management}/account/index.yml +0 -0
  45. data/vcr/vcr_cassettes/{V26 → management}/account/show.yml +0 -0
  46. data/vcr/vcr_cassettes/{V26 → management}/account/update.yml +0 -0
  47. data/vcr/vcr_cassettes/{V26 → management}/base/login.yml +0 -0
  48. data/vcr/vcr_cassettes/{V26 → management}/base/login_400.yml +0 -0
  49. data/vcr/vcr_cassettes/{V26 → management}/base/logout.yml +0 -0
  50. data/vcr/vcr_cassettes/{V26 → management}/base/logout_400.yml +0 -0
  51. data/vcr/vcr_cassettes/{V26 → management}/bot/create.yml +0 -0
  52. data/vcr/vcr_cassettes/{V26 → management}/bot/create_conflict.yml +0 -0
  53. data/vcr/vcr_cassettes/{V26 → management}/bot/delete.yml +0 -0
  54. data/vcr/vcr_cassettes/{V26 → management}/bot/deploy.yml +0 -0
  55. data/vcr/vcr_cassettes/{V26 → management}/bot/download_aiml.yml +0 -0
  56. data/vcr/vcr_cassettes/{V26 → management}/bot/download_archive.yml +0 -0
  57. data/vcr/vcr_cassettes/{V26 → management}/bot/download_dat.yml +0 -0
  58. data/vcr/vcr_cassettes/{V26 → management}/bot/index.yml +0 -0
  59. data/vcr/vcr_cassettes/{V26 → management}/bot/index_not_found.yml +0 -0
  60. data/vcr/vcr_cassettes/{V26 → management}/bot/show.yml +0 -0
  61. data/vcr/vcr_cassettes/{V26 → management}/bot/upload_aiml.yml +0 -0
  62. data/vcr/vcr_cassettes/{V26 → management}/bot/upload_archive.yml +0 -0
  63. data/vcr/vcr_cassettes/{V26 → management}/bot/upload_dat.yml +0 -0
  64. data/vcr/vcr_cassettes/{V26 → management}/bot_log/all.yml +0 -0
  65. data/vcr/vcr_cassettes/{V26 → management}/bot_log/query.yml +0 -0
  66. data/vcr/vcr_cassettes/{V26 → management}/config/delete.yml +0 -0
  67. data/vcr/vcr_cassettes/{V26 → management}/config/index.yml +0 -0
  68. data/vcr/vcr_cassettes/{V26 → management}/config/show.yml +0 -0
  69. data/vcr/vcr_cassettes/{V26 → management}/config/update.yml +0 -0
  70. data/vcr/vcr_cassettes/{V26 → management}/default_predicate/create.yml +0 -0
  71. data/vcr/vcr_cassettes/{V26 → management}/default_predicate/delete.yml +0 -0
  72. data/vcr/vcr_cassettes/{V26 → management}/default_predicate/index.yml +0 -0
  73. data/vcr/vcr_cassettes/{V26 → management}/default_predicate/index_not_found.yml +0 -0
  74. data/vcr/vcr_cassettes/{V26 → management}/default_predicate/update.yml +0 -0
  75. data/vcr/vcr_cassettes/{V26 → management}/entry/delete.yml +0 -0
  76. data/vcr/vcr_cassettes/{V26 → management}/entry/save.yml +0 -0
  77. data/vcr/vcr_cassettes/{V26 → management}/log/all.yml +0 -0
  78. data/vcr/vcr_cassettes/{V26 → management}/log/count.yml +0 -0
  79. data/vcr/vcr_cassettes/{V26 → management}/log/count/all.yml +0 -0
  80. data/vcr/vcr_cassettes/{V26 → management}/log/count/query.yml +0 -0
  81. data/vcr/vcr_cassettes/{V26 → management}/log/query.yml +0 -0
  82. data/vcr/vcr_cassettes/{V26 → management}/map/create.yml +6 -6
  83. data/vcr/vcr_cassettes/{V26 → management}/map/create_400.yml +0 -0
  84. data/vcr/vcr_cassettes/{V26 → management}/map/delete.yml +2 -2
  85. data/vcr/vcr_cassettes/{V26 → management}/map/index_all.yml +0 -0
  86. data/vcr/vcr_cassettes/{V26 → management}/map/index_find.yml +0 -0
  87. data/vcr/vcr_cassettes/{V26 → management}/map/index_where.yml +0 -0
  88. data/vcr/vcr_cassettes/{V26 → management}/map/save.yml +0 -0
  89. data/vcr/vcr_cassettes/{V26 → management}/map/save_400.yml +0 -0
  90. data/vcr/vcr_cassettes/{V26 → management}/map/show_find.yml +3 -3
  91. data/vcr/vcr_cassettes/{V26 → management}/map/show_where.yml +0 -0
  92. data/vcr/vcr_cassettes/management/ng_word/create.yml +46 -0
  93. data/vcr/vcr_cassettes/management/ng_word/create_400.yml +50 -0
  94. data/vcr/vcr_cassettes/management/ng_word/create_409.yml +48 -0
  95. data/vcr/vcr_cassettes/management/ng_word/delete.yml +38 -0
  96. data/vcr/vcr_cassettes/management/ng_word/download.yml +44 -0
  97. data/vcr/vcr_cassettes/management/ng_word/index_all.yml +44 -0
  98. data/vcr/vcr_cassettes/management/ng_word/index_find.yml +44 -0
  99. data/vcr/vcr_cassettes/management/ng_word/index_where.yml +44 -0
  100. data/vcr/vcr_cassettes/management/ng_word/save.yml +46 -0
  101. data/vcr/vcr_cassettes/management/ng_word/save_400.yml +50 -0
  102. data/vcr/vcr_cassettes/management/ng_word/save_409.yml +48 -0
  103. data/vcr/vcr_cassettes/management/ng_word/show_find.yml +44 -0
  104. data/vcr/vcr_cassettes/management/ok_word/create.yml +46 -0
  105. data/vcr/vcr_cassettes/management/ok_word/create_400.yml +50 -0
  106. data/vcr/vcr_cassettes/{V23/set/create_400.yml → management/ok_word/create_409.yml} +14 -14
  107. data/vcr/vcr_cassettes/management/ok_word/delete.yml +38 -0
  108. data/vcr/vcr_cassettes/management/ok_word/download.yml +44 -0
  109. data/vcr/vcr_cassettes/management/ok_word/index_all.yml +44 -0
  110. data/vcr/vcr_cassettes/management/ok_word/index_find.yml +44 -0
  111. data/vcr/vcr_cassettes/management/ok_word/index_where.yml +44 -0
  112. data/vcr/vcr_cassettes/management/ok_word/save.yml +46 -0
  113. data/vcr/vcr_cassettes/management/ok_word/save_400.yml +50 -0
  114. data/vcr/vcr_cassettes/{V23/set/save_400.yml → management/ok_word/save_409.yml} +14 -14
  115. data/vcr/vcr_cassettes/management/ok_word/show_find.yml +44 -0
  116. data/vcr/vcr_cassettes/{V26 → management}/organization/create.yml +0 -0
  117. data/vcr/vcr_cassettes/{V26 → management}/organization/delete.yml +0 -0
  118. data/vcr/vcr_cassettes/{V26 → management}/organization/index.yml +0 -0
  119. data/vcr/vcr_cassettes/{V26 → management}/organization/show.yml +0 -0
  120. data/vcr/vcr_cassettes/{V26 → management}/organization/update.yml +0 -0
  121. data/vcr/vcr_cassettes/{V26 → management}/organization_member/create.yml +0 -0
  122. data/vcr/vcr_cassettes/{V26 → management}/organization_member/delete.yml +0 -0
  123. data/vcr/vcr_cassettes/{V26 → management}/organization_member/index.yml +0 -0
  124. data/vcr/vcr_cassettes/{V26 → management}/organization_member/index_404.yml +0 -0
  125. data/vcr/vcr_cassettes/{V26 → management}/organization_member/index_not_found.yml +0 -0
  126. data/vcr/vcr_cassettes/{V26 → management}/predicate_name/create.yml +0 -0
  127. data/vcr/vcr_cassettes/{V26 → management}/predicate_name/delete.yml +0 -0
  128. data/vcr/vcr_cassettes/{V26 → management}/predicate_name/index.yml +0 -0
  129. data/vcr/vcr_cassettes/{V26 → management}/predicate_name/index_all.yml +0 -0
  130. data/vcr/vcr_cassettes/{V26 → management}/predicate_name/index_find.yml +0 -0
  131. data/vcr/vcr_cassettes/{V26 → management}/predicate_name/index_where.yml +0 -0
  132. data/vcr/vcr_cassettes/{V26 → management}/project/create.yml +0 -0
  133. data/vcr/vcr_cassettes/{V26 → management}/project/create_conflict.yml +0 -0
  134. data/vcr/vcr_cassettes/{V26 → management}/project/delete.yml +0 -0
  135. data/vcr/vcr_cassettes/{V26 → management}/project/index.yml +0 -0
  136. data/vcr/vcr_cassettes/{V26 → management}/project/show.yml +0 -0
  137. data/vcr/vcr_cassettes/{V26 → management}/project_member/create.yml +0 -0
  138. data/vcr/vcr_cassettes/{V26 → management}/project_member/delete.yml +0 -0
  139. data/vcr/vcr_cassettes/{V26 → management}/project_member/index.yml +0 -0
  140. data/vcr/vcr_cassettes/{V26 → management}/project_member/index_403.yml +0 -0
  141. data/vcr/vcr_cassettes/{V26 → management}/project_member/index_not_found.yml +0 -0
  142. data/vcr/vcr_cassettes/{V26 → management}/provider/create.yml +0 -0
  143. data/vcr/vcr_cassettes/{V26 → management}/provider/delete.yml +0 -0
  144. data/vcr/vcr_cassettes/{V26 → management}/provider/index.yml +0 -0
  145. data/vcr/vcr_cassettes/{V26 → management}/provider/show.yml +0 -0
  146. data/vcr/vcr_cassettes/{V26 → management}/scenario/create.yml +0 -0
  147. data/vcr/vcr_cassettes/{V26 → management}/scenario/create_conflict.yml +0 -0
  148. data/vcr/vcr_cassettes/{V26 → management}/scenario/delete.yml +0 -0
  149. data/vcr/vcr_cassettes/{V26 → management}/scenario/deploy.yml +0 -0
  150. data/vcr/vcr_cassettes/{V26 → management}/scenario/download_aiml.yml +0 -0
  151. data/vcr/vcr_cassettes/{V26 → management}/scenario/index.yml +0 -0
  152. data/vcr/vcr_cassettes/{V26 → management}/scenario/show.yml +0 -0
  153. data/vcr/vcr_cassettes/{V26 → management}/scenario/update.yml +0 -0
  154. data/vcr/vcr_cassettes/{V26 → management}/scenario/upload_aiml.yml +0 -0
  155. data/vcr/vcr_cassettes/{V26 → management}/scenario/upload_archive.yml +0 -0
  156. data/vcr/vcr_cassettes/{V26 → management}/scenario/upload_dat.yml +0 -0
  157. data/vcr/vcr_cassettes/{V26 → management}/set/create.yml +0 -0
  158. data/vcr/vcr_cassettes/{V26 → management}/set/create_400.yml +0 -0
  159. data/vcr/vcr_cassettes/{V26 → management}/set/delete.yml +0 -0
  160. data/vcr/vcr_cassettes/{V26 → management}/set/index_all.yml +0 -0
  161. data/vcr/vcr_cassettes/{V26 → management}/set/index_find.yml +0 -0
  162. data/vcr/vcr_cassettes/{V26 → management}/set/index_where.yml +0 -0
  163. data/vcr/vcr_cassettes/{V26 → management}/set/save.yml +0 -0
  164. data/vcr/vcr_cassettes/{V26 → management}/set/save_400.yml +0 -0
  165. data/vcr/vcr_cassettes/{V26 → management}/set/show_find.yml +0 -0
  166. data/vcr/vcr_cassettes/{V26 → management}/set/show_where.yml +0 -0
  167. metadata +209 -278
  168. data/lib/docomo-nlu/management.rb +0 -88
  169. data/lib/docomo-nlu/management/V23/account.rb +0 -30
  170. data/lib/docomo-nlu/management/V23/aiml_base.rb +0 -204
  171. data/lib/docomo-nlu/management/V23/base.rb +0 -88
  172. data/lib/docomo-nlu/management/V23/bot.rb +0 -18
  173. data/lib/docomo-nlu/management/V23/bot_log.rb +0 -8
  174. data/lib/docomo-nlu/management/V23/config.rb +0 -25
  175. data/lib/docomo-nlu/management/V23/default_predicate.rb +0 -15
  176. data/lib/docomo-nlu/management/V23/entry.rb +0 -8
  177. data/lib/docomo-nlu/management/V23/log.rb +0 -8
  178. data/lib/docomo-nlu/management/V23/map.rb +0 -10
  179. data/lib/docomo-nlu/management/V23/ng_word.rb +0 -10
  180. data/lib/docomo-nlu/management/V23/ok_word.rb +0 -10
  181. data/lib/docomo-nlu/management/V23/organization.rb +0 -23
  182. data/lib/docomo-nlu/management/V23/organization_member.rb +0 -15
  183. data/lib/docomo-nlu/management/V23/predicate_name.rb +0 -15
  184. data/lib/docomo-nlu/management/V23/project.rb +0 -16
  185. data/lib/docomo-nlu/management/V23/project_member.rb +0 -15
  186. data/lib/docomo-nlu/management/V23/property.rb +0 -10
  187. data/lib/docomo-nlu/management/V23/provider.rb +0 -17
  188. data/lib/docomo-nlu/management/V23/scenario.rb +0 -29
  189. data/lib/docomo-nlu/management/V23/scenario_project.rb +0 -10
  190. data/lib/docomo-nlu/management/V23/scenario_util.rb +0 -30
  191. data/lib/docomo-nlu/management/V23/set.rb +0 -10
  192. data/lib/docomo-nlu/management/V23/task_project.rb +0 -20
  193. data/lib/docomo-nlu/management/V26/multipart_base.rb +0 -83
  194. data/vcr/vcr_cassettes/V23/account/count.yml +0 -42
  195. data/vcr/vcr_cassettes/V23/account/create.yml +0 -44
  196. data/vcr/vcr_cassettes/V23/account/delete.yml +0 -38
  197. data/vcr/vcr_cassettes/V23/account/index.yml +0 -43
  198. data/vcr/vcr_cassettes/V23/account/show.yml +0 -43
  199. data/vcr/vcr_cassettes/V23/account/update.yml +0 -41
  200. data/vcr/vcr_cassettes/V23/base/login.yml +0 -44
  201. data/vcr/vcr_cassettes/V23/base/login_400.yml +0 -42
  202. data/vcr/vcr_cassettes/V23/base/logout.yml +0 -40
  203. data/vcr/vcr_cassettes/V23/base/logout_400.yml +0 -40
  204. data/vcr/vcr_cassettes/V23/bot/create.yml +0 -43
  205. data/vcr/vcr_cassettes/V23/bot/create_conflict.yml +0 -45
  206. data/vcr/vcr_cassettes/V23/bot/delete.yml +0 -38
  207. data/vcr/vcr_cassettes/V23/bot/deploy.yml +0 -164
  208. data/vcr/vcr_cassettes/V23/bot/download_aiml.yml +0 -43
  209. data/vcr/vcr_cassettes/V23/bot/download_archive.yml +0 -43
  210. data/vcr/vcr_cassettes/V23/bot/download_dat.yml +0 -43
  211. data/vcr/vcr_cassettes/V23/bot/index.yml +0 -44
  212. data/vcr/vcr_cassettes/V23/bot/index_not_found.yml +0 -42
  213. data/vcr/vcr_cassettes/V23/bot/show.yml +0 -43
  214. data/vcr/vcr_cassettes/V23/bot/upload_aiml.yml +0 -45
  215. data/vcr/vcr_cassettes/V23/bot/upload_archive.yml +0 -46
  216. data/vcr/vcr_cassettes/V23/bot/upload_dat.yml +0 -46
  217. data/vcr/vcr_cassettes/V23/config/delete.yml +0 -38
  218. data/vcr/vcr_cassettes/V23/config/index.yml +0 -120
  219. data/vcr/vcr_cassettes/V23/config/update.yml +0 -42
  220. data/vcr/vcr_cassettes/V23/default_predicate/create.yml +0 -42
  221. data/vcr/vcr_cassettes/V23/default_predicate/delete.yml +0 -38
  222. data/vcr/vcr_cassettes/V23/default_predicate/index.yml +0 -120
  223. data/vcr/vcr_cassettes/V23/default_predicate/index_not_found.yml +0 -120
  224. data/vcr/vcr_cassettes/V23/default_predicate/update.yml +0 -40
  225. data/vcr/vcr_cassettes/V23/map/create.yml +0 -45
  226. data/vcr/vcr_cassettes/V23/map/create_400.yml +0 -48
  227. data/vcr/vcr_cassettes/V23/map/delete.yml +0 -38
  228. data/vcr/vcr_cassettes/V23/map/index_all.yml +0 -43
  229. data/vcr/vcr_cassettes/V23/map/index_find.yml +0 -43
  230. data/vcr/vcr_cassettes/V23/map/index_where.yml +0 -43
  231. data/vcr/vcr_cassettes/V23/map/save.yml +0 -45
  232. data/vcr/vcr_cassettes/V23/map/save_400.yml +0 -48
  233. data/vcr/vcr_cassettes/V23/map/show_find.yml +0 -43
  234. data/vcr/vcr_cassettes/V23/map/show_where.yml +0 -43
  235. data/vcr/vcr_cassettes/V23/organization/create.yml +0 -44
  236. data/vcr/vcr_cassettes/V23/organization/delete.yml +0 -38
  237. data/vcr/vcr_cassettes/V23/organization/index.yml +0 -138
  238. data/vcr/vcr_cassettes/V23/organization/show.yml +0 -42
  239. data/vcr/vcr_cassettes/V23/organization/update.yml +0 -40
  240. data/vcr/vcr_cassettes/V23/organization_member/create.yml +0 -42
  241. data/vcr/vcr_cassettes/V23/organization_member/delete.yml +0 -38
  242. data/vcr/vcr_cassettes/V23/organization_member/index.yml +0 -42
  243. data/vcr/vcr_cassettes/V23/organization_member/index_404.yml +0 -42
  244. data/vcr/vcr_cassettes/V23/organization_member/index_not_found.yml +0 -42
  245. data/vcr/vcr_cassettes/V23/predicate_name/create.yml +0 -42
  246. data/vcr/vcr_cassettes/V23/predicate_name/delete.yml +0 -38
  247. data/vcr/vcr_cassettes/V23/predicate_name/index.yml +0 -42
  248. data/vcr/vcr_cassettes/V23/predicate_name/index_all.yml +0 -42
  249. data/vcr/vcr_cassettes/V23/predicate_name/index_find.yml +0 -42
  250. data/vcr/vcr_cassettes/V23/predicate_name/index_where.yml +0 -42
  251. data/vcr/vcr_cassettes/V23/project/create.yml +0 -44
  252. data/vcr/vcr_cassettes/V23/project/create_conflict.yml +0 -44
  253. data/vcr/vcr_cassettes/V23/project/delete.yml +0 -38
  254. data/vcr/vcr_cassettes/V23/project/index.yml +0 -474
  255. data/vcr/vcr_cassettes/V23/project/show.yml +0 -43
  256. data/vcr/vcr_cassettes/V23/project_member/create.yml +0 -42
  257. data/vcr/vcr_cassettes/V23/project_member/delete.yml +0 -38
  258. data/vcr/vcr_cassettes/V23/project_member/index.yml +0 -42
  259. data/vcr/vcr_cassettes/V23/project_member/index_403.yml +0 -40
  260. data/vcr/vcr_cassettes/V23/project_member/index_not_found.yml +0 -42
  261. data/vcr/vcr_cassettes/V23/provider/create.yml +0 -44
  262. data/vcr/vcr_cassettes/V23/provider/delete.yml +0 -38
  263. data/vcr/vcr_cassettes/V23/provider/index.yml +0 -42
  264. data/vcr/vcr_cassettes/V23/provider/show.yml +0 -42
  265. data/vcr/vcr_cassettes/V23/scenario/create.yml +0 -42
  266. data/vcr/vcr_cassettes/V23/scenario/create_conflict.yml +0 -44
  267. data/vcr/vcr_cassettes/V23/scenario/delete.yml +0 -38
  268. data/vcr/vcr_cassettes/V23/scenario/deploy.yml +0 -164
  269. data/vcr/vcr_cassettes/V23/scenario/download_aiml.yml +0 -43
  270. data/vcr/vcr_cassettes/V23/scenario/index.yml +0 -43
  271. data/vcr/vcr_cassettes/V23/scenario/show.yml +0 -42
  272. data/vcr/vcr_cassettes/V23/scenario/update.yml +0 -40
  273. data/vcr/vcr_cassettes/V23/scenario/upload_aiml.yml +0 -45
  274. data/vcr/vcr_cassettes/V23/scenario/upload_archive.yml +0 -46
  275. data/vcr/vcr_cassettes/V23/scenario/upload_dat.yml +0 -46
  276. data/vcr/vcr_cassettes/V23/set/create.yml +0 -45
  277. data/vcr/vcr_cassettes/V23/set/delete.yml +0 -38
  278. data/vcr/vcr_cassettes/V23/set/index_all.yml +0 -43
  279. data/vcr/vcr_cassettes/V23/set/index_find.yml +0 -43
  280. data/vcr/vcr_cassettes/V23/set/index_where.yml +0 -43
  281. data/vcr/vcr_cassettes/V23/set/save.yml +0 -45
  282. data/vcr/vcr_cassettes/V23/set/show_find.yml +0 -43
  283. data/vcr/vcr_cassettes/V23/set/show_where.yml +0 -43
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9863725b2010a1ac93914bf7a8011f56a426f242b1549b0758ce3d4c0a983f0d
4
- data.tar.gz: f4f82ce7980f45db0a597ddb07412082cda9d2cc0dc46fe6c403283c16336e5a
3
+ metadata.gz: 0463dee16bd58cba464d5f69af277e5eeaf7ece13c5b837049865a2b50f83beb
4
+ data.tar.gz: 505cc11728ed99a1b261bdfec16e843f68f8a18dc2389e5ed8a05adb5fd47d68
5
5
  SHA512:
6
- metadata.gz: 00b16c45428c832337df4f6aa535eeae196983af8e066ce6b74f285b500bb194cc3f98b2b49f8e5c64ce515245b0736b3c2c3d28a53a0903d91bc2d1856953c0
7
- data.tar.gz: 726379400702bc7d19ab161d5808b1bb9526c2c320ab705a30764282b2fa96c2675904dd1e165b42efca9a25b5d7141d63367d16454a6b174d6ab21b25b6eef4
6
+ metadata.gz: 25716a537b42285c6ffa6166b2a00de1125dc927ffa4cc5cabd2d96bd963c7536785db0bf4fa886ca81b73f39a5da880ca04d3ddb08f4a384ce98f50093e9e34
7
+ data.tar.gz: 50628f14ef15748170d022bba30c860c6de65e887dd13dcb1005b9bd2cba5f96630807aeb865f48d5c4770ec1054dcb93d6bff175a6ad803dccc6927f8d23c56
@@ -0,0 +1,48 @@
1
+ # Ruby CircleCI 2.1 configuration file
2
+ #
3
+ # Check https://circleci.com/docs/2.0/language-ruby/ for more details
4
+ #
5
+ version: 2.1
6
+ orbs:
7
+ ruby: circleci/ruby@0.1.0
8
+ ruby-orbs: sue445/ruby-orbs@volatile
9
+ ruby-linter: amyroi/ruby-linter@volatile
10
+
11
+ executors:
12
+ default:
13
+ working_directory: ~/docomo-nlu
14
+ docker:
15
+ - image: circleci/ruby:2.6.3
16
+ commands:
17
+ setup_bundler:
18
+ steps:
19
+ - run:
20
+ name: Install bundler
21
+ command: gem install bundler -v $BUNDLER_VERSION
22
+ jobs:
23
+ build:
24
+ executor: default
25
+ environment:
26
+ RAILS_ENV: test
27
+ CIRCLE_TEST_REPORTS: /tmp/docomo-nlu-test-results
28
+ steps:
29
+ - checkout
30
+ - setup_bundler
31
+ - ruby/load-cache:
32
+ key: docomo-nlu-bundle
33
+ - ruby-orbs/bundle-install:
34
+ bundle_jobs: 4
35
+ bundle_retry: 3
36
+ bundle_clean: true
37
+ - ruby/save-cache:
38
+ key: docomo-nlu-bundle
39
+ - ruby/test
40
+ - ruby-linter/rubocop:
41
+ files: "lib/**/*.rb spec/**/*.rb"
42
+ report_dir: $CIRCLE_TEST_REPORTS
43
+ - ruby-linter/reek
44
+ workflows:
45
+ version: 2
46
+ build:
47
+ jobs:
48
+ - build
@@ -0,0 +1,98 @@
1
+ ---
2
+ detectors:
3
+ ### enabled rules
4
+ TooManyInstanceVariables:
5
+ enabled: true
6
+ exclude: []
7
+ max_instance_variables: 50
8
+ TooManyMethods:
9
+ enabled: true
10
+ exclude: []
11
+ max_methods: 30
12
+ TooManyStatements:
13
+ enabled: true
14
+ exclude: []
15
+ max_statements: 80
16
+ TooManyConstants:
17
+ enabled: true
18
+ exclude: []
19
+ max_constants: 50
20
+ LongParameterList:
21
+ enabled: true
22
+ exclude: []
23
+ max_params: 8
24
+ LongYieldList:
25
+ enabled: true
26
+ exclude: []
27
+ max_params: 8
28
+ NestedIterators:
29
+ enabled: true
30
+ exclude: []
31
+ max_allowed_nesting: 5
32
+ ignore_iterators:
33
+ - tap
34
+ ModuleInitialize:
35
+ enabled: true
36
+ exclude: []
37
+ SubclassedFromCoreClass:
38
+ enabled: true
39
+ exclude: []
40
+
41
+ ### unanabled rules
42
+ Attribute:
43
+ enabled: false
44
+ exclude: []
45
+ BooleanParameter:
46
+ enabled: false
47
+ exclude: []
48
+ ClassVariable:
49
+ enabled: false
50
+ exclude: []
51
+ ControlParameter:
52
+ enabled: false
53
+ exclude: []
54
+ DataClump:
55
+ enabled: false
56
+ exclude: []
57
+ DuplicateMethodCall:
58
+ enabled: false
59
+ exclude: []
60
+ FeatureEnvy:
61
+ enabled: false
62
+ exclude: []
63
+ InstanceVariableAssumption:
64
+ enabled: false
65
+ exclude: []
66
+ IrresponsibleModule:
67
+ enabled: false
68
+ exclude: []
69
+ ManualDispatch:
70
+ enabled: false
71
+ exclude: []
72
+ NilCheck:
73
+ enabled: false
74
+ exclude: []
75
+ MissingSafeMethod:
76
+ enabled: false
77
+ exclude: []
78
+ RepeatedConditional:
79
+ enabled: false
80
+ exclude: []
81
+ UncommunicativeMethodName:
82
+ enabled: false
83
+ exclude: []
84
+ UncommunicativeModuleName:
85
+ enabled: false
86
+ exclude: []
87
+ UncommunicativeParameterName:
88
+ enabled: false
89
+ exclude: []
90
+ UncommunicativeVariableName:
91
+ enabled: false
92
+ exclude: []
93
+ UnusedParameters:
94
+ enabled: false
95
+ exclude: []
96
+ UtilityFunction:
97
+ enabled: false
98
+ exclude: []
@@ -0,0 +1,67 @@
1
+ require: "rubocop-rspec"
2
+
3
+ # 日本語だと「〜の場合」になるので suffix でないと対応できない
4
+ RSpec/ContextWording:
5
+ Enabled: false
6
+
7
+ # subject はコピペ可搬性よりもそのまま USAGE であって欲しい
8
+ RSpec/DescribedClass:
9
+ EnforcedStyle: explicit
10
+
11
+ # it が一つしか無いような context では空行を開ける方が読みづらい
12
+ # context "when foo is bar" do
13
+ # let(:foo) { bar }
14
+ # it { is_expected.to do_something }
15
+ # end
16
+ RSpec/EmptyLineAfterFinalLet:
17
+ Enabled: false
18
+
19
+ # each で回したり aggregate_failures 使ってたりすると厳しい。
20
+ # feature spec は exclude でも良いかもしれない。
21
+ # ヒアドキュメント使うと一瞬で超えるので disable も検討。
22
+ RSpec/ExampleLength:
23
+ Max: 8
24
+
25
+ # block の方がテスト対象が
26
+ # * `{}` の前後のスペースと相まって目立つ
27
+ # * 普段書く形と同じなので自然に脳内に入ってくる
28
+ RSpec/ExpectChange:
29
+ EnforcedStyle: block
30
+
31
+ # one-liner の should は書きやすいし意味が通りやすいし副作用も無いので撥ねる必要がない。
32
+ # ただ expect 派に対して強制するほどでもないので統一はしない。
33
+ RSpec/ImplicitExpect:
34
+ Enabled: false
35
+
36
+ # let を使うのは context 間で条件が違うものが存在する時だけにしたい。
37
+ # before の方が事前条件を整えていることが分かりやすい。
38
+ RSpec/InstanceVariable:
39
+ Enabled: false
40
+
41
+ # 変に名前つけて呼ぶ方が分かりづらい。
42
+ # テスト対象メソッドを呼ぶだけの subject 以外を書かないようにする方が効く。
43
+ RSpec/NamedSubject:
44
+ Enabled: false
45
+
46
+ # Model
47
+ # `- #method
48
+ # |- 頻出ケースのテスト 1
49
+ # |- 頻出ケースのテスト 2
50
+ # `- レアケース
51
+ # |- レアケースのテスト 1
52
+ # `- レアケースのテスト 2
53
+ # のように括り出すと、レアケースのテストを読み飛ばせるようになり
54
+ # テストを読む人にやさしくなる。
55
+ # デフォルトの 3 より少し緩めてもヨサソウ。
56
+ RSpec/NestedGroups:
57
+ Max: 4
58
+
59
+ # ブロックは初見だと返り値を書いていると気づけないので and_return にしたいが、
60
+ # ブロックの方が見た目がスッキリして見やすいので、どちらでもお好きにどうぞ。
61
+ RSpec/ReturnFromStub:
62
+ Enabled: false
63
+
64
+ # 明示的なブロック構文の使用を推奨しているがsubjectの活用が減る可能性があるので
65
+ # 暗黙的なブロック構文を許可する
66
+ RSpec/ImplicitBlockExpectation:
67
+ Enabled: false
@@ -0,0 +1,419 @@
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
+ # scope が違うとか親 module の存在確認が必要とかデメリットはあるが、
206
+ # namespace 付きのクラスはかなり頻繁に作るので簡単に書きたい。
207
+ Style/ClassAndModuleChildren:
208
+ Enabled: false
209
+
210
+ # Style/CollectionMethods 自体は無効になっているのだが、
211
+ # https://github.com/bbatsov/rubocop/issues/1084
212
+ # https://github.com/bbatsov/rubocop/issues/1334
213
+ # Performance/Detect がこの設定値を見るので PreferredMethods だけ変更しておく。
214
+ #
215
+ # デフォルト値から変えたのは
216
+ # find -> detect
217
+ # ActiveRecord の find と間違えやすいため
218
+ # reduce -> inject
219
+ # detect, reject, select と並べたときに韻を踏んでいるため。
220
+ # collect -> map を維持しているのは文字数が圧倒的に少ないため。
221
+ Style/CollectionMethods:
222
+ PreferredMethods:
223
+ detect: "detect"
224
+ find: "detect"
225
+ inject: "inject"
226
+ reduce: "inject"
227
+
228
+ # ドキュメントの無い public class を許可する
229
+ Style/Documentation:
230
+ Enabled: false
231
+
232
+ # !! のイディオムは積極的に使う
233
+ Style/DoubleNegation:
234
+ Enabled: false
235
+
236
+ # case
237
+ # when ios?
238
+ # when android?
239
+ # end
240
+ # のようなものは case の方が網羅の表現力が高い
241
+ Style/EmptyCaseCondition:
242
+ Enabled: false
243
+
244
+ # 明示的に else で nil を返すのは分かりやすいので許可する
245
+ Style/EmptyElse:
246
+ EnforcedStyle: empty
247
+
248
+ # 空メソッドの場合だけ1行で書かなければいけない理由が無い
249
+ # 「セミコロンは使わない」に寄せた方がルールがシンプル
250
+ Style/EmptyMethod:
251
+ EnforcedStyle: expanded
252
+
253
+ # いずれかに揃えるのならば `sprintf` や `format` より String#% が好きです
254
+ Style/FormatString:
255
+ EnforcedStyle: percent
256
+
257
+ # まだ対応するには早い
258
+ Style/FrozenStringLiteralComment:
259
+ Enabled: false
260
+
261
+ # if 文の中に 3 行程度のブロックを書くぐらいは許容した方が現実的
262
+ # NOTE: https://github.com/bbatsov/rubocop/commit/29945958034db13af9e8ff385ec58cb9eb464596
263
+ # の影響で、if 文の中身が 1 行の場合に警告されるようになっている。
264
+ # Style/IfUnlessModifier の設定見てくれないかなぁ? (v0.36.0)
265
+ Style/GuardClause:
266
+ MinBodyLength: 5
267
+
268
+ # rake タスクの順序の hash は rocket を許可する
269
+ Style/HashSyntax:
270
+ Exclude:
271
+ - "**/*.rake"
272
+ - "Rakefile"
273
+
274
+ # 平たくしてしまうと条件のグルーピングが脳内モデルとズレやすい
275
+ Style/IfInsideElse:
276
+ Enabled: false
277
+
278
+ # 条件式の方を意識させたい場合には後置の if/unless を使わない方が分かりやすい
279
+ Style/IfUnlessModifier:
280
+ Enabled: false
281
+
282
+ # scope 等は複数行でも lambda ではなく ->{} で揃えた方が見た目が綺麗
283
+ Style/Lambda:
284
+ EnforcedStyle: literal
285
+
286
+ # end.some_method とチェインするのはダサい
287
+ # Style/BlockDelimiters と相性が悪いけど、頑張ってコードを修正してください
288
+ Style/MethodCalledOnDoEndBlock:
289
+ Enabled: true
290
+
291
+ # この 2 つは単発で動かすのが分かっているので Object を汚染しても問題ない。
292
+ # spec/dummy は Rails Engine を開発するときに絶対に引っかかるので入れておく。
293
+ Style/MixinUsage:
294
+ Exclude:
295
+ - "bin/setup"
296
+ - "bin/update"
297
+ - "spec/dummy/bin/setup"
298
+ - "spec/dummy/bin/update"
299
+
300
+ # 1_000_000 と区切り文字が 2 個以上必要になる場合のみ _ 区切りを必須にする
301
+ # 10_000_00 は許可しない。(これは例えば 10000 ドルをセント単位にする時に便利だが
302
+ # 頻出しないので foolproof に振る
303
+ Style/NumericLiterals:
304
+ MinDigits: 7
305
+ Strict: true
306
+
307
+ # foo.positive? は foo > 0 に比べて意味が曖昧になる
308
+ # foo.zero? は許可したいけどメソッドごとに指定できないので一括で disable に
309
+ Style/NumericPredicate:
310
+ Enabled: false
311
+
312
+ # falsy な場合という条件式の方を意識させたい場合がある。
313
+ # Style/IfUnlessModifier と同じ雰囲気。
314
+ Style/OrAssignment:
315
+ Enabled: false
316
+
317
+ # 正規表現にマッチさせた時の特殊変数の置き換えは Regex.last_match ではなく
318
+ # 名前付きキャプチャを使って参照したいので auto-correct しない
319
+ Style/PerlBackrefs:
320
+ AutoCorrect: false
321
+
322
+ # Hash#has_key? の方が key? よりも意味が通る
323
+ Style/PreferredHashMethods:
324
+ EnforcedStyle: verbose
325
+
326
+ # 受け取り側で multiple assignment しろというのを明示
327
+ Style/RedundantReturn:
328
+ AllowMultipleReturnValues: true
329
+
330
+ # 特に model 内において、ローカル変数とメソッド呼び出しの区別をつけた方が分かりやすい場合が多い
331
+ Style/RedundantSelf:
332
+ Enabled: false
333
+
334
+ # 無指定だと StandardError を rescue するのは常識の範疇なので。
335
+ Style/RescueStandardError:
336
+ EnforcedStyle: implicit
337
+
338
+ # user&.admin? が、[nil, true, false] の 3 値を返すことに一瞬で気づけず
339
+ # boolean を返すっぽく見えてしまうので無効に。
340
+ # user && user.admin? なら短絡評価で nil が返ってくるのが一目で分かるので。
341
+ # (boolean を返すメソッド以外なら積極的に使いたいんだけどねぇ
342
+ #
343
+ # 他に auto-correct してはいけないパターンとして
344
+ # if hoge && hoge.count > 1
345
+ # がある。
346
+ Style/SafeNavigation:
347
+ Enabled: false
348
+
349
+ # spec 内は見た目が綺麗になるので許可
350
+ Style/Semicolon:
351
+ Exclude:
352
+ - "spec/**/*_spec.rb"
353
+
354
+ # * 式展開したい場合に書き換えるのが面倒
355
+ # * 文章ではダブルクォートよりもシングルクォートの方が頻出する
356
+ # ことから EnforcedStyle: double_quotes 推奨
357
+ Style/StringLiterals:
358
+ EnforcedStyle: double_quotes
359
+
360
+ # 式展開中でもダブルクォートを使う
361
+ # 普段の文字列リテラルがダブルクォートなので使い分けるのが面倒
362
+ Style/StringLiteralsInInterpolation:
363
+ EnforcedStyle: double_quotes
364
+
365
+ # String#intern は ruby の内部表現すぎるので String#to_sym を使う
366
+ Style/StringMethods:
367
+ Enabled: true
368
+
369
+ # %w() と %i() が見分けづらいので Style/WordArray と合わせて無効に。
370
+ # 書き手に委ねるという意味で、Enabled: false にしています。使っても良い。
371
+ Style/SymbolArray:
372
+ Enabled: false
373
+
374
+ # 三項演算子は分かりやすく使いたい。
375
+ # () を外さない方が条件式が何なのか読み取りやすいと感じる。
376
+ Style/TernaryParentheses:
377
+ EnforcedStyle: require_parentheses_when_complex
378
+
379
+ # 複数行の場合はケツカンマを入れる(引数)
380
+ # Ruby は関数の引数もカンマを許容しているので
381
+ # * 単行は常にケツカンマ無し
382
+ # * 複数行は常にケツカンマ有り
383
+ # に統一したい。
384
+ # 見た目がアレだが、ES2017 でも関数引数のケツカンマが許容されるので
385
+ # 世界はそちらに向かっている。
386
+ Style/TrailingCommaInArguments:
387
+ EnforcedStyleForMultiline: comma
388
+
389
+ # 複数行の場合はケツカンマを入れる(Arrayリテラル)
390
+ # JSON がケツカンマを許していないという反対意見もあるが、
391
+ # 古い JScript の仕様に縛られる必要は無い。
392
+ # IE9 以降はリテラルでケツカンマ OK なので正しい差分行の検出に寄せる。
393
+ # 2 insertions(+), 1 deletion(-) ではなく、1 insertions
394
+ Style/TrailingCommaInArrayLiteral:
395
+ EnforcedStyleForMultiline: comma
396
+
397
+ # 複数行の場合はケツカンマを入れる(Hashリテラル)
398
+ Style/TrailingCommaInHashLiteral:
399
+ EnforcedStyleForMultiline: comma
400
+
401
+ # %w() と %i() が見分けづらいので Style/SymbolArray と合わせて無効に。
402
+ # 書き手に委ねるという意味で、Enabled: false にしています。使っても良い。
403
+ Style/WordArray:
404
+ Enabled: false
405
+
406
+ # 0 <= foo && foo < 5 のように数直線上に並べるのは
407
+ # コードを読みやすくするテクニックなので equality_operators_only に。
408
+ # Style/YodaCondition:
409
+ # # TODO: rubocop 0.63.0以降はforbid_for_equality_operators_onlyなので依存を引き上げれば有効にできる
410
+ # EnforcedStyle: forbid_for_equality_operators_only
411
+
412
+ # 条件式で arr.size > 0 が使われた時に
413
+ # if !arr.empty?
414
+ # else
415
+ # end
416
+ # に修正されるのが嫌。
417
+ # 中身を入れ替えて否定外しても良いんだけど、どちらが例外的な処理なのかが分かりづらくなる。
418
+ Style/ZeroLengthPredicate:
419
+ Enabled: false