rom 0.3.1 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +20 -0
- data/Gemfile +2 -0
- data/README.md +20 -5
- data/lib/rom.rb +12 -2
- data/lib/rom/adapter.rb +110 -4
- data/lib/rom/adapter/memory.rb +9 -52
- data/lib/rom/adapter/memory/commands.rb +41 -0
- data/lib/rom/adapter/memory/dataset.rb +52 -0
- data/lib/rom/adapter/memory/storage.rb +25 -0
- data/lib/rom/boot.rb +28 -1
- data/lib/rom/boot/command_dsl.rb +48 -0
- data/lib/rom/boot/dsl.rb +7 -0
- data/lib/rom/command_registry.rb +68 -0
- data/lib/rom/commands.rb +64 -0
- data/lib/rom/commands/create.rb +28 -0
- data/lib/rom/commands/delete.rb +44 -0
- data/lib/rom/commands/update.rb +42 -0
- data/lib/rom/commands/with_options.rb +21 -0
- data/lib/rom/env.rb +22 -6
- data/lib/rom/relation.rb +0 -18
- data/lib/rom/repository.rb +25 -3
- data/lib/rom/version.rb +1 -1
- data/spec/integration/adapters/setting_logger_spec.rb +35 -0
- data/spec/integration/commands/create_spec.rb +96 -0
- data/spec/integration/commands/delete_spec.rb +70 -0
- data/spec/integration/commands/error_handling_spec.rb +23 -0
- data/spec/integration/commands/try_spec.rb +27 -0
- data/spec/integration/commands/update_spec.rb +106 -0
- data/spec/integration/setup_spec.rb +35 -0
- data/spec/spec_helper.rb +2 -0
- data/spec/support/mutant.rb +7 -0
- data/spec/unit/rom/env_spec.rb +19 -0
- data/spec/unit/rom/repository_spec.rb +21 -0
- metadata +22 -2
data/spec/spec_helper.rb
CHANGED
@@ -9,11 +9,13 @@ if RUBY_ENGINE == "rbx"
|
|
9
9
|
CodeClimate::TestReporter.start
|
10
10
|
end
|
11
11
|
|
12
|
+
require 'virtus'
|
12
13
|
require 'rom'
|
13
14
|
require 'rom/adapter/memory'
|
14
15
|
|
15
16
|
root = Pathname(__FILE__).dirname
|
16
17
|
|
18
|
+
Dir[root.join('support/*.rb').to_s].each { |f| require f }
|
17
19
|
Dir[root.join('shared/*.rb').to_s].each { |f| require f }
|
18
20
|
|
19
21
|
RSpec.configure do |config|
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe ROM::Env do
|
4
|
+
include_context 'users and tasks'
|
5
|
+
|
6
|
+
before { setup.relation(:users) }
|
7
|
+
|
8
|
+
it 'exposes repositories on method-missing' do
|
9
|
+
expect(rom.memory).to be(rom.repositories[:memory])
|
10
|
+
end
|
11
|
+
|
12
|
+
it 'responds to methods corresponding to repository names' do
|
13
|
+
expect(rom).to respond_to(:memory)
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'raises exception when unknown repository is referenced' do
|
17
|
+
expect { rom.not_here }.to raise_error(NoMethodError)
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe ROM::Repository do
|
4
|
+
include_context 'users and tasks'
|
5
|
+
|
6
|
+
subject(:repository) { rom.memory }
|
7
|
+
|
8
|
+
before { setup.relation(:users) }
|
9
|
+
|
10
|
+
it 'exposes datasets on method-missing' do
|
11
|
+
expect(repository.users).to be(rom.memory[:users])
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'responds to methods corresponding to dataset names' do
|
15
|
+
expect(repository).to respond_to(:users)
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'raises exception when unknown dataset is referenced' do
|
19
|
+
expect { repository.not_here }.to raise_error(NoMethodError)
|
20
|
+
end
|
21
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rom
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Piotr Solnica
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-
|
12
|
+
date: 2014-12-06 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: addressable
|
@@ -174,12 +174,22 @@ files:
|
|
174
174
|
- lib/rom.rb
|
175
175
|
- lib/rom/adapter.rb
|
176
176
|
- lib/rom/adapter/memory.rb
|
177
|
+
- lib/rom/adapter/memory/commands.rb
|
178
|
+
- lib/rom/adapter/memory/dataset.rb
|
179
|
+
- lib/rom/adapter/memory/storage.rb
|
177
180
|
- lib/rom/boot.rb
|
178
181
|
- lib/rom/boot/base_relation_dsl.rb
|
182
|
+
- lib/rom/boot/command_dsl.rb
|
179
183
|
- lib/rom/boot/dsl.rb
|
180
184
|
- lib/rom/boot/mapper_dsl.rb
|
181
185
|
- lib/rom/boot/relation_dsl.rb
|
182
186
|
- lib/rom/boot/schema_dsl.rb
|
187
|
+
- lib/rom/command_registry.rb
|
188
|
+
- lib/rom/commands.rb
|
189
|
+
- lib/rom/commands/create.rb
|
190
|
+
- lib/rom/commands/delete.rb
|
191
|
+
- lib/rom/commands/update.rb
|
192
|
+
- lib/rom/commands/with_options.rb
|
183
193
|
- lib/rom/env.rb
|
184
194
|
- lib/rom/header.rb
|
185
195
|
- lib/rom/mapper.rb
|
@@ -198,6 +208,12 @@ files:
|
|
198
208
|
- lib/rom/version.rb
|
199
209
|
- rom.gemspec
|
200
210
|
- spec/integration/adapters/extending_relations_spec.rb
|
211
|
+
- spec/integration/adapters/setting_logger_spec.rb
|
212
|
+
- spec/integration/commands/create_spec.rb
|
213
|
+
- spec/integration/commands/delete_spec.rb
|
214
|
+
- spec/integration/commands/error_handling_spec.rb
|
215
|
+
- spec/integration/commands/try_spec.rb
|
216
|
+
- spec/integration/commands/update_spec.rb
|
201
217
|
- spec/integration/mappers/definition_dsl_spec.rb
|
202
218
|
- spec/integration/mappers/prefixing_attributes_spec.rb
|
203
219
|
- spec/integration/mappers/renaming_attributes_spec.rb
|
@@ -210,12 +226,15 @@ files:
|
|
210
226
|
- spec/integration/setup_spec.rb
|
211
227
|
- spec/shared/users_and_tasks.rb
|
212
228
|
- spec/spec_helper.rb
|
229
|
+
- spec/support/mutant.rb
|
213
230
|
- spec/unit/rom/adapter_spec.rb
|
231
|
+
- spec/unit/rom/env_spec.rb
|
214
232
|
- spec/unit/rom/header_spec.rb
|
215
233
|
- spec/unit/rom/mapper_spec.rb
|
216
234
|
- spec/unit/rom/ra/operation/group_spec.rb
|
217
235
|
- spec/unit/rom/ra/operation/wrap_spec.rb
|
218
236
|
- spec/unit/rom/relation_spec.rb
|
237
|
+
- spec/unit/rom/repository_spec.rb
|
219
238
|
homepage: http://rom-rb.org
|
220
239
|
licenses:
|
221
240
|
- MIT
|
@@ -241,3 +260,4 @@ signing_key:
|
|
241
260
|
specification_version: 4
|
242
261
|
summary: Ruby Object Mapper
|
243
262
|
test_files: []
|
263
|
+
has_rdoc:
|