scenic 1.7.0 → 1.9.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 (59) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +29 -4
  3. data/.gitignore +1 -0
  4. data/CHANGELOG.md +55 -17
  5. data/CONTRIBUTING.md +1 -0
  6. data/FUNDING.yml +1 -0
  7. data/Gemfile +4 -4
  8. data/README.md +84 -25
  9. data/Rakefile +1 -1
  10. data/bin/standardrb +27 -0
  11. data/lib/generators/scenic/materializable.rb +27 -1
  12. data/lib/generators/scenic/model/model_generator.rb +7 -16
  13. data/lib/generators/scenic/model/templates/model.erb +4 -0
  14. data/lib/generators/scenic/view/templates/db/migrate/update_view.erb +2 -2
  15. data/lib/generators/scenic/view/view_generator.rb +5 -5
  16. data/lib/scenic/adapters/postgres/index_creation.rb +68 -0
  17. data/lib/scenic/adapters/postgres/index_migration.rb +70 -0
  18. data/lib/scenic/adapters/postgres/index_reapplication.rb +3 -28
  19. data/lib/scenic/adapters/postgres/indexes.rb +1 -1
  20. data/lib/scenic/adapters/postgres/refresh_dependencies.rb +3 -3
  21. data/lib/scenic/adapters/postgres/side_by_side.rb +50 -0
  22. data/lib/scenic/adapters/postgres/temporary_name.rb +34 -0
  23. data/lib/scenic/adapters/postgres/views.rb +85 -12
  24. data/lib/scenic/adapters/postgres.rb +64 -16
  25. data/lib/scenic/definition.rb +1 -1
  26. data/lib/scenic/schema_dumper.rb +0 -14
  27. data/lib/scenic/statements.rb +49 -16
  28. data/lib/scenic/version.rb +1 -1
  29. data/scenic.gemspec +15 -11
  30. data/spec/acceptance/user_manages_views_spec.rb +11 -0
  31. data/spec/dummy/Rakefile +5 -5
  32. data/spec/dummy/bin/bundle +2 -2
  33. data/spec/dummy/bin/rails +3 -3
  34. data/spec/dummy/bin/rake +2 -2
  35. data/spec/dummy/config/application.rb +4 -0
  36. data/spec/dummy/config.ru +1 -1
  37. data/spec/dummy/db/migrate/20220112154220_add_pg_stat_statements_extension.rb +1 -1
  38. data/spec/dummy/db/schema.rb +0 -2
  39. data/spec/generators/scenic/model/model_generator_spec.rb +9 -1
  40. data/spec/generators/scenic/view/view_generator_spec.rb +28 -2
  41. data/spec/integration/revert_spec.rb +1 -1
  42. data/spec/scenic/adapters/postgres/connection_spec.rb +1 -1
  43. data/spec/scenic/adapters/postgres/index_creation_spec.rb +54 -0
  44. data/spec/scenic/adapters/postgres/index_migration_spec.rb +24 -0
  45. data/spec/scenic/adapters/postgres/refresh_dependencies_spec.rb +9 -9
  46. data/spec/scenic/adapters/postgres/side_by_side_spec.rb +24 -0
  47. data/spec/scenic/adapters/postgres/temporary_name_spec.rb +23 -0
  48. data/spec/scenic/adapters/postgres_spec.rb +95 -8
  49. data/spec/scenic/command_recorder/statement_arguments_spec.rb +4 -4
  50. data/spec/scenic/command_recorder_spec.rb +30 -12
  51. data/spec/scenic/schema_dumper_spec.rb +35 -14
  52. data/spec/scenic/statements_spec.rb +66 -8
  53. data/spec/spec_helper.rb +19 -4
  54. data/spec/support/database_schema_helpers.rb +28 -0
  55. data/spec/support/generator_spec_setup.rb +2 -2
  56. data/spec/support/view_definition_helpers.rb +1 -1
  57. metadata +35 -48
  58. data/.hound.yml +0 -2
  59. data/.rubocop.yml +0 -129
metadata CHANGED
@@ -1,15 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: scenic
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.0
4
+ version: 1.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Derek Prior
8
8
  - Caleb Hearth
9
- autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2022-12-08 00:00:00.000000000 Z
11
+ date: 2025-06-30 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: bundler
@@ -71,16 +70,16 @@ dependencies:
71
70
  name: pg
72
71
  requirement: !ruby/object:Gem::Requirement
73
72
  requirements:
74
- - - "~>"
73
+ - - ">="
75
74
  - !ruby/object:Gem::Version
76
- version: '0.19'
75
+ version: '0'
77
76
  type: :development
78
77
  prerelease: false
79
78
  version_requirements: !ruby/object:Gem::Requirement
80
79
  requirements:
81
- - - "~>"
80
+ - - ">="
82
81
  - !ruby/object:Gem::Version
83
- version: '0.19'
82
+ version: '0'
84
83
  - !ruby/object:Gem::Dependency
85
84
  name: pry
86
85
  requirement: !ruby/object:Gem::Requirement
@@ -137,6 +136,20 @@ dependencies:
137
136
  - - ">="
138
137
  - !ruby/object:Gem::Version
139
138
  version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: standard
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
140
153
  - !ruby/object:Gem::Dependency
141
154
  name: activerecord
142
155
  requirement: !ruby/object:Gem::Requirement
@@ -180,12 +193,11 @@ files:
180
193
  - ".devcontainer/docker-compose.yml"
181
194
  - ".github/workflows/ci.yml"
182
195
  - ".gitignore"
183
- - ".hound.yml"
184
- - ".rubocop.yml"
185
196
  - ".yardopts"
186
197
  - CHANGELOG.md
187
198
  - CODE_OF_CONDUCT.md
188
199
  - CONTRIBUTING.md
200
+ - FUNDING.yml
189
201
  - Gemfile
190
202
  - LICENSE.txt
191
203
  - README.md
@@ -194,6 +206,7 @@ files:
194
206
  - bin/rake
195
207
  - bin/rspec
196
208
  - bin/setup
209
+ - bin/standardrb
197
210
  - bin/yard
198
211
  - lib/generators/scenic/generators.rb
199
212
  - lib/generators/scenic/materializable.rb
@@ -208,9 +221,13 @@ files:
208
221
  - lib/scenic/adapters/postgres.rb
209
222
  - lib/scenic/adapters/postgres/connection.rb
210
223
  - lib/scenic/adapters/postgres/errors.rb
224
+ - lib/scenic/adapters/postgres/index_creation.rb
225
+ - lib/scenic/adapters/postgres/index_migration.rb
211
226
  - lib/scenic/adapters/postgres/index_reapplication.rb
212
227
  - lib/scenic/adapters/postgres/indexes.rb
213
228
  - lib/scenic/adapters/postgres/refresh_dependencies.rb
229
+ - lib/scenic/adapters/postgres/side_by_side.rb
230
+ - lib/scenic/adapters/postgres/temporary_name.rb
214
231
  - lib/scenic/adapters/postgres/views.rb
215
232
  - lib/scenic/command_recorder.rb
216
233
  - lib/scenic/command_recorder/statement_arguments.rb
@@ -245,7 +262,11 @@ files:
245
262
  - spec/generators/scenic/view/view_generator_spec.rb
246
263
  - spec/integration/revert_spec.rb
247
264
  - spec/scenic/adapters/postgres/connection_spec.rb
265
+ - spec/scenic/adapters/postgres/index_creation_spec.rb
266
+ - spec/scenic/adapters/postgres/index_migration_spec.rb
248
267
  - spec/scenic/adapters/postgres/refresh_dependencies_spec.rb
268
+ - spec/scenic/adapters/postgres/side_by_side_spec.rb
269
+ - spec/scenic/adapters/postgres/temporary_name_spec.rb
249
270
  - spec/scenic/adapters/postgres/views_spec.rb
250
271
  - spec/scenic/adapters/postgres_spec.rb
251
272
  - spec/scenic/command_recorder/statement_arguments_spec.rb
@@ -255,14 +276,15 @@ files:
255
276
  - spec/scenic/schema_dumper_spec.rb
256
277
  - spec/scenic/statements_spec.rb
257
278
  - spec/spec_helper.rb
279
+ - spec/support/database_schema_helpers.rb
258
280
  - spec/support/generator_spec_setup.rb
259
281
  - spec/support/rails_configuration_helpers.rb
260
282
  - spec/support/view_definition_helpers.rb
261
283
  homepage: https://github.com/scenic-views/scenic
262
284
  licenses:
263
285
  - MIT
264
- metadata: {}
265
- post_install_message:
286
+ metadata:
287
+ funding-uri: https://github.com/scenic-views/scenic
266
288
  rdoc_options: []
267
289
  require_paths:
268
290
  - lib
@@ -277,42 +299,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
277
299
  - !ruby/object:Gem::Version
278
300
  version: '0'
279
301
  requirements: []
280
- rubygems_version: 3.2.32
281
- signing_key:
302
+ rubygems_version: 3.6.2
282
303
  specification_version: 4
283
304
  summary: Support for database views in Rails migrations
284
- test_files:
285
- - spec/acceptance/user_manages_views_spec.rb
286
- - spec/acceptance_helper.rb
287
- - spec/dummy/.gitignore
288
- - spec/dummy/Rakefile
289
- - spec/dummy/app/models/application_record.rb
290
- - spec/dummy/bin/bundle
291
- - spec/dummy/bin/rails
292
- - spec/dummy/bin/rake
293
- - spec/dummy/config.ru
294
- - spec/dummy/config/application.rb
295
- - spec/dummy/config/boot.rb
296
- - spec/dummy/config/database.yml
297
- - spec/dummy/config/environment.rb
298
- - spec/dummy/db/migrate/.keep
299
- - spec/dummy/db/migrate/20220112154220_add_pg_stat_statements_extension.rb
300
- - spec/dummy/db/schema.rb
301
- - spec/dummy/db/views/.keep
302
- - spec/generators/scenic/model/model_generator_spec.rb
303
- - spec/generators/scenic/view/view_generator_spec.rb
304
- - spec/integration/revert_spec.rb
305
- - spec/scenic/adapters/postgres/connection_spec.rb
306
- - spec/scenic/adapters/postgres/refresh_dependencies_spec.rb
307
- - spec/scenic/adapters/postgres/views_spec.rb
308
- - spec/scenic/adapters/postgres_spec.rb
309
- - spec/scenic/command_recorder/statement_arguments_spec.rb
310
- - spec/scenic/command_recorder_spec.rb
311
- - spec/scenic/configuration_spec.rb
312
- - spec/scenic/definition_spec.rb
313
- - spec/scenic/schema_dumper_spec.rb
314
- - spec/scenic/statements_spec.rb
315
- - spec/spec_helper.rb
316
- - spec/support/generator_spec_setup.rb
317
- - spec/support/rails_configuration_helpers.rb
318
- - spec/support/view_definition_helpers.rb
305
+ test_files: []
data/.hound.yml DELETED
@@ -1,2 +0,0 @@
1
- rubocop:
2
- config_file: .rubocop.yml
data/.rubocop.yml DELETED
@@ -1,129 +0,0 @@
1
- AllCops:
2
- TargetRubyVersion: 2.3.0
3
- Exclude:
4
- - "tmp/**/*"
5
- - "bin/*"
6
- - "spec/dummy/**/*"
7
-
8
- Bundler/OrderedGems:
9
- Enabled: false
10
-
11
- Gemspec/OrderedDependencies:
12
- Enabled: false
13
-
14
- Layout/AlignParameters:
15
- Enabled: true
16
- EnforcedStyle: with_fixed_indentation
17
- Layout/ConditionPosition:
18
- Enabled: false
19
- Layout/DotPosition:
20
- EnforcedStyle: leading
21
- Layout/ExtraSpacing:
22
- Enabled: true
23
- Layout/IndentAssignment:
24
- Enabled: False
25
- Layout/MultilineOperationIndentation:
26
- Enabled: true
27
- EnforcedStyle: indented
28
- Layout/MultilineMethodCallIndentation:
29
- Enabled: true
30
- EnforcedStyle: indented
31
-
32
- Lint/AmbiguousOperator:
33
- Enabled: true
34
- Lint/AmbiguousRegexpLiteral:
35
- Enabled: true
36
- Lint/DuplicatedKey:
37
- Enabled: true
38
-
39
- Metrics/ClassLength:
40
- Enabled: false
41
- Metrics/ModuleLength:
42
- Enabled: false
43
- Metrics/AbcSize:
44
- Enabled: false
45
- Metrics/BlockLength:
46
- CountComments: true # count full line comments?
47
- Max: 25
48
- ExcludedMethods: []
49
- Exclude:
50
- - "spec/**/*"
51
- - "*.gemspec"
52
- Metrics/CyclomaticComplexity:
53
- Enabled: false
54
- Metrics/LineLength:
55
- Max: 80
56
- Metrics/MethodLength:
57
- Enabled: false
58
-
59
- Security/Eval:
60
- Enabled: true
61
- Exclude:
62
- - "spec/scenic/schema_dumper_spec.rb"
63
- Style/BlockDelimiters:
64
- Enabled: false
65
- Style/CollectionMethods:
66
- Enabled: true
67
- PreferredMethods:
68
- find: find
69
- inject: reduce
70
- collect: map
71
- find_all: select
72
- Style/ConditionalAssignment:
73
- Enabled: false
74
- Style/ClassAndModuleChildren:
75
- Enabled: true
76
- Exclude:
77
- - "spec/**/*"
78
- Style/Documentation:
79
- Enabled: false
80
- Style/FrozenStringLiteralComment:
81
- Description: >-
82
- Add the frozen_string_literal comment to the top of files
83
- to help transition from Ruby 2.3.0 to Ruby 3.0.
84
- Enabled: false
85
- Style/GuardClause:
86
- Enabled: false
87
- Style/IfUnlessModifier:
88
- Enabled: false
89
- Style/Lambda:
90
- Enabled: false
91
- Style/NumericLiterals:
92
- Enabled: false
93
- Style/OneLineConditional:
94
- Enabled: false
95
- Style/PercentLiteralDelimiters:
96
- Enabled: false
97
- Style/StringLiterals:
98
- EnforcedStyle: double_quotes
99
- Enabled: true
100
- Style/TrailingCommaInArguments:
101
- Description: 'Checks for trailing comma in argument lists.'
102
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-trailing-array-commas'
103
- EnforcedStyleForMultiline: comma
104
- SupportedStylesForMultiline:
105
- - comma
106
- - consistent_comma
107
- - no_comma
108
- Enabled: true
109
- Style/TrailingCommaInArrayLiteral:
110
- Description: 'Checks for trailing comma in array literals.'
111
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-trailing-array-commas'
112
- EnforcedStyleForMultiline: comma
113
- SupportedStylesForMultiline:
114
- - comma
115
- - consistent_comma
116
- - no_comma
117
- Enabled: true
118
- Style/TrailingCommaInHashLiteral:
119
- Description: 'Checks for trailing comma in hash literals.'
120
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-trailing-array-commas'
121
- EnforcedStyleForMultiline: comma
122
- SupportedStylesForMultiline:
123
- - comma
124
- - consistent_comma
125
- - no_comma
126
- Enabled: true
127
- Style/WordArray:
128
- Enabled: false
129
-