rom-core 4.0.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.
Files changed (122) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +603 -0
  3. data/LICENSE +20 -0
  4. data/README.md +18 -0
  5. data/lib/rom-core.rb +1 -0
  6. data/lib/rom/array_dataset.rb +44 -0
  7. data/lib/rom/association_set.rb +16 -0
  8. data/lib/rom/associations/abstract.rb +135 -0
  9. data/lib/rom/associations/definitions.rb +5 -0
  10. data/lib/rom/associations/definitions/abstract.rb +116 -0
  11. data/lib/rom/associations/definitions/many_to_many.rb +24 -0
  12. data/lib/rom/associations/definitions/many_to_one.rb +11 -0
  13. data/lib/rom/associations/definitions/one_to_many.rb +11 -0
  14. data/lib/rom/associations/definitions/one_to_one.rb +11 -0
  15. data/lib/rom/associations/definitions/one_to_one_through.rb +11 -0
  16. data/lib/rom/associations/many_to_many.rb +81 -0
  17. data/lib/rom/associations/many_to_one.rb +37 -0
  18. data/lib/rom/associations/one_to_many.rb +37 -0
  19. data/lib/rom/associations/one_to_one.rb +8 -0
  20. data/lib/rom/associations/one_to_one_through.rb +8 -0
  21. data/lib/rom/associations/through_identifier.rb +39 -0
  22. data/lib/rom/auto_curry.rb +55 -0
  23. data/lib/rom/cache.rb +46 -0
  24. data/lib/rom/command.rb +488 -0
  25. data/lib/rom/command_compiler.rb +239 -0
  26. data/lib/rom/command_proxy.rb +24 -0
  27. data/lib/rom/command_registry.rb +141 -0
  28. data/lib/rom/commands.rb +3 -0
  29. data/lib/rom/commands/class_interface.rb +270 -0
  30. data/lib/rom/commands/composite.rb +53 -0
  31. data/lib/rom/commands/create.rb +13 -0
  32. data/lib/rom/commands/delete.rb +14 -0
  33. data/lib/rom/commands/graph.rb +88 -0
  34. data/lib/rom/commands/graph/class_interface.rb +62 -0
  35. data/lib/rom/commands/graph/input_evaluator.rb +62 -0
  36. data/lib/rom/commands/lazy.rb +99 -0
  37. data/lib/rom/commands/lazy/create.rb +23 -0
  38. data/lib/rom/commands/lazy/delete.rb +27 -0
  39. data/lib/rom/commands/lazy/update.rb +34 -0
  40. data/lib/rom/commands/result.rb +96 -0
  41. data/lib/rom/commands/update.rb +14 -0
  42. data/lib/rom/configuration.rb +114 -0
  43. data/lib/rom/configuration_dsl.rb +87 -0
  44. data/lib/rom/configuration_dsl/command.rb +41 -0
  45. data/lib/rom/configuration_dsl/command_dsl.rb +35 -0
  46. data/lib/rom/configuration_dsl/relation.rb +26 -0
  47. data/lib/rom/configuration_plugin.rb +17 -0
  48. data/lib/rom/constants.rb +64 -0
  49. data/lib/rom/container.rb +147 -0
  50. data/lib/rom/core.rb +46 -0
  51. data/lib/rom/create_container.rb +60 -0
  52. data/lib/rom/data_proxy.rb +94 -0
  53. data/lib/rom/enumerable_dataset.rb +68 -0
  54. data/lib/rom/environment.rb +70 -0
  55. data/lib/rom/gateway.rb +184 -0
  56. data/lib/rom/global.rb +58 -0
  57. data/lib/rom/global/plugin_dsl.rb +47 -0
  58. data/lib/rom/initializer.rb +64 -0
  59. data/lib/rom/lint/enumerable_dataset.rb +54 -0
  60. data/lib/rom/lint/gateway.rb +120 -0
  61. data/lib/rom/lint/linter.rb +78 -0
  62. data/lib/rom/lint/spec.rb +20 -0
  63. data/lib/rom/lint/test.rb +98 -0
  64. data/lib/rom/mapper_registry.rb +24 -0
  65. data/lib/rom/memory.rb +4 -0
  66. data/lib/rom/memory/associations.rb +4 -0
  67. data/lib/rom/memory/associations/many_to_many.rb +10 -0
  68. data/lib/rom/memory/associations/many_to_one.rb +10 -0
  69. data/lib/rom/memory/associations/one_to_many.rb +10 -0
  70. data/lib/rom/memory/associations/one_to_one.rb +10 -0
  71. data/lib/rom/memory/commands.rb +56 -0
  72. data/lib/rom/memory/dataset.rb +97 -0
  73. data/lib/rom/memory/gateway.rb +64 -0
  74. data/lib/rom/memory/relation.rb +62 -0
  75. data/lib/rom/memory/schema.rb +23 -0
  76. data/lib/rom/memory/storage.rb +59 -0
  77. data/lib/rom/memory/types.rb +9 -0
  78. data/lib/rom/pipeline.rb +105 -0
  79. data/lib/rom/plugin.rb +25 -0
  80. data/lib/rom/plugin_base.rb +45 -0
  81. data/lib/rom/plugin_registry.rb +197 -0
  82. data/lib/rom/plugins/command/schema.rb +37 -0
  83. data/lib/rom/plugins/configuration/configuration_dsl.rb +21 -0
  84. data/lib/rom/plugins/relation/instrumentation.rb +51 -0
  85. data/lib/rom/plugins/relation/registry_reader.rb +44 -0
  86. data/lib/rom/plugins/schema/timestamps.rb +58 -0
  87. data/lib/rom/registry.rb +71 -0
  88. data/lib/rom/relation.rb +548 -0
  89. data/lib/rom/relation/class_interface.rb +282 -0
  90. data/lib/rom/relation/commands.rb +23 -0
  91. data/lib/rom/relation/composite.rb +46 -0
  92. data/lib/rom/relation/curried.rb +103 -0
  93. data/lib/rom/relation/graph.rb +197 -0
  94. data/lib/rom/relation/loaded.rb +127 -0
  95. data/lib/rom/relation/materializable.rb +66 -0
  96. data/lib/rom/relation/name.rb +111 -0
  97. data/lib/rom/relation/view_dsl.rb +64 -0
  98. data/lib/rom/relation/wrap.rb +83 -0
  99. data/lib/rom/relation_registry.rb +10 -0
  100. data/lib/rom/schema.rb +437 -0
  101. data/lib/rom/schema/associations_dsl.rb +195 -0
  102. data/lib/rom/schema/attribute.rb +419 -0
  103. data/lib/rom/schema/dsl.rb +164 -0
  104. data/lib/rom/schema/inferrer.rb +66 -0
  105. data/lib/rom/schema_plugin.rb +27 -0
  106. data/lib/rom/setup.rb +68 -0
  107. data/lib/rom/setup/auto_registration.rb +74 -0
  108. data/lib/rom/setup/auto_registration_strategies/base.rb +16 -0
  109. data/lib/rom/setup/auto_registration_strategies/custom_namespace.rb +63 -0
  110. data/lib/rom/setup/auto_registration_strategies/no_namespace.rb +20 -0
  111. data/lib/rom/setup/auto_registration_strategies/with_namespace.rb +18 -0
  112. data/lib/rom/setup/finalize.rb +103 -0
  113. data/lib/rom/setup/finalize/finalize_commands.rb +60 -0
  114. data/lib/rom/setup/finalize/finalize_mappers.rb +56 -0
  115. data/lib/rom/setup/finalize/finalize_relations.rb +135 -0
  116. data/lib/rom/support/configurable.rb +85 -0
  117. data/lib/rom/support/memoizable.rb +58 -0
  118. data/lib/rom/support/notifications.rb +103 -0
  119. data/lib/rom/transaction.rb +24 -0
  120. data/lib/rom/types.rb +26 -0
  121. data/lib/rom/version.rb +5 -0
  122. metadata +289 -0
@@ -0,0 +1,58 @@
1
+ module ROM
2
+ # @api private
3
+ module Memoizable
4
+ MEMOIZED_HASH = {}
5
+
6
+ module ClassInterface
7
+ # @api private
8
+ def memoize(*names)
9
+ prepend(Memoizer.new(self, names))
10
+ end
11
+
12
+ def new(*)
13
+ obj = super
14
+ obj.instance_variable_set(:'@__memoized__', MEMOIZED_HASH.dup)
15
+ obj
16
+ end
17
+ end
18
+
19
+ def self.included(klass)
20
+ super
21
+ klass.extend(ClassInterface)
22
+ end
23
+
24
+ attr_reader :__memoized__
25
+
26
+ # @api private
27
+ class Memoizer < Module
28
+ attr_reader :klass
29
+ attr_reader :names
30
+
31
+ # @api private
32
+ def initialize(klass, names)
33
+ @names = names
34
+ @klass = klass
35
+ define_memoizable_names!
36
+ end
37
+
38
+ private
39
+
40
+ # @api private
41
+ def define_memoizable_names!
42
+ names.each do |name|
43
+ meth = klass.instance_method(name)
44
+
45
+ if meth.parameters.size > 0
46
+ define_method(name) do |*args|
47
+ __memoized__[:"#{name}_#{args.hash}"] ||= super(*args)
48
+ end
49
+ else
50
+ define_method(name) do
51
+ __memoized__[name] ||= super()
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,103 @@
1
+ require 'dry/equalizer'
2
+
3
+ require 'rom/constants'
4
+
5
+ module ROM
6
+ module Notifications
7
+ LISTENERS_HASH = Hash.new { |h, k| h[k] = [] }
8
+
9
+ module Publisher
10
+ # @api public
11
+ def subscribe(event_id, query = EMPTY_HASH, &block)
12
+ listeners[event_id] << [block, query]
13
+ self
14
+ end
15
+
16
+ # @api public
17
+ def trigger(event_id, payload = EMPTY_HASH)
18
+ event = events[event_id]
19
+
20
+ listeners[event.id].each do |(listener, query)|
21
+ event.payload(payload).trigger(listener, query)
22
+ end
23
+ end
24
+ end
25
+
26
+ class Event
27
+ include Dry::Equalizer(:id, :payload)
28
+
29
+ attr_reader :id
30
+
31
+ def initialize(id, payload = EMPTY_HASH)
32
+ @id = id
33
+ @payload = payload
34
+ end
35
+
36
+ def [](name)
37
+ @payload.fetch(name)
38
+ end
39
+
40
+ def payload(data = nil)
41
+ if data
42
+ self.class.new(id, @payload.merge(data))
43
+ else
44
+ @payload
45
+ end
46
+ end
47
+
48
+ def trigger(listener, query = EMPTY_HASH)
49
+ listener.(self) if trigger?(query)
50
+ end
51
+
52
+ def trigger?(query)
53
+ query.empty? || query.all? { |key, value| @payload[key] == value }
54
+ end
55
+ end
56
+
57
+ extend Publisher
58
+
59
+ # @api public
60
+ def register_event(id, info = EMPTY_HASH)
61
+ Notifications.events[id] = Event.new(id, info)
62
+ end
63
+
64
+ # @api private
65
+ def self.events
66
+ @__events__ ||= {}
67
+ end
68
+
69
+ # @api private
70
+ def self.listeners
71
+ @__listeners__ ||= LISTENERS_HASH.dup
72
+ end
73
+
74
+ # @api public
75
+ def self.event_bus(id)
76
+ EventBus.new(id, events: events.dup, listeners: listeners.dup)
77
+ end
78
+
79
+ # @api public
80
+ module Listener
81
+ # @api public
82
+ def subscribe(event_id, query = EMPTY_HASH, &block)
83
+ Notifications.listeners[event_id] << [block, query]
84
+ end
85
+ end
86
+
87
+ # @api public
88
+ class EventBus
89
+ include Publisher
90
+
91
+ attr_reader :id
92
+ attr_reader :events
93
+ attr_reader :listeners
94
+
95
+ # @api public
96
+ def initialize(id, events: EMPTY_HASH, listeners: LISTENERS_HASH.dup)
97
+ @id = id
98
+ @listeners = listeners
99
+ @events = events
100
+ end
101
+ end
102
+ end
103
+ end
@@ -0,0 +1,24 @@
1
+ module ROM
2
+ # @api private
3
+ class Transaction
4
+ # @api private
5
+ Rollback = Class.new(StandardError)
6
+
7
+ # @api private
8
+ def run(opts = EMPTY_HASH)
9
+ yield(self)
10
+ rescue Rollback
11
+ # noop
12
+ end
13
+
14
+ # Unconditionally roll back the current transaction
15
+ #
16
+ # @api public
17
+ def rollback!
18
+ raise Rollback
19
+ end
20
+
21
+ # @api private
22
+ NoOp = Transaction.new.freeze
23
+ end
24
+ end
data/lib/rom/types.rb ADDED
@@ -0,0 +1,26 @@
1
+ require 'dry-types'
2
+
3
+ module ROM
4
+ module Types
5
+ include Dry::Types.module
6
+
7
+ def self.included(other)
8
+ other.extend(Methods)
9
+ super
10
+ end
11
+
12
+ def self.Definition(primitive)
13
+ Dry::Types::Definition.new(primitive)
14
+ end
15
+
16
+ def self.Constructor(primitive, &block)
17
+ Types.Definition(primitive).constructor(&block)
18
+ end
19
+
20
+ module Methods
21
+ def ForeignKey(relation, type = Types::Int)
22
+ type.meta(foreign_key: true, target: relation)
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,5 @@
1
+ module ROM
2
+ module Core
3
+ VERSION = '4.0.0.beta1'.freeze
4
+ end
5
+ end
metadata ADDED
@@ -0,0 +1,289 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rom-core
3
+ version: !ruby/object:Gem::Version
4
+ version: 4.0.0.beta1
5
+ platform: ruby
6
+ authors:
7
+ - Piotr Solnica
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-06-30 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: concurrent-ruby
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: dry-container
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '0.6'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '0.6'
41
+ - !ruby/object:Gem::Dependency
42
+ name: dry-equalizer
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '0.2'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '0.2'
55
+ - !ruby/object:Gem::Dependency
56
+ name: dry-types
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '0.11'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '0.11'
69
+ - !ruby/object:Gem::Dependency
70
+ name: dry-core
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '0.3'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '0.3'
83
+ - !ruby/object:Gem::Dependency
84
+ name: dry-initializer
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '1.3'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '1.3'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rom-mapper
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: 1.0.0.beta
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: 1.0.0.beta
111
+ - !ruby/object:Gem::Dependency
112
+ name: rake
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '10.3'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '10.3'
125
+ - !ruby/object:Gem::Dependency
126
+ name: rspec
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '3.5'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '3.5'
139
+ description: Persistence and mapping toolkit for Ruby
140
+ email: piotr.solnica+oss@gmail.com
141
+ executables: []
142
+ extensions: []
143
+ extra_rdoc_files: []
144
+ files:
145
+ - CHANGELOG.md
146
+ - LICENSE
147
+ - README.md
148
+ - lib/rom-core.rb
149
+ - lib/rom/array_dataset.rb
150
+ - lib/rom/association_set.rb
151
+ - lib/rom/associations/abstract.rb
152
+ - lib/rom/associations/definitions.rb
153
+ - lib/rom/associations/definitions/abstract.rb
154
+ - lib/rom/associations/definitions/many_to_many.rb
155
+ - lib/rom/associations/definitions/many_to_one.rb
156
+ - lib/rom/associations/definitions/one_to_many.rb
157
+ - lib/rom/associations/definitions/one_to_one.rb
158
+ - lib/rom/associations/definitions/one_to_one_through.rb
159
+ - lib/rom/associations/many_to_many.rb
160
+ - lib/rom/associations/many_to_one.rb
161
+ - lib/rom/associations/one_to_many.rb
162
+ - lib/rom/associations/one_to_one.rb
163
+ - lib/rom/associations/one_to_one_through.rb
164
+ - lib/rom/associations/through_identifier.rb
165
+ - lib/rom/auto_curry.rb
166
+ - lib/rom/cache.rb
167
+ - lib/rom/command.rb
168
+ - lib/rom/command_compiler.rb
169
+ - lib/rom/command_proxy.rb
170
+ - lib/rom/command_registry.rb
171
+ - lib/rom/commands.rb
172
+ - lib/rom/commands/class_interface.rb
173
+ - lib/rom/commands/composite.rb
174
+ - lib/rom/commands/create.rb
175
+ - lib/rom/commands/delete.rb
176
+ - lib/rom/commands/graph.rb
177
+ - lib/rom/commands/graph/class_interface.rb
178
+ - lib/rom/commands/graph/input_evaluator.rb
179
+ - lib/rom/commands/lazy.rb
180
+ - lib/rom/commands/lazy/create.rb
181
+ - lib/rom/commands/lazy/delete.rb
182
+ - lib/rom/commands/lazy/update.rb
183
+ - lib/rom/commands/result.rb
184
+ - lib/rom/commands/update.rb
185
+ - lib/rom/configuration.rb
186
+ - lib/rom/configuration_dsl.rb
187
+ - lib/rom/configuration_dsl/command.rb
188
+ - lib/rom/configuration_dsl/command_dsl.rb
189
+ - lib/rom/configuration_dsl/relation.rb
190
+ - lib/rom/configuration_plugin.rb
191
+ - lib/rom/constants.rb
192
+ - lib/rom/container.rb
193
+ - lib/rom/core.rb
194
+ - lib/rom/create_container.rb
195
+ - lib/rom/data_proxy.rb
196
+ - lib/rom/enumerable_dataset.rb
197
+ - lib/rom/environment.rb
198
+ - lib/rom/gateway.rb
199
+ - lib/rom/global.rb
200
+ - lib/rom/global/plugin_dsl.rb
201
+ - lib/rom/initializer.rb
202
+ - lib/rom/lint/enumerable_dataset.rb
203
+ - lib/rom/lint/gateway.rb
204
+ - lib/rom/lint/linter.rb
205
+ - lib/rom/lint/spec.rb
206
+ - lib/rom/lint/test.rb
207
+ - lib/rom/mapper_registry.rb
208
+ - lib/rom/memory.rb
209
+ - lib/rom/memory/associations.rb
210
+ - lib/rom/memory/associations/many_to_many.rb
211
+ - lib/rom/memory/associations/many_to_one.rb
212
+ - lib/rom/memory/associations/one_to_many.rb
213
+ - lib/rom/memory/associations/one_to_one.rb
214
+ - lib/rom/memory/commands.rb
215
+ - lib/rom/memory/dataset.rb
216
+ - lib/rom/memory/gateway.rb
217
+ - lib/rom/memory/relation.rb
218
+ - lib/rom/memory/schema.rb
219
+ - lib/rom/memory/storage.rb
220
+ - lib/rom/memory/types.rb
221
+ - lib/rom/pipeline.rb
222
+ - lib/rom/plugin.rb
223
+ - lib/rom/plugin_base.rb
224
+ - lib/rom/plugin_registry.rb
225
+ - lib/rom/plugins/command/schema.rb
226
+ - lib/rom/plugins/configuration/configuration_dsl.rb
227
+ - lib/rom/plugins/relation/instrumentation.rb
228
+ - lib/rom/plugins/relation/registry_reader.rb
229
+ - lib/rom/plugins/schema/timestamps.rb
230
+ - lib/rom/registry.rb
231
+ - lib/rom/relation.rb
232
+ - lib/rom/relation/class_interface.rb
233
+ - lib/rom/relation/commands.rb
234
+ - lib/rom/relation/composite.rb
235
+ - lib/rom/relation/curried.rb
236
+ - lib/rom/relation/graph.rb
237
+ - lib/rom/relation/loaded.rb
238
+ - lib/rom/relation/materializable.rb
239
+ - lib/rom/relation/name.rb
240
+ - lib/rom/relation/view_dsl.rb
241
+ - lib/rom/relation/wrap.rb
242
+ - lib/rom/relation_registry.rb
243
+ - lib/rom/schema.rb
244
+ - lib/rom/schema/associations_dsl.rb
245
+ - lib/rom/schema/attribute.rb
246
+ - lib/rom/schema/dsl.rb
247
+ - lib/rom/schema/inferrer.rb
248
+ - lib/rom/schema_plugin.rb
249
+ - lib/rom/setup.rb
250
+ - lib/rom/setup/auto_registration.rb
251
+ - lib/rom/setup/auto_registration_strategies/base.rb
252
+ - lib/rom/setup/auto_registration_strategies/custom_namespace.rb
253
+ - lib/rom/setup/auto_registration_strategies/no_namespace.rb
254
+ - lib/rom/setup/auto_registration_strategies/with_namespace.rb
255
+ - lib/rom/setup/finalize.rb
256
+ - lib/rom/setup/finalize/finalize_commands.rb
257
+ - lib/rom/setup/finalize/finalize_mappers.rb
258
+ - lib/rom/setup/finalize/finalize_relations.rb
259
+ - lib/rom/support/configurable.rb
260
+ - lib/rom/support/memoizable.rb
261
+ - lib/rom/support/notifications.rb
262
+ - lib/rom/transaction.rb
263
+ - lib/rom/types.rb
264
+ - lib/rom/version.rb
265
+ homepage: http://rom-rb.org
266
+ licenses:
267
+ - MIT
268
+ metadata: {}
269
+ post_install_message:
270
+ rdoc_options: []
271
+ require_paths:
272
+ - lib
273
+ required_ruby_version: !ruby/object:Gem::Requirement
274
+ requirements:
275
+ - - ">="
276
+ - !ruby/object:Gem::Version
277
+ version: '0'
278
+ required_rubygems_version: !ruby/object:Gem::Requirement
279
+ requirements:
280
+ - - ">"
281
+ - !ruby/object:Gem::Version
282
+ version: 1.3.1
283
+ requirements: []
284
+ rubyforge_project:
285
+ rubygems_version: 2.6.12
286
+ signing_key:
287
+ specification_version: 4
288
+ summary: Ruby Object Mapper
289
+ test_files: []