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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c71af912d846495ada02031cada0f862e572ae3a
4
- data.tar.gz: f4a68403dd222af657cbea87ab6531be66f27191
3
+ metadata.gz: 8007e09944a10d2fb2f652bb08c5885cd79d61a6
4
+ data.tar.gz: 8320458f6c6a7c4289236bc3a0a493996d0d4e5a
5
5
  SHA512:
6
- metadata.gz: 28d19550136b0bf857f3728edfe5a374426f9612d719cb37ffbf63868f7673af93cdeb837fea2a34e70861ea532942f720a72740d0cdad680060cc475a75fff7
7
- data.tar.gz: 12c820a8f0ffdb019fc53dba13f6f90f573e2cff9bc7a04b7361ee48ee906fd45b6d485611373dde921df2e48200bab14a5b1595576081a719ecb119b1bd4e67
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
- - 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)
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
- - Dropping support for ruby 2.1 and below
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
- - Updated to work with rom 2.0
15
- - Loosen Gem dependencies for Rails 4.2
16
- - Allow multiple auto_registration paths (vbyno)
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
- - Fixed generated mapper's `register_as` (duduribeiro)
35
+ * Fixed generated mapper's `register_as` (duduribeiro)
22
36
 
23
37
  ## v0.6.0 2016-01-06
24
38
 
25
39
  ### Changed
26
- - Updated to work with new ROM configuration API.
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
- - Raise a helpful error when trying to use uniqueness validation without a relation (xaviershay)
35
- - Switched to extracted rom-model (solnic)
36
- - Updated to work with ROM 0.9.0 (solnic)
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
- - Setting connectin URI for jruby that needs jdbc adapter (austinthecoder)
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-sql', '~> 0.8'
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
- module <%= model_name %>Commands
2
- class Create < ROM::Commands::Create<%= "[:#{adapter}]" %>
3
- relation :<%= relation %>
4
- register_as :create
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
- # define a validator to use
8
- # validator <%= model_name %>Validator
9
- end
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
- module <%= model_name %>Commands
2
- class Delete < ROM::Commands::Delete<%= "[:#{adapter}]" %>
3
- relation :<%= relation %>
4
- register_as :delete
5
- result :one
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
- module <%= model_name %>Commands
2
- class Update < ROM::Commands::Update<%= "[:#{adapter}]" %>
3
- relation :<%= relation %>
4
- register_as :update
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
- # define a validator to use
8
- # validator <%= model_name %>Validator
9
- end
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', command_dir, "#{command}.rb")
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,3 @@
1
+ class <%= model_name %>Repository < ROM::Repository<%="[:#{relation}]"%>
2
+ commands :create, update: :by_pk, delete: :by_pk, mapper: :<%= mapper %>
3
+ end
@@ -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
- include Virtus.model(strict: true)
9
+ config_accessor :gateways do
10
+ {}
11
+ end
10
12
 
11
- attribute :gateways, Hash, default: {}
12
- attribute :auto_registration_paths, Array, default: []
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) }
@@ -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) ?
@@ -1,5 +1,5 @@
1
1
  module ROM
2
2
  module Rails
3
- VERSION = '0.8.0'.freeze
3
+ VERSION = '0.9.0.beta1'.freeze
4
4
  end
5
5
  end
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', '~> 2.0'
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
- directory 'user_commands' do
21
- file 'create.rb' do
22
- contains <<-CONTENT.strip_heredoc
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
- # define a validator to use
30
- # validator UserValidator
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
- end
33
- CONTENT
34
- end
35
-
36
- file 'update.rb' do
37
- contains <<-CONTENT.strip_heredoc
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
- # define a validator to use
45
- # validator UserValidator
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
- end
48
- CONTENT
49
- end
50
-
51
- file 'delete.rb' do
52
- contains <<-CONTENT.strip_heredoc
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
- end
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', 'user_commands', 'create.rb'))
72
- expect(create).to include("class Create < ROM::Commands::Create[:memory]")
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', 'user_commands', 'update.rb'))
75
- expect(update).to include("class Update < ROM::Commands::Update[:memory]")
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', 'user_commands', 'delete.rb'))
78
- expect(delete).to include("class Delete < ROM::Commands::Delete[:memory]")
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.8.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: 2016-08-08 00:00:00.000000000 Z
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: '2.0'
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: '2.0'
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: addressable
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.3'
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.3'
85
+ version: '0.2'
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: 0.2.1
83
89
  - !ruby/object:Gem::Dependency
84
- name: charlatan
90
+ name: addressable
85
91
  requirement: !ruby/object:Gem::Requirement
86
92
  requirements:
87
93
  - - "~>"
88
94
  - !ruby/object:Gem::Version
89
- version: '0.1'
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: '0.1'
102
+ version: '2.3'
97
103
  - !ruby/object:Gem::Dependency
98
- name: virtus
104
+ name: charlatan
99
105
  requirement: !ruby/object:Gem::Requirement
100
106
  requirements:
101
107
  - - "~>"
102
108
  - !ruby/object:Gem::Version
103
- version: '1.0'
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.0'
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: '0'
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,11 +0,0 @@
1
- class CreateTaskWithValidations < CreateTask
2
- register_as :create_task_with_validations
3
-
4
- class Validator
5
- include ROM::Model::Validator
6
-
7
- validates :title, presence: true
8
- end
9
-
10
- validator Validator
11
- end
@@ -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