rom-rails 0.5.0 → 0.6.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: 35ec6b8265da06fcd4b015be8436704b0d43284b
4
- data.tar.gz: 6200f66f14ccc4baca9d22eb6f4f9988491c0b41
3
+ metadata.gz: 41ac1f74ab5ab20ea7e11679f5d2f5ae7a716c65
4
+ data.tar.gz: e7bbdb7acc8c063724d2dc276f5ac5790c00c92f
5
5
  SHA512:
6
- metadata.gz: 3738bc17799224e79616237c013af6c6f801f1560cb56b04aa154ffe72f9ed77f165c3e2e150c63043f7fa13c220feac21c92873f373d46821c74062e0bc53c2
7
- data.tar.gz: 0566c112c68cdc01513a088b5f8199ace435ce1900f09855b423970a65710088a43c89412473d681928491777289680e5d1718d3b3bd395efda812ef7c74c921
6
+ metadata.gz: 052691ccf1dd02f4c058699c1dc3ba05d405071caf8618d1305e29eb390088e5f631872ead19a438156c9c93133125e97690d8963ce8b75a9829eef628e01201
7
+ data.tar.gz: d384a93fce3155ef8f6bad2196add0658195eb53dd63c833c1e1494cea5a908b7a8de136805a9e5f00b3ecf9a418443d72d0a695a8efbb55e2dd54a8784ed01b
data/.travis.yml CHANGED
@@ -10,7 +10,7 @@ rvm:
10
10
  - 2.1
11
11
  - 2.2
12
12
  - rbx-2
13
- - jruby
13
+ - jruby-9000
14
14
  - ruby-head
15
15
  matrix:
16
16
  allow_failures:
data/Gemfile CHANGED
@@ -2,7 +2,7 @@ source 'https://rubygems.org'
2
2
 
3
3
  gemspec
4
4
 
5
- RAILS_VERSION = '4.2.1'
5
+ RAILS_VERSION = '4.2.4'
6
6
 
7
7
  %w(railties actionview actionpack activerecord).each do |name|
8
8
  gem name, RAILS_VERSION
@@ -19,6 +19,10 @@ group :test do
19
19
  gem 'rack-test'
20
20
  gem 'rom', github: 'rom-rb/rom', branch: 'master'
21
21
  gem 'rom-sql', github: 'rom-rb/rom-sql', branch: 'master'
22
+ gem 'rom-support', github: 'rom-rb/rom-support', branch: 'master'
23
+ gem 'rom-mapper', github: 'rom-rb/rom-mapper', branch: 'master'
24
+ gem 'rom-model', github: 'rom-rb/rom-model', branch: 'master'
25
+ gem 'transproc', github: 'solnic/transproc', branch: 'master'
22
26
  gem 'rspec-rails', '~> 3.1'
23
27
  gem 'codeclimate-test-reporter', require: nil
24
28
  gem 'database_cleaner'
@@ -425,7 +425,7 @@ module ROM
425
425
  #
426
426
  # @api private
427
427
  def build_command(name, rel_name)
428
- klass = Command.build_class(name, rel_name, adapter: adapter)
428
+ klass = ConfigurationDSL::Command.build_class(name, rel_name, adapter: adapter)
429
429
 
430
430
  klass.result :one
431
431
  klass.validator @validator
@@ -434,10 +434,11 @@ module ROM
434
434
  gateway = rom.gateways[relation.gateway]
435
435
  gateway.extend_command_class(klass, relation.dataset)
436
436
 
437
+ klass.send(:include, Command.relation_methods_mod(relation.class))
438
+
437
439
  klass.build(relation)
438
440
  end
439
441
 
440
-
441
442
  # Silently update a constant, replacing any existing definition without
442
443
  # warning
443
444
  #
@@ -1,3 +1,4 @@
1
+ require 'dry-equalizer'
1
2
  require 'rom-model'
2
3
 
3
4
  require 'rom/rails/model/form/class_interface'
@@ -46,7 +47,7 @@ module ROM
46
47
  #
47
48
  # @api public
48
49
  class Form
49
- include Equalizer.new(:params, :model, :result)
50
+ include Dry::Equalizer(:params, :model, :result)
50
51
 
51
52
  extend ROM::ClassMacros
52
53
  extend Form::ClassInterface
@@ -17,7 +17,6 @@ module ROM
17
17
  # Make `ROM::Rails::Configuration` instance available to the user via
18
18
  # `Rails.application.config` before other initializers run.
19
19
  config.before_initialize do |_app|
20
- ROM.use :auto_registration
21
20
  config.rom = Configuration.new
22
21
  end
23
22
 
@@ -41,7 +40,7 @@ module ROM
41
40
 
42
41
  # Reload ROM-related application code on each request.
43
42
  config.to_prepare do |_config|
44
- Railtie.finalize
43
+ ROM.env = Railtie.create_container
45
44
  end
46
45
 
47
46
  # Behaves like `Railtie#configure` if the given block does not take any
@@ -63,45 +62,26 @@ module ROM
63
62
  end
64
63
  end
65
64
 
66
- # @api private
67
- def setup(gateways)
68
- raise(
69
- MissingGatewayConfigError,
70
- "seems like you didn't configure any gateways"
71
- ) unless gateways.any?
72
-
73
- ROM.setup(gateways)
65
+ def create_configuration
66
+ ROM::Configuration.new(gateways)
74
67
  end
75
68
 
76
69
  # @api private
77
- def setup_gateways
78
- gateways =
79
- if env
80
- env.gateways
81
- else
82
- prepare_gateways
83
- end
84
-
85
- setup(gateways)
70
+ def create_container
71
+ configuration = create_configuration
72
+ configuration.auto_registration(root.join("app"), namespace: false)
73
+ ROM.container(configuration)
86
74
  end
87
75
 
88
76
  # @api private
89
- def finalize
90
- setup_gateways
91
- load_components
92
- ROM.finalize
93
- end
77
+ def gateways
78
+ config.rom.gateways[:default] ||= infer_default_gateway if active_record?
94
79
 
95
- # TODO: Add `ROM.env.disconnect` to core.
96
- #
97
- # @api private
98
- def disconnect
99
- ROM.gateways.each_key(&:disconnect)
100
- end
80
+ raise(
81
+ MissingGatewayConfigError,
82
+ "seems like you didn't configure any gateways"
83
+ ) unless config.rom.gateways.any?
101
84
 
102
- # @api private
103
- def prepare_gateways
104
- config.rom.gateways[:default] ||= infer_default_gateway if active_record?
105
85
  config.rom.gateways
106
86
  end
107
87
 
@@ -119,15 +99,8 @@ module ROM
119
99
  end
120
100
 
121
101
  # @api private
122
- def load_components
123
- COMPONENT_DIRS.each { |type| load_files(type) }
124
- end
125
-
126
- # @api private
127
- def load_files(type)
128
- Dir[root.join("app/#{type}/**/*.rb")].each do |path|
129
- require_dependency(path)
130
- end
102
+ def disconnect
103
+ container.disconnect unless container.nil?
131
104
  end
132
105
 
133
106
  # @api private
@@ -135,8 +108,7 @@ module ROM
135
108
  ::Rails.root
136
109
  end
137
110
 
138
- # @api private
139
- def env
111
+ def container
140
112
  ROM.env
141
113
  end
142
114
 
@@ -2,6 +2,6 @@ namespace :db do
2
2
  desc 'Set up ROM gateways'
3
3
  task :setup do
4
4
  ROM::Rails::Railtie.load_initializer
5
- ROM::Rails::Railtie.setup_gateways
5
+ ROM::Rails::Railtie.create_configuration
6
6
  end
7
7
  end
@@ -1,5 +1,5 @@
1
1
  module ROM
2
2
  module Rails
3
- VERSION = '0.5.0'.freeze
3
+ VERSION = '0.6.0.beta1'.freeze
4
4
  end
5
5
  end
data/lib/rom-rails.rb CHANGED
@@ -1,5 +1,11 @@
1
1
  require 'rom'
2
2
 
3
+ module ROM
4
+ class << self
5
+ attr_accessor :env
6
+ end
7
+ end
8
+
3
9
  require 'rom/rails/version'
4
10
  require 'rom/rails/railtie'
5
11
  require 'rom/rails/model/form'
data/rom-rails.gemspec CHANGED
@@ -17,8 +17,9 @@ 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', '~> 0.9', '>= 0.9.0'
20
+ spec.add_runtime_dependency 'rom', '~> 1.0.0.beta1'
21
21
  spec.add_runtime_dependency 'rom-model', '~> 0.1', '>= 0.1.1'
22
+ spec.add_runtime_dependency 'dry-equalizer', '~> 0.2'
22
23
  spec.add_runtime_dependency 'addressable', '~> 2.3'
23
24
  spec.add_runtime_dependency 'charlatan', '~> 0.1'
24
25
  spec.add_runtime_dependency 'virtus', '~> 1.0', '>= 1.0.5'
File without changes
File without changes
@@ -7,7 +7,7 @@ describe 'Form with injected commands' do
7
7
 
8
8
  let(:form_class) do
9
9
  Class.new(ROM::Model::Form) do
10
- commands users: :create, tags: :create
10
+ commands users: :create, tasks: :create
11
11
 
12
12
  inject_commands_for :tasks
13
13
 
data/spec/spec_helper.rb CHANGED
@@ -24,14 +24,14 @@ RSpec.configure do |config|
24
24
  config.order = "random"
25
25
 
26
26
  config.before(:suite) do
27
- conn = ROM.env.gateways[:default].connection
27
+ conn = rom.gateways[:default].connection
28
28
 
29
29
  DatabaseCleaner[:sequel, connection: conn].strategy = :transaction
30
30
  DatabaseCleaner[:sequel, connection: conn].clean_with(:truncation)
31
31
  end
32
32
 
33
33
  config.around(:each) do |example|
34
- conn = ROM.env.gateways[:default].connection
34
+ conn = rom.gateways[:default].connection
35
35
 
36
36
  DatabaseCleaner[:sequel, connection: conn].cleaning { example.run }
37
37
  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.5.0
4
+ version: 0.6.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: 2015-08-19 00:00:00.000000000 Z
11
+ date: 2015-11-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rom
@@ -16,20 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.9'
20
- - - ">="
21
- - !ruby/object:Gem::Version
22
- version: 0.9.0
19
+ version: 1.0.0.beta1
23
20
  type: :runtime
24
21
  prerelease: false
25
22
  version_requirements: !ruby/object:Gem::Requirement
26
23
  requirements:
27
24
  - - "~>"
28
25
  - !ruby/object:Gem::Version
29
- version: '0.9'
30
- - - ">="
31
- - !ruby/object:Gem::Version
32
- version: 0.9.0
26
+ version: 1.0.0.beta1
33
27
  - !ruby/object:Gem::Dependency
34
28
  name: rom-model
35
29
  requirement: !ruby/object:Gem::Requirement
@@ -50,6 +44,20 @@ dependencies:
50
44
  - - ">="
51
45
  - !ruby/object:Gem::Version
52
46
  version: 0.1.1
47
+ - !ruby/object:Gem::Dependency
48
+ name: dry-equalizer
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '0.2'
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '0.2'
53
61
  - !ruby/object:Gem::Dependency
54
62
  name: addressable
55
63
  requirement: !ruby/object:Gem::Requirement
@@ -204,8 +212,8 @@ files:
204
212
  - spec/dummy/.rspec
205
213
  - spec/dummy/README.rdoc
206
214
  - spec/dummy/Rakefile
207
- - spec/dummy/app/commands/tasks.rb
208
- - spec/dummy/app/commands/users.rb
215
+ - spec/dummy/app/commands/create_task.rb
216
+ - spec/dummy/app/commands/delete_user.rb
209
217
  - spec/dummy/app/controllers/application_controller.rb
210
218
  - spec/dummy/app/controllers/users_controller.rb
211
219
  - spec/dummy/app/forms/new_user_form.rb
@@ -213,8 +221,8 @@ files:
213
221
  - spec/dummy/app/forms/user_form.rb
214
222
  - spec/dummy/app/helpers/application_helper.rb
215
223
  - spec/dummy/app/mailers/.keep
216
- - spec/dummy/app/mappers/tasks.rb
217
- - spec/dummy/app/mappers/users.rb
224
+ - spec/dummy/app/mappers/task_mapper.rb
225
+ - spec/dummy/app/mappers/user_mapper.rb
218
226
  - spec/dummy/app/models/.keep
219
227
  - spec/dummy/app/models/user.rb
220
228
  - spec/dummy/app/relations/dummy_relation.rb
@@ -289,9 +297,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
289
297
  version: '0'
290
298
  required_rubygems_version: !ruby/object:Gem::Requirement
291
299
  requirements:
292
- - - ">="
300
+ - - ">"
293
301
  - !ruby/object:Gem::Version
294
- version: '0'
302
+ version: 1.3.1
295
303
  requirements: []
296
304
  rubyforge_project:
297
305
  rubygems_version: 2.4.5
@@ -302,8 +310,8 @@ test_files:
302
310
  - spec/dummy/.rspec
303
311
  - spec/dummy/README.rdoc
304
312
  - spec/dummy/Rakefile
305
- - spec/dummy/app/commands/tasks.rb
306
- - spec/dummy/app/commands/users.rb
313
+ - spec/dummy/app/commands/create_task.rb
314
+ - spec/dummy/app/commands/delete_user.rb
307
315
  - spec/dummy/app/controllers/application_controller.rb
308
316
  - spec/dummy/app/controllers/users_controller.rb
309
317
  - spec/dummy/app/forms/new_user_form.rb
@@ -311,8 +319,8 @@ test_files:
311
319
  - spec/dummy/app/forms/user_form.rb
312
320
  - spec/dummy/app/helpers/application_helper.rb
313
321
  - spec/dummy/app/mailers/.keep
314
- - spec/dummy/app/mappers/tasks.rb
315
- - spec/dummy/app/mappers/users.rb
322
+ - spec/dummy/app/mappers/task_mapper.rb
323
+ - spec/dummy/app/mappers/user_mapper.rb
316
324
  - spec/dummy/app/models/.keep
317
325
  - spec/dummy/app/models/user.rb
318
326
  - spec/dummy/app/relations/dummy_relation.rb
@@ -372,3 +380,4 @@ test_files:
372
380
  - spec/lib/generators/relation_generator_spec.rb
373
381
  - spec/spec_helper.rb
374
382
  - spec/unit/form_spec.rb
383
+ has_rdoc: