rails_console_pro 0.1.0

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 (70) hide show
  1. checksums.yaml +7 -0
  2. data/.editorconfig +12 -0
  3. data/.rspec +4 -0
  4. data/.rspec_status +240 -0
  5. data/.rubocop.yml +26 -0
  6. data/CHANGELOG.md +24 -0
  7. data/CONTRIBUTING.md +76 -0
  8. data/LICENSE.txt +22 -0
  9. data/QUICK_START.md +112 -0
  10. data/README.md +124 -0
  11. data/Rakefile +13 -0
  12. data/config/database.yml +3 -0
  13. data/docs/ASSOCIATION_NAVIGATION.md +85 -0
  14. data/docs/EXPORT.md +95 -0
  15. data/docs/FORMATTING.md +86 -0
  16. data/docs/MODEL_STATISTICS.md +72 -0
  17. data/docs/OBJECT_DIFFING.md +87 -0
  18. data/docs/SCHEMA_INSPECTION.md +60 -0
  19. data/docs/SQL_EXPLAIN.md +70 -0
  20. data/lib/generators/rails_console_pro/install_generator.rb +16 -0
  21. data/lib/generators/rails_console_pro/templates/rails_console_pro.rb +44 -0
  22. data/lib/rails_console_pro/active_record_extensions.rb +113 -0
  23. data/lib/rails_console_pro/association_navigator.rb +273 -0
  24. data/lib/rails_console_pro/base_printer.rb +74 -0
  25. data/lib/rails_console_pro/color_helper.rb +36 -0
  26. data/lib/rails_console_pro/commands/base_command.rb +17 -0
  27. data/lib/rails_console_pro/commands/diff_command.rb +135 -0
  28. data/lib/rails_console_pro/commands/explain_command.rb +118 -0
  29. data/lib/rails_console_pro/commands/export_command.rb +16 -0
  30. data/lib/rails_console_pro/commands/schema_command.rb +20 -0
  31. data/lib/rails_console_pro/commands/stats_command.rb +93 -0
  32. data/lib/rails_console_pro/commands.rb +34 -0
  33. data/lib/rails_console_pro/configuration.rb +219 -0
  34. data/lib/rails_console_pro/diff_result.rb +56 -0
  35. data/lib/rails_console_pro/error_handler.rb +60 -0
  36. data/lib/rails_console_pro/explain_result.rb +47 -0
  37. data/lib/rails_console_pro/format_exporter.rb +403 -0
  38. data/lib/rails_console_pro/global_methods.rb +42 -0
  39. data/lib/rails_console_pro/initializer.rb +176 -0
  40. data/lib/rails_console_pro/model_validator.rb +219 -0
  41. data/lib/rails_console_pro/paginator.rb +204 -0
  42. data/lib/rails_console_pro/printers/active_record_printer.rb +30 -0
  43. data/lib/rails_console_pro/printers/collection_printer.rb +34 -0
  44. data/lib/rails_console_pro/printers/diff_printer.rb +97 -0
  45. data/lib/rails_console_pro/printers/explain_printer.rb +151 -0
  46. data/lib/rails_console_pro/printers/relation_printer.rb +25 -0
  47. data/lib/rails_console_pro/printers/schema_printer.rb +188 -0
  48. data/lib/rails_console_pro/printers/stats_printer.rb +129 -0
  49. data/lib/rails_console_pro/pry_commands.rb +241 -0
  50. data/lib/rails_console_pro/pry_integration.rb +9 -0
  51. data/lib/rails_console_pro/railtie.rb +29 -0
  52. data/lib/rails_console_pro/schema_inspector_result.rb +43 -0
  53. data/lib/rails_console_pro/serializers/active_record_serializer.rb +18 -0
  54. data/lib/rails_console_pro/serializers/array_serializer.rb +31 -0
  55. data/lib/rails_console_pro/serializers/base_serializer.rb +25 -0
  56. data/lib/rails_console_pro/serializers/diff_serializer.rb +24 -0
  57. data/lib/rails_console_pro/serializers/explain_serializer.rb +35 -0
  58. data/lib/rails_console_pro/serializers/relation_serializer.rb +25 -0
  59. data/lib/rails_console_pro/serializers/schema_serializer.rb +121 -0
  60. data/lib/rails_console_pro/serializers/stats_serializer.rb +24 -0
  61. data/lib/rails_console_pro/services/column_stats_calculator.rb +64 -0
  62. data/lib/rails_console_pro/services/index_analyzer.rb +110 -0
  63. data/lib/rails_console_pro/services/stats_calculator.rb +40 -0
  64. data/lib/rails_console_pro/services/table_size_calculator.rb +43 -0
  65. data/lib/rails_console_pro/stats_result.rb +66 -0
  66. data/lib/rails_console_pro/version.rb +6 -0
  67. data/lib/rails_console_pro.rb +14 -0
  68. data/lib/tasks/rails_console_pro.rake +10 -0
  69. data/rails_console_pro.gemspec +60 -0
  70. metadata +240 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 25b06c72354531b78adcf1d9bb69603cbf9bb421d1c39b657dc53cda8439b121
4
+ data.tar.gz: c59152f9d427c3551593df5243f75817c3994ee3d2a25f890a4ed60a76ecd7bd
5
+ SHA512:
6
+ metadata.gz: 1c00cd583678bfcd5c4b38db9cf725232b87e860bc9c6618edc7e16219b51964183ea945947fb1f7be0026be3dffb8979c1c1040a092e6ba90ae970cf854aedb
7
+ data.tar.gz: 7299172eaf40a86cfba2049bef2248b92c79da0152cc4d26b0ae26e3a4fe2d4253f8cfbfd3b185d98a3eb3ae53d1fa8b67b2ce96b15dca32ea2ab7a3352243eb
data/.editorconfig ADDED
@@ -0,0 +1,12 @@
1
+ root = true
2
+
3
+ [*]
4
+ charset = utf-8
5
+ end_of_line = lf
6
+ insert_final_newline = true
7
+ indent_style = space
8
+ indent_size = 2
9
+ trim_trailing_whitespace = true
10
+
11
+ [*.md]
12
+ trim_trailing_whitespace = false
data/.rspec ADDED
@@ -0,0 +1,4 @@
1
+ --require spec_helper
2
+ --format documentation
3
+ --color
4
+
data/.rspec_status ADDED
@@ -0,0 +1,240 @@
1
+ example_id | status | run_time |
2
+ ---------------------------------------------------------- | ------- | --------------- |
3
+ ./spec/rails_console_pro/commands_spec.rb[1:1:1:1] | passed | 0.00461 seconds |
4
+ ./spec/rails_console_pro/commands_spec.rb[1:1:1:2] | passed | 0.00025 seconds |
5
+ ./spec/rails_console_pro/commands_spec.rb[1:1:2:1] | passed | 0.00029 seconds |
6
+ ./spec/rails_console_pro/commands_spec.rb[1:1:2:2] | passed | 0.00022 seconds |
7
+ ./spec/rails_console_pro/commands_spec.rb[1:1:2:3] | passed | 0.00024 seconds |
8
+ ./spec/rails_console_pro/commands_spec.rb[1:1:3:1] | passed | 0.00032 seconds |
9
+ ./spec/rails_console_pro/commands_spec.rb[1:1:4:1] | passed | 0.00028 seconds |
10
+ ./spec/rails_console_pro/commands_spec.rb[1:2:1:1] | passed | 0.00098 seconds |
11
+ ./spec/rails_console_pro/commands_spec.rb[1:2:1:2] | passed | 0.0008 seconds |
12
+ ./spec/rails_console_pro/commands_spec.rb[1:2:1:3] | passed | 0.00118 seconds |
13
+ ./spec/rails_console_pro/commands_spec.rb[1:2:1:4] | passed | 0.0008 seconds |
14
+ ./spec/rails_console_pro/commands_spec.rb[1:2:1:5] | passed | 0.00079 seconds |
15
+ ./spec/rails_console_pro/commands_spec.rb[1:2:1:6] | passed | 0.00078 seconds |
16
+ ./spec/rails_console_pro/commands_spec.rb[1:2:2:1] | passed | 0.00022 seconds |
17
+ ./spec/rails_console_pro/commands_spec.rb[1:2:2:2] | passed | 0.00029 seconds |
18
+ ./spec/rails_console_pro/commands_spec.rb[1:2:3:1] | passed | 0.00034 seconds |
19
+ ./spec/rails_console_pro/commands_spec.rb[1:2:4:1] | passed | 0.00042 seconds |
20
+ ./spec/rails_console_pro/commands_spec.rb[1:3:1:1] | passed | 0.00028 seconds |
21
+ ./spec/rails_console_pro/commands_spec.rb[1:3:1:2] | passed | 0.00087 seconds |
22
+ ./spec/rails_console_pro/commands_spec.rb[1:3:1:3] | passed | 0.00023 seconds |
23
+ ./spec/rails_console_pro/commands_spec.rb[1:3:1:4] | passed | 0.0002 seconds |
24
+ ./spec/rails_console_pro/commands_spec.rb[1:3:2:1] | passed | 0.00023 seconds |
25
+ ./spec/rails_console_pro/commands_spec.rb[1:3:2:2] | passed | 0.00054 seconds |
26
+ ./spec/rails_console_pro/commands_spec.rb[1:3:2:3] | passed | 0.0002 seconds |
27
+ ./spec/rails_console_pro/commands_spec.rb[1:3:2:4] | passed | 0.0002 seconds |
28
+ ./spec/rails_console_pro/commands_spec.rb[1:3:2:5] | passed | 0.00022 seconds |
29
+ ./spec/rails_console_pro/commands_spec.rb[1:3:3:1] | passed | 0.00019 seconds |
30
+ ./spec/rails_console_pro/commands_spec.rb[1:3:4:1] | passed | 0.00044 seconds |
31
+ ./spec/rails_console_pro/commands_spec.rb[1:3:5:1] | passed | 0.00051 seconds |
32
+ ./spec/rails_console_pro/commands_spec.rb[1:4:1:1] | passed | 0.00047 seconds |
33
+ ./spec/rails_console_pro/commands_spec.rb[1:4:1:2] | passed | 0.00108 seconds |
34
+ ./spec/rails_console_pro/commands_spec.rb[1:4:1:3] | passed | 0.00044 seconds |
35
+ ./spec/rails_console_pro/commands_spec.rb[1:4:1:4] | passed | 0.00044 seconds |
36
+ ./spec/rails_console_pro/commands_spec.rb[1:4:1:5] | passed | 0.00044 seconds |
37
+ ./spec/rails_console_pro/commands_spec.rb[1:4:1:6] | passed | 0.00052 seconds |
38
+ ./spec/rails_console_pro/commands_spec.rb[1:4:2:1] | passed | 0.00048 seconds |
39
+ ./spec/rails_console_pro/commands_spec.rb[1:4:2:2] | passed | 0.00045 seconds |
40
+ ./spec/rails_console_pro/commands_spec.rb[1:4:3:1] | passed | 0.00023 seconds |
41
+ ./spec/rails_console_pro/commands_spec.rb[1:4:3:2] | passed | 0.00025 seconds |
42
+ ./spec/rails_console_pro/commands_spec.rb[1:4:4:1] | passed | 0.00028 seconds |
43
+ ./spec/rails_console_pro/commands_spec.rb[1:4:4:2] | passed | 0.00029 seconds |
44
+ ./spec/rails_console_pro/commands_spec.rb[1:5:1:1] | passed | 0.001 seconds |
45
+ ./spec/rails_console_pro/commands_spec.rb[1:5:1:2] | passed | 0.00107 seconds |
46
+ ./spec/rails_console_pro/commands_spec.rb[1:5:1:3] | passed | 0.00095 seconds |
47
+ ./spec/rails_console_pro/commands_spec.rb[1:5:1:4] | passed | 0.00089 seconds |
48
+ ./spec/rails_console_pro/commands_spec.rb[1:5:2:1] | passed | 0.0003 seconds |
49
+ ./spec/rails_console_pro/commands_spec.rb[1:5:3:1] | passed | 0.00072 seconds |
50
+ ./spec/rails_console_pro/configuration_spec.rb[1:1:1] | passed | 0.00025 seconds |
51
+ ./spec/rails_console_pro/configuration_spec.rb[1:1:2] | passed | 0.00029 seconds |
52
+ ./spec/rails_console_pro/configuration_spec.rb[1:1:3] | passed | 0.00024 seconds |
53
+ ./spec/rails_console_pro/configuration_spec.rb[1:1:4] | passed | 0.00022 seconds |
54
+ ./spec/rails_console_pro/configuration_spec.rb[1:1:5] | passed | 0.0002 seconds |
55
+ ./spec/rails_console_pro/configuration_spec.rb[1:2:1] | passed | 0.00021 seconds |
56
+ ./spec/rails_console_pro/configuration_spec.rb[1:2:2] | passed | 0.0002 seconds |
57
+ ./spec/rails_console_pro/configuration_spec.rb[1:2:3] | passed | 0.00022 seconds |
58
+ ./spec/rails_console_pro/configuration_spec.rb[1:3:1] | passed | 0.0002 seconds |
59
+ ./spec/rails_console_pro/configuration_spec.rb[1:3:2] | passed | 0.00021 seconds |
60
+ ./spec/rails_console_pro/configuration_spec.rb[1:4:1] | passed | 0.0002 seconds |
61
+ ./spec/rails_console_pro/configuration_spec.rb[1:4:2] | passed | 0.0002 seconds |
62
+ ./spec/rails_console_pro/configuration_spec.rb[1:5:1] | passed | 0.0002 seconds |
63
+ ./spec/rails_console_pro/configuration_spec.rb[1:5:2] | passed | 0.0002 seconds |
64
+ ./spec/rails_console_pro/configuration_spec.rb[1:6:1] | passed | 0.00019 seconds |
65
+ ./spec/rails_console_pro/configuration_spec.rb[1:6:2] | passed | 0.0002 seconds |
66
+ ./spec/rails_console_pro/configuration_spec.rb[1:7:1] | passed | 0.0002 seconds |
67
+ ./spec/rails_console_pro/configuration_spec.rb[1:8:1] | passed | 0.00021 seconds |
68
+ ./spec/rails_console_pro/configuration_spec.rb[1:8:2] | passed | 0.00018 seconds |
69
+ ./spec/rails_console_pro/configuration_spec.rb[1:9:1] | passed | 0.0002 seconds |
70
+ ./spec/rails_console_pro/configuration_spec.rb[1:10:1] | passed | 0.0002 seconds |
71
+ ./spec/rails_console_pro/configuration_spec.rb[1:11:1] | passed | 0.00022 seconds |
72
+ ./spec/rails_console_pro/configuration_spec.rb[1:12:1] | passed | 0.00019 seconds |
73
+ ./spec/rails_console_pro/edge_cases_spec.rb[1:1:1:1] | passed | 0.00048 seconds |
74
+ ./spec/rails_console_pro/edge_cases_spec.rb[1:1:2:1] | passed | 0.00029 seconds |
75
+ ./spec/rails_console_pro/edge_cases_spec.rb[1:1:3:1] | passed | 0.00023 seconds |
76
+ ./spec/rails_console_pro/edge_cases_spec.rb[1:2:1:1] | passed | 0.00078 seconds |
77
+ ./spec/rails_console_pro/edge_cases_spec.rb[1:2:2:1] | passed | 0.00023 seconds |
78
+ ./spec/rails_console_pro/edge_cases_spec.rb[1:2:2:2] | passed | 0.0002 seconds |
79
+ ./spec/rails_console_pro/edge_cases_spec.rb[1:2:2:3] | passed | 0.00021 seconds |
80
+ ./spec/rails_console_pro/edge_cases_spec.rb[1:2:3:1] | passed | 0.00044 seconds |
81
+ ./spec/rails_console_pro/edge_cases_spec.rb[1:3:1:1] | passed | 0.00087 seconds |
82
+ ./spec/rails_console_pro/edge_cases_spec.rb[1:3:2:1] | passed | 0.00844 seconds |
83
+ ./spec/rails_console_pro/edge_cases_spec.rb[1:3:3:1] | passed | 0.00121 seconds |
84
+ ./spec/rails_console_pro/edge_cases_spec.rb[1:4:1:1] | passed | 0.00103 seconds |
85
+ ./spec/rails_console_pro/edge_cases_spec.rb[1:4:2:1] | passed | 0.00021 seconds |
86
+ ./spec/rails_console_pro/edge_cases_spec.rb[1:4:3:1] | passed | 0.00021 seconds |
87
+ ./spec/rails_console_pro/edge_cases_spec.rb[1:5:1] | passed | 0.00035 seconds |
88
+ ./spec/rails_console_pro/edge_cases_spec.rb[1:5:2] | passed | 0.00197 seconds |
89
+ ./spec/rails_console_pro/edge_cases_spec.rb[1:6:1:1] | passed | 0.00029 seconds |
90
+ ./spec/rails_console_pro/edge_cases_spec.rb[1:6:1:2] | passed | 0.00041 seconds |
91
+ ./spec/rails_console_pro/edge_cases_spec.rb[1:6:2:1] | passed | 0.00032 seconds |
92
+ ./spec/rails_console_pro/edge_cases_spec.rb[1:6:2:2] | passed | 0.0005 seconds |
93
+ ./spec/rails_console_pro/edge_cases_spec.rb[1:7:1] | passed | 0.0002 seconds |
94
+ ./spec/rails_console_pro/edge_cases_spec.rb[1:7:2] | passed | 0.0002 seconds |
95
+ ./spec/rails_console_pro/edge_cases_spec.rb[1:8:1] | passed | 0.00724 seconds |
96
+ ./spec/rails_console_pro/edge_cases_spec.rb[1:8:2] | passed | 0.00031 seconds |
97
+ ./spec/rails_console_pro/model_validator_spec.rb[1:1:1:1] | passed | 0.00023 seconds |
98
+ ./spec/rails_console_pro/model_validator_spec.rb[1:1:1:2] | passed | 0.00022 seconds |
99
+ ./spec/rails_console_pro/model_validator_spec.rb[1:1:2:1] | passed | 0.00022 seconds |
100
+ ./spec/rails_console_pro/model_validator_spec.rb[1:1:2:2] | passed | 0.00023 seconds |
101
+ ./spec/rails_console_pro/model_validator_spec.rb[1:1:2:3] | passed | 0.00021 seconds |
102
+ ./spec/rails_console_pro/model_validator_spec.rb[1:1:2:4] | passed | 0.00021 seconds |
103
+ ./spec/rails_console_pro/model_validator_spec.rb[1:2:1:1] | passed | 0.00021 seconds |
104
+ ./spec/rails_console_pro/model_validator_spec.rb[1:2:1:2] | passed | 0.00036 seconds |
105
+ ./spec/rails_console_pro/model_validator_spec.rb[1:2:2:1] | passed | 0.00041 seconds |
106
+ ./spec/rails_console_pro/model_validator_spec.rb[1:2:3:1] | passed | 0.00021 seconds |
107
+ ./spec/rails_console_pro/model_validator_spec.rb[1:3:1:1] | passed | 0.00025 seconds |
108
+ ./spec/rails_console_pro/model_validator_spec.rb[1:3:2:1] | passed | 0.0002 seconds |
109
+ ./spec/rails_console_pro/model_validator_spec.rb[1:3:3:1] | passed | 0.0002 seconds |
110
+ ./spec/rails_console_pro/model_validator_spec.rb[1:4:1:1] | pending | 0.00038 seconds |
111
+ ./spec/rails_console_pro/model_validator_spec.rb[1:4:2:1] | passed | 0.0003 seconds |
112
+ ./spec/rails_console_pro/model_validator_spec.rb[1:4:3:1] | passed | 0.00027 seconds |
113
+ ./spec/rails_console_pro/model_validator_spec.rb[1:5:1:1] | passed | 0.00023 seconds |
114
+ ./spec/rails_console_pro/model_validator_spec.rb[1:5:1:2] | passed | 0.00029 seconds |
115
+ ./spec/rails_console_pro/model_validator_spec.rb[1:5:2:1] | passed | 0.00028 seconds |
116
+ ./spec/rails_console_pro/model_validator_spec.rb[1:5:3:1] | passed | 0.00021 seconds |
117
+ ./spec/rails_console_pro/model_validator_spec.rb[1:5:4:1] | passed | 0.0003 seconds |
118
+ ./spec/rails_console_pro/model_validator_spec.rb[1:6:1:1] | passed | 0.00036 seconds |
119
+ ./spec/rails_console_pro/model_validator_spec.rb[1:6:2:1] | passed | 0.00022 seconds |
120
+ ./spec/rails_console_pro/model_validator_spec.rb[1:6:3:1] | passed | 0.00032 seconds |
121
+ ./spec/rails_console_pro/model_validator_spec.rb[1:7:1] | passed | 0.00047 seconds |
122
+ ./spec/rails_console_pro/model_validator_spec.rb[1:7:2] | passed | 0.00044 seconds |
123
+ ./spec/rails_console_pro/model_validator_spec.rb[1:8:1:1] | passed | 0.00023 seconds |
124
+ ./spec/rails_console_pro/model_validator_spec.rb[1:8:2:1] | passed | 0.00021 seconds |
125
+ ./spec/rails_console_pro/model_validator_spec.rb[1:8:3:1] | passed | 0.00049 seconds |
126
+ ./spec/rails_console_pro/model_validator_spec.rb[1:9:1:1] | passed | 0.00027 seconds |
127
+ ./spec/rails_console_pro/model_validator_spec.rb[1:9:2:1] | passed | 0.00022 seconds |
128
+ ./spec/rails_console_pro/model_validator_spec.rb[1:10:1:1] | passed | 0.00025 seconds |
129
+ ./spec/rails_console_pro/model_validator_spec.rb[1:10:2:1] | passed | 0.00025 seconds |
130
+ ./spec/rails_console_pro/model_validator_spec.rb[1:10:3:1] | passed | 0.00024 seconds |
131
+ ./spec/rails_console_pro/model_validator_spec.rb[1:11:1:1] | passed | 0.00025 seconds |
132
+ ./spec/rails_console_pro/model_validator_spec.rb[1:11:2:1] | passed | 0.00024 seconds |
133
+ ./spec/rails_console_pro/model_validator_spec.rb[1:12:1:1] | passed | 0.00034 seconds |
134
+ ./spec/rails_console_pro/model_validator_spec.rb[1:12:2:1] | passed | 0.0003 seconds |
135
+ ./spec/rails_console_pro/model_validator_spec.rb[1:13:1:1] | passed | 0.00095 seconds |
136
+ ./spec/rails_console_pro/model_validator_spec.rb[1:13:2:1] | passed | 0.00029 seconds |
137
+ ./spec/rails_console_pro/model_validator_spec.rb[1:14:1:1] | passed | 0.00026 seconds |
138
+ ./spec/rails_console_pro/model_validator_spec.rb[1:14:2:1] | passed | 0.00028 seconds |
139
+ ./spec/rails_console_pro/model_validator_spec.rb[1:15:1:1] | passed | 0.00021 seconds |
140
+ ./spec/rails_console_pro/model_validator_spec.rb[1:15:1:2] | passed | 0.00037 seconds |
141
+ ./spec/rails_console_pro/model_validator_spec.rb[1:15:2:1] | passed | 0.0002 seconds |
142
+ ./spec/rails_console_pro/model_validator_spec.rb[1:16:1:1] | passed | 0.00022 seconds |
143
+ ./spec/rails_console_pro/model_validator_spec.rb[1:16:2:1] | passed | 0.0002 seconds |
144
+ ./spec/rails_console_pro/pagination_spec.rb[1:1:1:1] | passed | 0.00025 seconds |
145
+ ./spec/rails_console_pro/pagination_spec.rb[1:1:1:2] | passed | 0.00022 seconds |
146
+ ./spec/rails_console_pro/pagination_spec.rb[1:1:1:3] | passed | 0.00024 seconds |
147
+ ./spec/rails_console_pro/pagination_spec.rb[1:1:2:1] | passed | 0.00052 seconds |
148
+ ./spec/rails_console_pro/pagination_spec.rb[1:1:2:2] | passed | 0.00037 seconds |
149
+ ./spec/rails_console_pro/pagination_spec.rb[1:1:2:3] | passed | 0.00034 seconds |
150
+ ./spec/rails_console_pro/pagination_spec.rb[1:1:3:1] | passed | 0.00239 seconds |
151
+ ./spec/rails_console_pro/pagination_spec.rb[1:1:3:2] | passed | 0.00024 seconds |
152
+ ./spec/rails_console_pro/pagination_spec.rb[1:1:3:3] | passed | 0.00028 seconds |
153
+ ./spec/rails_console_pro/pagination_spec.rb[1:1:4:1] | passed | 0.0003 seconds |
154
+ ./spec/rails_console_pro/pagination_spec.rb[1:1:4:2] | passed | 0.00026 seconds |
155
+ ./spec/rails_console_pro/pagination_spec.rb[1:1:4:3] | passed | 0.00027 seconds |
156
+ ./spec/rails_console_pro/pagination_spec.rb[1:1:4:4] | passed | 0.00035 seconds |
157
+ ./spec/rails_console_pro/pagination_spec.rb[1:1:4:5] | passed | 0.00028 seconds |
158
+ ./spec/rails_console_pro/pagination_spec.rb[1:1:4:6] | passed | 0.00027 seconds |
159
+ ./spec/rails_console_pro/pagination_spec.rb[1:1:5:1] | passed | 0.00022 seconds |
160
+ ./spec/rails_console_pro/pagination_spec.rb[1:1:5:2] | passed | 0.00021 seconds |
161
+ ./spec/rails_console_pro/pagination_spec.rb[1:1:5:3] | passed | 0.00021 seconds |
162
+ ./spec/rails_console_pro/pagination_spec.rb[1:1:5:4] | passed | 0.00022 seconds |
163
+ ./spec/rails_console_pro/pagination_spec.rb[1:1:5:5] | passed | 0.00028 seconds |
164
+ ./spec/rails_console_pro/pagination_spec.rb[1:1:6:1] | passed | 0.0003 seconds |
165
+ ./spec/rails_console_pro/pagination_spec.rb[1:1:6:2] | passed | 0.00022 seconds |
166
+ ./spec/rails_console_pro/pagination_spec.rb[1:1:6:3] | passed | 0.00021 seconds |
167
+ ./spec/rails_console_pro/pagination_spec.rb[1:2:1:1] | passed | 0.00088 seconds |
168
+ ./spec/rails_console_pro/pagination_spec.rb[1:2:1:2] | passed | 0.00045 seconds |
169
+ ./spec/rails_console_pro/pagination_spec.rb[1:2:1:3] | passed | 0.00029 seconds |
170
+ ./spec/rails_console_pro/pagination_spec.rb[1:3:1:1] | passed | 0.00043 seconds |
171
+ ./spec/rails_console_pro/pagination_spec.rb[1:3:1:2] | passed | 0.00041 seconds |
172
+ ./spec/rails_console_pro/pagination_spec.rb[1:4:1] | passed | 0.00021 seconds |
173
+ ./spec/rails_console_pro/pagination_spec.rb[1:4:2] | passed | 0.0002 seconds |
174
+ ./spec/rails_console_pro/pagination_spec.rb[1:4:3] | passed | 0.00019 seconds |
175
+ ./spec/rails_console_pro/printers_spec.rb[1:1:1:1] | passed | 0.00056 seconds |
176
+ ./spec/rails_console_pro/printers_spec.rb[1:1:1:2] | passed | 0.00055 seconds |
177
+ ./spec/rails_console_pro/printers_spec.rb[1:1:1:3] | passed | 0.00045 seconds |
178
+ ./spec/rails_console_pro/printers_spec.rb[1:2:1:1] | passed | 0.00041 seconds |
179
+ ./spec/rails_console_pro/printers_spec.rb[1:2:1:2] | passed | 0.00029 seconds |
180
+ ./spec/rails_console_pro/printers_spec.rb[1:2:1:3] | passed | 0.00033 seconds |
181
+ ./spec/rails_console_pro/printers_spec.rb[1:2:1:4] | passed | 0.00033 seconds |
182
+ ./spec/rails_console_pro/printers_spec.rb[1:2:1:5] | passed | 0.0003 seconds |
183
+ ./spec/rails_console_pro/printers_spec.rb[1:3:1:1] | passed | 0.00035 seconds |
184
+ ./spec/rails_console_pro/printers_spec.rb[1:3:1:2] | passed | 0.0003 seconds |
185
+ ./spec/rails_console_pro/printers_spec.rb[1:3:1:3] | passed | 0.0003 seconds |
186
+ ./spec/rails_console_pro/printers_spec.rb[1:3:1:4] | passed | 0.00032 seconds |
187
+ ./spec/rails_console_pro/printers_spec.rb[1:4:1:1] | passed | 0.00037 seconds |
188
+ ./spec/rails_console_pro/printers_spec.rb[1:4:1:2] | passed | 0.00032 seconds |
189
+ ./spec/rails_console_pro/printers_spec.rb[1:4:1:3] | passed | 0.0003 seconds |
190
+ ./spec/rails_console_pro/printers_spec.rb[1:4:1:4] | passed | 0.00032 seconds |
191
+ ./spec/rails_console_pro/printers_spec.rb[1:5:1:1] | passed | 0.00021 seconds |
192
+ ./spec/rails_console_pro/printers_spec.rb[1:5:1:2] | passed | 0.00021 seconds |
193
+ ./spec/rails_console_pro/printers_spec.rb[1:5:1:3] | passed | 0.00022 seconds |
194
+ ./spec/rails_console_pro/printers_spec.rb[1:5:1:4] | passed | 0.0002 seconds |
195
+ ./spec/rails_console_pro/printers_spec.rb[1:5:1:5] | passed | 0.00024 seconds |
196
+ ./spec/rails_console_pro/printers_spec.rb[1:5:2:1] | passed | 0.00028 seconds |
197
+ ./spec/rails_console_pro/printers_spec.rb[1:5:3:1] | passed | 0.00027 seconds |
198
+ ./spec/rails_console_pro/printers_spec.rb[1:5:4:1] | passed | 0.00029 seconds |
199
+ ./spec/rails_console_pro/result_objects_spec.rb[1:1:1:1] | passed | 0.00726 seconds |
200
+ ./spec/rails_console_pro/result_objects_spec.rb[1:1:1:2] | passed | 0.00065 seconds |
201
+ ./spec/rails_console_pro/result_objects_spec.rb[1:1:1:3] | passed | 0.00098 seconds |
202
+ ./spec/rails_console_pro/result_objects_spec.rb[1:1:2:1] | passed | 0.0005 seconds |
203
+ ./spec/rails_console_pro/result_objects_spec.rb[1:1:2:2] | passed | 0.00106 seconds |
204
+ ./spec/rails_console_pro/result_objects_spec.rb[1:1:3:1] | passed | 0.00117 seconds |
205
+ ./spec/rails_console_pro/result_objects_spec.rb[1:1:3:2] | passed | 0.00057 seconds |
206
+ ./spec/rails_console_pro/result_objects_spec.rb[1:1:3:3] | passed | 0.00092 seconds |
207
+ ./spec/rails_console_pro/result_objects_spec.rb[1:1:4:1] | passed | 0.00086 seconds |
208
+ ./spec/rails_console_pro/result_objects_spec.rb[1:1:5:1] | passed | 0.00079 seconds |
209
+ ./spec/rails_console_pro/result_objects_spec.rb[1:1:5:2] | passed | 0.00059 seconds |
210
+ ./spec/rails_console_pro/result_objects_spec.rb[1:1:6:1] | passed | 0.00122 seconds |
211
+ ./spec/rails_console_pro/result_objects_spec.rb[1:1:6:2] | passed | 0.00101 seconds |
212
+ ./spec/rails_console_pro/result_objects_spec.rb[1:2:1:1] | passed | 0.00022 seconds |
213
+ ./spec/rails_console_pro/result_objects_spec.rb[1:2:1:2] | passed | 0.00028 seconds |
214
+ ./spec/rails_console_pro/result_objects_spec.rb[1:2:2:1] | passed | 0.00021 seconds |
215
+ ./spec/rails_console_pro/result_objects_spec.rb[1:2:2:2] | passed | 0.00028 seconds |
216
+ ./spec/rails_console_pro/result_objects_spec.rb[1:2:3:1] | passed | 0.0002 seconds |
217
+ ./spec/rails_console_pro/result_objects_spec.rb[1:2:3:2] | passed | 0.0002 seconds |
218
+ ./spec/rails_console_pro/result_objects_spec.rb[1:2:4:1] | passed | 0.0002 seconds |
219
+ ./spec/rails_console_pro/result_objects_spec.rb[1:2:4:2] | passed | 0.00019 seconds |
220
+ ./spec/rails_console_pro/result_objects_spec.rb[1:2:5:1] | passed | 0.00024 seconds |
221
+ ./spec/rails_console_pro/result_objects_spec.rb[1:2:6:1] | passed | 0.00042 seconds |
222
+ ./spec/rails_console_pro/result_objects_spec.rb[1:2:7:1] | passed | 0.00028 seconds |
223
+ ./spec/rails_console_pro/result_objects_spec.rb[1:3:1:1] | passed | 0.00022 seconds |
224
+ ./spec/rails_console_pro/result_objects_spec.rb[1:3:1:2] | passed | 0.00022 seconds |
225
+ ./spec/rails_console_pro/result_objects_spec.rb[1:3:1:3] | passed | 0.0002 seconds |
226
+ ./spec/rails_console_pro/result_objects_spec.rb[1:3:2:1] | passed | 0.0002 seconds |
227
+ ./spec/rails_console_pro/result_objects_spec.rb[1:3:2:2] | passed | 0.0002 seconds |
228
+ ./spec/rails_console_pro/result_objects_spec.rb[1:3:3:1] | passed | 0.00028 seconds |
229
+ ./spec/rails_console_pro/result_objects_spec.rb[1:3:3:2] | passed | 0.0002 seconds |
230
+ ./spec/rails_console_pro/result_objects_spec.rb[1:3:4:1] | passed | 0.0002 seconds |
231
+ ./spec/rails_console_pro/result_objects_spec.rb[1:3:4:2] | passed | 0.00019 seconds |
232
+ ./spec/rails_console_pro/result_objects_spec.rb[1:3:5:1] | passed | 0.00024 seconds |
233
+ ./spec/rails_console_pro/result_objects_spec.rb[1:3:6:1] | passed | 0.00033 seconds |
234
+ ./spec/rails_console_pro/result_objects_spec.rb[1:3:7:1] | passed | 0.00034 seconds |
235
+ ./spec/rails_console_pro/result_objects_spec.rb[1:4:1:1] | passed | 0.0002 seconds |
236
+ ./spec/rails_console_pro/result_objects_spec.rb[1:4:2:1] | passed | 0.00019 seconds |
237
+ ./spec/rails_console_pro/result_objects_spec.rb[1:4:2:2] | passed | 0.00019 seconds |
238
+ ./spec/rails_console_pro/result_objects_spec.rb[1:4:3:1] | passed | 0.0002 seconds |
239
+ ./spec/rails_console_pro/result_objects_spec.rb[1:4:3:2] | passed | 0.00019 seconds |
240
+ ./spec/rails_console_pro/result_objects_spec.rb[1:4:4:1] | passed | 0.00021 seconds |
data/.rubocop.yml ADDED
@@ -0,0 +1,26 @@
1
+ AllCops:
2
+ TargetRubyVersion: 3.0
3
+ NewCops: enable
4
+ Exclude:
5
+ - 'bin/**/*'
6
+ - 'db/**/*'
7
+ - 'config/**/*'
8
+ - 'script/**/*'
9
+ - 'vendor/**/*'
10
+ - 'spec/spec_helper.rb'
11
+ - 'spec/rails_helper.rb'
12
+
13
+ Style/Documentation:
14
+ Enabled: false
15
+
16
+ Style/FrozenStringLiteralComment:
17
+ Enabled: true
18
+
19
+ Metrics/BlockLength:
20
+ Exclude:
21
+ - 'spec/**/*'
22
+ - '*.gemspec'
23
+
24
+ Layout/LineLength:
25
+ Max: 120
26
+
data/CHANGELOG.md ADDED
@@ -0,0 +1,24 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [Unreleased]
9
+
10
+ ## [0.1.0] - 2025-01-XX
11
+
12
+ ### Added
13
+ - Initial release
14
+ - Schema inspection command
15
+ - SQL explain analysis
16
+ - Association navigator
17
+ - Model statistics
18
+ - Object diffing
19
+ - Export to JSON, YAML, and HTML
20
+ - Beautiful colored formatting
21
+ - Smart pagination
22
+ - Comprehensive configuration system
23
+ - Full test coverage
24
+
data/CONTRIBUTING.md ADDED
@@ -0,0 +1,76 @@
1
+ # Contributing to Rails Console Pro
2
+
3
+ Thank you for your interest in contributing to Rails Console Pro!
4
+
5
+ ## Development Setup
6
+
7
+ 1. **Fork and clone the repository:**
8
+ ```bash
9
+ git clone https://github.com/yourusername/rails_console_pro.git
10
+ cd rails_console_pro
11
+ ```
12
+
13
+ 2. **Install dependencies:**
14
+ ```bash
15
+ bundle install
16
+ ```
17
+
18
+ 3. **Run tests:**
19
+ ```bash
20
+ bundle exec rspec
21
+ ```
22
+
23
+ 4. **Build the gem:**
24
+ ```bash
25
+ gem build rails_console_pro.gemspec
26
+ ```
27
+
28
+ ## Making Changes
29
+
30
+ 1. Create a feature branch:
31
+ ```bash
32
+ git checkout -b feature/my-feature
33
+ ```
34
+
35
+ 2. Make your changes and add tests
36
+
37
+ 3. Ensure all tests pass:
38
+ ```bash
39
+ bundle exec rspec
40
+ ```
41
+
42
+ 4. Run RuboCop:
43
+ ```bash
44
+ bundle exec rubocop
45
+ ```
46
+
47
+ 5. Commit your changes:
48
+ ```bash
49
+ git commit -m "Add feature: description"
50
+ ```
51
+
52
+ 6. Push and create a pull request
53
+
54
+ ## Code Style
55
+
56
+ - Follow Ruby style guide
57
+ - Use RuboCop for linting
58
+ - Write tests for new features
59
+ - Update documentation as needed
60
+
61
+ ## Testing
62
+
63
+ - Write tests for all new features
64
+ - Ensure edge cases are covered
65
+ - Maintain or improve test coverage
66
+
67
+ ## Documentation
68
+
69
+ - Update README.md for user-facing changes
70
+ - Update CHANGELOG.md for all changes
71
+ - Add code comments for complex logic
72
+
73
+ ## Questions?
74
+
75
+ Open an issue or start a discussion!
76
+
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 [Your Name]
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
22
+
data/QUICK_START.md ADDED
@@ -0,0 +1,112 @@
1
+ # Rails Console Pro - Quick Start Guide
2
+
3
+ ## Installation
4
+
5
+ 1. **Add to Gemfile:**
6
+ ```ruby
7
+ gem 'rails_console_pro'
8
+ ```
9
+
10
+ 2. **Install:**
11
+ ```bash
12
+ bundle install
13
+ ```
14
+
15
+ 3. **Start Rails Console:**
16
+ ```bash
17
+ rails console
18
+ ```
19
+
20
+ That's it! The gem automatically loads and enhances your console.
21
+
22
+ ## Quick Examples
23
+
24
+ ### Schema Inspection
25
+ ```ruby
26
+ schema User
27
+ ```
28
+ [Learn more →](docs/SCHEMA_INSPECTION.md)
29
+
30
+ ### SQL Explain
31
+ ```ruby
32
+ explain User.where(active: true)
33
+ ```
34
+ [Learn more →](docs/SQL_EXPLAIN.md)
35
+
36
+ ### Model Statistics
37
+ ```ruby
38
+ stats User
39
+ ```
40
+ [Learn more →](docs/MODEL_STATISTICS.md)
41
+
42
+ ### Association Navigation
43
+ ```ruby
44
+ navigate User
45
+ ```
46
+ [Learn more →](docs/ASSOCIATION_NAVIGATION.md)
47
+
48
+ ### Object Diffing
49
+ ```ruby
50
+ user1 = User.first
51
+ user2 = User.last
52
+ diff user1, user2
53
+ ```
54
+ [Learn more →](docs/OBJECT_DIFFING.md)
55
+
56
+ ### Export
57
+ ```ruby
58
+ export schema(User) user_schema.json
59
+ ```
60
+ [Learn more →](docs/EXPORT.md)
61
+
62
+ ### Beautiful Formatting
63
+ ```ruby
64
+ User.first # Automatically formatted with colors
65
+ ```
66
+ [Learn more →](docs/FORMATTING.md)
67
+
68
+ ## Configuration (Optional)
69
+
70
+ Create `config/initializers/rails_console_pro.rb`:
71
+
72
+ ```ruby
73
+ RailsConsolePro.configure do |config|
74
+ # Color scheme
75
+ config.color_scheme = :dark # or :light
76
+
77
+ # Welcome message
78
+ config.show_welcome_message = true
79
+
80
+ # Pagination
81
+ config.pagination_enabled = true
82
+ config.pagination_threshold = 10
83
+ config.pagination_page_size = 5
84
+ end
85
+ ```
86
+
87
+ Or use the generator:
88
+ ```bash
89
+ rails generate rails_console_pro:install
90
+ ```
91
+
92
+ ## Requirements
93
+
94
+ - Ruby >= 3.0.0
95
+ - Rails >= 6.0
96
+ - Pry >= 0.14.0 (recommended)
97
+
98
+ ## Documentation
99
+
100
+ - [Schema Inspection](docs/SCHEMA_INSPECTION.md)
101
+ - [SQL Explain](docs/SQL_EXPLAIN.md)
102
+ - [Model Statistics](docs/MODEL_STATISTICS.md)
103
+ - [Association Navigation](docs/ASSOCIATION_NAVIGATION.md)
104
+ - [Object Diffing](docs/OBJECT_DIFFING.md)
105
+ - [Export](docs/EXPORT.md)
106
+ - [Formatting](docs/FORMATTING.md)
107
+
108
+ ## Need Help?
109
+
110
+ - Full documentation: See [README.md](README.md)
111
+ - Issues: https://github.com/yourusername/rails_console_pro/issues
112
+
data/README.md ADDED
@@ -0,0 +1,124 @@
1
+ # Rails Console Pro
2
+
3
+ [![Gem Version](https://badge.fury.io/rb/rails_console_pro.svg)](https://badge.fury.io/rb/rails_console_pro)
4
+ [![Build Status](https://github.com/yourusername/rails_console_pro/workflows/CI/badge.svg)](https://github.com/yourusername/rails_console_pro/actions)
5
+
6
+ **Enhanced Rails console with powerful debugging tools and beautiful formatting.**
7
+
8
+ Rails Console Pro transforms your Rails console into a powerful debugging environment with schema inspection, SQL analysis, association navigation, and beautiful colored output.
9
+
10
+ ## ✨ Features
11
+
12
+ - 🎨 **Beautiful Formatting** - Colored, styled output for ActiveRecord objects, relations, and collections
13
+ - 📊 **Schema Inspection** - Inspect database schemas with columns, indexes, associations, validations, and scopes
14
+ - 🔍 **SQL Explain** - Analyze query execution plans with performance recommendations
15
+ - 🧭 **Association Navigator** - Interactive navigation through model associations
16
+ - 📈 **Model Statistics** - Record counts, growth rates, table sizes, and index usage
17
+ - 🔄 **Object Diffing** - Compare ActiveRecord objects and highlight differences
18
+ - 💾 **Export Capabilities** - Export to JSON, YAML, and HTML formats
19
+ - 📄 **Smart Pagination** - Automatic pagination for large collections
20
+
21
+ ## 🚀 Installation
22
+
23
+ Add this line to your application's Gemfile:
24
+
25
+ ```ruby
26
+ gem 'rails_console_pro'
27
+ ```
28
+
29
+ And then execute:
30
+
31
+ ```bash
32
+ $ bundle install
33
+ ```
34
+
35
+ Or install it yourself as:
36
+
37
+ ```bash
38
+ $ gem install rails_console_pro
39
+ ```
40
+
41
+ ## 📖 Usage
42
+
43
+ The gem automatically loads when you start your Rails console. No additional setup required!
44
+
45
+ ### Quick Examples
46
+
47
+ ```ruby
48
+ # Schema inspection
49
+ schema User
50
+
51
+ # SQL explain
52
+ explain User.where(active: true)
53
+
54
+ # Model statistics
55
+ stats User
56
+
57
+ # Association navigation
58
+ navigate User
59
+
60
+ # Object diffing
61
+ diff user1, user2
62
+
63
+ # Export
64
+ export schema(User) user_schema.json
65
+ ```
66
+
67
+ See [QUICK_START.md](QUICK_START.md) for more examples and detailed documentation for each feature.
68
+
69
+ ## ⚙️ Configuration
70
+
71
+ Configure Rails Console Pro in an initializer:
72
+
73
+ ```ruby
74
+ # config/initializers/rails_console_pro.rb
75
+ RailsConsolePro.configure do |config|
76
+ # Enable/disable features
77
+ config.enabled = true
78
+ config.schema_command_enabled = true
79
+ config.explain_command_enabled = true
80
+ config.stats_command_enabled = true
81
+
82
+ # Color scheme
83
+ config.color_scheme = :dark # or :light
84
+
85
+ # Customize colors
86
+ config.set_color(:header, :bright_blue)
87
+
88
+ # Pagination
89
+ config.pagination_enabled = true
90
+ config.pagination_threshold = 10
91
+ config.pagination_page_size = 5
92
+ end
93
+ ```
94
+
95
+ ## 🎯 Requirements
96
+
97
+ - Ruby >= 3.0.0
98
+ - Rails >= 6.0
99
+ - Pry >= 0.14.0 (recommended)
100
+
101
+ ## 📚 Documentation
102
+
103
+ - [Quick Start Guide](QUICK_START.md) - Get started in minutes
104
+ - [Schema Inspection](docs/SCHEMA_INSPECTION.md) - Inspect database schemas
105
+ - [SQL Explain](docs/SQL_EXPLAIN.md) - Analyze query performance
106
+ - [Model Statistics](docs/MODEL_STATISTICS.md) - Get model statistics
107
+ - [Association Navigation](docs/ASSOCIATION_NAVIGATION.md) - Navigate model associations
108
+ - [Object Diffing](docs/OBJECT_DIFFING.md) - Compare objects
109
+ - [Export](docs/EXPORT.md) - Export to JSON, YAML, HTML
110
+ - [Formatting](docs/FORMATTING.md) - Beautiful console output
111
+
112
+ ## 🤝 Contributing
113
+
114
+ Bug reports and pull requests are welcome on GitHub at https://github.com/yourusername/rails_console_pro.
115
+
116
+ ## 📝 License
117
+
118
+ The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
119
+
120
+ ## 🙏 Acknowledgments
121
+
122
+ - Inspired by awesome_print, hirb, and other console enhancement gems
123
+ - Built with love for the Rails community
124
+