rom-core 4.0.0.beta1

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