rom-rails 0.5.0 → 0.6.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
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: