rom-rails 0.7.0 → 0.8.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/.travis.yml +8 -2
- data/CHANGELOG.md +26 -3
- data/Gemfile +3 -2
- data/README.md +1 -1
- data/lib/rom/rails/model/form.rb +6 -4
- data/lib/rom/rails/model/form/class_interface.rb +0 -1
- data/lib/rom/rails/version.rb +1 -1
- data/rom-rails.gemspec +1 -1
- data/spec/dummy/app/commands/create_task_with_validations.rb +11 -0
- data/spec/dummy/config/application.rb +0 -2
- data/spec/integration/form_with_command_validation_spec.rb +33 -0
- data/spec/unit/form_spec.rb +2 -2
- metadata +9 -7
- data/db +0 -1
- data/log +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c71af912d846495ada02031cada0f862e572ae3a
|
4
|
+
data.tar.gz: f4a68403dd222af657cbea87ab6531be66f27191
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 28d19550136b0bf857f3728edfe5a374426f9612d719cb37ffbf63868f7673af93cdeb837fea2a34e70861ea532942f720a72740d0cdad680060cc475a75fff7
|
7
|
+
data.tar.gz: 12c820a8f0ffdb019fc53dba13f6f90f573e2cff9bc7a04b7361ee48ee906fd45b6d485611373dde921df2e48200bab14a5b1595576081a719ecb119b1bd4e67
|
data/.travis.yml
CHANGED
@@ -4,15 +4,21 @@ cache: bundler
|
|
4
4
|
bundler_args: --without yard guard benchmarks
|
5
5
|
script: "RAILS_ENV=test bundle exec rake app:db:reset app:spec"
|
6
6
|
rvm:
|
7
|
-
- 2.
|
8
|
-
- 2.2
|
7
|
+
- 2.2.2
|
9
8
|
- 2.3.1
|
10
9
|
- rbx-2
|
11
10
|
- jruby-9.0.5.0
|
12
11
|
- ruby-head
|
12
|
+
env:
|
13
|
+
- RAILS_VERSION=5.0.0
|
14
|
+
- RAILS_VERSION=4.2.0
|
13
15
|
matrix:
|
14
16
|
allow_failures:
|
15
17
|
- rvm: ruby-head
|
18
|
+
- rvm: rbx-2
|
19
|
+
exclude:
|
20
|
+
- rvm: rbx-2
|
21
|
+
env: RAILS_VERSION=5.0.0
|
16
22
|
notifications:
|
17
23
|
webhooks:
|
18
24
|
urls:
|
data/CHANGELOG.md
CHANGED
@@ -1,8 +1,31 @@
|
|
1
|
-
## v0.
|
1
|
+
## v0.8.0 2016-08-08
|
2
|
+
### Changed
|
3
|
+
|
4
|
+
- Updated to work with Rails 5 (cflipse)
|
5
|
+
- Form validations are now handled entirely within form (cflipse)
|
6
|
+
- [Rails5] when applicable, parmeters are converted to unsafe hash (cflipse)
|
7
|
+
|
8
|
+
### Deprecated
|
9
|
+
- Dropping support for ruby 2.1 and below
|
10
|
+
|
11
|
+
## v0.7.0 2016-07-27
|
12
|
+
|
13
|
+
### Changed
|
14
|
+
- Updated to work with rom 2.0
|
15
|
+
- Loosen Gem dependencies for Rails 4.2
|
16
|
+
- Allow multiple auto_registration paths (vbyno)
|
2
17
|
|
3
|
-
|
18
|
+
[Compare v0.6.0...v0.7.0](https://github.com/rom-rb/rom-rails/compare/v0.6.0...v0.7.0)
|
19
|
+
|
20
|
+
### Fixed
|
21
|
+
- Fixed generated mapper's `register_as` (duduribeiro)
|
22
|
+
|
23
|
+
## v0.6.0 2016-01-06
|
24
|
+
|
25
|
+
### Changed
|
26
|
+
- Updated to work with new ROM configuration API.
|
4
27
|
|
5
|
-
[Compare v0.6.0
|
28
|
+
[Compare v0.5.0...v0.6.0](https://github.com/rom-rb/rom-rails/compare/v0.5.0...v0.6.0)
|
6
29
|
|
7
30
|
## v0.5.0 2015-08-19
|
8
31
|
|
data/Gemfile
CHANGED
@@ -2,15 +2,16 @@ source 'https://rubygems.org'
|
|
2
2
|
|
3
3
|
gemspec
|
4
4
|
|
5
|
-
RAILS_VERSION = '
|
5
|
+
RAILS_VERSION = ENV.fetch("RAILS_VERSION", '5.0.0').freeze
|
6
6
|
|
7
7
|
%w(railties actionview actionpack activerecord).each do |name|
|
8
|
-
gem name, RAILS_VERSION
|
8
|
+
gem name, "~> #{RAILS_VERSION}"
|
9
9
|
end
|
10
10
|
|
11
11
|
gem 'sqlite3', platforms: [:mri, :rbx]
|
12
12
|
gem 'byebug', platforms: :mri
|
13
13
|
gem 'rom-sql', '~> 0.8'
|
14
|
+
gem 'rom-model', github: 'rom-rb/rom-model', branch: 'master'
|
14
15
|
|
15
16
|
platforms :jruby do
|
16
17
|
gem 'jdbc-sqlite3'
|
data/README.md
CHANGED
@@ -35,7 +35,7 @@ To run tests:
|
|
35
35
|
You can read more about ROM and Rails on the official website:
|
36
36
|
|
37
37
|
* [Introduction to ROM](http://rom-rb.org/learn/)
|
38
|
-
* [Rails setup](http://rom-rb.org/learn/
|
38
|
+
* [Rails setup](http://rom-rb.org/learn/getting-started/rails-setup/)
|
39
39
|
|
40
40
|
|
41
41
|
## Community
|
data/lib/rom/rails/model/form.rb
CHANGED
@@ -92,8 +92,9 @@ module ROM
|
|
92
92
|
|
93
93
|
# @api private
|
94
94
|
def initialize(params = {}, options = {})
|
95
|
-
@params = params
|
96
|
-
|
95
|
+
@params = params.respond_to?(:to_unsafe_hash) ?
|
96
|
+
params.to_unsafe_hash : params
|
97
|
+
@model = self.class.model.new(params.to_h.merge(options.slice(*self.class.key)))
|
97
98
|
@result = nil
|
98
99
|
@errors = ErrorProxy.new
|
99
100
|
options.each { |key, value| instance_variable_set("@#{key}", value) }
|
@@ -114,9 +115,9 @@ module ROM
|
|
114
115
|
#
|
115
116
|
# @api public
|
116
117
|
def save(*args)
|
117
|
-
|
118
|
-
@result = commit!(*args)
|
118
|
+
validate!
|
119
119
|
|
120
|
+
@result = commit!(*args) unless @errors.present?
|
120
121
|
@errors.set @result.error if result.respond_to? :error
|
121
122
|
|
122
123
|
self
|
@@ -136,6 +137,7 @@ module ROM
|
|
136
137
|
# @api public
|
137
138
|
def validate!
|
138
139
|
@errors.clear
|
140
|
+
return unless defined? self.class::Validator
|
139
141
|
validator = self.class::Validator.new(attributes)
|
140
142
|
validator.validate
|
141
143
|
|
data/lib/rom/rails/version.rb
CHANGED
data/rom-rails.gemspec
CHANGED
@@ -24,7 +24,7 @@ Gem::Specification.new do |spec|
|
|
24
24
|
spec.add_runtime_dependency 'addressable', '~> 2.3'
|
25
25
|
spec.add_runtime_dependency 'charlatan', '~> 0.1'
|
26
26
|
spec.add_runtime_dependency 'virtus', '~> 1.0', '>= 1.0.5'
|
27
|
-
spec.add_runtime_dependency 'railties',
|
27
|
+
spec.add_runtime_dependency 'railties', '>= 3.0', '< 6.0'
|
28
28
|
|
29
29
|
spec.add_development_dependency "bundler"
|
30
30
|
spec.add_development_dependency "rake"
|
@@ -0,0 +1,33 @@
|
|
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
|
data/spec/unit/form_spec.rb
CHANGED
@@ -187,12 +187,12 @@ describe 'Form' do
|
|
187
187
|
|
188
188
|
describe '#save' do
|
189
189
|
it 'commits the form without extra args' do
|
190
|
-
result = form.build({}).save.result
|
190
|
+
result = form.build({email: 'jdoe@example.com'}).save.result
|
191
191
|
expect(result).to eql('it works []')
|
192
192
|
end
|
193
193
|
|
194
194
|
it 'commits the form with extra args' do
|
195
|
-
result = form.build({}).save(1, 2, 3).result
|
195
|
+
result = form.build({email: 'jdoe@example.com'}).save(1, 2, 3).result
|
196
196
|
expect(result).to eql('it works [1, 2, 3]')
|
197
197
|
end
|
198
198
|
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.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Piotr Solnica
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-08-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rom
|
@@ -123,7 +123,7 @@ dependencies:
|
|
123
123
|
version: '3.0'
|
124
124
|
- - "<"
|
125
125
|
- !ruby/object:Gem::Version
|
126
|
-
version: '
|
126
|
+
version: '6.0'
|
127
127
|
type: :runtime
|
128
128
|
prerelease: false
|
129
129
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -133,7 +133,7 @@ dependencies:
|
|
133
133
|
version: '3.0'
|
134
134
|
- - "<"
|
135
135
|
- !ruby/object:Gem::Version
|
136
|
-
version: '
|
136
|
+
version: '6.0'
|
137
137
|
- !ruby/object:Gem::Dependency
|
138
138
|
name: bundler
|
139
139
|
requirement: !ruby/object:Gem::Requirement
|
@@ -192,7 +192,6 @@ files:
|
|
192
192
|
- LICENSE
|
193
193
|
- README.md
|
194
194
|
- Rakefile
|
195
|
-
- db
|
196
195
|
- lib/generators/rom.rb
|
197
196
|
- lib/generators/rom/commands/templates/create.rb.erb
|
198
197
|
- lib/generators/rom/commands/templates/delete.rb.erb
|
@@ -217,12 +216,12 @@ files:
|
|
217
216
|
- lib/rom/rails/railtie.rb
|
218
217
|
- lib/rom/rails/tasks/db.rake
|
219
218
|
- lib/rom/rails/version.rb
|
220
|
-
- log
|
221
219
|
- rom-rails.gemspec
|
222
220
|
- spec/dummy/.rspec
|
223
221
|
- spec/dummy/README.rdoc
|
224
222
|
- spec/dummy/Rakefile
|
225
223
|
- spec/dummy/app/commands/create_task.rb
|
224
|
+
- spec/dummy/app/commands/create_task_with_validations.rb
|
226
225
|
- spec/dummy/app/commands/delete_user.rb
|
227
226
|
- spec/dummy/app/controllers/application_controller.rb
|
228
227
|
- spec/dummy/app/controllers/users_controller.rb
|
@@ -280,6 +279,7 @@ files:
|
|
280
279
|
- spec/dummy/vendor/assets/stylesheets/.keep
|
281
280
|
- spec/features/users_spec.rb
|
282
281
|
- spec/integration/activerecord_setup.rb
|
282
|
+
- spec/integration/form_with_command_validation_spec.rb
|
283
283
|
- spec/integration/form_with_injected_commands_spec.rb
|
284
284
|
- spec/integration/initializer_spec.rb
|
285
285
|
- spec/integration/logger_spec.rb
|
@@ -313,7 +313,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
313
313
|
version: '0'
|
314
314
|
requirements: []
|
315
315
|
rubyforge_project:
|
316
|
-
rubygems_version: 2.5.1
|
316
|
+
rubygems_version: 2.4.5.1
|
317
317
|
signing_key:
|
318
318
|
specification_version: 4
|
319
319
|
summary: Integrate Ruby Object Mapper with Rails
|
@@ -322,6 +322,7 @@ test_files:
|
|
322
322
|
- spec/dummy/README.rdoc
|
323
323
|
- spec/dummy/Rakefile
|
324
324
|
- spec/dummy/app/commands/create_task.rb
|
325
|
+
- spec/dummy/app/commands/create_task_with_validations.rb
|
325
326
|
- spec/dummy/app/commands/delete_user.rb
|
326
327
|
- spec/dummy/app/controllers/application_controller.rb
|
327
328
|
- spec/dummy/app/controllers/users_controller.rb
|
@@ -379,6 +380,7 @@ test_files:
|
|
379
380
|
- spec/dummy/vendor/assets/stylesheets/.keep
|
380
381
|
- spec/features/users_spec.rb
|
381
382
|
- spec/integration/activerecord_setup.rb
|
383
|
+
- spec/integration/form_with_command_validation_spec.rb
|
382
384
|
- spec/integration/form_with_injected_commands_spec.rb
|
383
385
|
- spec/integration/initializer_spec.rb
|
384
386
|
- spec/integration/logger_spec.rb
|