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.
Files changed (203) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +35 -430
  3. data/LICENSE +1 -1
  4. data/README.md +83 -11
  5. data/lib/rom/version.rb +1 -1
  6. data/lib/rom.rb +3 -46
  7. metadata +30 -236
  8. data/.gitignore +0 -24
  9. data/.rspec +0 -3
  10. data/.rubocop.yml +0 -87
  11. data/.rubocop_todo.yml +0 -46
  12. data/.travis.yml +0 -28
  13. data/CODE_OF_CONDUCT.md +0 -13
  14. data/CONTRIBUTING.md +0 -1
  15. data/Gemfile +0 -41
  16. data/Guardfile +0 -24
  17. data/Rakefile +0 -22
  18. data/lib/rom/association_set.rb +0 -26
  19. data/lib/rom/command.rb +0 -173
  20. data/lib/rom/command_registry.rb +0 -153
  21. data/lib/rom/commands/class_interface.rb +0 -148
  22. data/lib/rom/commands/composite.rb +0 -54
  23. data/lib/rom/commands/create.rb +0 -13
  24. data/lib/rom/commands/delete.rb +0 -14
  25. data/lib/rom/commands/graph/builder.rb +0 -176
  26. data/lib/rom/commands/graph/class_interface.rb +0 -62
  27. data/lib/rom/commands/graph/input_evaluator.rb +0 -62
  28. data/lib/rom/commands/graph.rb +0 -103
  29. data/lib/rom/commands/lazy/create.rb +0 -23
  30. data/lib/rom/commands/lazy/delete.rb +0 -27
  31. data/lib/rom/commands/lazy/update.rb +0 -34
  32. data/lib/rom/commands/lazy.rb +0 -99
  33. data/lib/rom/commands/result.rb +0 -96
  34. data/lib/rom/commands/update.rb +0 -14
  35. data/lib/rom/commands.rb +0 -3
  36. data/lib/rom/configuration.rb +0 -88
  37. data/lib/rom/configuration_dsl/command.rb +0 -43
  38. data/lib/rom/configuration_dsl/command_dsl.rb +0 -35
  39. data/lib/rom/configuration_dsl/mapper.rb +0 -37
  40. data/lib/rom/configuration_dsl/mapper_dsl.rb +0 -44
  41. data/lib/rom/configuration_dsl/relation.rb +0 -26
  42. data/lib/rom/configuration_dsl.rb +0 -78
  43. data/lib/rom/configuration_plugin.rb +0 -17
  44. data/lib/rom/constants.rb +0 -30
  45. data/lib/rom/container.rb +0 -231
  46. data/lib/rom/create_container.rb +0 -61
  47. data/lib/rom/environment.rb +0 -70
  48. data/lib/rom/gateway.rb +0 -154
  49. data/lib/rom/global/plugin_dsl.rb +0 -49
  50. data/lib/rom/global.rb +0 -60
  51. data/lib/rom/lint/enumerable_dataset.rb +0 -54
  52. data/lib/rom/lint/gateway.rb +0 -94
  53. data/lib/rom/lint/linter.rb +0 -78
  54. data/lib/rom/lint/spec.rb +0 -20
  55. data/lib/rom/lint/test.rb +0 -98
  56. data/lib/rom/mapper_registry.rb +0 -35
  57. data/lib/rom/memory/commands.rb +0 -58
  58. data/lib/rom/memory/dataset.rb +0 -98
  59. data/lib/rom/memory/gateway.rb +0 -64
  60. data/lib/rom/memory/relation.rb +0 -49
  61. data/lib/rom/memory/storage.rb +0 -59
  62. data/lib/rom/memory/types.rb +0 -9
  63. data/lib/rom/memory.rb +0 -4
  64. data/lib/rom/pipeline.rb +0 -106
  65. data/lib/rom/plugin.rb +0 -17
  66. data/lib/rom/plugin_base.rb +0 -31
  67. data/lib/rom/plugin_registry.rb +0 -173
  68. data/lib/rom/plugins/command/schema.rb +0 -37
  69. data/lib/rom/plugins/configuration/configuration_dsl.rb +0 -17
  70. data/lib/rom/plugins/relation/key_inference.rb +0 -46
  71. data/lib/rom/plugins/relation/registry_reader.rb +0 -32
  72. data/lib/rom/plugins/relation/view/dsl.rb +0 -32
  73. data/lib/rom/plugins/relation/view.rb +0 -95
  74. data/lib/rom/relation/class_interface.rb +0 -230
  75. data/lib/rom/relation/composite.rb +0 -46
  76. data/lib/rom/relation/curried.rb +0 -104
  77. data/lib/rom/relation/graph.rb +0 -115
  78. data/lib/rom/relation/loaded.rb +0 -118
  79. data/lib/rom/relation/materializable.rb +0 -66
  80. data/lib/rom/relation/name.rb +0 -102
  81. data/lib/rom/relation.rb +0 -172
  82. data/lib/rom/relation_registry.rb +0 -9
  83. data/lib/rom/schema/dsl.rb +0 -58
  84. data/lib/rom/schema.rb +0 -89
  85. data/lib/rom/setup/auto_registration.rb +0 -69
  86. data/lib/rom/setup/auto_registration_strategies/base.rb +0 -11
  87. data/lib/rom/setup/auto_registration_strategies/custom_namespace.rb +0 -22
  88. data/lib/rom/setup/auto_registration_strategies/no_namespace.rb +0 -19
  89. data/lib/rom/setup/auto_registration_strategies/with_namespace.rb +0 -18
  90. data/lib/rom/setup/finalize/finalize_commands.rb +0 -47
  91. data/lib/rom/setup/finalize/finalize_mappers.rb +0 -36
  92. data/lib/rom/setup/finalize/finalize_relations.rb +0 -60
  93. data/lib/rom/setup/finalize.rb +0 -146
  94. data/lib/rom/setup.rb +0 -55
  95. data/lib/rom/support/configurable.rb +0 -80
  96. data/lib/rom/types.rb +0 -18
  97. data/log/.gitkeep +0 -0
  98. data/rakelib/benchmark.rake +0 -15
  99. data/rakelib/mutant.rake +0 -19
  100. data/rakelib/rubocop.rake +0 -18
  101. data/rom.gemspec +0 -26
  102. data/spec/fixtures/app/commands/create_user.rb +0 -2
  103. data/spec/fixtures/app/mappers/user_list.rb +0 -2
  104. data/spec/fixtures/app/my_commands/create_user.rb +0 -2
  105. data/spec/fixtures/app/my_mappers/user_list.rb +0 -2
  106. data/spec/fixtures/app/my_relations/users.rb +0 -2
  107. data/spec/fixtures/app/relations/users.rb +0 -2
  108. data/spec/fixtures/custom/commands/create_user.rb +0 -6
  109. data/spec/fixtures/custom/mappers/user_list.rb +0 -6
  110. data/spec/fixtures/custom/relations/users.rb +0 -6
  111. data/spec/fixtures/lib/persistence/commands/create_user.rb +0 -6
  112. data/spec/fixtures/lib/persistence/mappers/user_list.rb +0 -6
  113. data/spec/fixtures/lib/persistence/my_commands/create_user.rb +0 -6
  114. data/spec/fixtures/lib/persistence/my_mappers/user_list.rb +0 -6
  115. data/spec/fixtures/lib/persistence/my_relations/users.rb +0 -6
  116. data/spec/fixtures/lib/persistence/relations/users.rb +0 -6
  117. data/spec/integration/command_registry_spec.rb +0 -60
  118. data/spec/integration/commands/create_spec.rb +0 -177
  119. data/spec/integration/commands/delete_spec.rb +0 -67
  120. data/spec/integration/commands/error_handling_spec.rb +0 -25
  121. data/spec/integration/commands/graph_builder_spec.rb +0 -213
  122. data/spec/integration/commands/graph_spec.rb +0 -288
  123. data/spec/integration/commands/update_spec.rb +0 -109
  124. data/spec/integration/commands_spec.rb +0 -67
  125. data/spec/integration/mappers/combine_spec.rb +0 -117
  126. data/spec/integration/mappers/deep_embedded_spec.rb +0 -44
  127. data/spec/integration/mappers/definition_dsl_spec.rb +0 -206
  128. data/spec/integration/mappers/embedded_spec.rb +0 -62
  129. data/spec/integration/mappers/exclude_spec.rb +0 -27
  130. data/spec/integration/mappers/fold_spec.rb +0 -71
  131. data/spec/integration/mappers/group_spec.rb +0 -163
  132. data/spec/integration/mappers/overwrite_attributes_value_spec.rb +0 -51
  133. data/spec/integration/mappers/prefix_separator_spec.rb +0 -52
  134. data/spec/integration/mappers/prefix_spec.rb +0 -48
  135. data/spec/integration/mappers/prefixing_attributes_spec.rb +0 -37
  136. data/spec/integration/mappers/registering_custom_mappers_spec.rb +0 -28
  137. data/spec/integration/mappers/renaming_attributes_spec.rb +0 -125
  138. data/spec/integration/mappers/reusing_mappers_spec.rb +0 -43
  139. data/spec/integration/mappers/step_spec.rb +0 -119
  140. data/spec/integration/mappers/symbolizing_attributes_spec.rb +0 -77
  141. data/spec/integration/mappers/unfold_spec.rb +0 -92
  142. data/spec/integration/mappers/ungroup_spec.rb +0 -126
  143. data/spec/integration/mappers/unwrap_spec.rb +0 -93
  144. data/spec/integration/mappers/wrap_spec.rb +0 -155
  145. data/spec/integration/memory/commands/create_spec.rb +0 -23
  146. data/spec/integration/memory/commands/delete_spec.rb +0 -23
  147. data/spec/integration/memory/commands/update_spec.rb +0 -23
  148. data/spec/integration/multi_env_spec.rb +0 -69
  149. data/spec/integration/multi_repo_spec.rb +0 -46
  150. data/spec/integration/relations/default_dataset_spec.rb +0 -38
  151. data/spec/integration/relations/inheritance_spec.rb +0 -37
  152. data/spec/integration/relations/reading_spec.rb +0 -169
  153. data/spec/integration/relations/registry_dsl_spec.rb +0 -45
  154. data/spec/integration/repositories/extending_relations_spec.rb +0 -58
  155. data/spec/integration/repositories/setting_logger_spec.rb +0 -34
  156. data/spec/integration/setup_spec.rb +0 -160
  157. data/spec/shared/command_behavior.rb +0 -28
  158. data/spec/shared/command_graph.rb +0 -50
  159. data/spec/shared/container.rb +0 -9
  160. data/spec/shared/enumerable_dataset.rb +0 -52
  161. data/spec/shared/gateway_only.rb +0 -6
  162. data/spec/shared/materializable.rb +0 -36
  163. data/spec/shared/no_container.rb +0 -16
  164. data/spec/shared/one_behavior.rb +0 -26
  165. data/spec/shared/proxy.rb +0 -0
  166. data/spec/shared/users_and_tasks.rb +0 -10
  167. data/spec/spec_helper.rb +0 -52
  168. data/spec/support/constant_leak_finder.rb +0 -14
  169. data/spec/support/mutant.rb +0 -10
  170. data/spec/support/types.rb +0 -5
  171. data/spec/test/memory_repository_lint_test.rb +0 -27
  172. data/spec/unit/rom/association_set_spec.rb +0 -23
  173. data/spec/unit/rom/commands/graph_spec.rb +0 -191
  174. data/spec/unit/rom/commands/lazy_spec.rb +0 -307
  175. data/spec/unit/rom/commands/result_spec.rb +0 -70
  176. data/spec/unit/rom/commands_spec.rb +0 -165
  177. data/spec/unit/rom/configurable_spec.rb +0 -49
  178. data/spec/unit/rom/configuration_spec.rb +0 -61
  179. data/spec/unit/rom/container_spec.rb +0 -99
  180. data/spec/unit/rom/create_container_spec.rb +0 -151
  181. data/spec/unit/rom/environment_spec.rb +0 -123
  182. data/spec/unit/rom/gateway_spec.rb +0 -146
  183. data/spec/unit/rom/mapper_registry_spec.rb +0 -25
  184. data/spec/unit/rom/memory/commands_spec.rb +0 -43
  185. data/spec/unit/rom/memory/dataset_spec.rb +0 -31
  186. data/spec/unit/rom/memory/relation_spec.rb +0 -109
  187. data/spec/unit/rom/memory/repository_spec.rb +0 -12
  188. data/spec/unit/rom/memory/storage_spec.rb +0 -45
  189. data/spec/unit/rom/plugin_spec.rb +0 -150
  190. data/spec/unit/rom/plugins/command/schema_spec.rb +0 -66
  191. data/spec/unit/rom/plugins/relation/key_inference_spec.rb +0 -85
  192. data/spec/unit/rom/plugins/relation/view_spec.rb +0 -51
  193. data/spec/unit/rom/relation/composite_spec.rb +0 -89
  194. data/spec/unit/rom/relation/curried_spec.rb +0 -52
  195. data/spec/unit/rom/relation/graph_spec.rb +0 -92
  196. data/spec/unit/rom/relation/lazy/combine_spec.rb +0 -165
  197. data/spec/unit/rom/relation/lazy_spec.rb +0 -214
  198. data/spec/unit/rom/relation/loaded_spec.rb +0 -53
  199. data/spec/unit/rom/relation/name_spec.rb +0 -58
  200. data/spec/unit/rom/relation/schema_spec.rb +0 -117
  201. data/spec/unit/rom/relation_spec.rb +0 -237
  202. data/spec/unit/rom/schema_spec.rb +0 -10
  203. data/spec/unit/rom/setup/auto_registration_spec.rb +0 -152
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: e6dd420bd1787efc67261de110b316f6b5c92ae8
4
- data.tar.gz: e9f8fb3dbc40528ac46f6427d7b7238c162980bd
2
+ SHA256:
3
+ metadata.gz: 4ae17a0a7246a98135642fdab09437a9c7efd01f85d9458e9a58ed9cafd2a1cc
4
+ data.tar.gz: 78d6820f045d7b0f216daf1d4a74460605b6851f196e6d54f91d4140a9a71375
5
5
  SHA512:
6
- metadata.gz: 6a48171fa2e771fec4e68e14b99e4f78cfd31f6d5162ff5f14546f41d6970b44c8522304cfa9546cff203967696853002e3524f714023d7ac0fd5ea086d7ea9f
7
- data.tar.gz: 34e9a0f63fabaf30897d767db9b8d26e1ac92cd0661cff7bdb5b1f27979fe56feb9f6b0c12ae7305f514c623322e270009ecd3ce35e51867bfdac5a199393408
6
+ metadata.gz: bdd827fe95c1b89944c76767ee3395869f45d9cf6dc92410d9dd8811a993205f0629a48579c2fa4d253528f4f4eb282bfca78689cc49ff1ea6a703205d4ec4d9
7
+ data.tar.gz: d9513f4f005e008c8606992aa4b17ad23671607bf9104ec367954e60ffd5b36c1bb79fe808fafad5327df435db466b3ea7fd8654ef70612a643d71d557b5e242
data/CHANGELOG.md CHANGED
@@ -1,458 +1,63 @@
1
- ## v2.0.2 2016-11-11
1
+ # 4.2.1 2018-05-03
2
2
 
3
- ## Added
3
+ * `rom-core` updated to `['~> 4.2', '>= 4.2.1']`
4
4
 
5
- * API docs for `ROM::Container` (solnic)
5
+ [Compare v4.2.0...v4.2.1](https://github.com/rom-rb/rom/compare/v4.2.0...v4.2.1)
6
6
 
7
- ## Fixed
7
+ # 4.2.0 2018-03-29
8
8
 
9
- * Custom command input function is no longer overridden by schema hash (solnic)
10
- * `Relation::Name#to_s` returns a string properly when there is no alias (solnic)
9
+ * `rom-core` updated to `['~> 4.2', '>= 4.2.0']`
10
+ * `rom-changeset` updated to `['~> 1.0', '>= 1.0.2']`
11
11
 
12
- [Compare v2.0.1...v2.0.2](https://github.com/rom-rb/rom/compare/v2.0.0...v2.0.2)
12
+ [Compare v4.1.3...v4.2.0](https://github.com/rom-rb/rom/compare/v4.1.3...v4.2.0)
13
13
 
14
- ## v2.0.1 2016-09-30
14
+ # 4.1.3 2018-02-03
15
15
 
16
- ### Added
16
+ * `rom-core` updated to `['~> 4.1', '>= 4.1.3']`
17
17
 
18
- - Support for different auto-registration strategies (janjiss)
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
- ### Fixed
20
+ # 4.1.2 2018-01-15
22
21
 
23
- - Finalizing schema that is already finalized no longer crashes (flash-gordon)
22
+ * `rom-core` updated to `['~> 4.1', '>= 4.1.1']`
24
23
 
25
- [Compare v2.0.0...v2.0.1](https://github.com/rom-rb/rom/compare/v2.0.0...v2.0.1)
24
+ [Compare v4.1.1...v4.1.2](https://github.com/rom-rb/rom/compare/v4.1.1...v4.1.2)
26
25
 
27
- ## v2.0.0 2016-07-27
26
+ # 4.1.1 2017-12-01
28
27
 
29
- ### Added
28
+ * `rom-repository` updated to `['~> 2.0', '>= 2.0.2']`
30
29
 
31
- - Extendible `schema` DSL for relations with attribute and type definitions (solnic)
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
- #### New low-level APIs
32
+ # 4.1.0 2017-11-17
40
33
 
41
- - `Command.create_class` for building a command class dynamically (solnic)
42
- - `Command.extend_for_relation` for extending a command with relation view interface (solnic)
34
+ * `rom-core` updated to `['~> 4.1']`
35
+ * `rom-mapper` updated to `'~> 1.1'`
43
36
 
44
- ### Fixed
37
+ [Compare v4.0.3...v4.1.0](https://github.com/rom-rb/rom/compare/v4.0.3...v4.1.0)
45
38
 
46
- - [BREAKING] command graphs return materialized results (a hash or an array) (solnic)
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
- ### Changed
41
+ * `rom-core` updated to `['~> 4.0', '>= 4.0.3']`
52
42
 
53
- - [BREAKING] `ROM.env` **is gone** (solnic)
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
- [Compare v1.0.0...v2.0.0](https://github.com/rom-rb/rom/compare/v1.0.0...v2.0.0)
45
+ # 4.0.2 2017-11-02
64
46
 
65
- ## v1.0.0 2016-01-06
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
- ### Added
52
+ [Compare v4.0.1...v4.0.2](https://github.com/rom-rb/rom/compare/v4.0.1...v4.0.2)
68
53
 
69
- - Command graph DSL (endash + solnic)
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
- ### Changed
56
+ * `rom-core` updated to `['~> 4.0', '>= 4.0.1']`
57
+ * `rom-mapper` updated to `['~> 1.0', '>= 1.0.1']`
79
58
 
80
- - **REMOVED** all deprecated APIs (solnic)
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
- ### Fixed
61
+ # 4.0.0 2017-10-18
88
62
 
89
- - `Relation.register_as` properly overrides inherited value (solnic)
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
@@ -1,4 +1,4 @@
1
- Copyright (c) 2013-2014 Ruby Object Mapper Team
1
+ Copyright (c) 2013-2017 Ruby Object Mapper Team
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the