rom-rails 0.8.0 → 0.9.0.beta1
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/CHANGELOG.md +27 -13
- data/Gemfile +4 -1
- data/README.md +8 -2
- data/lib/generators/rom/commands/templates/create.rb.erb +11 -8
- data/lib/generators/rom/commands/templates/delete.rb.erb +5 -6
- data/lib/generators/rom/commands/templates/update.rb.erb +11 -8
- data/lib/generators/rom/commands_generator.rb +1 -5
- data/lib/generators/rom/repository/templates/repository.rb.erb +3 -0
- data/lib/generators/rom/repository_generator.rb +34 -0
- data/lib/rom/rails/configuration.rb +7 -4
- data/lib/rom/rails/model/form/class_interface.rb +5 -3
- data/lib/rom/rails/model/form.rb +12 -0
- data/lib/rom/rails/version.rb +1 -1
- data/rom-rails.gemspec +3 -2
- data/spec/lib/generators/commands_generator_spec.rb +37 -34
- data/spec/lib/generators/repository_generator_spec.rb +48 -0
- metadata +39 -25
- data/spec/dummy/app/commands/create_task_with_validations.rb +0 -11
- data/spec/integration/form_with_command_validation_spec.rb +0 -33
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8007e09944a10d2fb2f652bb08c5885cd79d61a6
|
4
|
+
data.tar.gz: 8320458f6c6a7c4289236bc3a0a493996d0d4e5a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3444eab0ee0087fa9ce52a46b26ced93b3b6c5541417b3c570503b451eea42ae89db3f73680a277de8ef36d21cf8419228dcea6b56fdd0995773eb9cc9575541
|
7
|
+
data.tar.gz: 8a916b3534bf0a59b21087a6a60f2cb7f076694d63f4faad70fa6779e5edb19b6745a41c1328d92bd15c36cb151f569da6a0193437961f240559015a3b683169
|
data/CHANGELOG.md
CHANGED
@@ -1,29 +1,43 @@
|
|
1
|
+
## v0.9.0 to-be-released
|
2
|
+
|
3
|
+
### Added
|
4
|
+
|
5
|
+
* Add `rom-repository` generator (fmartin91)
|
6
|
+
|
7
|
+
### Changed
|
8
|
+
|
9
|
+
* Updated to work with ROM 3.0.beta (maximderbin, cflipse)
|
10
|
+
* Command generators now produce a flat directory structure (cflipse)
|
11
|
+
* Dropped runtime dependency on `virtus` (bilby91)
|
12
|
+
* Updated generators to remove validatior hints (cflipse)
|
13
|
+
* Updated generators to provide before hook hints, rather than override `execute` (cflipse)
|
14
|
+
|
1
15
|
## v0.8.0 2016-08-08
|
2
16
|
### Changed
|
3
17
|
|
4
|
-
|
5
|
-
|
6
|
-
|
18
|
+
* Updated to work with Rails 5 (cflipse)
|
19
|
+
* Form validations are now handled entirely within form (cflipse)
|
20
|
+
* [Rails5] when applicable, parmeters are converted to unsafe hash (cflipse)
|
7
21
|
|
8
22
|
### Deprecated
|
9
|
-
|
23
|
+
* Dropping support for ruby 2.1 and below
|
10
24
|
|
11
25
|
## v0.7.0 2016-07-27
|
12
26
|
|
13
27
|
### Changed
|
14
|
-
|
15
|
-
|
16
|
-
|
28
|
+
* Updated to work with rom 2.0
|
29
|
+
* Loosen Gem dependencies for Rails 4.2
|
30
|
+
* Allow multiple auto_registration paths (vbyno)
|
17
31
|
|
18
32
|
[Compare v0.6.0...v0.7.0](https://github.com/rom-rb/rom-rails/compare/v0.6.0...v0.7.0)
|
19
33
|
|
20
34
|
### Fixed
|
21
|
-
|
35
|
+
* Fixed generated mapper's `register_as` (duduribeiro)
|
22
36
|
|
23
37
|
## v0.6.0 2016-01-06
|
24
38
|
|
25
39
|
### Changed
|
26
|
-
|
40
|
+
* Updated to work with new ROM configuration API.
|
27
41
|
|
28
42
|
[Compare v0.5.0...v0.6.0](https://github.com/rom-rb/rom-rails/compare/v0.5.0...v0.6.0)
|
29
43
|
|
@@ -31,13 +45,13 @@
|
|
31
45
|
|
32
46
|
### Changed
|
33
47
|
|
34
|
-
|
35
|
-
|
36
|
-
|
48
|
+
* Raise a helpful error when trying to use uniqueness validation without a relation (xaviershay)
|
49
|
+
* Switched to extracted rom-model (solnic)
|
50
|
+
* Updated to work with ROM 0.9.0 (solnic)
|
37
51
|
|
38
52
|
### Fixed
|
39
53
|
|
40
|
-
|
54
|
+
* Setting connectin URI for jruby that needs jdbc adapter (austinthecoder)
|
41
55
|
|
42
56
|
[Compare v0.4.0...v0.5.0](https://github.com/rom-rb/rom-rails/compare/v0.4.0...v0.5.0)
|
43
57
|
|
data/Gemfile
CHANGED
@@ -10,8 +10,11 @@ end
|
|
10
10
|
|
11
11
|
gem 'sqlite3', platforms: [:mri, :rbx]
|
12
12
|
gem 'byebug', platforms: :mri
|
13
|
-
gem 'rom
|
13
|
+
gem 'rom', github: 'rom-rb/rom', branch: 'master'
|
14
|
+
gem 'rom-sql', github: 'rom-rb/rom-sql', branch: 'master'
|
14
15
|
gem 'rom-model', github: 'rom-rb/rom-model', branch: 'master'
|
16
|
+
gem 'rom-repository', github: 'rom-rb/rom-repository', branch: 'master'
|
17
|
+
gem 'rom-mapper', github: 'rom-rb/rom-mapper', branch: 'master'
|
15
18
|
|
16
19
|
platforms :jruby do
|
17
20
|
gem 'jdbc-sqlite3'
|
data/README.md
CHANGED
@@ -17,11 +17,17 @@
|
|
17
17
|
Rails integration for [Ruby Object Mapper](https://github.com/rom-rb/rom) which
|
18
18
|
ships with:
|
19
19
|
|
20
|
-
* Params sanitizer/coercer extension
|
21
|
-
* Validation extension based on `ActiveModel`
|
22
20
|
* Relation generators
|
23
21
|
* Mapper generators
|
24
22
|
* Command generators
|
23
|
+
* Repository generators
|
24
|
+
|
25
|
+
You may also want to look at [ROM Model](https://github.com/rom-rb/rom-model)
|
26
|
+
which includes:
|
27
|
+
|
28
|
+
* Params sanitizer/coercer extension
|
29
|
+
* Validation extension based on `ActiveModel`
|
30
|
+
|
25
31
|
|
26
32
|
## Tests
|
27
33
|
|
@@ -1,10 +1,13 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
result :one
|
1
|
+
class Create<%= model_name %> < ROM::Commands::Create<%= "[:#{adapter}]" %>
|
2
|
+
relation :<%= relation %>
|
3
|
+
register_as :create
|
4
|
+
result :one
|
6
5
|
|
7
|
-
|
8
|
-
|
9
|
-
|
6
|
+
# Modify input data before committing it.
|
7
|
+
# before :timestamp
|
8
|
+
|
9
|
+
# def timestamp(tuple)
|
10
|
+
# time = Time.current
|
11
|
+
# tuple.merge(created_at: time, updated_at: time)
|
12
|
+
# end
|
10
13
|
end
|
@@ -1,7 +1,6 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
end
|
1
|
+
class Delete<%= model_name %> < ROM::Commands::Delete<%= "[:#{adapter}]" %>
|
2
|
+
relation :<%= relation %>
|
3
|
+
register_as :delete
|
4
|
+
result :one
|
5
|
+
|
7
6
|
end
|
@@ -1,10 +1,13 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
result :one
|
1
|
+
class Update<%= model_name %> < ROM::Commands::Update<%= "[:#{adapter}]" %>
|
2
|
+
relation :<%= relation %>
|
3
|
+
register_as :update
|
4
|
+
result :one
|
6
5
|
|
7
|
-
|
8
|
-
|
9
|
-
|
6
|
+
# Modify input data before committing it.
|
7
|
+
# before :timestamp
|
8
|
+
|
9
|
+
# def timestamp(tuple)
|
10
|
+
# time = Time.current
|
11
|
+
# tuple.merge(created_at: time)
|
12
|
+
# end
|
10
13
|
end
|
@@ -23,11 +23,7 @@ module ROM
|
|
23
23
|
private
|
24
24
|
|
25
25
|
def command_file(command)
|
26
|
-
File.join('app', 'commands',
|
27
|
-
end
|
28
|
-
|
29
|
-
def command_dir
|
30
|
-
"#{class_name.downcase.singularize}_commands"
|
26
|
+
File.join('app', 'commands', "#{command}_#{model_name.downcase}.rb")
|
31
27
|
end
|
32
28
|
|
33
29
|
def relation
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require 'generators/rom'
|
2
|
+
|
3
|
+
if defined? ROM::Repository
|
4
|
+
module ROM
|
5
|
+
module Generators
|
6
|
+
class RepositoryGenerator < Base
|
7
|
+
def create_repository_file
|
8
|
+
template(
|
9
|
+
'repository.rb.erb',
|
10
|
+
File.join('app', 'repositories', "#{repository_name}_repository.rb")
|
11
|
+
)
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def relation
|
17
|
+
class_name.pluralize.underscore
|
18
|
+
end
|
19
|
+
|
20
|
+
def model_name
|
21
|
+
class_name.singularize.camelcase
|
22
|
+
end
|
23
|
+
|
24
|
+
def repository_name
|
25
|
+
class_name.singularize.underscore
|
26
|
+
end
|
27
|
+
|
28
|
+
def mapper
|
29
|
+
repository_name
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -1,15 +1,18 @@
|
|
1
|
-
require 'virtus'
|
2
1
|
require 'rom/support/deprecations'
|
3
2
|
|
4
3
|
module ROM
|
5
4
|
module Rails
|
6
5
|
class Configuration
|
7
6
|
extend ROM::Deprecations
|
7
|
+
include ActiveSupport::Configurable
|
8
8
|
|
9
|
-
|
9
|
+
config_accessor :gateways do
|
10
|
+
{}
|
11
|
+
end
|
10
12
|
|
11
|
-
|
12
|
-
|
13
|
+
config_accessor :auto_registration_paths do
|
14
|
+
[]
|
15
|
+
end
|
13
16
|
|
14
17
|
deprecate :repositories, :gateways
|
15
18
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'dry/core/class_builder'
|
2
|
+
|
1
3
|
module ROM
|
2
4
|
module Model
|
3
5
|
class Form
|
@@ -281,7 +283,7 @@ module ROM
|
|
281
283
|
# @api private
|
282
284
|
def define_attributes!(block)
|
283
285
|
input_blocks << block
|
284
|
-
@attributes = ClassBuilder.new(name: "#{name}::Attributes", parent: Object).call { |klass|
|
286
|
+
@attributes = Dry::Core::ClassBuilder.new(name: "#{name}::Attributes", parent: Object).call { |klass|
|
285
287
|
klass.send(:include, ROM::Model::Attributes)
|
286
288
|
}
|
287
289
|
input_blocks.each do |input_block|
|
@@ -333,7 +335,7 @@ module ROM
|
|
333
335
|
#
|
334
336
|
# @api private
|
335
337
|
def define_model!
|
336
|
-
@model = ClassBuilder.new(name: "#{name}::Model", parent: @attributes).call { |klass|
|
338
|
+
@model = Dry::Core::ClassBuilder.new(name: "#{name}::Model", parent: @attributes).call { |klass|
|
337
339
|
klass.class_eval <<-RUBY, __FILE__, __LINE__ + 1
|
338
340
|
def persisted?
|
339
341
|
to_key.any?
|
@@ -356,7 +358,7 @@ module ROM
|
|
356
358
|
# @api private
|
357
359
|
def define_validator!(block)
|
358
360
|
validation_blocks << block
|
359
|
-
@validator = ClassBuilder.new(name: "#{name}::Validator", parent: Object).call { |klass|
|
361
|
+
@validator = Dry::Core::ClassBuilder.new(name: "#{name}::Validator", parent: Object).call { |klass|
|
360
362
|
klass.send(:include, ROM::Model::Validator)
|
361
363
|
}
|
362
364
|
validation_blocks.each { |validation| @validator.class_eval(&validation) }
|
data/lib/rom/rails/model/form.rb
CHANGED
@@ -90,6 +90,18 @@ module ROM
|
|
90
90
|
delegate :model_name, to: :attributes
|
91
91
|
end
|
92
92
|
|
93
|
+
# Raise deprecation warning when class is used:
|
94
|
+
#
|
95
|
+
# @api private
|
96
|
+
def self.inherited(klass)
|
97
|
+
ROM::Deprecations.announce "ROM::Model::Form", <<-MSG
|
98
|
+
We now recommend using Reform or another dedicated form library,
|
99
|
+
in conjunction with ROM::Repository or explicit command invocations.
|
100
|
+
MSG
|
101
|
+
|
102
|
+
super
|
103
|
+
end
|
104
|
+
|
93
105
|
# @api private
|
94
106
|
def initialize(params = {}, options = {})
|
95
107
|
@params = params.respond_to?(:to_unsafe_hash) ?
|
data/lib/rom/rails/version.rb
CHANGED
data/rom-rails.gemspec
CHANGED
@@ -17,15 +17,16 @@ Gem::Specification.new do |spec|
|
|
17
17
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
18
18
|
spec.require_paths = ["lib"]
|
19
19
|
|
20
|
-
spec.add_runtime_dependency 'rom', '~>
|
20
|
+
spec.add_runtime_dependency 'rom', '~> 3.0.0.beta'
|
21
21
|
spec.add_runtime_dependency 'rom-support', '~> 2.0'
|
22
22
|
spec.add_runtime_dependency 'rom-model', '~> 0.3'
|
23
23
|
spec.add_runtime_dependency 'dry-equalizer', '~> 0.2'
|
24
|
+
spec.add_runtime_dependency 'dry-core', '~> 0.2', '>= 0.2.1'
|
24
25
|
spec.add_runtime_dependency 'addressable', '~> 2.3'
|
25
26
|
spec.add_runtime_dependency 'charlatan', '~> 0.1'
|
26
|
-
spec.add_runtime_dependency 'virtus', '~> 1.0', '>= 1.0.5'
|
27
27
|
spec.add_runtime_dependency 'railties', '>= 3.0', '< 6.0'
|
28
28
|
|
29
|
+
spec.add_development_dependency "rom-repository"
|
29
30
|
spec.add_development_dependency "bundler"
|
30
31
|
spec.add_development_dependency "rake"
|
31
32
|
spec.add_development_dependency "rubocop", "~> 0.28"
|
@@ -17,48 +17,51 @@ describe ROM::Generators::CommandsGenerator do
|
|
17
17
|
expect(destination_root).to have_structure {
|
18
18
|
directory 'app' do
|
19
19
|
directory 'commands' do
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
module UserCommands
|
24
|
-
class Create < ROM::Commands::Create[:#{default_adapter}]
|
20
|
+
file 'create_user.rb' do
|
21
|
+
contains <<-CONTENT.strip_heredoc
|
22
|
+
class CreateUser < ROM::Commands::Create[:#{default_adapter}]
|
25
23
|
relation :users
|
26
24
|
register_as :create
|
27
25
|
result :one
|
28
26
|
|
29
|
-
#
|
30
|
-
#
|
27
|
+
# Modify input data before committing it.
|
28
|
+
# before :timestamp
|
29
|
+
|
30
|
+
# def timestamp(tuple)
|
31
|
+
# time = Time.current
|
32
|
+
# tuple.merge(created_at: time, updated_at: time)
|
33
|
+
# end
|
31
34
|
end
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
module UserCommands
|
39
|
-
class Update < ROM::Commands::Update[:#{default_adapter}]
|
35
|
+
CONTENT
|
36
|
+
end
|
37
|
+
|
38
|
+
file 'update_user.rb' do
|
39
|
+
contains <<-CONTENT.strip_heredoc
|
40
|
+
class UpdateUser < ROM::Commands::Update[:#{default_adapter}]
|
40
41
|
relation :users
|
41
42
|
register_as :update
|
42
43
|
result :one
|
43
44
|
|
44
|
-
#
|
45
|
-
#
|
45
|
+
# Modify input data before committing it.
|
46
|
+
# before :timestamp
|
47
|
+
|
48
|
+
# def timestamp(tuple)
|
49
|
+
# time = Time.current
|
50
|
+
# tuple.merge(created_at: time)
|
51
|
+
# end
|
46
52
|
end
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
module UserCommands
|
54
|
-
class Delete < ROM::Commands::Delete[:#{default_adapter}]
|
53
|
+
CONTENT
|
54
|
+
end
|
55
|
+
|
56
|
+
file 'delete_user.rb' do
|
57
|
+
contains <<-CONTENT.strip_heredoc
|
58
|
+
class DeleteUser < ROM::Commands::Delete[:#{default_adapter}]
|
55
59
|
relation :users
|
56
60
|
register_as :delete
|
57
61
|
result :one
|
62
|
+
|
58
63
|
end
|
59
|
-
|
60
|
-
CONTENT
|
61
|
-
end
|
64
|
+
CONTENT
|
62
65
|
end
|
63
66
|
end
|
64
67
|
end
|
@@ -68,13 +71,13 @@ describe ROM::Generators::CommandsGenerator do
|
|
68
71
|
specify "with given adapter" do
|
69
72
|
run_generator ['users', '--adapter=memory']
|
70
73
|
|
71
|
-
create = File.read(File.join(destination_root, 'app', 'commands', '
|
72
|
-
expect(create).to include("class
|
74
|
+
create = File.read(File.join(destination_root, 'app', 'commands', 'create_user.rb'))
|
75
|
+
expect(create).to include("class CreateUser < ROM::Commands::Create[:memory]")
|
73
76
|
|
74
|
-
update = File.read(File.join(destination_root, 'app', 'commands', '
|
75
|
-
expect(update).to include("class
|
77
|
+
update = File.read(File.join(destination_root, 'app', 'commands', 'update_user.rb'))
|
78
|
+
expect(update).to include("class UpdateUser < ROM::Commands::Update[:memory]")
|
76
79
|
|
77
|
-
delete = File.read(File.join(destination_root, 'app', 'commands', '
|
78
|
-
expect(delete).to include("class
|
80
|
+
delete = File.read(File.join(destination_root, 'app', 'commands', 'delete_user.rb'))
|
81
|
+
expect(delete).to include("class DeleteUser < ROM::Commands::Delete[:memory]")
|
79
82
|
end
|
80
83
|
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
require 'rom-repository'
|
4
|
+
require 'generators/rom/repository_generator'
|
5
|
+
|
6
|
+
describe ROM::Generators::RepositoryGenerator, type: :generator do
|
7
|
+
destination File.expand_path('../../../../tmp', __FILE__)
|
8
|
+
|
9
|
+
before(:each) do
|
10
|
+
prepare_destination
|
11
|
+
end
|
12
|
+
|
13
|
+
specify do
|
14
|
+
run_generator ['users']
|
15
|
+
|
16
|
+
expect(destination_root).to have_structure {
|
17
|
+
directory 'app' do
|
18
|
+
directory 'repositories' do
|
19
|
+
file 'user_repository.rb' do
|
20
|
+
contains <<-CONTENT.strip_heredoc
|
21
|
+
class UserRepository < ROM::Repository[:users]
|
22
|
+
commands :create, update: :by_pk, delete: :by_pk, mapper: :user
|
23
|
+
end
|
24
|
+
CONTENT
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
}
|
29
|
+
end
|
30
|
+
|
31
|
+
specify 'when generator has a compund name' do
|
32
|
+
run_generator ['user_profiles']
|
33
|
+
|
34
|
+
expect(destination_root).to have_structure {
|
35
|
+
directory 'app' do
|
36
|
+
directory 'repositories' do
|
37
|
+
file 'user_profile_repository.rb' do
|
38
|
+
contains <<-CONTENT.strip_heredoc
|
39
|
+
class UserProfileRepository < ROM::Repository[:user_profiles]
|
40
|
+
commands :create, update: :by_pk, delete: :by_pk, mapper: :user_profile
|
41
|
+
end
|
42
|
+
CONTENT
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
}
|
47
|
+
end
|
48
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rom-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.9.0.beta1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Piotr Solnica
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-01-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rom
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 3.0.0.beta
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 3.0.0.beta
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rom-support
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -67,53 +67,53 @@ dependencies:
|
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0.2'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
70
|
+
name: dry-core
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: '2
|
75
|
+
version: '0.2'
|
76
|
+
- - ">="
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
version: 0.2.1
|
76
79
|
type: :runtime
|
77
80
|
prerelease: false
|
78
81
|
version_requirements: !ruby/object:Gem::Requirement
|
79
82
|
requirements:
|
80
83
|
- - "~>"
|
81
84
|
- !ruby/object:Gem::Version
|
82
|
-
version: '2
|
85
|
+
version: '0.2'
|
86
|
+
- - ">="
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: 0.2.1
|
83
89
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
90
|
+
name: addressable
|
85
91
|
requirement: !ruby/object:Gem::Requirement
|
86
92
|
requirements:
|
87
93
|
- - "~>"
|
88
94
|
- !ruby/object:Gem::Version
|
89
|
-
version: '
|
95
|
+
version: '2.3'
|
90
96
|
type: :runtime
|
91
97
|
prerelease: false
|
92
98
|
version_requirements: !ruby/object:Gem::Requirement
|
93
99
|
requirements:
|
94
100
|
- - "~>"
|
95
101
|
- !ruby/object:Gem::Version
|
96
|
-
version: '
|
102
|
+
version: '2.3'
|
97
103
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
104
|
+
name: charlatan
|
99
105
|
requirement: !ruby/object:Gem::Requirement
|
100
106
|
requirements:
|
101
107
|
- - "~>"
|
102
108
|
- !ruby/object:Gem::Version
|
103
|
-
version: '1
|
104
|
-
- - ">="
|
105
|
-
- !ruby/object:Gem::Version
|
106
|
-
version: 1.0.5
|
109
|
+
version: '0.1'
|
107
110
|
type: :runtime
|
108
111
|
prerelease: false
|
109
112
|
version_requirements: !ruby/object:Gem::Requirement
|
110
113
|
requirements:
|
111
114
|
- - "~>"
|
112
115
|
- !ruby/object:Gem::Version
|
113
|
-
version: '1
|
114
|
-
- - ">="
|
115
|
-
- !ruby/object:Gem::Version
|
116
|
-
version: 1.0.5
|
116
|
+
version: '0.1'
|
117
117
|
- !ruby/object:Gem::Dependency
|
118
118
|
name: railties
|
119
119
|
requirement: !ruby/object:Gem::Requirement
|
@@ -134,6 +134,20 @@ dependencies:
|
|
134
134
|
- - "<"
|
135
135
|
- !ruby/object:Gem::Version
|
136
136
|
version: '6.0'
|
137
|
+
- !ruby/object:Gem::Dependency
|
138
|
+
name: rom-repository
|
139
|
+
requirement: !ruby/object:Gem::Requirement
|
140
|
+
requirements:
|
141
|
+
- - ">="
|
142
|
+
- !ruby/object:Gem::Version
|
143
|
+
version: '0'
|
144
|
+
type: :development
|
145
|
+
prerelease: false
|
146
|
+
version_requirements: !ruby/object:Gem::Requirement
|
147
|
+
requirements:
|
148
|
+
- - ">="
|
149
|
+
- !ruby/object:Gem::Version
|
150
|
+
version: '0'
|
137
151
|
- !ruby/object:Gem::Dependency
|
138
152
|
name: bundler
|
139
153
|
requirement: !ruby/object:Gem::Requirement
|
@@ -205,6 +219,8 @@ files:
|
|
205
219
|
- lib/generators/rom/mapper_generator.rb
|
206
220
|
- lib/generators/rom/relation/templates/relation.rb.erb
|
207
221
|
- lib/generators/rom/relation_generator.rb
|
222
|
+
- lib/generators/rom/repository/templates/repository.rb.erb
|
223
|
+
- lib/generators/rom/repository_generator.rb
|
208
224
|
- lib/rom-rails.rb
|
209
225
|
- lib/rom/rails/active_record/configuration.rb
|
210
226
|
- lib/rom/rails/configuration.rb
|
@@ -221,7 +237,6 @@ files:
|
|
221
237
|
- spec/dummy/README.rdoc
|
222
238
|
- spec/dummy/Rakefile
|
223
239
|
- spec/dummy/app/commands/create_task.rb
|
224
|
-
- spec/dummy/app/commands/create_task_with_validations.rb
|
225
240
|
- spec/dummy/app/commands/delete_user.rb
|
226
241
|
- spec/dummy/app/controllers/application_controller.rb
|
227
242
|
- spec/dummy/app/controllers/users_controller.rb
|
@@ -279,7 +294,6 @@ files:
|
|
279
294
|
- spec/dummy/vendor/assets/stylesheets/.keep
|
280
295
|
- spec/features/users_spec.rb
|
281
296
|
- spec/integration/activerecord_setup.rb
|
282
|
-
- spec/integration/form_with_command_validation_spec.rb
|
283
297
|
- spec/integration/form_with_injected_commands_spec.rb
|
284
298
|
- spec/integration/initializer_spec.rb
|
285
299
|
- spec/integration/logger_spec.rb
|
@@ -291,6 +305,7 @@ files:
|
|
291
305
|
- spec/lib/generators/form_generator_spec.rb
|
292
306
|
- spec/lib/generators/mapper_generator_spec.rb
|
293
307
|
- spec/lib/generators/relation_generator_spec.rb
|
308
|
+
- spec/lib/generators/repository_generator_spec.rb
|
294
309
|
- spec/spec_helper.rb
|
295
310
|
- spec/unit/form_spec.rb
|
296
311
|
homepage: http://rom-rb.org
|
@@ -308,9 +323,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
308
323
|
version: '0'
|
309
324
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
310
325
|
requirements:
|
311
|
-
- - "
|
326
|
+
- - ">"
|
312
327
|
- !ruby/object:Gem::Version
|
313
|
-
version:
|
328
|
+
version: 1.3.1
|
314
329
|
requirements: []
|
315
330
|
rubyforge_project:
|
316
331
|
rubygems_version: 2.4.5.1
|
@@ -322,7 +337,6 @@ test_files:
|
|
322
337
|
- spec/dummy/README.rdoc
|
323
338
|
- spec/dummy/Rakefile
|
324
339
|
- spec/dummy/app/commands/create_task.rb
|
325
|
-
- spec/dummy/app/commands/create_task_with_validations.rb
|
326
340
|
- spec/dummy/app/commands/delete_user.rb
|
327
341
|
- spec/dummy/app/controllers/application_controller.rb
|
328
342
|
- spec/dummy/app/controllers/users_controller.rb
|
@@ -380,7 +394,6 @@ test_files:
|
|
380
394
|
- spec/dummy/vendor/assets/stylesheets/.keep
|
381
395
|
- spec/features/users_spec.rb
|
382
396
|
- spec/integration/activerecord_setup.rb
|
383
|
-
- spec/integration/form_with_command_validation_spec.rb
|
384
397
|
- spec/integration/form_with_injected_commands_spec.rb
|
385
398
|
- spec/integration/initializer_spec.rb
|
386
399
|
- spec/integration/logger_spec.rb
|
@@ -392,5 +405,6 @@ test_files:
|
|
392
405
|
- spec/lib/generators/form_generator_spec.rb
|
393
406
|
- spec/lib/generators/mapper_generator_spec.rb
|
394
407
|
- spec/lib/generators/relation_generator_spec.rb
|
408
|
+
- spec/lib/generators/repository_generator_spec.rb
|
395
409
|
- spec/spec_helper.rb
|
396
410
|
- spec/unit/form_spec.rb
|
@@ -1,33 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe 'Form with command supplied validations' do
|
4
|
-
|
5
|
-
subject(:form) { form_class.build(params) }
|
6
|
-
|
7
|
-
let(:params) {{}}
|
8
|
-
|
9
|
-
let(:form_class) do
|
10
|
-
Class.new(ROM::Model::Form) do
|
11
|
-
inject_commands_for :tasks
|
12
|
-
|
13
|
-
input do
|
14
|
-
set_model_name 'Task'
|
15
|
-
|
16
|
-
attribute :title
|
17
|
-
end
|
18
|
-
|
19
|
-
def commit!
|
20
|
-
tasks.try { tasks.create_task_with_validations.call(attributes) }
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
|
26
|
-
it "copies validation errors from command" do
|
27
|
-
form.save
|
28
|
-
|
29
|
-
errors = form.errors
|
30
|
-
expect(errors[:title]).to be_present
|
31
|
-
end
|
32
|
-
|
33
|
-
end
|