rom 2.0.2 → 4.2.1
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 +5 -5
- data/CHANGELOG.md +35 -430
- data/LICENSE +1 -1
- data/README.md +83 -11
- data/lib/rom/version.rb +1 -1
- data/lib/rom.rb +3 -46
- metadata +30 -236
- data/.gitignore +0 -24
- data/.rspec +0 -3
- data/.rubocop.yml +0 -87
- data/.rubocop_todo.yml +0 -46
- data/.travis.yml +0 -28
- data/CODE_OF_CONDUCT.md +0 -13
- data/CONTRIBUTING.md +0 -1
- data/Gemfile +0 -41
- data/Guardfile +0 -24
- data/Rakefile +0 -22
- data/lib/rom/association_set.rb +0 -26
- data/lib/rom/command.rb +0 -173
- data/lib/rom/command_registry.rb +0 -153
- data/lib/rom/commands/class_interface.rb +0 -148
- data/lib/rom/commands/composite.rb +0 -54
- data/lib/rom/commands/create.rb +0 -13
- data/lib/rom/commands/delete.rb +0 -14
- data/lib/rom/commands/graph/builder.rb +0 -176
- data/lib/rom/commands/graph/class_interface.rb +0 -62
- data/lib/rom/commands/graph/input_evaluator.rb +0 -62
- data/lib/rom/commands/graph.rb +0 -103
- data/lib/rom/commands/lazy/create.rb +0 -23
- data/lib/rom/commands/lazy/delete.rb +0 -27
- data/lib/rom/commands/lazy/update.rb +0 -34
- data/lib/rom/commands/lazy.rb +0 -99
- data/lib/rom/commands/result.rb +0 -96
- data/lib/rom/commands/update.rb +0 -14
- data/lib/rom/commands.rb +0 -3
- data/lib/rom/configuration.rb +0 -88
- data/lib/rom/configuration_dsl/command.rb +0 -43
- data/lib/rom/configuration_dsl/command_dsl.rb +0 -35
- data/lib/rom/configuration_dsl/mapper.rb +0 -37
- data/lib/rom/configuration_dsl/mapper_dsl.rb +0 -44
- data/lib/rom/configuration_dsl/relation.rb +0 -26
- data/lib/rom/configuration_dsl.rb +0 -78
- data/lib/rom/configuration_plugin.rb +0 -17
- data/lib/rom/constants.rb +0 -30
- data/lib/rom/container.rb +0 -231
- data/lib/rom/create_container.rb +0 -61
- data/lib/rom/environment.rb +0 -70
- data/lib/rom/gateway.rb +0 -154
- data/lib/rom/global/plugin_dsl.rb +0 -49
- data/lib/rom/global.rb +0 -60
- data/lib/rom/lint/enumerable_dataset.rb +0 -54
- data/lib/rom/lint/gateway.rb +0 -94
- data/lib/rom/lint/linter.rb +0 -78
- data/lib/rom/lint/spec.rb +0 -20
- data/lib/rom/lint/test.rb +0 -98
- data/lib/rom/mapper_registry.rb +0 -35
- data/lib/rom/memory/commands.rb +0 -58
- data/lib/rom/memory/dataset.rb +0 -98
- data/lib/rom/memory/gateway.rb +0 -64
- data/lib/rom/memory/relation.rb +0 -49
- data/lib/rom/memory/storage.rb +0 -59
- data/lib/rom/memory/types.rb +0 -9
- data/lib/rom/memory.rb +0 -4
- data/lib/rom/pipeline.rb +0 -106
- data/lib/rom/plugin.rb +0 -17
- data/lib/rom/plugin_base.rb +0 -31
- data/lib/rom/plugin_registry.rb +0 -173
- data/lib/rom/plugins/command/schema.rb +0 -37
- data/lib/rom/plugins/configuration/configuration_dsl.rb +0 -17
- data/lib/rom/plugins/relation/key_inference.rb +0 -46
- data/lib/rom/plugins/relation/registry_reader.rb +0 -32
- data/lib/rom/plugins/relation/view/dsl.rb +0 -32
- data/lib/rom/plugins/relation/view.rb +0 -95
- data/lib/rom/relation/class_interface.rb +0 -230
- data/lib/rom/relation/composite.rb +0 -46
- data/lib/rom/relation/curried.rb +0 -104
- data/lib/rom/relation/graph.rb +0 -115
- data/lib/rom/relation/loaded.rb +0 -118
- data/lib/rom/relation/materializable.rb +0 -66
- data/lib/rom/relation/name.rb +0 -102
- data/lib/rom/relation.rb +0 -172
- data/lib/rom/relation_registry.rb +0 -9
- data/lib/rom/schema/dsl.rb +0 -58
- data/lib/rom/schema.rb +0 -89
- data/lib/rom/setup/auto_registration.rb +0 -69
- data/lib/rom/setup/auto_registration_strategies/base.rb +0 -11
- data/lib/rom/setup/auto_registration_strategies/custom_namespace.rb +0 -22
- data/lib/rom/setup/auto_registration_strategies/no_namespace.rb +0 -19
- data/lib/rom/setup/auto_registration_strategies/with_namespace.rb +0 -18
- data/lib/rom/setup/finalize/finalize_commands.rb +0 -47
- data/lib/rom/setup/finalize/finalize_mappers.rb +0 -36
- data/lib/rom/setup/finalize/finalize_relations.rb +0 -60
- data/lib/rom/setup/finalize.rb +0 -146
- data/lib/rom/setup.rb +0 -55
- data/lib/rom/support/configurable.rb +0 -80
- data/lib/rom/types.rb +0 -18
- data/log/.gitkeep +0 -0
- data/rakelib/benchmark.rake +0 -15
- data/rakelib/mutant.rake +0 -19
- data/rakelib/rubocop.rake +0 -18
- data/rom.gemspec +0 -26
- data/spec/fixtures/app/commands/create_user.rb +0 -2
- data/spec/fixtures/app/mappers/user_list.rb +0 -2
- data/spec/fixtures/app/my_commands/create_user.rb +0 -2
- data/spec/fixtures/app/my_mappers/user_list.rb +0 -2
- data/spec/fixtures/app/my_relations/users.rb +0 -2
- data/spec/fixtures/app/relations/users.rb +0 -2
- data/spec/fixtures/custom/commands/create_user.rb +0 -6
- data/spec/fixtures/custom/mappers/user_list.rb +0 -6
- data/spec/fixtures/custom/relations/users.rb +0 -6
- data/spec/fixtures/lib/persistence/commands/create_user.rb +0 -6
- data/spec/fixtures/lib/persistence/mappers/user_list.rb +0 -6
- data/spec/fixtures/lib/persistence/my_commands/create_user.rb +0 -6
- data/spec/fixtures/lib/persistence/my_mappers/user_list.rb +0 -6
- data/spec/fixtures/lib/persistence/my_relations/users.rb +0 -6
- data/spec/fixtures/lib/persistence/relations/users.rb +0 -6
- data/spec/integration/command_registry_spec.rb +0 -60
- data/spec/integration/commands/create_spec.rb +0 -177
- data/spec/integration/commands/delete_spec.rb +0 -67
- data/spec/integration/commands/error_handling_spec.rb +0 -25
- data/spec/integration/commands/graph_builder_spec.rb +0 -213
- data/spec/integration/commands/graph_spec.rb +0 -288
- data/spec/integration/commands/update_spec.rb +0 -109
- data/spec/integration/commands_spec.rb +0 -67
- data/spec/integration/mappers/combine_spec.rb +0 -117
- data/spec/integration/mappers/deep_embedded_spec.rb +0 -44
- data/spec/integration/mappers/definition_dsl_spec.rb +0 -206
- data/spec/integration/mappers/embedded_spec.rb +0 -62
- data/spec/integration/mappers/exclude_spec.rb +0 -27
- data/spec/integration/mappers/fold_spec.rb +0 -71
- data/spec/integration/mappers/group_spec.rb +0 -163
- data/spec/integration/mappers/overwrite_attributes_value_spec.rb +0 -51
- data/spec/integration/mappers/prefix_separator_spec.rb +0 -52
- data/spec/integration/mappers/prefix_spec.rb +0 -48
- data/spec/integration/mappers/prefixing_attributes_spec.rb +0 -37
- data/spec/integration/mappers/registering_custom_mappers_spec.rb +0 -28
- data/spec/integration/mappers/renaming_attributes_spec.rb +0 -125
- data/spec/integration/mappers/reusing_mappers_spec.rb +0 -43
- data/spec/integration/mappers/step_spec.rb +0 -119
- data/spec/integration/mappers/symbolizing_attributes_spec.rb +0 -77
- data/spec/integration/mappers/unfold_spec.rb +0 -92
- data/spec/integration/mappers/ungroup_spec.rb +0 -126
- data/spec/integration/mappers/unwrap_spec.rb +0 -93
- data/spec/integration/mappers/wrap_spec.rb +0 -155
- data/spec/integration/memory/commands/create_spec.rb +0 -23
- data/spec/integration/memory/commands/delete_spec.rb +0 -23
- data/spec/integration/memory/commands/update_spec.rb +0 -23
- data/spec/integration/multi_env_spec.rb +0 -69
- data/spec/integration/multi_repo_spec.rb +0 -46
- data/spec/integration/relations/default_dataset_spec.rb +0 -38
- data/spec/integration/relations/inheritance_spec.rb +0 -37
- data/spec/integration/relations/reading_spec.rb +0 -169
- data/spec/integration/relations/registry_dsl_spec.rb +0 -45
- data/spec/integration/repositories/extending_relations_spec.rb +0 -58
- data/spec/integration/repositories/setting_logger_spec.rb +0 -34
- data/spec/integration/setup_spec.rb +0 -160
- data/spec/shared/command_behavior.rb +0 -28
- data/spec/shared/command_graph.rb +0 -50
- data/spec/shared/container.rb +0 -9
- data/spec/shared/enumerable_dataset.rb +0 -52
- data/spec/shared/gateway_only.rb +0 -6
- data/spec/shared/materializable.rb +0 -36
- data/spec/shared/no_container.rb +0 -16
- data/spec/shared/one_behavior.rb +0 -26
- data/spec/shared/proxy.rb +0 -0
- data/spec/shared/users_and_tasks.rb +0 -10
- data/spec/spec_helper.rb +0 -52
- data/spec/support/constant_leak_finder.rb +0 -14
- data/spec/support/mutant.rb +0 -10
- data/spec/support/types.rb +0 -5
- data/spec/test/memory_repository_lint_test.rb +0 -27
- data/spec/unit/rom/association_set_spec.rb +0 -23
- data/spec/unit/rom/commands/graph_spec.rb +0 -191
- data/spec/unit/rom/commands/lazy_spec.rb +0 -307
- data/spec/unit/rom/commands/result_spec.rb +0 -70
- data/spec/unit/rom/commands_spec.rb +0 -165
- data/spec/unit/rom/configurable_spec.rb +0 -49
- data/spec/unit/rom/configuration_spec.rb +0 -61
- data/spec/unit/rom/container_spec.rb +0 -99
- data/spec/unit/rom/create_container_spec.rb +0 -151
- data/spec/unit/rom/environment_spec.rb +0 -123
- data/spec/unit/rom/gateway_spec.rb +0 -146
- data/spec/unit/rom/mapper_registry_spec.rb +0 -25
- data/spec/unit/rom/memory/commands_spec.rb +0 -43
- data/spec/unit/rom/memory/dataset_spec.rb +0 -31
- data/spec/unit/rom/memory/relation_spec.rb +0 -109
- data/spec/unit/rom/memory/repository_spec.rb +0 -12
- data/spec/unit/rom/memory/storage_spec.rb +0 -45
- data/spec/unit/rom/plugin_spec.rb +0 -150
- data/spec/unit/rom/plugins/command/schema_spec.rb +0 -66
- data/spec/unit/rom/plugins/relation/key_inference_spec.rb +0 -85
- data/spec/unit/rom/plugins/relation/view_spec.rb +0 -51
- data/spec/unit/rom/relation/composite_spec.rb +0 -89
- data/spec/unit/rom/relation/curried_spec.rb +0 -52
- data/spec/unit/rom/relation/graph_spec.rb +0 -92
- data/spec/unit/rom/relation/lazy/combine_spec.rb +0 -165
- data/spec/unit/rom/relation/lazy_spec.rb +0 -214
- data/spec/unit/rom/relation/loaded_spec.rb +0 -53
- data/spec/unit/rom/relation/name_spec.rb +0 -58
- data/spec/unit/rom/relation/schema_spec.rb +0 -117
- data/spec/unit/rom/relation_spec.rb +0 -237
- data/spec/unit/rom/schema_spec.rb +0 -10
- data/spec/unit/rom/setup/auto_registration_spec.rb +0 -152
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 4ae17a0a7246a98135642fdab09437a9c7efd01f85d9458e9a58ed9cafd2a1cc
|
|
4
|
+
data.tar.gz: 78d6820f045d7b0f216daf1d4a74460605b6851f196e6d54f91d4140a9a71375
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: bdd827fe95c1b89944c76767ee3395869f45d9cf6dc92410d9dd8811a993205f0629a48579c2fa4d253528f4f4eb282bfca78689cc49ff1ea6a703205d4ec4d9
|
|
7
|
+
data.tar.gz: d9513f4f005e008c8606992aa4b17ad23671607bf9104ec367954e60ffd5b36c1bb79fe808fafad5327df435db466b3ea7fd8654ef70612a643d71d557b5e242
|
data/CHANGELOG.md
CHANGED
|
@@ -1,458 +1,63 @@
|
|
|
1
|
-
|
|
1
|
+
# 4.2.1 2018-05-03
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
* `rom-core` updated to `['~> 4.2', '>= 4.2.1']`
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
[Compare v4.2.0...v4.2.1](https://github.com/rom-rb/rom/compare/v4.2.0...v4.2.1)
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
# 4.2.0 2018-03-29
|
|
8
8
|
|
|
9
|
-
*
|
|
10
|
-
* `
|
|
9
|
+
* `rom-core` updated to `['~> 4.2', '>= 4.2.0']`
|
|
10
|
+
* `rom-changeset` updated to `['~> 1.0', '>= 1.0.2']`
|
|
11
11
|
|
|
12
|
-
[Compare
|
|
12
|
+
[Compare v4.1.3...v4.2.0](https://github.com/rom-rb/rom/compare/v4.1.3...v4.2.0)
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
# 4.1.3 2018-02-03
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
* `rom-core` updated to `['~> 4.1', '>= 4.1.3']`
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
- Support for custom component dir names in auto-registration (AMHOL)
|
|
18
|
+
[Compare v4.1.2...v4.2.0](https://github.com/rom-rb/rom/compare/v4.1.2...v4.1.3)
|
|
20
19
|
|
|
21
|
-
|
|
20
|
+
# 4.1.2 2018-01-15
|
|
22
21
|
|
|
23
|
-
-
|
|
22
|
+
* `rom-core` updated to `['~> 4.1', '>= 4.1.1']`
|
|
24
23
|
|
|
25
|
-
[Compare
|
|
24
|
+
[Compare v4.1.1...v4.1.2](https://github.com/rom-rb/rom/compare/v4.1.1...v4.1.2)
|
|
26
25
|
|
|
27
|
-
|
|
26
|
+
# 4.1.1 2017-12-01
|
|
28
27
|
|
|
29
|
-
|
|
28
|
+
* `rom-repository` updated to `['~> 2.0', '>= 2.0.2']`
|
|
30
29
|
|
|
31
|
-
|
|
32
|
-
- New command plugin `:schema` which will set up an input handler from schema definition (solnic)
|
|
33
|
-
- New command option `restrictible` for commands that can use a restricted relation (solnic)
|
|
34
|
-
- More meaningful exception is raised when trying to access a non-existant command (thiagoa)
|
|
35
|
-
- `Relation::Name` class that contains both relation and dataset names (flash-gordon)
|
|
36
|
-
- `Relation::Loaded#pluck` returning values under specified key (solnic)
|
|
37
|
-
- `Relation::Loaded#primary_keys` returning a list of primary keys from a materialized relation (solnic)
|
|
30
|
+
[Compare v4.1.0...v4.1.1](https://github.com/rom-rb/rom/compare/v4.1.0...v4.1.1)
|
|
38
31
|
|
|
39
|
-
|
|
32
|
+
# 4.1.0 2017-11-17
|
|
40
33
|
|
|
41
|
-
|
|
42
|
-
|
|
34
|
+
* `rom-core` updated to `['~> 4.1']`
|
|
35
|
+
* `rom-mapper` updated to `'~> 1.1'`
|
|
43
36
|
|
|
44
|
-
|
|
37
|
+
[Compare v4.0.3...v4.1.0](https://github.com/rom-rb/rom/compare/v4.0.3...v4.1.0)
|
|
45
38
|
|
|
46
|
-
|
|
47
|
-
- `Container#disconnect` properly delegates to gateways (endash)
|
|
48
|
-
- `Relation#with` properly carries original options (solnic)
|
|
49
|
-
- Command pipeline will stop processing if result was `nil` or an empty array (solnic)
|
|
39
|
+
# 4.0.3 2017-11-14
|
|
50
40
|
|
|
51
|
-
|
|
41
|
+
* `rom-core` updated to `['~> 4.0', '>= 4.0.3']`
|
|
52
42
|
|
|
53
|
-
|
|
54
|
-
- [BREAKING] `Update` and `Delete` no longer calls `assert_tuple_count` [more info](https://github.com/rom-rb/rom/commit/bec2c4c1dce370670c90f529feb1b4db0e6e4bd9) (solnic)
|
|
55
|
-
- [BREAKING] `Relation#name` and `Command#name` now returns `Relation::Name` instance (flash-gordon)
|
|
56
|
-
- `Command.validator` is now deprecated [more info](https://github.com/rom-rb/rom/commit/80bb8411bd411f05d9c51106ae026ad412a2f25f) (solnic)
|
|
57
|
-
- `Relation.dataset` yields a relation class when block was passed (solnic)
|
|
58
|
-
- `Relation#attributes` can return attributes explicitly passed via options (solnic)
|
|
59
|
-
- Relation `:key_inference` plugin supports schema information from other relations (solnic)
|
|
60
|
-
- `auto_registration` coerces its directory to a pathname now (adz)
|
|
61
|
-
- `macros` are now enabled by default in in-line setup block (endash)
|
|
43
|
+
[Compare v4.0.2...v4.0.3](https://github.com/rom-rb/rom/compare/v4.0.2...v4.0.3)
|
|
62
44
|
|
|
63
|
-
|
|
45
|
+
# 4.0.2 2017-11-02
|
|
64
46
|
|
|
65
|
-
|
|
47
|
+
* `rom-core` updated to `['~> 4.0', '>= 4.0.2']`
|
|
48
|
+
* `rom-mapper` updated to `['~> 1.0', '>= 1.0.2']`
|
|
49
|
+
* `rom-changeset` updated to `['~> 1.0', '>= 1.0.1']`
|
|
50
|
+
* `rom-repository` updated to `['~> 2.0', '>= 2.0.1']`
|
|
66
51
|
|
|
67
|
-
|
|
52
|
+
[Compare v4.0.1...v4.0.2](https://github.com/rom-rb/rom/compare/v4.0.1...v4.0.2)
|
|
68
53
|
|
|
69
|
-
|
|
70
|
-
- Command graph now supports update and delete commands (cflipse + solnic)
|
|
71
|
-
- `Gateway.adapter` setting and a corresponding `Gateway#adapter` reader. Both are
|
|
72
|
-
necessary to access a migrator (nepalez)
|
|
73
|
-
- `ROM::Commands::Result#{success?,failure?}` interface (Snuff)
|
|
74
|
-
- Imported relation plugins from `rom-repository`:
|
|
75
|
-
- `view` for explicit relation view definitions
|
|
76
|
-
- `key_inference` for inferring `foreign_key` of a relation
|
|
54
|
+
# 4.0.1 2017-10-22
|
|
77
55
|
|
|
78
|
-
|
|
56
|
+
* `rom-core` updated to `['~> 4.0', '>= 4.0.1']`
|
|
57
|
+
* `rom-mapper` updated to `['~> 1.0', '>= 1.0.1']`
|
|
79
58
|
|
|
80
|
-
|
|
81
|
-
- [fixed #306] Inheriting from a misconfigured adapter relation will raise a
|
|
82
|
-
meaningful error (solnic)
|
|
83
|
-
- Command graph will raise `ROM::KeyMissing` command error when a key is missing
|
|
84
|
-
in the input (solnic)
|
|
85
|
-
- Command graph no longer rescues from any exception (solnic)
|
|
59
|
+
[Compare v4.0.0..v4.0.1](https://github.com/rom-rb/rom-mapper/compare/v4.0.0...v4.0.1)
|
|
86
60
|
|
|
87
|
-
|
|
61
|
+
# 4.0.0 2017-10-18
|
|
88
62
|
|
|
89
|
-
- `
|
|
90
|
-
|
|
91
|
-
[Compare v0.9.1...v1.0.0](https://github.com/rom-rb/rom/compare/v0.9.1...v1.0.0)
|
|
92
|
-
|
|
93
|
-
## v0.9.1 2015-08-21
|
|
94
|
-
|
|
95
|
-
This is a small bug-fix release which addresses a couple of issues for inline
|
|
96
|
-
setup DSL and multi-environments.
|
|
97
|
-
|
|
98
|
-
### Fixed
|
|
99
|
-
|
|
100
|
-
- Multi-env setup for adapters with schema-inferration support won't crash (solnic)
|
|
101
|
-
- Default adapter is set correctly when many adapters are configured and one is
|
|
102
|
-
registered under `:default` name (solnic)
|
|
103
|
-
- When defining a relation using inline DSL with custom dataset name the relation
|
|
104
|
-
name will be correctly set as `register_as` setting (solnic)
|
|
105
|
-
|
|
106
|
-
### Changed
|
|
107
|
-
|
|
108
|
-
- When using inline-setup for env the auto_registration mechanism will be turned
|
|
109
|
-
on by default (solnic)
|
|
110
|
-
|
|
111
|
-
[Compare v0.9.0...v0.9.1](https://github.com/rom-rb/rom/compare/v0.9.0...v0.9.1)
|
|
112
|
-
|
|
113
|
-
## v0.9.0 2015-08-19
|
|
114
|
-
|
|
115
|
-
### Added
|
|
116
|
-
|
|
117
|
-
* Configuration API for gateways supporting following options:
|
|
118
|
-
- `infer_relations` either `true` or `false` - if disabled schema inference
|
|
119
|
-
won't be used to automatically set up relations for you
|
|
120
|
-
- `inferrable_relations` a list of allowed relations that should be inferred
|
|
121
|
-
- `not_inferrable_relations` a list of relations that should not be inferred
|
|
122
|
-
|
|
123
|
-
### Changed
|
|
124
|
-
|
|
125
|
-
* Global setup with auto-registration ported to the `:auto_registration` environment plugin (AMHOL)
|
|
126
|
-
* Multi-environment setup possible now via `ROM::Environment` object (AMHOL)
|
|
127
|
-
* All relations are now lazy with auto-currying enabled (solnic)
|
|
128
|
-
* Low-level query DSL provided by adapters is now public but using it directly in
|
|
129
|
-
application layer is discouraged (solnic)
|
|
130
|
-
* `ROM::Mapper` component extracted into standalone `rom-mapper` gem (solnic)
|
|
131
|
-
* Support libraries extracted to `rom-support` gem (solnic)
|
|
132
|
-
|
|
133
|
-
## Fixed
|
|
134
|
-
|
|
135
|
-
* `register_as` is now properly inferred for relations and their descendants (solnic)
|
|
136
|
-
* Adapter-specific interface is properly included in relation descendants (solnic)
|
|
137
|
-
* Combined commands (aka command graph) properly rejects keys from nested input
|
|
138
|
-
prior sending the input to individual commands (solnic)
|
|
139
|
-
* Composite relation materializes correctly when another composite on the right
|
|
140
|
-
side became materialized (ie piping relation through a composite relation will
|
|
141
|
-
work correctly) (solnic)
|
|
142
|
-
|
|
143
|
-
[Compare v0.8.1...v0.9.0](https://github.com/rom-rb/rom/compare/v0.8.1...v0.9.0)
|
|
144
|
-
|
|
145
|
-
## v0.8.1 2015-07-12
|
|
146
|
-
|
|
147
|
-
### Fixed
|
|
148
|
-
|
|
149
|
-
* `ROM::CommandError` properly sets original error and backtrace (solnic)
|
|
150
|
-
|
|
151
|
-
### Changed
|
|
152
|
-
|
|
153
|
-
* Internal transproc processor has been updated to the new API (solnic)
|
|
154
|
-
|
|
155
|
-
[Compare v0.8.0...v0.8.1](https://github.com/rom-rb/rom/compare/v0.8.0...v0.8.1)
|
|
156
|
-
|
|
157
|
-
## v0.8.0 2015-06-22
|
|
158
|
-
|
|
159
|
-
### Added
|
|
160
|
-
|
|
161
|
-
* Commands can be combined into a single command that can work with a nested input (solnic)
|
|
162
|
-
* New `step` mapper operation that allows multistep transformations inside a single mapper (dekz)
|
|
163
|
-
* New `ungroup` and `unfold` mapper operations inverse `group` and `fold` (nepalez)
|
|
164
|
-
* Support deep nesting of `unwrap` mapper operations (nepalez)
|
|
165
|
-
* Support usage of `exclude` in a root of the mapper (nepalez)
|
|
166
|
-
* Support usage of `prefix` and `prefix_separator` mapper operations inside blocks (nepalez)
|
|
167
|
-
* Support renaming of the rest of an attribute after `unwrap` (nepalez)
|
|
168
|
-
|
|
169
|
-
### Changed
|
|
170
|
-
|
|
171
|
-
* `Repository` class has been renamed to `Gateway` with proper deprecation
|
|
172
|
-
warnings (cflipse)
|
|
173
|
-
* `combine` in mapper can be used without a block (kwando)
|
|
174
|
-
* `wrap` and `group` in mapper will raise error if `:mapper` is set along with
|
|
175
|
-
block or options (vrish88)
|
|
176
|
-
|
|
177
|
-
### Fixed
|
|
178
|
-
|
|
179
|
-
* `order` memory repository operation sorts tuples containing empty values (nepalez)
|
|
180
|
-
* `Mapper::AttributeDSL#embedded` now honors `option[:type]` when used
|
|
181
|
-
with `option[:mapper]` (c0)
|
|
182
|
-
|
|
183
|
-
[Compare v0.7.1...v0.8.0](https://github.com/rom-rb/rom/compare/v0.7.1...v0.8.0)
|
|
184
|
-
|
|
185
|
-
## v0.7.1 2015-05-22
|
|
186
|
-
|
|
187
|
-
### Added
|
|
188
|
-
|
|
189
|
-
* Support for passing a block for custom coercion to `attribute` (gotar)
|
|
190
|
-
* `fold` mapping operation which groups keys from input tuples to array
|
|
191
|
-
of values from the first of listed keys (nepalez)
|
|
192
|
-
* Adapter `Relation` and command classes can specify `adapter` identifier
|
|
193
|
-
which allows using adapter-specific plugins w/o the need to specify adapter
|
|
194
|
-
when calling `use` (solnic)
|
|
195
|
-
|
|
196
|
-
### Changed
|
|
197
|
-
|
|
198
|
-
* [rom/memory] `restrict` operation supports array as a value (gotar)
|
|
199
|
-
* [rom/memory] `restrict` operation supports regexp as a value (gotar)
|
|
200
|
-
|
|
201
|
-
[Compare v0.7.0...v0.7.1](https://github.com/rom-rb/rom/compare/v0.7.0...v0.7.1)
|
|
202
|
-
|
|
203
|
-
## v0.7.0 2015-05-17
|
|
204
|
-
|
|
205
|
-
### Added
|
|
206
|
-
|
|
207
|
-
* `combine` interface in Relation and Mapper which allows simple and explicit
|
|
208
|
-
eager-loading that works with all adapters (solnic)
|
|
209
|
-
* `reject_keys` option in mapper which will filter out unspecified keys from
|
|
210
|
-
input tuples (solnic)
|
|
211
|
-
* `unwrap` mapping operation (aflatter)
|
|
212
|
-
* Arbitrary objects can be registered as mappers via `register` in mapping DSL (solnic)
|
|
213
|
-
* Ability to reuse existing mappers in `group`, `wrap` and `embedded` mappings (solnic)
|
|
214
|
-
* Plugin interface for Relation, Mapper and Command (cflipse)
|
|
215
|
-
* `Memory::Dataset` accepts options hash now which makes it more flexible for
|
|
216
|
-
any adapter that wants to subclass it (solnic)
|
|
217
|
-
* `ROM::Memory::Relation#take` (solnic)
|
|
218
|
-
|
|
219
|
-
### Changed
|
|
220
|
-
|
|
221
|
-
* [BREAKING] `Command#call` applies curried args first (solnic)
|
|
222
|
-
* `Commands::Update#set` was deprecated in favor of `call` (solnic)
|
|
223
|
-
* `group` mapping reject empty tuples (solnic)
|
|
224
|
-
|
|
225
|
-
### Fixed
|
|
226
|
-
|
|
227
|
-
* `Command` respond to missing properly now (solnic)
|
|
228
|
-
* `Mapper::DSL` respond to missing properly now (solnic)
|
|
229
|
-
|
|
230
|
-
### Internal
|
|
231
|
-
|
|
232
|
-
* Fixed all the warnings \o/ (splattael)
|
|
233
|
-
* Introduced `Deprecations` helper module (solnic)
|
|
234
|
-
|
|
235
|
-
[Compare v0.6.2...v0.7.0](https://github.com/rom-rb/rom/compare/v0.6.2...v0.7.0)
|
|
236
|
-
|
|
237
|
-
## v0.6.2 2015-04-14
|
|
238
|
-
|
|
239
|
-
### Changed
|
|
240
|
-
|
|
241
|
-
* Updated to transproc 0.2.0 (solnic)
|
|
242
|
-
|
|
243
|
-
### Fixed
|
|
244
|
-
|
|
245
|
-
* `CommandRegistry#respond_to_missing?` behavior (hecrj)
|
|
246
|
-
|
|
247
|
-
[Compare v0.6.1...v0.6.2](https://github.com/rom-rb/rom/compare/v0.6.1...v0.6.2)
|
|
248
|
-
|
|
249
|
-
## v0.6.1 2015-04-04
|
|
250
|
-
|
|
251
|
-
### Added
|
|
252
|
-
|
|
253
|
-
* Ability to auto-map command result via `rom.command(:rel_name).as(:mapper_name)` (solnic)
|
|
254
|
-
|
|
255
|
-
### Changed
|
|
256
|
-
|
|
257
|
-
* gemspec no longer specifies required_ruby_version so that rom can be installed on jruby (solnic)
|
|
258
|
-
* Obsolete `Env#readers` was removed (splattael)
|
|
259
|
-
|
|
260
|
-
[Compare v0.6.0...v0.6.1](https://github.com/rom-rb/rom/compare/v0.6.0...v0.6.1)
|
|
261
|
-
|
|
262
|
-
## v0.6.0 2015-03-22
|
|
263
|
-
|
|
264
|
-
### Added
|
|
265
|
-
|
|
266
|
-
* It is now possible to define custom relation, mapper and command classes during setup (solnic)
|
|
267
|
-
* New `Env#relation` interface for reading and mapping relations which supports:
|
|
268
|
-
* `Relation::Lazy` with auto-currying, mapping and composition features (solnic)
|
|
269
|
-
* `Relation::Composite` allowing data-pipelining with arbitrary objects (solnic)
|
|
270
|
-
* Passing a block which yields relation with adapter query DSL available (solnic)
|
|
271
|
-
* Relations can be extended with plugins using Options API (solnic)
|
|
272
|
-
* Commands are now composable via `>>` operator (solnic)
|
|
273
|
-
* Mappers support `prefix_separator` option (solnic)
|
|
274
|
-
* Mappers can be registered under custom names (solnic)
|
|
275
|
-
* Relation `dataset` name is inferred from the class name by default (gotar)
|
|
276
|
-
* Relation can be registered under a custom name via `register_as` option (mcls)
|
|
277
|
-
* Adapters can use helper modules for datasets: `ArrayDataset` and `EnumerableDataset` (solnic)
|
|
278
|
-
* Adapter interface can now be tested via a lint test (elskwid + solnic + splattael)
|
|
279
|
-
* `tuple_count` interface in AbstractCommand which can be overridden by adapter (solnic)
|
|
280
|
-
* Custom Inflector API that auto-detects a specific inflection engine (mjtko)
|
|
281
|
-
|
|
282
|
-
### Changed
|
|
283
|
-
|
|
284
|
-
* [BREAKING] Schema DSL was **removed** - attributes can be specified only in mapper DSL
|
|
285
|
-
* [BREAKING] Reader was **removed** in favor of relation interface with explicit mapping (solnic)
|
|
286
|
-
* [BREAKING] Command API was simplified - commands should be accessed directly in `.try` block
|
|
287
|
-
and default repository can be changed when defining a relation (solnic)
|
|
288
|
-
* `.setup` interface requires either an adapter identifier or can accept a repository
|
|
289
|
-
instance (aflatter)
|
|
290
|
-
* Adapter interface no longer requires specific constructor to be defined (aflatter)
|
|
291
|
-
* Adapters no longer need to handle connection URIs (aflatter)
|
|
292
|
-
* Adapter/Repository has been collapsed to *just* `Repository` (solnic)
|
|
293
|
-
* Relation no longer needs a header object and only operates on an adapters dataset (solnic)
|
|
294
|
-
* Relation no longer uses on Charlatan with method_missing magic (solnic)
|
|
295
|
-
* Adapter's dataset no longer requires header (solnic)
|
|
296
|
-
* Make storage in memory adapter thread-safe #110 (splattael)
|
|
297
|
-
* An Adapter can provide its own Relation subclass with custom behavior (solnic)
|
|
298
|
-
* Relation provides its "public interface" using method_added hook (splattael + solnic)
|
|
299
|
-
* ROM no longer depends on charlatan, concord and inflecto gems (mjtko + solnic)
|
|
300
|
-
|
|
301
|
-
[Compare v0.5.0...v0.6.0](https://github.com/rom-rb/rom/compare/v0.5.0...v0.6.0)
|
|
302
|
-
|
|
303
|
-
## v0.5.0 2014-12-31
|
|
304
|
-
|
|
305
|
-
### Added
|
|
306
|
-
|
|
307
|
-
* Mapper DSL supports `embedded` interface for nested tuples (solnic)
|
|
308
|
-
* Support for nested `group` mapping (solnic)
|
|
309
|
-
* Support for nested `wrap` mapping (solnic)
|
|
310
|
-
* Support for primitive type coercions (:to_string, :to_integer etc.) (solnic)
|
|
311
|
-
* Support for top-level `:prefix` option in mapping DSL (solnic)
|
|
312
|
-
* Support for top-level `:symbolize_keys` option in mapping DSL (solnic)
|
|
313
|
-
* Support for `:prefix` option in wrap/group mapping DSL (solnic)
|
|
314
|
-
* Interface for registering data mapping processors (solnic)
|
|
315
|
-
* Remaining relations are automatically setup from the schema (solnic)
|
|
316
|
-
* Each relation has now access to other relations (previously they only had
|
|
317
|
-
access to raw datasets) (solnic)
|
|
318
|
-
* `ROM.setup` supports passing in *just an uri* which will setup a default repository (solnic)
|
|
319
|
-
* `ROM.setup` supports passing in conventional database connection hash (solnic)
|
|
320
|
-
* Adapters support extra options in addition to the base connection URI (solnic)
|
|
321
|
-
|
|
322
|
-
### Changed
|
|
323
|
-
|
|
324
|
-
* Mapping backend replaced by integration with transproc (solnic)
|
|
325
|
-
* Readers no longer expose adapter query DSL (solnic)
|
|
326
|
-
* Registry objects raise `ROM::Registry::ElementNotFoundError` when missing
|
|
327
|
-
element is referenced (rather than raw KeyError) (solnic)
|
|
328
|
-
* Performance improvements in Reader (solnic)
|
|
329
|
-
* `ROM::RA` was merged into in-memory adapter as this fits there perfectly (solnic)
|
|
330
|
-
* It is no longer needed to explicitly execute a delete command in try block (solnic)
|
|
331
|
-
|
|
332
|
-
### Fixed
|
|
333
|
-
|
|
334
|
-
* Wrap/group skips empty tuples now (solnic)
|
|
335
|
-
* Readers raise a meaningful error when relation is missing (solnic)
|
|
336
|
-
|
|
337
|
-
## Internal
|
|
338
|
-
|
|
339
|
-
* Massive code clean-up and rubocop integration (chastell)
|
|
340
|
-
* Refactored `Reader` and mapper-specific logic into `MapperRegistry` (solnic)
|
|
341
|
-
|
|
342
|
-
[Compare v0.4.2...v0.5.0](https://github.com/rom-rb/rom/compare/v0.4.2...v0.5.0)
|
|
343
|
-
|
|
344
|
-
## v0.4.2 2014-12-19
|
|
345
|
-
|
|
346
|
-
### Added
|
|
347
|
-
|
|
348
|
-
* Mappers support tuple transformation using wrap and group operations (solnic)
|
|
349
|
-
* PORO model builder supports namespaced constants via `name: 'MyApp:Entities::User` (solnic)
|
|
350
|
-
|
|
351
|
-
### Changed
|
|
352
|
-
|
|
353
|
-
* `ROM::RA` interface is no longer mixed into relations by default (solnic)
|
|
354
|
-
* ~2.5 x speed up in aggregate mapping (solnic)
|
|
355
|
-
* PORO model builder only defines attribute readers now (no writers!) (solnic)
|
|
356
|
-
* Registry objects in Env will now raise `KeyError` when unknown name is referenced (solnic)
|
|
357
|
-
|
|
358
|
-
[Compare v0.4.1...v0.4.2](https://github.com/rom-rb/rom/compare/v0.4.1...v0.4.2)
|
|
359
|
-
|
|
360
|
-
## v0.4.1 2014-12-15
|
|
361
|
-
|
|
362
|
-
### Added
|
|
363
|
-
|
|
364
|
-
* Adapter can now implement `Adapter#dataset(name, header)` to return a dataset (solnic)
|
|
365
|
-
* For multi-step setup the DSL is available in `ROM` too (solnic)
|
|
366
|
-
* Global environment can be stored via `ROM.finalize` and accessible via `ROM.env` (solnic)
|
|
367
|
-
* Mapper won't infer attributes from the header if `:inherit_header` option is set to false (solnic)
|
|
368
|
-
|
|
369
|
-
### Changed
|
|
370
|
-
|
|
371
|
-
* Schema can be defined in multiple steps (solnic)
|
|
372
|
-
* Setting model in mapper DSL is no longer required and defaults to `Hash` (solnic)
|
|
373
|
-
* Adapter datasets no longer have to return headers when they are provided by schema (solnic)
|
|
374
|
-
|
|
375
|
-
[Compare v0.4.0...v0.4.1](https://github.com/rom-rb/rom/compare/v0.4.0...v0.4.1)
|
|
376
|
-
|
|
377
|
-
## v0.4.0 2014-12-06
|
|
378
|
-
|
|
379
|
-
### Added
|
|
380
|
-
|
|
381
|
-
* Command API (solnic)
|
|
382
|
-
* Setup DSL is now available within the `ROM.setup` block (solnic)
|
|
383
|
-
* Support for setting up a logger for an adapter (solnic)
|
|
384
|
-
* New `Adapter#dataset?(name)` which every adapter must implement (solnic)
|
|
385
|
-
|
|
386
|
-
### Fixed
|
|
387
|
-
|
|
388
|
-
* method-missing in `Repository` and `Env` kindly calls `super` (solnic)
|
|
389
|
-
|
|
390
|
-
### Changed
|
|
391
|
-
|
|
392
|
-
* Abstract `Adapter` defines `:connection` reader so it doesn't have to be
|
|
393
|
-
defined in adapter descendants (solnic)
|
|
394
|
-
|
|
395
|
-
[Compare v0.3.1...v0.4.0](https://github.com/rom-rb/rom/compare/v0.3.1...v0.4.0)
|
|
396
|
-
|
|
397
|
-
## v0.3.1 2014-11-25
|
|
398
|
-
|
|
399
|
-
### Added
|
|
400
|
-
|
|
401
|
-
* attributes for `group` mapping operation can be specified without options (solnic)
|
|
402
|
-
* attributes for `wrap` mapping operation can be specified without options (solnic)
|
|
403
|
-
* `Env` uses Equalizer (solnic)
|
|
404
|
-
* boot dsl methods return self (solnic)
|
|
405
|
-
|
|
406
|
-
### Fixed
|
|
407
|
-
|
|
408
|
-
* when schema is missing booting will gracefuly skip building relations and mappers (solnic)
|
|
409
|
-
* in-memory join handles one-to-many and many-to-one correctly (solnic)
|
|
410
|
-
|
|
411
|
-
[Compare v0.3.0...v0.3.1](https://github.com/rom-rb/rom/compare/v0.3.0...v0.3.1)
|
|
412
|
-
|
|
413
|
-
## v0.3.0 2014-11-24
|
|
414
|
-
|
|
415
|
-
This version is a rewrite that introduces a new, simplified architecture based
|
|
416
|
-
on a new adapter interface.
|
|
417
|
-
|
|
418
|
-
[Compare v0.2.0...v0.3.0](https://github.com/rom-rb/rom/compare/v0.2.0...v0.3.0)
|
|
419
|
-
|
|
420
|
-
## v0.2.0 2014-04-06
|
|
421
|
-
|
|
422
|
-
### Added
|
|
423
|
-
|
|
424
|
-
* [feature] added :rename option to schema attribute DSL (solnic)
|
|
425
|
-
* [feature] added support for join, group, wrap, project and rename operations (solnic)
|
|
426
|
-
* [feature] added support for setting domain object loading strategy (solnic)
|
|
427
|
-
* [feature] Environment.setup can be used with a block to define schema and mapping (solnic)
|
|
428
|
-
* [feature] added public interface for building mappers (see Mapper.build) (solnic)
|
|
429
|
-
* [feature] added support for mapping embedded objects using wrap/group (solnic)
|
|
430
|
-
* [feature] environment exposes mapper registry via Environment#mappers (solnic)
|
|
431
|
-
|
|
432
|
-
### Changed
|
|
433
|
-
|
|
434
|
-
* [BREAKING] rom-relation, rom-mapper and rom-session were merged into rom project (solnic)
|
|
435
|
-
* [BREAKING] changed mapping DSL (users do...end => relation(:users) do...end) (solnic)
|
|
436
|
-
* [BREAKING] added :from option to mapping DSL which replaced :to (solnic)
|
|
437
|
-
* [internal] mappers are now backed by [morpher](https://github.com/mbj/morpher) (solnic)
|
|
438
|
-
* [internal] renaming and optimizing relations happens on the schema level now (solnic)
|
|
439
|
-
* [internal] environment will raise if unknown relation is referenced via `Environment#[]` (solnic)
|
|
440
|
-
|
|
441
|
-
[Compare v0.1.2...v0.2.0](https://github.com/rom-rb/rom/compare/v0.1.2...v0.2.0)
|
|
442
|
-
|
|
443
|
-
## v0.1.2 2013-09-02
|
|
444
|
-
|
|
445
|
-
* [updated] [rom-relation](https://github.com/rom-rb/rom-relation/blob/v0.1.2/Changelog.md#v012-2013-09-02)
|
|
446
|
-
|
|
447
|
-
[Compare v0.1.1...v0.1.2](https://github.com/rom-rb/rom/compare/v0.1.1...v0.1.2)
|
|
448
|
-
|
|
449
|
-
## v0.1.1 2013-08-30
|
|
450
|
-
|
|
451
|
-
* [updated] [rom-relation](https://github.com/rom-rb/rom-relation/blob/v0.1.1/Changelog.md#v011-2013-08-30)
|
|
452
|
-
* [updated] [rom-session](https://github.com/rom-rb/rom-session/blob/v0.1.1/Changelog.md#v011-2013-08-30)
|
|
453
|
-
|
|
454
|
-
[Compare v0.1.0...v0.1.1](https://github.com/rom-rb/rom/compare/v0.1.0...v0.1.1)
|
|
455
|
-
|
|
456
|
-
## v0.1.0 2013-08-23
|
|
457
|
-
|
|
458
|
-
First public release
|
|
63
|
+
This release turns `rom` gem into a meta gem which depends on `rom-core`, `rom-mapper`, `rom-repository` and `rom-changeset'`. See [CHANGELOG](https://github.com/rom-rb/rom/blob/master/core/CHANGELOG.md#v400-to-be-released) in core for more information.
|
data/LICENSE
CHANGED