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.
- checksums.yaml +4 -4
- data/.github/ISSUE_TEMPLATE/----please-don-t-ask-for-support-via-issues.md +10 -0
- data/.github/ISSUE_TEMPLATE/---bug-report.md +30 -0
- data/.github/ISSUE_TEMPLATE/---feature-request.md +18 -0
- data/.github/workflows/ci.yml +67 -0
- data/.github/workflows/docsite.yml +34 -0
- data/.github/workflows/sync_configs.yml +30 -0
- data/.rubocop.yml +46 -9
- data/CHANGELOG.md +68 -0
- data/CONTRIBUTING.md +29 -0
- data/Gemfile +21 -12
- data/README.md +3 -5
- data/Rakefile +1 -1
- data/docsite/source/index.html.md +165 -0
- data/lib/generators/rom.rb +8 -0
- data/lib/generators/rom/commands/templates/create.rb.erb +0 -2
- data/lib/generators/rom/commands/templates/delete.rb.erb +0 -1
- data/lib/generators/rom/commands/templates/update.rb.erb +0 -2
- data/lib/generators/rom/commands_generator.rb +1 -1
- data/lib/generators/rom/install/templates/application_model.rb +2 -2
- data/lib/generators/rom/install/templates/initializer.rb.erb +1 -1
- data/lib/generators/rom/install/templates/types.rb +3 -3
- data/lib/generators/rom/install_generator.rb +1 -4
- data/lib/generators/rom/relation_generator.rb +1 -1
- data/lib/generators/rom/repository/templates/repository.rb.erb +8 -0
- data/lib/generators/rom/repository_generator.rb +1 -2
- data/lib/rom/rails/active_record/configuration.rb +41 -55
- data/lib/rom/rails/active_record/uri_builder.rb +70 -0
- data/lib/rom/rails/configuration.rb +1 -1
- data/lib/rom/rails/railtie.rb +30 -12
- data/lib/rom/rails/tasks/db.rake +6 -0
- data/lib/rom/rails/version.rb +1 -1
- data/rom-rails.gemspec +8 -9
- data/spec/dummy/app/commands/create_user.rb +0 -1
- data/spec/dummy/app/forms/user_form.rb +1 -2
- data/spec/dummy/app/relations/dummy_relation.rb +1 -1
- data/spec/dummy/app/relations/tasks.rb +1 -0
- data/spec/dummy/app/relations/users.rb +1 -0
- data/spec/dummy/bin/bundle +1 -1
- data/spec/dummy/bin/rails +1 -1
- data/spec/dummy/config/initializers/rom.rb +4 -3
- data/spec/dummy/lib/additional_app/{app → persistence}/commands/create_additional_task.rb +0 -0
- data/spec/dummy/lib/rom/test_adapter.rb +1 -0
- data/spec/integration/controller_extensions_spec.rb +23 -0
- data/spec/integration/initializer_spec.rb +1 -1
- data/spec/integration/user_commands_spec.rb +1 -1
- data/spec/lib/active_record/configuration_spec.rb +87 -1
- data/spec/lib/generators/commands_generator_spec.rb +2 -3
- data/spec/lib/generators/install_generator_spec.rb +7 -10
- data/spec/lib/generators/mapper_generator_spec.rb +1 -1
- data/spec/lib/generators/relation_generator_spec.rb +5 -2
- data/spec/lib/generators/repository_generator_spec.rb +17 -1
- metadata +45 -34
- 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('
|
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.
|
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('
|
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
|
42
|
+
require "dry/types"
|
43
43
|
|
44
44
|
module Types
|
45
|
-
include Dry
|
45
|
+
include Dry.Types
|
46
46
|
|
47
|
-
ID = Coercible::
|
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
|
66
|
+
require "types"
|
67
67
|
|
68
68
|
class ApplicationModel < ROM::Struct
|
69
69
|
def self.inherited(base)
|
70
70
|
super
|
71
71
|
|
72
|
-
base.
|
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/relation_generator'
|
2
2
|
|
3
3
|
RSpec.describe ROM::Generators::RelationGenerator, type: :generator do
|
4
|
-
destination File.expand_path('
|
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.
|
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('
|
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:
|
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:
|
12
|
+
date: 2021-03-21 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
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: '
|
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: '
|
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.
|
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.
|
41
|
+
version: '0.4'
|
55
42
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
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
|
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
|
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.
|
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.
|
75
|
+
version: '6.2'
|
89
76
|
- !ruby/object:Gem::Dependency
|
90
|
-
name: rom
|
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:
|
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:
|
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/
|
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
|
-
|
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/
|
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
|