rom-rails 1.1.0 → 2.3.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 (54) hide show
  1. checksums.yaml +4 -4
  2. data/.github/ISSUE_TEMPLATE/----please-don-t-ask-for-support-via-issues.md +10 -0
  3. data/.github/ISSUE_TEMPLATE/---bug-report.md +30 -0
  4. data/.github/ISSUE_TEMPLATE/---feature-request.md +18 -0
  5. data/.github/workflows/ci.yml +67 -0
  6. data/.github/workflows/docsite.yml +34 -0
  7. data/.github/workflows/sync_configs.yml +30 -0
  8. data/.rubocop.yml +46 -9
  9. data/CHANGELOG.md +68 -0
  10. data/CONTRIBUTING.md +29 -0
  11. data/Gemfile +21 -12
  12. data/README.md +3 -5
  13. data/Rakefile +1 -1
  14. data/docsite/source/index.html.md +165 -0
  15. data/lib/generators/rom.rb +8 -0
  16. data/lib/generators/rom/commands/templates/create.rb.erb +0 -2
  17. data/lib/generators/rom/commands/templates/delete.rb.erb +0 -1
  18. data/lib/generators/rom/commands/templates/update.rb.erb +0 -2
  19. data/lib/generators/rom/commands_generator.rb +1 -1
  20. data/lib/generators/rom/install/templates/application_model.rb +2 -2
  21. data/lib/generators/rom/install/templates/initializer.rb.erb +1 -1
  22. data/lib/generators/rom/install/templates/types.rb +3 -3
  23. data/lib/generators/rom/install_generator.rb +1 -4
  24. data/lib/generators/rom/relation_generator.rb +1 -1
  25. data/lib/generators/rom/repository/templates/repository.rb.erb +8 -0
  26. data/lib/generators/rom/repository_generator.rb +1 -2
  27. data/lib/rom/rails/active_record/configuration.rb +41 -55
  28. data/lib/rom/rails/active_record/uri_builder.rb +70 -0
  29. data/lib/rom/rails/configuration.rb +1 -1
  30. data/lib/rom/rails/railtie.rb +30 -12
  31. data/lib/rom/rails/tasks/db.rake +6 -0
  32. data/lib/rom/rails/version.rb +1 -1
  33. data/rom-rails.gemspec +8 -9
  34. data/spec/dummy/app/commands/create_user.rb +0 -1
  35. data/spec/dummy/app/forms/user_form.rb +1 -2
  36. data/spec/dummy/app/relations/dummy_relation.rb +1 -1
  37. data/spec/dummy/app/relations/tasks.rb +1 -0
  38. data/spec/dummy/app/relations/users.rb +1 -0
  39. data/spec/dummy/bin/bundle +1 -1
  40. data/spec/dummy/bin/rails +1 -1
  41. data/spec/dummy/config/initializers/rom.rb +4 -3
  42. data/spec/dummy/lib/additional_app/{app → persistence}/commands/create_additional_task.rb +0 -0
  43. data/spec/dummy/lib/rom/test_adapter.rb +1 -0
  44. data/spec/integration/controller_extensions_spec.rb +23 -0
  45. data/spec/integration/initializer_spec.rb +1 -1
  46. data/spec/integration/user_commands_spec.rb +1 -1
  47. data/spec/lib/active_record/configuration_spec.rb +87 -1
  48. data/spec/lib/generators/commands_generator_spec.rb +2 -3
  49. data/spec/lib/generators/install_generator_spec.rb +7 -10
  50. data/spec/lib/generators/mapper_generator_spec.rb +1 -1
  51. data/spec/lib/generators/relation_generator_spec.rb +5 -2
  52. data/spec/lib/generators/repository_generator_spec.rb +17 -1
  53. metadata +45 -34
  54. data/.travis.yml +0 -20
@@ -1,7 +1,7 @@
1
1
  require 'generators/rom/commands_generator'
2
2
 
3
3
  RSpec.describe ROM::Generators::CommandsGenerator do
4
- destination File.expand_path('../../../../tmp', __FILE__)
4
+ destination File.expand_path('../../../tmp', __dir__)
5
5
 
6
6
  before(:each) do
7
7
  prepare_destination
@@ -10,7 +10,7 @@ RSpec.describe ROM::Generators::CommandsGenerator do
10
10
  specify do
11
11
  run_generator ['users']
12
12
 
13
- default_adapter = ROM.adapters.keys.first
13
+ default_adapter = ROM.env.gateways[:default].adapter
14
14
 
15
15
  expect(destination_root).to have_structure {
16
16
  directory 'app' do
@@ -49,7 +49,6 @@ RSpec.describe ROM::Generators::CommandsGenerator do
49
49
  relation :users
50
50
  register_as :delete
51
51
  result :one
52
-
53
52
  end
54
53
  CONTENT
55
54
  end
@@ -1,7 +1,7 @@
1
1
  require 'generators/rom/install_generator'
2
2
 
3
3
  RSpec.describe ROM::Generators::InstallGenerator, type: :generator do
4
- destination File.expand_path('../../../../tmp', __FILE__)
4
+ destination File.expand_path('../../../tmp', __dir__)
5
5
 
6
6
  before(:each) do
7
7
  prepare_destination
@@ -16,7 +16,7 @@ RSpec.describe ROM::Generators::InstallGenerator, type: :generator do
16
16
  file 'rom.rb' do
17
17
  contains <<-CONTENT.strip_heredoc
18
18
  ROM::Rails::Railtie.configure do |config|
19
- config.gateways[:default] = [:sql, ENV.fetch('DATABASE_URL')]
19
+ # config.gateways[:default] = [:sql, ENV.fetch('DATABASE_URL')]
20
20
  end
21
21
  CONTENT
22
22
  end
@@ -39,12 +39,12 @@ RSpec.describe ROM::Generators::InstallGenerator, type: :generator do
39
39
  directory "lib" do
40
40
  file "types.rb" do
41
41
  contains <<-CONTENT.strip_heredoc
42
- require 'dry/types'
42
+ require "dry/types"
43
43
 
44
44
  module Types
45
- include Dry::Types.module
45
+ include Dry.Types
46
46
 
47
- ID = Coercible::Int.optional.meta(primary_key: true)
47
+ ID = Coercible::Integer.optional.meta(primary_key: true)
48
48
 
49
49
  # Include your own type definitions and coersions here.
50
50
  # See http://dry-rb.org/gems/dry-types
@@ -63,13 +63,13 @@ RSpec.describe ROM::Generators::InstallGenerator, type: :generator do
63
63
  directory "models" do
64
64
  file "application_model.rb" do
65
65
  contains <<-CONTENT.strip_heredoc
66
- require 'types'
66
+ require "types"
67
67
 
68
68
  class ApplicationModel < ROM::Struct
69
69
  def self.inherited(base)
70
70
  super
71
71
 
72
- base.constructor_type :schema
72
+ base.transform_types(&:omittable)
73
73
 
74
74
  base.extend ActiveModel::Naming
75
75
  base.include ActiveModel::Conversion
@@ -85,11 +85,8 @@ RSpec.describe ROM::Generators::InstallGenerator, type: :generator do
85
85
  end
86
86
  CONTENT
87
87
  end
88
-
89
88
  end
90
89
  end
91
90
  }
92
91
  end
93
-
94
-
95
92
  end
@@ -1,7 +1,7 @@
1
1
  require 'generators/rom/mapper_generator'
2
2
 
3
3
  RSpec.describe ROM::Generators::MapperGenerator do
4
- destination File.expand_path('../../../../tmp', __FILE__)
4
+ destination File.expand_path('../../../tmp', __dir__)
5
5
 
6
6
  before(:all) do
7
7
  prepare_destination
@@ -1,7 +1,7 @@
1
1
  require 'generators/rom/relation_generator'
2
2
 
3
3
  RSpec.describe ROM::Generators::RelationGenerator, type: :generator do
4
- destination File.expand_path('../../../../tmp', __FILE__)
4
+ destination File.expand_path('../../../tmp', __dir__)
5
5
 
6
6
  before(:each) do
7
7
  prepare_destination
@@ -9,7 +9,7 @@ RSpec.describe ROM::Generators::RelationGenerator, type: :generator do
9
9
 
10
10
  specify do
11
11
  run_generator ['users']
12
- default_adapter = ROM.adapters.keys.first
12
+ default_adapter = ROM.env.gateways[:default].adapter
13
13
 
14
14
  expect(destination_root).to have_structure {
15
15
  directory 'app' do
@@ -54,4 +54,7 @@ RSpec.describe ROM::Generators::RelationGenerator, type: :generator do
54
54
  relation = File.read(File.join(destination_root, 'app', 'relations', 'users_relation.rb'))
55
55
  expect(relation).to match(/schema.*as: :profiles/)
56
56
  end
57
+
58
+ specify "with multiple generators" do
59
+ end
57
60
  end
@@ -2,7 +2,7 @@ require 'rom-repository'
2
2
  require 'generators/rom/repository_generator'
3
3
 
4
4
  RSpec.describe ROM::Generators::RepositoryGenerator, type: :generator do
5
- destination File.expand_path('../../../../tmp', __FILE__)
5
+ destination File.expand_path('../../../tmp', __dir__)
6
6
 
7
7
  before(:each) do
8
8
  prepare_destination
@@ -22,6 +22,14 @@ RSpec.describe ROM::Generators::RepositoryGenerator, type: :generator do
22
22
  commands :create, update: :by_pk, delete: :by_pk
23
23
 
24
24
  struct_namespace Dummy
25
+
26
+ def by_id(id)
27
+ root.by_pk(id).one
28
+ end
29
+
30
+ def all
31
+ root.to_a
32
+ end
25
33
  end
26
34
  CONTENT
27
35
  end
@@ -44,6 +52,14 @@ RSpec.describe ROM::Generators::RepositoryGenerator, type: :generator do
44
52
  commands :create, update: :by_pk, delete: :by_pk
45
53
 
46
54
  struct_namespace Dummy
55
+
56
+ def by_id(id)
57
+ root.by_pk(id).one
58
+ end
59
+
60
+ def all
61
+ root.to_a
62
+ end
47
63
  end
48
64
  CONTENT
49
65
  end
metadata CHANGED
@@ -1,71 +1,58 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rom-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 2.3.0
5
5
  platform: ruby
6
6
  authors:
7
+ - Chris Flipse
7
8
  - Piotr Solnica
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2018-03-19 00:00:00.000000000 Z
12
+ date: 2021-03-21 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
- name: rom
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '4.0'
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: '4.0'
27
- - !ruby/object:Gem::Dependency
28
- name: dry-equalizer
15
+ name: addressable
29
16
  requirement: !ruby/object:Gem::Requirement
30
17
  requirements:
31
18
  - - "~>"
32
19
  - !ruby/object:Gem::Version
33
- version: '0.2'
20
+ version: '2.3'
34
21
  type: :runtime
35
22
  prerelease: false
36
23
  version_requirements: !ruby/object:Gem::Requirement
37
24
  requirements:
38
25
  - - "~>"
39
26
  - !ruby/object:Gem::Version
40
- version: '0.2'
27
+ version: '2.3'
41
28
  - !ruby/object:Gem::Dependency
42
29
  name: dry-core
43
30
  requirement: !ruby/object:Gem::Requirement
44
31
  requirements:
45
32
  - - "~>"
46
33
  - !ruby/object:Gem::Version
47
- version: '0.3'
34
+ version: '0.4'
48
35
  type: :runtime
49
36
  prerelease: false
50
37
  version_requirements: !ruby/object:Gem::Requirement
51
38
  requirements:
52
39
  - - "~>"
53
40
  - !ruby/object:Gem::Version
54
- version: '0.3'
41
+ version: '0.4'
55
42
  - !ruby/object:Gem::Dependency
56
- name: addressable
43
+ name: dry-equalizer
57
44
  requirement: !ruby/object:Gem::Requirement
58
45
  requirements:
59
46
  - - "~>"
60
47
  - !ruby/object:Gem::Version
61
- version: '2.3'
48
+ version: '0.2'
62
49
  type: :runtime
63
50
  prerelease: false
64
51
  version_requirements: !ruby/object:Gem::Requirement
65
52
  requirements:
66
53
  - - "~>"
67
54
  - !ruby/object:Gem::Version
68
- version: '2.3'
55
+ version: '0.2'
69
56
  - !ruby/object:Gem::Dependency
70
57
  name: railties
71
58
  requirement: !ruby/object:Gem::Requirement
@@ -75,7 +62,7 @@ dependencies:
75
62
  version: '3.0'
76
63
  - - "<"
77
64
  - !ruby/object:Gem::Version
78
- version: '6.0'
65
+ version: '6.2'
79
66
  type: :runtime
80
67
  prerelease: false
81
68
  version_requirements: !ruby/object:Gem::Requirement
@@ -85,9 +72,23 @@ dependencies:
85
72
  version: '3.0'
86
73
  - - "<"
87
74
  - !ruby/object:Gem::Version
88
- version: '6.0'
75
+ version: '6.2'
89
76
  - !ruby/object:Gem::Dependency
90
- name: rom-repository
77
+ name: rom
78
+ requirement: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '5.2'
83
+ type: :runtime
84
+ prerelease: false
85
+ version_requirements: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '5.2'
90
+ - !ruby/object:Gem::Dependency
91
+ name: bundler
91
92
  requirement: !ruby/object:Gem::Requirement
92
93
  requirements:
93
94
  - - ">="
@@ -101,7 +102,7 @@ dependencies:
101
102
  - !ruby/object:Gem::Version
102
103
  version: '0'
103
104
  - !ruby/object:Gem::Dependency
104
- name: bundler
105
+ name: rake
105
106
  requirement: !ruby/object:Gem::Requirement
106
107
  requirements:
107
108
  - - ">="
@@ -115,7 +116,7 @@ dependencies:
115
116
  - !ruby/object:Gem::Version
116
117
  version: '0'
117
118
  - !ruby/object:Gem::Dependency
118
- name: rake
119
+ name: rom-repository
119
120
  requirement: !ruby/object:Gem::Requirement
120
121
  requirements:
121
122
  - - ">="
@@ -144,21 +145,29 @@ dependencies:
144
145
  version: '0.50'
145
146
  description:
146
147
  email:
148
+ - cflipse@gmail.com
147
149
  - piotr.solnica@gmail.com
148
150
  executables: []
149
151
  extensions: []
150
152
  extra_rdoc_files: []
151
153
  files:
154
+ - ".github/ISSUE_TEMPLATE/----please-don-t-ask-for-support-via-issues.md"
155
+ - ".github/ISSUE_TEMPLATE/---bug-report.md"
156
+ - ".github/ISSUE_TEMPLATE/---feature-request.md"
157
+ - ".github/workflows/ci.yml"
158
+ - ".github/workflows/docsite.yml"
159
+ - ".github/workflows/sync_configs.yml"
152
160
  - ".gitignore"
153
161
  - ".rspec"
154
162
  - ".rubocop.yml"
155
- - ".travis.yml"
156
163
  - CHANGELOG.md
164
+ - CONTRIBUTING.md
157
165
  - Gemfile
158
166
  - LICENSE
159
167
  - README.md
160
168
  - Rakefile
161
169
  - db
170
+ - docsite/source/index.html.md
162
171
  - lib/generators/rom.rb
163
172
  - lib/generators/rom/commands/templates/create.rb.erb
164
173
  - lib/generators/rom/commands/templates/delete.rb.erb
@@ -176,6 +185,7 @@ files:
176
185
  - lib/generators/rom/repository_generator.rb
177
186
  - lib/rom-rails.rb
178
187
  - lib/rom/rails/active_record/configuration.rb
188
+ - lib/rom/rails/active_record/uri_builder.rb
179
189
  - lib/rom/rails/configuration.rb
180
190
  - lib/rom/rails/controller_extension.rb
181
191
  - lib/rom/rails/inflections.rb
@@ -231,7 +241,7 @@ files:
231
241
  - spec/dummy/db/migrate/20141110205016_add_users.rb
232
242
  - spec/dummy/db/migrate/20150202194440_create_tasks.rb
233
243
  - spec/dummy/db/migrate/20150403194906_create_tags.rb
234
- - spec/dummy/lib/additional_app/app/commands/create_additional_task.rb
244
+ - spec/dummy/lib/additional_app/persistence/commands/create_additional_task.rb
235
245
  - spec/dummy/lib/assets/.keep
236
246
  - spec/dummy/lib/rom/test_adapter.rb
237
247
  - spec/dummy/lib/tasks/.keep
@@ -245,6 +255,7 @@ files:
245
255
  - spec/dummy/vendor/assets/stylesheets/.keep
246
256
  - spec/features/users_spec.rb
247
257
  - spec/integration/activerecord_setup.rb
258
+ - spec/integration/controller_extensions_spec.rb
248
259
  - spec/integration/initializer_spec.rb
249
260
  - spec/integration/logger_spec.rb
250
261
  - spec/integration/user_commands_spec.rb
@@ -275,8 +286,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
275
286
  - !ruby/object:Gem::Version
276
287
  version: '0'
277
288
  requirements: []
278
- rubyforge_project:
279
- rubygems_version: 2.7.6
289
+ rubygems_version: 3.0.3
280
290
  signing_key:
281
291
  specification_version: 4
282
292
  summary: Integrate Ruby Object Mapper with Rails
@@ -328,7 +338,7 @@ test_files:
328
338
  - spec/dummy/db/migrate/20141110205016_add_users.rb
329
339
  - spec/dummy/db/migrate/20150202194440_create_tasks.rb
330
340
  - spec/dummy/db/migrate/20150403194906_create_tags.rb
331
- - spec/dummy/lib/additional_app/app/commands/create_additional_task.rb
341
+ - spec/dummy/lib/additional_app/persistence/commands/create_additional_task.rb
332
342
  - spec/dummy/lib/assets/.keep
333
343
  - spec/dummy/lib/rom/test_adapter.rb
334
344
  - spec/dummy/lib/tasks/.keep
@@ -342,6 +352,7 @@ test_files:
342
352
  - spec/dummy/vendor/assets/stylesheets/.keep
343
353
  - spec/features/users_spec.rb
344
354
  - spec/integration/activerecord_setup.rb
355
+ - spec/integration/controller_extensions_spec.rb
345
356
  - spec/integration/initializer_spec.rb
346
357
  - spec/integration/logger_spec.rb
347
358
  - spec/integration/user_commands_spec.rb
data/.travis.yml DELETED
@@ -1,20 +0,0 @@
1
- language: ruby
2
- sudo: false
3
- cache: bundler
4
- bundler_args: --without yard guard benchmarks
5
- script: "RAILS_ENV=test bundle exec rake app:db:reset app:spec"
6
- rvm:
7
- - 2.3.1
8
- - 2.4.1
9
- - jruby-9.1.13.0
10
- env:
11
- - RAILS_VERSION=5.1.0
12
- - RAILS_VERSION=5.0.0
13
- - RAILS_VERSION=4.2.0
14
- notifications:
15
- webhooks:
16
- urls:
17
- - https://webhooks.gitter.im/e/39e1225f489f38b0bd09
18
- on_success: change
19
- on_failure: always
20
- on_start: false