origen 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (336) hide show
  1. checksums.yaml +4 -4
  2. data/bin/ctags +0 -0
  3. data/bin/origen +165 -1
  4. data/bin/rgen +2 -0
  5. data/config/application.rb +141 -0
  6. data/config/commands.rb +72 -0
  7. data/config/development.rb +7 -0
  8. data/config/environment.rb +0 -0
  9. data/config/rgen.policy +7 -0
  10. data/config/rubocop/easy.yml +620 -0
  11. data/config/rubocop/easy_disabled.yml +271 -0
  12. data/config/rubocop/easy_enabled.yml +731 -0
  13. data/config/rubocop/strict.yml +620 -0
  14. data/config/rubocop/strict_disabled.yml +247 -0
  15. data/config/rubocop/strict_enabled.yml +755 -0
  16. data/config/users.rb +20 -0
  17. data/config/version.rb +1 -1
  18. data/helpers/url.rb +68 -0
  19. data/lib/c99/doc_interface.rb +56 -0
  20. data/lib/c99/j750_interface.rb +85 -0
  21. data/lib/c99/nvm.rb +89 -0
  22. data/lib/c99/target/mock2.rb +1 -0
  23. data/lib/c99/target/subdir/mock3.rb +1 -0
  24. data/lib/option_parser/optparse.rb +12 -0
  25. data/lib/origen/acronyms.rb +60 -0
  26. data/lib/origen/application/command_dispatcher.rb +12 -0
  27. data/lib/origen/application/configuration.rb +206 -0
  28. data/lib/origen/application/configuration_manager.rb +78 -0
  29. data/lib/origen/application/deployer.rb +367 -0
  30. data/lib/origen/application/environment.rb +186 -0
  31. data/lib/origen/application/lsf.rb +145 -0
  32. data/lib/origen/application/lsf_manager.rb +657 -0
  33. data/lib/origen/application/plugins_manager.rb +280 -0
  34. data/lib/origen/application/release.rb +359 -0
  35. data/lib/origen/application/runner.rb +246 -0
  36. data/lib/origen/application/statistics.rb +191 -0
  37. data/lib/origen/application/target.rb +374 -0
  38. data/lib/origen/application/version_tracker.rb +59 -0
  39. data/lib/origen/application/workspace_manager.rb +151 -0
  40. data/lib/origen/application.rb +746 -0
  41. data/lib/origen/bugs/bug.rb +36 -0
  42. data/lib/origen/bugs.rb +45 -0
  43. data/lib/origen/callbacks.rb +35 -0
  44. data/lib/origen/chip_mode.rb +118 -0
  45. data/lib/origen/chip_package.rb +461 -0
  46. data/lib/origen/client.rb +87 -0
  47. data/lib/origen/code_generators/actions.rb +258 -0
  48. data/lib/origen/code_generators/base.rb +57 -0
  49. data/lib/origen/code_generators/bundler.rb +17 -0
  50. data/lib/origen/code_generators/gem_setup.rb +49 -0
  51. data/lib/origen/code_generators/rake.rb +13 -0
  52. data/lib/origen/code_generators/rspec.rb +12 -0
  53. data/lib/origen/code_generators/semver.rb +39 -0
  54. data/lib/origen/code_generators/timever.rb +37 -0
  55. data/lib/origen/code_generators.rb +111 -0
  56. data/lib/origen/commands/add.rb +12 -0
  57. data/lib/origen/commands/compile.rb +62 -0
  58. data/lib/origen/commands/ctags.rb +9 -0
  59. data/lib/origen/commands/dispatch.rb +22 -0
  60. data/lib/origen/commands/environment.rb +11 -0
  61. data/lib/origen/commands/fetch.rb +63 -0
  62. data/lib/origen/commands/generate.rb +130 -0
  63. data/lib/origen/commands/interactive.rb +73 -0
  64. data/lib/origen/commands/lint.rb +82 -0
  65. data/lib/origen/commands/lsf.rb +93 -0
  66. data/lib/origen/commands/merge.rb +55 -0
  67. data/lib/origen/commands/modifications.rb +12 -0
  68. data/lib/origen/commands/new.rb +113 -0
  69. data/lib/origen/commands/plugin.rb +105 -0
  70. data/lib/origen/commands/program.rb +70 -0
  71. data/lib/origen/commands/rc.rb +442 -0
  72. data/lib/origen/commands/save.rb +56 -0
  73. data/lib/origen/commands/target.rb +27 -0
  74. data/lib/origen/commands/time.rb +127 -0
  75. data/lib/origen/commands/version.rb +17 -0
  76. data/lib/origen/commands/web.rb +221 -0
  77. data/lib/origen/commands.rb +272 -0
  78. data/lib/origen/commands_global.rb +76 -0
  79. data/lib/origen/controller.rb +94 -0
  80. data/lib/origen/core_ext/array.rb +23 -0
  81. data/lib/origen/core_ext/bignum.rb +36 -0
  82. data/lib/origen/core_ext/enumerable.rb +76 -0
  83. data/lib/origen/core_ext/fixnum.rb +46 -0
  84. data/lib/origen/core_ext/hash.rb +52 -0
  85. data/lib/origen/core_ext/module.rb +14 -0
  86. data/lib/origen/core_ext/numeric.rb +126 -0
  87. data/lib/origen/core_ext/object.rb +13 -0
  88. data/lib/origen/core_ext/range.rb +7 -0
  89. data/lib/origen/core_ext/string.rb +124 -0
  90. data/lib/origen/core_ext.rb +10 -0
  91. data/lib/origen/database/key_value_store.rb +111 -0
  92. data/lib/origen/database/key_value_stores.rb +108 -0
  93. data/lib/origen/database.rb +6 -0
  94. data/lib/origen/encodings.rb +102 -0
  95. data/lib/origen/features/feature.rb +22 -0
  96. data/lib/origen/features.rb +104 -0
  97. data/lib/origen/file_handler.rb +429 -0
  98. data/lib/origen/generator/comparator.rb +56 -0
  99. data/lib/origen/generator/compiler.rb +277 -0
  100. data/lib/origen/generator/flow.rb +49 -0
  101. data/lib/origen/generator/job.rb +131 -0
  102. data/lib/origen/generator/pattern.rb +356 -0
  103. data/lib/origen/generator/pattern_finder.rb +155 -0
  104. data/lib/origen/generator/pattern_iterator.rb +55 -0
  105. data/lib/origen/generator/renderer.rb +113 -0
  106. data/lib/origen/generator/resources.rb +40 -0
  107. data/lib/origen/generator/stage.rb +89 -0
  108. data/lib/origen/generator.rb +85 -0
  109. data/lib/origen/global_methods.rb +205 -0
  110. data/lib/origen/import_manager.rb +596 -0
  111. data/lib/origen/location/base.rb +116 -0
  112. data/lib/origen/location/map.rb +83 -0
  113. data/lib/origen/location.rb +6 -0
  114. data/lib/origen/log.rb +217 -0
  115. data/lib/origen/logger_methods.rb +56 -0
  116. data/lib/origen/mode.rb +61 -0
  117. data/lib/origen/model.rb +267 -0
  118. data/lib/origen/model_initializer.rb +45 -0
  119. data/lib/origen/nvm/block_array.rb +72 -0
  120. data/lib/origen/nvm.rb +6 -0
  121. data/lib/origen/parameters/live.rb +22 -0
  122. data/lib/origen/parameters/missing.rb +28 -0
  123. data/lib/origen/parameters/set.rb +144 -0
  124. data/lib/origen/parameters.rb +107 -0
  125. data/lib/origen/pdm.rb +218 -0
  126. data/lib/origen/pins/function_proxy.rb +36 -0
  127. data/lib/origen/pins/ground_pin.rb +6 -0
  128. data/lib/origen/pins/pin.rb +860 -0
  129. data/lib/origen/pins/pin_bank.rb +349 -0
  130. data/lib/origen/pins/pin_clock.rb +124 -0
  131. data/lib/origen/pins/pin_collection.rb +492 -0
  132. data/lib/origen/pins/pin_common.rb +206 -0
  133. data/lib/origen/pins/port.rb +268 -0
  134. data/lib/origen/pins/power_pin.rb +30 -0
  135. data/lib/origen/pins.rb +696 -0
  136. data/lib/origen/registers/bit.rb +562 -0
  137. data/lib/origen/registers/bit_collection.rb +787 -0
  138. data/lib/origen/registers/container.rb +288 -0
  139. data/lib/origen/registers/domain.rb +16 -0
  140. data/lib/origen/registers/reg.rb +1406 -0
  141. data/lib/origen/registers/reg_collection.rb +24 -0
  142. data/lib/origen/registers.rb +652 -0
  143. data/lib/origen/regression_manager.rb +251 -0
  144. data/lib/origen/remote_manager.rb +340 -0
  145. data/lib/origen/revision_control/base.rb +257 -0
  146. data/lib/origen/revision_control/design_sync.rb +276 -0
  147. data/lib/origen/revision_control/git.rb +243 -0
  148. data/lib/origen/revision_control/subversion.rb +6 -0
  149. data/lib/origen/revision_control.rb +44 -0
  150. data/lib/origen/ruby_version_check.rb +131 -0
  151. data/lib/origen/site_config.rb +61 -0
  152. data/lib/origen/specs/checkers.rb +103 -0
  153. data/lib/origen/specs/creation_info.rb +17 -0
  154. data/lib/origen/specs/doc_resource.rb +91 -0
  155. data/lib/origen/specs/exhibit.rb +17 -0
  156. data/lib/origen/specs/mode_select.rb +16 -0
  157. data/lib/origen/specs/note.rb +17 -0
  158. data/lib/origen/specs/override.rb +21 -0
  159. data/lib/origen/specs/power_supply.rb +13 -0
  160. data/lib/origen/specs/spec.rb +226 -0
  161. data/lib/origen/specs/version_history.rb +14 -0
  162. data/lib/origen/specs.rb +552 -0
  163. data/lib/origen/sub_blocks.rb +298 -0
  164. data/lib/origen/tester/api.rb +277 -0
  165. data/lib/origen/tester/bdm/bdm.rb +25 -0
  166. data/lib/origen/tester/command_based_tester.rb +46 -0
  167. data/lib/origen/tester/doc/doc.rb +226 -0
  168. data/lib/origen/tester/doc/generator/flow.rb +71 -0
  169. data/lib/origen/tester/doc/generator/flow_line.rb +203 -0
  170. data/lib/origen/tester/doc/generator/test.rb +68 -0
  171. data/lib/origen/tester/doc/generator/test_group.rb +66 -0
  172. data/lib/origen/tester/doc/generator/tests.rb +47 -0
  173. data/lib/origen/tester/doc/generator.rb +126 -0
  174. data/lib/origen/tester/doc/model.rb +162 -0
  175. data/lib/origen/tester/generator/flow_control_api.rb +606 -0
  176. data/lib/origen/tester/generator/identity_map.rb +25 -0
  177. data/lib/origen/tester/generator/placeholder.rb +13 -0
  178. data/lib/origen/tester/generator/test_numberer.rb +25 -0
  179. data/lib/origen/tester/generator.rb +271 -0
  180. data/lib/origen/tester/interface.rb +154 -0
  181. data/lib/origen/tester/j750/files.rb +45 -0
  182. data/lib/origen/tester/j750/generator/flow.rb +123 -0
  183. data/lib/origen/tester/j750/generator/flow_line.rb +288 -0
  184. data/lib/origen/tester/j750/generator/patgroup.rb +111 -0
  185. data/lib/origen/tester/j750/generator/patgroups.rb +41 -0
  186. data/lib/origen/tester/j750/generator/patset.rb +111 -0
  187. data/lib/origen/tester/j750/generator/patsets.rb +41 -0
  188. data/lib/origen/tester/j750/generator/templates/flow.txt.erb +9 -0
  189. data/lib/origen/tester/j750/generator/templates/instances.txt.erb +16 -0
  190. data/lib/origen/tester/j750/generator/templates/patgroups.txt.erb +8 -0
  191. data/lib/origen/tester/j750/generator/templates/patsets.txt.erb +10 -0
  192. data/lib/origen/tester/j750/generator/test_instance.rb +846 -0
  193. data/lib/origen/tester/j750/generator/test_instance_group.rb +60 -0
  194. data/lib/origen/tester/j750/generator/test_instances.rb +182 -0
  195. data/lib/origen/tester/j750/generator.rb +203 -0
  196. data/lib/origen/tester/j750/j750.rb +845 -0
  197. data/lib/origen/tester/j750/j750_hpt.rb +35 -0
  198. data/lib/origen/tester/j750/parser/ac_spec.rb +11 -0
  199. data/lib/origen/tester/j750/parser/ac_specs.rb +0 -0
  200. data/lib/origen/tester/j750/parser/dc_spec.rb +36 -0
  201. data/lib/origen/tester/j750/parser/dc_specs.rb +50 -0
  202. data/lib/origen/tester/j750/parser/descriptions.rb +340 -0
  203. data/lib/origen/tester/j750/parser/flow.rb +111 -0
  204. data/lib/origen/tester/j750/parser/flow_line.rb +207 -0
  205. data/lib/origen/tester/j750/parser/flows.rb +23 -0
  206. data/lib/origen/tester/j750/parser/pattern_set.rb +94 -0
  207. data/lib/origen/tester/j750/parser/pattern_sets.rb +33 -0
  208. data/lib/origen/tester/j750/parser/test_instance.rb +322 -0
  209. data/lib/origen/tester/j750/parser/test_instances.rb +26 -0
  210. data/lib/origen/tester/j750/parser/timeset.rb +15 -0
  211. data/lib/origen/tester/j750/parser/timesets.rb +0 -0
  212. data/lib/origen/tester/j750/parser.rb +104 -0
  213. data/lib/origen/tester/jlink/jlink.rb +33 -0
  214. data/lib/origen/tester/parser/description_lookup.rb +64 -0
  215. data/lib/origen/tester/parser/searchable_array.rb +32 -0
  216. data/lib/origen/tester/parser/searchable_hash.rb +32 -0
  217. data/lib/origen/tester/parser.rb +24 -0
  218. data/lib/origen/tester/time.rb +338 -0
  219. data/lib/origen/tester/timing.rb +253 -0
  220. data/lib/origen/tester/ultraflex/files.rb +45 -0
  221. data/lib/origen/tester/ultraflex/generator/flow.rb +119 -0
  222. data/lib/origen/tester/ultraflex/generator/flow_line.rb +269 -0
  223. data/lib/origen/tester/ultraflex/generator/patgroup.rb +111 -0
  224. data/lib/origen/tester/ultraflex/generator/patgroups.rb +41 -0
  225. data/lib/origen/tester/ultraflex/generator/patset.rb +111 -0
  226. data/lib/origen/tester/ultraflex/generator/patsets.rb +41 -0
  227. data/lib/origen/tester/ultraflex/generator/templates/flow.txt.erb +9 -0
  228. data/lib/origen/tester/ultraflex/generator/templates/instances.txt.erb +16 -0
  229. data/lib/origen/tester/ultraflex/generator/templates/patgroups.txt.erb +8 -0
  230. data/lib/origen/tester/ultraflex/generator/templates/patsets.txt.erb +10 -0
  231. data/lib/origen/tester/ultraflex/generator/test_instance.rb +622 -0
  232. data/lib/origen/tester/ultraflex/generator/test_instance_group.rb +60 -0
  233. data/lib/origen/tester/ultraflex/generator/test_instances.rb +174 -0
  234. data/lib/origen/tester/ultraflex/generator.rb +200 -0
  235. data/lib/origen/tester/ultraflex/parser/ac_spec.rb +11 -0
  236. data/lib/origen/tester/ultraflex/parser/ac_specs.rb +0 -0
  237. data/lib/origen/tester/ultraflex/parser/dc_spec.rb +36 -0
  238. data/lib/origen/tester/ultraflex/parser/dc_specs.rb +50 -0
  239. data/lib/origen/tester/ultraflex/parser/descriptions.rb +342 -0
  240. data/lib/origen/tester/ultraflex/parser/flow.rb +111 -0
  241. data/lib/origen/tester/ultraflex/parser/flow_line.rb +207 -0
  242. data/lib/origen/tester/ultraflex/parser/flows.rb +23 -0
  243. data/lib/origen/tester/ultraflex/parser/pattern_set.rb +94 -0
  244. data/lib/origen/tester/ultraflex/parser/pattern_sets.rb +33 -0
  245. data/lib/origen/tester/ultraflex/parser/test_instance.rb +262 -0
  246. data/lib/origen/tester/ultraflex/parser/test_instances.rb +26 -0
  247. data/lib/origen/tester/ultraflex/parser/timeset.rb +15 -0
  248. data/lib/origen/tester/ultraflex/parser/timesets.rb +0 -0
  249. data/lib/origen/tester/ultraflex/parser.rb +104 -0
  250. data/lib/origen/tester/ultraflex/ultraflex.rb +759 -0
  251. data/lib/origen/tester/v93k/generator/flow.rb +63 -0
  252. data/lib/origen/tester/v93k/generator/flow_node/print.rb +10 -0
  253. data/lib/origen/tester/v93k/generator/flow_node.rb +17 -0
  254. data/lib/origen/tester/v93k/generator/pattern.rb +16 -0
  255. data/lib/origen/tester/v93k/generator/pattern_master.rb +54 -0
  256. data/lib/origen/tester/v93k/generator/templates/_test_method.txt.erb +6 -0
  257. data/lib/origen/tester/v93k/generator/templates/_test_suite.txt.erb +11 -0
  258. data/lib/origen/tester/v93k/generator/templates/template.flow.erb +121 -0
  259. data/lib/origen/tester/v93k/generator/templates/template.pmfl.erb +9 -0
  260. data/lib/origen/tester/v93k/generator/test_function.rb +103 -0
  261. data/lib/origen/tester/v93k/generator/test_functions.rb +79 -0
  262. data/lib/origen/tester/v93k/generator/test_method.rb +46 -0
  263. data/lib/origen/tester/v93k/generator/test_methods.rb +75 -0
  264. data/lib/origen/tester/v93k/generator/test_suite.rb +54 -0
  265. data/lib/origen/tester/v93k/generator/test_suites.rb +65 -0
  266. data/lib/origen/tester/v93k/generator.rb +80 -0
  267. data/lib/origen/tester/v93k/v93k.rb +420 -0
  268. data/lib/origen/tester/vector.rb +86 -0
  269. data/lib/origen/tester/vector_generator.rb +633 -0
  270. data/lib/origen/tester/vector_pipeline.rb +150 -0
  271. data/lib/origen/tester.rb +56 -0
  272. data/lib/origen/top_level.rb +134 -0
  273. data/lib/origen/users/ldap.rb +65 -0
  274. data/lib/origen/users/user.rb +149 -0
  275. data/lib/origen/users.rb +30 -0
  276. data/lib/origen/utility/block_args.rb +93 -0
  277. data/lib/origen/utility/csv_data.rb +110 -0
  278. data/lib/origen/utility/design_sync.rb +494 -0
  279. data/lib/origen/utility/diff.rb +158 -0
  280. data/lib/origen/utility/input_capture.rb +121 -0
  281. data/lib/origen/utility/mailer.rb +143 -0
  282. data/lib/origen/utility/s_record.rb +205 -0
  283. data/lib/origen/utility/time_and_date.rb +30 -0
  284. data/lib/origen/utility.rb +12 -0
  285. data/lib/origen/version_checker.rb +117 -0
  286. data/lib/origen/version_string.rb +356 -0
  287. data/lib/origen.rb +648 -0
  288. data/lib/tasks/gem.rake +27 -22
  289. data/origen_site_config.yml +36 -0
  290. data/source_setup +17 -0
  291. data/spec/format/rgen_formatter.rb +14 -0
  292. data/templates/api_doc/README.txt.erb +24 -0
  293. data/templates/code_generators/gemfile_app.rb +4 -0
  294. data/templates/code_generators/gemfile_plugin.rb +6 -0
  295. data/templates/code_generators/gemspec.rb +33 -0
  296. data/templates/code_generators/rakefile.rb +10 -0
  297. data/templates/code_generators/spec_helper.rb +49 -0
  298. data/templates/code_generators/version.rb +8 -0
  299. data/templates/code_generators/version_time.rb +3 -0
  300. data/templates/git/gitignore.erb +33 -0
  301. data/templates/j750/_vt_flow.txt.erb +8 -0
  302. data/templates/j750/_vt_instances.txt.erb +4 -0
  303. data/templates/j750/program_sheet.txt.erb +9 -0
  304. data/templates/nanoc/Rules +74 -0
  305. data/templates/nanoc/config.yaml +77 -0
  306. data/templates/nanoc/content/favicon.ico +0 -0
  307. data/templates/nanoc/layouts/bootstrap.html.erb +63 -0
  308. data/templates/nanoc/layouts/bootstrap3.html.erb +71 -0
  309. data/templates/nanoc/layouts/freescale.html.erb +79 -0
  310. data/templates/nanoc/lib/bootstrap_filter.rb +49 -0
  311. data/templates/nanoc/lib/codeblocks_filter.rb +41 -0
  312. data/templates/nanoc/lib/default.rb +2 -0
  313. data/templates/nanoc/lib/gzip_filter.rb +16 -0
  314. data/templates/nanoc/lib/haml_code_filter.rb +41 -0
  315. data/templates/nanoc/lib/helpers.rb +1 -0
  316. data/templates/nanoc/lib/search_filter.rb +62 -0
  317. data/templates/nanoc_dynamic/content/search.js.erb +92 -0
  318. data/templates/shared/web/_logo.html +10 -0
  319. data/templates/test/_inline_sub.txt.erb +2 -0
  320. data/templates/test/environment.txt.erb +1 -0
  321. data/templates/test/inline.txt.erb +11 -0
  322. data/templates/test/inspections.txt.erb +19 -0
  323. data/templates/test/set1/_sub1.txt.erb +12 -0
  324. data/templates/test/set1/_sub4.txt.erb +1 -0
  325. data/templates/test/set1/_sub5.txt.erb +1 -0
  326. data/templates/test/set1/main.txt.erb +53 -0
  327. data/templates/test/set1/sub_dir/_sub2.txt.erb +20 -0
  328. data/templates/test/set1/sub_dir/_sub3.txt.erb +12 -0
  329. data/templates/test/set1/sub_dir/main2.txt.erb +4 -0
  330. data/templates/test/set2/template_with_no_erb_1.txt +9 -0
  331. data/templates/test/set2/template_with_no_erb_2.txt +9 -0
  332. data/templates/test/set3/_layout.html.erb +4 -0
  333. data/templates/test/set3/content.html.erb +6 -0
  334. data/templates/time/filter.rb.erb +15 -0
  335. data/templates/time/rules.rb.erb +45 -0
  336. metadata +639 -5
@@ -0,0 +1,620 @@
1
+ # This is the easy configuration file. Enabling and disabling is configured
2
+ # in separate files. This file adds all other parameters apart from Enabled.
3
+
4
+ inherit_from:
5
+ - easy_enabled.yml
6
+ - easy_disabled.yml
7
+
8
+ # Common configuration.
9
+ AllCops:
10
+ # Include gemspec and Rakefile
11
+ Include:
12
+ - '**/*.gemspec'
13
+ - '**/*.podspec'
14
+ - '**/*.jbuilder'
15
+ - '**/*.rake'
16
+ - '**/*.opal'
17
+ - '**/Gemfile'
18
+ - '**/Rakefile'
19
+ - '**/Capfile'
20
+ - '**/Guardfile'
21
+ - '**/Podfile'
22
+ - '**/Thorfile'
23
+ - '**/Vagrantfile'
24
+ - '**/Berksfile'
25
+ - '**/Cheffile'
26
+ - '**/Vagabondfile'
27
+ Exclude:
28
+ - 'vendor/**/*'
29
+ # By default, the rails cops are not run. Override in project or home
30
+ # directory .rubocop.yml files, or by giving the -R/--rails option.
31
+ RunRailsCops: false
32
+
33
+ # Indent private/protected/public as deep as method definitions
34
+ Style/AccessModifierIndentation:
35
+ EnforcedStyle: indent
36
+ SupportedStyles:
37
+ - outdent
38
+ - indent
39
+
40
+ # Align the elements of a hash literal if they span more than one line.
41
+ Style/AlignHash:
42
+ # Alignment of entries using hash rocket as separator. Valid values are:
43
+ #
44
+ # key - left alignment of keys
45
+ # 'a' => 2
46
+ # 'bb' => 3
47
+ # separator - alignment of hash rockets, keys are right aligned
48
+ # 'a' => 2
49
+ # 'bb' => 3
50
+ # table - left alignment of keys, hash rockets, and values
51
+ # 'a' => 2
52
+ # 'bb' => 3
53
+ EnforcedHashRocketStyle: table
54
+ # Alignment of entries using colon as separator. Valid values are:
55
+ #
56
+ # key - left alignment of keys
57
+ # a: 0
58
+ # bb: 1
59
+ # separator - alignment of colons, keys are right aligned
60
+ # a: 0
61
+ # bb: 1
62
+ # table - left alignment of keys and values
63
+ # a: 0
64
+ # bb: 1
65
+ EnforcedColonStyle: table
66
+ # Select whether hashes that are the last argument in a method call should be
67
+ # inspected? Valid values are:
68
+ #
69
+ # always_inspect - Inspect both implicit and explicit hashes.
70
+ # Registers an offense for:
71
+ # function(a: 1,
72
+ # b: 2)
73
+ # Registers an offense for:
74
+ # function({a: 1,
75
+ # b: 2})
76
+ # always_ignore - Ignore both implicit and explicit hashes.
77
+ # Accepts:
78
+ # function(a: 1,
79
+ # b: 2)
80
+ # Accepts:
81
+ # function({a: 1,
82
+ # b: 2})
83
+ # ignore_implicit - Ignore only implicit hashes.
84
+ # Accepts:
85
+ # function(a: 1,
86
+ # b: 2)
87
+ # Registers an offense for:
88
+ # function({a: 1,
89
+ # b: 2})
90
+ # ignore_explicit - Ignore only explicit hashes.
91
+ # Accepts:
92
+ # function({a: 1,
93
+ # b: 2})
94
+ # Registers an offense for:
95
+ # function(a: 1,
96
+ # b: 2)
97
+ EnforcedLastArgumentHashStyle: always_inspect
98
+ SupportedLastArgumentHashStyles:
99
+ - always_inspect
100
+ - always_ignore
101
+ - ignore_implicit
102
+ - ignore_explicit
103
+
104
+ Style/AlignParameters:
105
+ # Alignment of parameters in multi-line method calls.
106
+ #
107
+ # The `with_first_parameter` style aligns the following lines along the same
108
+ # column as the first parameter.
109
+ #
110
+ # method_call(a,
111
+ # b)
112
+ #
113
+ # The `with_fixed_indentation` style aligns the following lines with one
114
+ # level of indentation relative to the start of the line with the method call.
115
+ #
116
+ # method_call(a,
117
+ # b)
118
+ EnforcedStyle: with_first_parameter
119
+ SupportedStyles:
120
+ - with_first_parameter
121
+ - with_fixed_indentation
122
+
123
+ Style/AndOr:
124
+ # Whether `and` and `or` are banned only in conditionals (conditionals)
125
+ # or completely (always).
126
+ EnforcedStyle: always
127
+ SupportedStyles:
128
+ - always
129
+ - conditionals
130
+
131
+
132
+ # Checks if usage of %() or %Q() matches configuration.
133
+ Style/BarePercentLiterals:
134
+ EnforcedStyle: bare_percent
135
+ SupportedStyles:
136
+ - percent_q
137
+ - bare_percent
138
+
139
+ Style/BracesAroundHashParameters:
140
+ EnforcedStyle: no_braces
141
+ SupportedStyles:
142
+ # The `braces` style enforces braces around all method parameters that are
143
+ # hashes.
144
+ - braces
145
+ # The `no_braces` style checks that the last parameter doesn't have braces
146
+ # around it.
147
+ - no_braces
148
+ # The `context_dependent` style checks that the last parameter doesn't have
149
+ # braces around it, but requires braces if the second to last parameter is
150
+ # also a hash literal.
151
+ - context_dependent
152
+
153
+ # Indentation of `when`.
154
+ Style/CaseIndentation:
155
+ IndentWhenRelativeTo: case
156
+ SupportedStyles:
157
+ - case
158
+ - end
159
+ IndentOneStep: false
160
+
161
+ Style/ClassAndModuleChildren:
162
+ # Checks the style of children definitions at classes and modules.
163
+ #
164
+ # Basically there are two different styles:
165
+ #
166
+ # `nested` - have each child on a separate line
167
+ # class Foo
168
+ # class Bar
169
+ # end
170
+ # end
171
+ #
172
+ # `compact` - combine definitions as much as possible
173
+ # class Foo::Bar
174
+ # end
175
+ #
176
+ # The compact style is only forced, for classes / modules with one child.
177
+ EnforcedStyle: nested
178
+ SupportedStyles:
179
+ - nested
180
+ - compact
181
+
182
+ Style/ClassCheck:
183
+ EnforcedStyle: is_a?
184
+ SupportedStyles:
185
+ - is_a?
186
+ - kind_of?
187
+
188
+ # Align with the style guide.
189
+ Style/CollectionMethods:
190
+ # Mapping from undesired method to desired_method
191
+ # e.g. to use `detect` over `find`:
192
+ #
193
+ # CollectionMethods:
194
+ # PreferredMethods:
195
+ # find: detect
196
+ PreferredMethods:
197
+ collect: 'map'
198
+ collect!: 'map!'
199
+ inject: 'reduce'
200
+ detect: 'find'
201
+ find_all: 'select'
202
+
203
+ # Checks formatting of special comments
204
+ Style/CommentAnnotation:
205
+ Keywords:
206
+ - TODO
207
+ - FIXME
208
+ - OPTIMIZE
209
+ - HACK
210
+ - REVIEW
211
+
212
+ # Multi-line method chaining should be done with leading dots.
213
+ Style/DotPosition:
214
+ EnforcedStyle: leading
215
+ SupportedStyles:
216
+ - leading
217
+ - trailing
218
+
219
+ # Use empty lines between defs.
220
+ Style/EmptyLineBetweenDefs:
221
+ # If true, this parameter means that single line method definitions don't
222
+ # need an empty line between them.
223
+ AllowAdjacentOneLineDefs: false
224
+
225
+ #Style/EmptyLinesAroundBlockBody:
226
+ # EnforcedStyle: no_empty_lines
227
+ # SupportedStyles:
228
+ # - empty_lines
229
+ # - no_empty_lines
230
+
231
+ Style/EmptyLinesAroundClassBody:
232
+ EnforcedStyle: no_empty_lines
233
+ SupportedStyles:
234
+ - empty_lines
235
+ - no_empty_lines
236
+
237
+ Style/EmptyLinesAroundModuleBody:
238
+ EnforcedStyle: no_empty_lines
239
+ SupportedStyles:
240
+ - empty_lines
241
+ - no_empty_lines
242
+
243
+ # Checks whether the source file has a utf-8 encoding comment or not
244
+ Style/Encoding:
245
+ EnforcedStyle: always
246
+ SupportedStyles:
247
+ - when_needed
248
+ - always
249
+
250
+ Style/FileName:
251
+ # File names listed in AllCops:Include are excluded by default. Add extra
252
+ # excludes here.
253
+ Exclude: []
254
+
255
+ # Checks use of for or each in multiline loops.
256
+ Style/For:
257
+ EnforcedStyle: each
258
+ SupportedStyles:
259
+ - for
260
+ - each
261
+
262
+ # Enforce the method used for string formatting.
263
+ Style/FormatString:
264
+ EnforcedStyle: format
265
+ SupportedStyles:
266
+ - format
267
+ - sprintf
268
+ - percent
269
+
270
+ # Built-in global variables are allowed by default.
271
+ Style/GlobalVars:
272
+ AllowedVariables: []
273
+
274
+ # `MinBodyLength` defines the number of lines of the a body of an if / unless
275
+ # needs to have to trigger this cop
276
+ Style/GuardClause:
277
+ MinBodyLength: 1
278
+
279
+ Style/HashSyntax:
280
+ EnforcedStyle: ruby19
281
+ SupportedStyles:
282
+ - ruby19
283
+ - hash_rockets
284
+
285
+ Style/IfUnlessModifier:
286
+ MaxLineLength: 80
287
+
288
+ Style/IndentationWidth:
289
+ # Number of spaces for each indentation level.
290
+ Width: 2
291
+
292
+ # Checks the indentation of the first key in a hash literal.
293
+ Style/IndentHash:
294
+ # The value `special_inside_parentheses` means that hash literals with braces
295
+ # that have their opening brace on the same line as a surrounding opening
296
+ # round parenthesis, shall have their first key indented relative to the
297
+ # first position inside the parenthesis.
298
+ # The value `consistent` means that the indentation of the first key shall
299
+ # always be relative to the first position of the line where the opening
300
+ # brace is.
301
+ EnforcedStyle: special_inside_parentheses
302
+ SupportedStyles:
303
+ - special_inside_parentheses
304
+ - consistent
305
+
306
+ Style/LambdaCall:
307
+ EnforcedStyle: call
308
+ SupportedStyles:
309
+ - call
310
+ - braces
311
+
312
+ Style/Next:
313
+ # With `always` all conditions at the end of an iteration needs to be
314
+ # replaced by next - with `skip_modifier_ifs` the modifier if like this one
315
+ # are ignored: [1, 2].each { |a| return 'yes' if a == 1 }
316
+ EnforcedStyle: skip_modifier_ifs
317
+ # `MinBodyLength` defines the number of lines of the a body of an if / unless
318
+ # needs to have to trigger this cop
319
+ MinBodyLength: 3
320
+ SupportedStyles:
321
+ - skip_modifier_ifs
322
+ - always
323
+
324
+ Style/NonNilCheck:
325
+ # With `IncludeSemanticChanges` set to `true`, this cop reports offenses for
326
+ # `!x.nil?` and autocorrects that and `x != nil` to solely `x`, which is
327
+ # **usually** OK, but might change behavior.
328
+ #
329
+ # With `IncludeSemanticChanges` set to `false`, this cop does not report
330
+ # offenses for `!x.nil?` and does no changes that might change behavior.
331
+ IncludeSemanticChanges: false
332
+
333
+ Style/MethodDefParentheses:
334
+ EnforcedStyle: require_parentheses
335
+ SupportedStyles:
336
+ - require_parentheses
337
+ - require_no_parentheses
338
+
339
+ Style/MethodName:
340
+ EnforcedStyle: snake_case
341
+ SupportedStyles:
342
+ - snake_case
343
+ - camelCase
344
+
345
+ Style/MultilineOperationIndentation:
346
+ EnforcedStyle: aligned
347
+ SupportedStyles:
348
+ - aligned
349
+ - indented
350
+
351
+ Style/NumericLiterals:
352
+ MinDigits: 5
353
+
354
+ # Allow safe assignment in conditions.
355
+ Style/ParenthesesAroundCondition:
356
+ AllowSafeAssignment: true
357
+
358
+ Style/PercentLiteralDelimiters:
359
+ PreferredDelimiters:
360
+ '%': ()
361
+ '%i': ()
362
+ '%q': ()
363
+ '%Q': ()
364
+ '%r': '{}'
365
+ '%s': ()
366
+ '%w': ()
367
+ '%W': ()
368
+ '%x': ()
369
+
370
+ Style/PercentQLiterals:
371
+ EnforcedStyle: lower_case_q
372
+ SupportedStyles:
373
+ - lower_case_q # Use %q when possible, %Q when necessary
374
+ - upper_case_q # Always use %Q
375
+
376
+ Style/PredicateName:
377
+ # Predicate name prefices.
378
+ NamePrefix:
379
+ - is_
380
+ - has_
381
+ - have_
382
+ # Predicate name prefices that should be removed.
383
+ NamePrefixBlacklist:
384
+ - is_
385
+ - has_
386
+ - have_
387
+
388
+ Style/RaiseArgs:
389
+ EnforcedStyle: exploded
390
+ SupportedStyles:
391
+ - compact # raise Exception.new(msg)
392
+ - exploded # raise Exception, msg
393
+
394
+ Style/RedundantReturn:
395
+ # When true allows code like `return x, y`.
396
+ AllowMultipleReturnValues: false
397
+
398
+ Style/RegexpLiteral:
399
+ EnforcedStyle: slashes
400
+ # slashes: Always use slashes.
401
+ # percent_r: Always use %r.
402
+ # mixed: Use slashes on single-line regexes, and %r on multi-line regexes.
403
+ SupportedStyles:
404
+ - slashes
405
+ - percent_r
406
+ - mixed
407
+ # If false, the cop will always recommend using %r if one or more slashes
408
+ # are found in the regexp string.
409
+ AllowInnerSlashes: false
410
+
411
+ Style/Semicolon:
412
+ # Allow ; to separate several expressions on the same line.
413
+ AllowAsExpressionSeparator: false
414
+
415
+ Style/SignalException:
416
+ EnforcedStyle: semantic
417
+ SupportedStyles:
418
+ - only_raise
419
+ - only_fail
420
+ - semantic
421
+
422
+ Style/SingleLineBlockParams:
423
+ Methods:
424
+ - reduce:
425
+ - a
426
+ - e
427
+ - inject:
428
+ - a
429
+ - e
430
+
431
+ Style/SingleLineMethods:
432
+ AllowIfMethodIsEmpty: true
433
+
434
+ Style/StringLiterals:
435
+ EnforcedStyle: single_quotes
436
+ SupportedStyles:
437
+ - single_quotes
438
+ - double_quotes
439
+
440
+ Style/StringLiteralsInInterpolation:
441
+ EnforcedStyle: single_quotes
442
+ SupportedStyles:
443
+ - single_quotes
444
+ - double_quotes
445
+
446
+ Style/SpaceAroundEqualsInParameterDefault:
447
+ EnforcedStyle: space
448
+ SupportedStyles:
449
+ - space
450
+ - no_space
451
+
452
+ Style/SpaceBeforeBlockBraces:
453
+ EnforcedStyle: space
454
+ SupportedStyles:
455
+ - space
456
+ - no_space
457
+
458
+ Style/SpaceInsideBlockBraces:
459
+ EnforcedStyle: space
460
+ SupportedStyles:
461
+ - space
462
+ - no_space
463
+ # Valid values are: space, no_space
464
+ EnforcedStyleForEmptyBraces: no_space
465
+ # Space between { and |. Overrides EnforcedStyle if there is a conflict.
466
+ SpaceBeforeBlockParameters: true
467
+
468
+ Style/SpaceInsideHashLiteralBraces:
469
+ EnforcedStyle: space
470
+ EnforcedStyleForEmptyBraces: no_space
471
+ SupportedStyles:
472
+ - space
473
+ - no_space
474
+
475
+ Style/SymbolProc:
476
+ # A list of method names to be ignored by the check.
477
+ # The names should be fairly unique, otherwise you'll end up ignoring lots of code.
478
+ IgnoredMethods:
479
+ - respond_to
480
+
481
+ Style/TrailingBlankLines:
482
+ EnforcedStyle: final_newline
483
+ SupportedStyles:
484
+ - final_newline
485
+ - final_blank_line
486
+
487
+ Style/TrailingComma:
488
+ # If EnforcedStyleForMultiline is comma, the cop allows a comma after the
489
+ # last item of a list, but only for lists where each item is on its own line.
490
+ EnforcedStyleForMultiline: no_comma
491
+ SupportedStyles:
492
+ - comma
493
+ - no_comma
494
+
495
+ # TrivialAccessors doesn't require exact name matches and doesn't allow
496
+ # predicated methods by default.
497
+ Style/TrivialAccessors:
498
+ ExactNameMatch: false
499
+ AllowPredicates: false
500
+ # Allows trivial writers that don't end in an equal sign. e.g.
501
+ #
502
+ # def on_exception(action)
503
+ # @on_exception=action
504
+ # end
505
+ # on_exception :restart
506
+ #
507
+ # Commonly used in DSLs
508
+ AllowDSLWriters: false
509
+ Whitelist:
510
+ - to_ary
511
+ - to_a
512
+ - to_c
513
+ - to_enum
514
+ - to_h
515
+ - to_hash
516
+ - to_i
517
+ - to_int
518
+ - to_io
519
+ - to_open
520
+ - to_path
521
+ - to_proc
522
+ - to_r
523
+ - to_regexp
524
+ - to_str
525
+ - to_s
526
+ - to_sym
527
+
528
+ Style/VariableName:
529
+ EnforcedStyle: snake_case
530
+ SupportedStyles:
531
+ - snake_case
532
+ - camelCase
533
+
534
+ Style/WhileUntilModifier:
535
+ MaxLineLength: 80
536
+
537
+ Style/WordArray:
538
+ MinSize: 0
539
+ # The regular expression WordRegex decides what is considered a word.
540
+ WordRegex: !ruby/regexp '/\A[\p{Word}]+\z/'
541
+ ##################### Metrics ##################################
542
+ Metrics/AbcSize:
543
+ # The ABC size is a calculated magnitude, so this number can be a Fixnum or
544
+ # a Float.
545
+ Max: 15
546
+ Metrics/BlockNesting:
547
+ Max: 3
548
+ Metrics/ClassLength:
549
+ CountComments: false # count full line comments?
550
+ Max: 100
551
+ # Avoid complex methods.
552
+ Metrics/CyclomaticComplexity:
553
+ Max: 6
554
+ Metrics/LineLength:
555
+ Max: 80
556
+ AllowURI: true
557
+ URISchemes:
558
+ - http
559
+ - https
560
+ Metrics/MethodLength:
561
+ CountComments: false # count full line comments?
562
+ Max: 10
563
+ Metrics/ParameterLists:
564
+ Max: 5
565
+ CountKeywordArgs: true
566
+ Metrics/PerceivedComplexity:
567
+ Max: 7
568
+ ##################### Lint ##################################
569
+ # Allow safe assignment in conditions.
570
+ Lint/AssignmentInCondition:
571
+ AllowSafeAssignment: true
572
+ # Align ends correctly.
573
+ Lint/EndAlignment:
574
+ # The value `keyword` means that `end` should be aligned with the matching
575
+ # keyword (if, while, etc.).
576
+ # The value `variable` means that in assignments, `end` should be aligned
577
+ # with the start of the variable on the left hand side of `=`. In all other
578
+ # situations, `end` should still be aligned with the keyword.
579
+ AlignWith: keyword
580
+ SupportedStyles:
581
+ - keyword
582
+ - variable
583
+ Lint/DefEndAlignment:
584
+ # The value `def` means that `end` should be aligned with the def keyword.
585
+ # The value `start_of_line` means that `end` should be aligned with method
586
+ # calls like `private`, `public`, etc, if present in front of the `def`
587
+ # keyword on the same line.
588
+ AlignWith: start_of_line
589
+ SupportedStyles:
590
+ - start_of_line
591
+ - def
592
+ ##################### Rails ##################################
593
+ Rails/ActionFilter:
594
+ EnforcedStyle: action
595
+ SupportedStyles:
596
+ - action
597
+ - filter
598
+ Include:
599
+ - app/controllers/**/*.rb
600
+ Rails/DefaultScope:
601
+ Include:
602
+ - app/models/**/*.rb
603
+ Rails/HasAndBelongsToMany:
604
+ Include:
605
+ - app/models/**/*.rb
606
+ Rails/Output:
607
+ Include:
608
+ - app/**/*.rb
609
+ - config/**/*.rb
610
+ - db/**/*.rb
611
+ - lib/**/*.rb
612
+ Rails/ReadWriteAttribute:
613
+ Include:
614
+ - app/models/**/*.rb
615
+ Rails/ScopeArgs:
616
+ Include:
617
+ - app/models/**/*.rb
618
+ Rails/Validation:
619
+ Include:
620
+ - app/models/**/*.rb