rom-core 4.2.1 → 5.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +0 -2
- data/lib/rom-core.rb +2 -0
- data/lib/rom/array_dataset.rb +2 -0
- data/lib/rom/association_set.rb +2 -0
- data/lib/rom/associations/abstract.rb +2 -0
- data/lib/rom/associations/definitions.rb +2 -0
- data/lib/rom/associations/definitions/abstract.rb +2 -0
- data/lib/rom/associations/definitions/many_to_many.rb +2 -0
- data/lib/rom/associations/definitions/many_to_one.rb +2 -0
- data/lib/rom/associations/definitions/one_to_many.rb +2 -0
- data/lib/rom/associations/definitions/one_to_one.rb +2 -0
- data/lib/rom/associations/definitions/one_to_one_through.rb +2 -0
- data/lib/rom/associations/many_to_many.rb +2 -0
- data/lib/rom/associations/many_to_one.rb +2 -0
- data/lib/rom/associations/one_to_many.rb +2 -0
- data/lib/rom/associations/one_to_one.rb +2 -0
- data/lib/rom/associations/one_to_one_through.rb +2 -0
- data/lib/rom/associations/through_identifier.rb +2 -0
- data/lib/rom/attribute.rb +58 -72
- data/lib/rom/auto_curry.rb +2 -0
- data/lib/rom/cache.rb +2 -0
- data/lib/rom/command.rb +7 -5
- data/lib/rom/command_compiler.rb +2 -0
- data/lib/rom/command_proxy.rb +2 -0
- data/lib/rom/command_registry.rb +13 -7
- data/lib/rom/commands.rb +2 -0
- data/lib/rom/commands/class_interface.rb +4 -2
- data/lib/rom/commands/composite.rb +2 -0
- data/lib/rom/commands/create.rb +2 -0
- data/lib/rom/commands/delete.rb +2 -0
- data/lib/rom/commands/graph.rb +2 -0
- data/lib/rom/commands/graph/class_interface.rb +2 -0
- data/lib/rom/commands/graph/input_evaluator.rb +2 -0
- data/lib/rom/commands/lazy.rb +2 -0
- data/lib/rom/commands/lazy/create.rb +2 -0
- data/lib/rom/commands/lazy/delete.rb +2 -0
- data/lib/rom/commands/lazy/update.rb +2 -0
- data/lib/rom/commands/update.rb +2 -0
- data/lib/rom/configuration.rb +2 -0
- data/lib/rom/configuration_dsl.rb +2 -0
- data/lib/rom/configuration_dsl/command.rb +2 -0
- data/lib/rom/configuration_dsl/command_dsl.rb +2 -0
- data/lib/rom/configuration_dsl/relation.rb +2 -0
- data/lib/rom/configuration_plugin.rb +2 -0
- data/lib/rom/constants.rb +3 -0
- data/lib/rom/container.rb +2 -0
- data/lib/rom/core.rb +4 -1
- data/lib/rom/create_container.rb +2 -0
- data/lib/rom/data_proxy.rb +2 -0
- data/lib/rom/enumerable_dataset.rb +2 -0
- data/lib/rom/environment.rb +2 -0
- data/lib/rom/gateway.rb +2 -0
- data/lib/rom/global.rb +2 -0
- data/lib/rom/global/plugin_dsl.rb +2 -0
- data/lib/rom/header.rb +198 -0
- data/lib/rom/header/attribute.rb +192 -0
- data/lib/rom/initializer.rb +2 -0
- data/lib/rom/lint/enumerable_dataset.rb +2 -0
- data/lib/rom/lint/gateway.rb +2 -0
- data/lib/rom/lint/linter.rb +2 -0
- data/lib/rom/lint/spec.rb +2 -0
- data/lib/rom/lint/test.rb +2 -0
- data/lib/rom/mapper.rb +100 -0
- data/lib/rom/mapper/attribute_dsl.rb +480 -0
- data/lib/rom/mapper/builder.rb +39 -0
- data/lib/rom/mapper/configuration_plugin.rb +28 -0
- data/lib/rom/mapper/dsl.rb +123 -0
- data/lib/rom/mapper/mapper_dsl.rb +45 -0
- data/lib/rom/mapper/model_dsl.rb +60 -0
- data/lib/rom/mapper_compiler.rb +84 -0
- data/lib/rom/mapper_registry.rb +2 -0
- data/lib/rom/memory.rb +2 -0
- data/lib/rom/memory/associations.rb +2 -0
- data/lib/rom/memory/associations/many_to_many.rb +2 -0
- data/lib/rom/memory/associations/many_to_one.rb +2 -0
- data/lib/rom/memory/associations/one_to_many.rb +2 -0
- data/lib/rom/memory/associations/one_to_one.rb +2 -0
- data/lib/rom/memory/commands.rb +2 -0
- data/lib/rom/memory/dataset.rb +2 -0
- data/lib/rom/memory/gateway.rb +2 -0
- data/lib/rom/memory/mapper_compiler.rb +2 -0
- data/lib/rom/memory/relation.rb +2 -0
- data/lib/rom/memory/schema.rb +2 -0
- data/lib/rom/memory/storage.rb +2 -0
- data/lib/rom/memory/types.rb +2 -0
- data/lib/rom/model_builder.rb +103 -0
- data/lib/rom/open_struct.rb +37 -0
- data/lib/rom/pipeline.rb +2 -0
- data/lib/rom/plugin.rb +2 -0
- data/lib/rom/plugin_base.rb +2 -0
- data/lib/rom/plugin_registry.rb +2 -0
- data/lib/rom/plugins/command/schema.rb +2 -0
- data/lib/rom/plugins/command/timestamps.rb +2 -0
- data/lib/rom/plugins/relation/instrumentation.rb +2 -0
- data/lib/rom/plugins/relation/registry_reader.rb +2 -0
- data/lib/rom/plugins/schema/timestamps.rb +8 -1
- data/lib/rom/processor.rb +30 -0
- data/lib/rom/processor/transproc.rb +417 -0
- data/lib/rom/registry.rb +2 -0
- data/lib/rom/relation.rb +4 -2
- data/lib/rom/relation/class_interface.rb +2 -0
- data/lib/rom/relation/combined.rb +2 -0
- data/lib/rom/relation/commands.rb +2 -0
- data/lib/rom/relation/composite.rb +2 -0
- data/lib/rom/relation/curried.rb +3 -1
- data/lib/rom/relation/graph.rb +2 -0
- data/lib/rom/relation/loaded.rb +2 -0
- data/lib/rom/relation/materializable.rb +2 -0
- data/lib/rom/relation/name.rb +2 -0
- data/lib/rom/relation/view_dsl.rb +2 -0
- data/lib/rom/relation/wrap.rb +2 -0
- data/lib/rom/relation_registry.rb +2 -0
- data/lib/rom/schema.rb +39 -6
- data/lib/rom/schema/associations_dsl.rb +5 -3
- data/lib/rom/schema/dsl.rb +41 -11
- data/lib/rom/schema/inferrer.rb +21 -3
- data/lib/rom/schema_plugin.rb +2 -0
- data/lib/rom/setup.rb +2 -0
- data/lib/rom/setup/auto_registration.rb +2 -0
- data/lib/rom/setup/auto_registration_strategies/base.rb +3 -1
- data/lib/rom/setup/auto_registration_strategies/custom_namespace.rb +2 -0
- data/lib/rom/setup/auto_registration_strategies/no_namespace.rb +2 -0
- data/lib/rom/setup/auto_registration_strategies/with_namespace.rb +2 -0
- data/lib/rom/setup/finalize.rb +2 -0
- data/lib/rom/setup/finalize/finalize_commands.rb +2 -0
- data/lib/rom/setup/finalize/finalize_mappers.rb +2 -0
- data/lib/rom/setup/finalize/finalize_relations.rb +2 -0
- data/lib/rom/struct.rb +108 -0
- data/lib/rom/struct_compiler.rb +110 -0
- data/lib/rom/support/configurable.rb +2 -0
- data/lib/rom/support/inflector.rb +2 -0
- data/lib/rom/support/memoizable.rb +2 -0
- data/lib/rom/support/notifications.rb +2 -0
- data/lib/rom/transaction.rb +2 -0
- data/lib/rom/transformer.rb +34 -0
- data/lib/rom/types.rb +10 -3
- data/lib/rom/version.rb +3 -1
- metadata +37 -21
data/lib/rom/struct.rb
ADDED
@@ -0,0 +1,108 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'dry/struct'
|
4
|
+
|
5
|
+
module ROM
|
6
|
+
# Simple data-struct class
|
7
|
+
#
|
8
|
+
# ROM structs are plain data structures loaded by repositories.
|
9
|
+
# They implement Hash protocol which means that they can be used
|
10
|
+
# in places where Hash-like objects are supported.
|
11
|
+
#
|
12
|
+
# Repositories define subclasses of ROM::Struct automatically, they are
|
13
|
+
# defined in the ROM::Struct namespace by default, but you set it up
|
14
|
+
# to use your namespace/module as well.
|
15
|
+
#
|
16
|
+
# Structs are based on dry-struct gem, they include `schema` with detailed information
|
17
|
+
# about attribute types returned from relations, thus can be introspected to build
|
18
|
+
# additional functionality when desired.
|
19
|
+
#
|
20
|
+
# There is a caveat you should know about when working with structs. Struct classes
|
21
|
+
# have names but at the same time they're anonymous, i.e. you can't get the User struct class
|
22
|
+
# with ROM::Struct::User. ROM will create as many struct classes for User as needed,
|
23
|
+
# they all will have the same name and ROM::Struct::User will be the common parent class for
|
24
|
+
# them. Combined with the ability to provide your own namespace for structs this enables to
|
25
|
+
# pre-define the parent class.
|
26
|
+
#
|
27
|
+
# @example accessing relation struct model
|
28
|
+
# rom = ROM.container(:sql, 'sqlite::memory') do |conf|
|
29
|
+
# conf.default.create_table(:users) do
|
30
|
+
# primary_key :id
|
31
|
+
# column :name, String
|
32
|
+
# end
|
33
|
+
# end
|
34
|
+
#
|
35
|
+
# class UserRepo < ROM::Repository[:users]
|
36
|
+
# end
|
37
|
+
#
|
38
|
+
# user_repo = UserRepo.new(rom)
|
39
|
+
#
|
40
|
+
# # get auto-generated User struct
|
41
|
+
# model = user_repo.users.mapper.model
|
42
|
+
# # => ROM::Struct::User
|
43
|
+
#
|
44
|
+
# # see struct's schema attributes
|
45
|
+
#
|
46
|
+
# # model.schema.key(:id)
|
47
|
+
# # => #<Dry::Types[id: Nominal<Integer meta={primary_key: true, source: :users}>]>
|
48
|
+
#
|
49
|
+
# model.schema[:name]
|
50
|
+
# # => #<Dry::Types[name: Sum<Nominal<NilClass> | Nominal<String> meta={source: :users}>]>
|
51
|
+
#
|
52
|
+
# @example passing a namespace with an existing parent class
|
53
|
+
# module Entities
|
54
|
+
# class User < ROM::Struct
|
55
|
+
# def upcased_name
|
56
|
+
# name.upcase
|
57
|
+
# end
|
58
|
+
# end
|
59
|
+
# end
|
60
|
+
#
|
61
|
+
# class UserRepo < ROM::Repository[:users]
|
62
|
+
# struct_namespace Entities
|
63
|
+
# end
|
64
|
+
#
|
65
|
+
# user_repo = UserRepo.new(rom)
|
66
|
+
# user = user_repo.users.by_pk(1).one!
|
67
|
+
# user.name # => "Jane"
|
68
|
+
# user.upcased_name # => "JANE"
|
69
|
+
#
|
70
|
+
# @see http://dry-rb.org/gems/dry-struct dry-struct
|
71
|
+
# @see http://dry-rb.org/gems/dry-types dry-types
|
72
|
+
#
|
73
|
+
# @api public
|
74
|
+
class Struct < Dry::Struct
|
75
|
+
MissingAttribute = Class.new(NameError) do
|
76
|
+
def initialize(&block)
|
77
|
+
super
|
78
|
+
@message_proc = block
|
79
|
+
end
|
80
|
+
|
81
|
+
def message
|
82
|
+
@message_proc.call
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
# Return attribute value
|
87
|
+
#
|
88
|
+
# @param [Symbol] name The attribute name
|
89
|
+
#
|
90
|
+
# @api public
|
91
|
+
def fetch(name)
|
92
|
+
__send__(name)
|
93
|
+
end
|
94
|
+
|
95
|
+
# @api private
|
96
|
+
def respond_to_missing?(*)
|
97
|
+
super
|
98
|
+
end
|
99
|
+
|
100
|
+
private
|
101
|
+
|
102
|
+
def method_missing(*)
|
103
|
+
super
|
104
|
+
rescue NameError => error
|
105
|
+
raise MissingAttribute.new { "#{ error.message } (attribute not loaded?)" }
|
106
|
+
end
|
107
|
+
end
|
108
|
+
end
|
@@ -0,0 +1,110 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'rom/support/inflector'
|
4
|
+
require 'dry/core/class_builder'
|
5
|
+
require 'dry/types/compiler'
|
6
|
+
|
7
|
+
require 'rom/initializer'
|
8
|
+
require 'rom/types'
|
9
|
+
require 'rom/cache'
|
10
|
+
require 'rom/struct'
|
11
|
+
require 'rom/open_struct'
|
12
|
+
require 'rom/attribute'
|
13
|
+
|
14
|
+
module ROM
|
15
|
+
# @api private
|
16
|
+
class StructCompiler < Dry::Types::Compiler
|
17
|
+
extend Initializer
|
18
|
+
|
19
|
+
param :registry, default: -> { Dry::Types }
|
20
|
+
option :cache, default: -> { Cache.new }
|
21
|
+
|
22
|
+
# @api private
|
23
|
+
def initialize(*args)
|
24
|
+
super
|
25
|
+
@cache = cache.namespaced(:structs)
|
26
|
+
end
|
27
|
+
|
28
|
+
# Build a struct class based on relation header ast
|
29
|
+
#
|
30
|
+
# @api private
|
31
|
+
def call(*args)
|
32
|
+
cache.fetch_or_store(args) do
|
33
|
+
name, header, ns = args
|
34
|
+
attributes = header.map(&method(:visit)).compact
|
35
|
+
|
36
|
+
if attributes.empty?
|
37
|
+
ROM::OpenStruct
|
38
|
+
else
|
39
|
+
build_class(name, ROM::Struct, ns) do |klass|
|
40
|
+
klass.attributes(attributes.to_h)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
alias_method :[], :call
|
46
|
+
|
47
|
+
private
|
48
|
+
|
49
|
+
# @api private
|
50
|
+
def visit_relation(node)
|
51
|
+
_, header, meta = node
|
52
|
+
name = meta[:combine_name] || meta[:alias]
|
53
|
+
namespace = meta.fetch(:struct_namespace)
|
54
|
+
|
55
|
+
model = meta[:model] || call(name, header, namespace)
|
56
|
+
|
57
|
+
member =
|
58
|
+
if model < Dry::Struct
|
59
|
+
model
|
60
|
+
else
|
61
|
+
Dry::Types::Nominal.new(model).constructor(&model.method(:new))
|
62
|
+
end
|
63
|
+
|
64
|
+
if meta[:combine_type] == :many
|
65
|
+
[name, Types::Array.of(member)]
|
66
|
+
else
|
67
|
+
[name, member.optional]
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
# @api private
|
72
|
+
def visit_attribute(node)
|
73
|
+
name, type, meta = node
|
74
|
+
|
75
|
+
[meta[:alias] && !meta[:wrapped] ? meta[:alias] : name, visit(type).meta(meta)]
|
76
|
+
end
|
77
|
+
|
78
|
+
# @api private
|
79
|
+
def visit_constructor(node)
|
80
|
+
definition, * = node
|
81
|
+
|
82
|
+
visit(definition)
|
83
|
+
end
|
84
|
+
|
85
|
+
# @api private
|
86
|
+
def visit_constrained(node)
|
87
|
+
definition, _ = node
|
88
|
+
|
89
|
+
visit(definition)
|
90
|
+
end
|
91
|
+
|
92
|
+
# @api private
|
93
|
+
def visit_enum(node)
|
94
|
+
type_node, * = node
|
95
|
+
visit(type_node)
|
96
|
+
end
|
97
|
+
|
98
|
+
# @api private
|
99
|
+
def build_class(name, parent, ns, &block)
|
100
|
+
Dry::Core::ClassBuilder.
|
101
|
+
new(name: class_name(name), parent: parent, namespace: ns).
|
102
|
+
call(&block)
|
103
|
+
end
|
104
|
+
|
105
|
+
# @api private
|
106
|
+
def class_name(name)
|
107
|
+
Inflector.classify(Inflector.singularize(name))
|
108
|
+
end
|
109
|
+
end
|
110
|
+
end
|
data/lib/rom/transaction.rb
CHANGED
@@ -0,0 +1,34 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'dry/core/class_attributes'
|
4
|
+
require 'transproc/transformer'
|
5
|
+
|
6
|
+
require 'rom/processor/transproc'
|
7
|
+
|
8
|
+
module ROM
|
9
|
+
# Transformer is a data mapper which uses Transproc's transformer DSL to define
|
10
|
+
# transformations.
|
11
|
+
#
|
12
|
+
# @api public
|
13
|
+
class Transformer < Transproc::Transformer[ROM::Processor::Transproc::Functions]
|
14
|
+
extend Dry::Core::ClassAttributes
|
15
|
+
|
16
|
+
defines :relation, :register_as
|
17
|
+
|
18
|
+
# This is needed to make transformers compatible with rom setup
|
19
|
+
#
|
20
|
+
# @api private
|
21
|
+
def self.base_relation
|
22
|
+
relation
|
23
|
+
end
|
24
|
+
|
25
|
+
# Build a mapper instance
|
26
|
+
#
|
27
|
+
# @return [Transformer]
|
28
|
+
#
|
29
|
+
# @api public
|
30
|
+
def self.build
|
31
|
+
new
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
data/lib/rom/types.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'dry-types'
|
2
4
|
require 'json'
|
3
5
|
|
@@ -5,8 +7,10 @@ module ROM
|
|
5
7
|
# Default namespace with built-in attribute types
|
6
8
|
#
|
7
9
|
# @api public
|
10
|
+
#
|
11
|
+
# rubocop:disable Naming/MethodName
|
8
12
|
module Types
|
9
|
-
include Dry::Types
|
13
|
+
include Dry::Types(default: :nominal)
|
10
14
|
|
11
15
|
# @api private
|
12
16
|
def self.included(other)
|
@@ -23,14 +27,16 @@ module ROM
|
|
23
27
|
# @param [Symbol] relation The name of the target relation
|
24
28
|
# @param [Object] type The type of an attribute
|
25
29
|
#
|
26
|
-
# @return [Dry::Types::
|
30
|
+
# @return [Dry::Types::Nominal]
|
27
31
|
#
|
28
32
|
# @api public
|
29
|
-
def ForeignKey(relation, type = Types::
|
33
|
+
def ForeignKey(relation, type = Types::Integer)
|
30
34
|
type.meta(foreign_key: true, target: relation)
|
31
35
|
end
|
32
36
|
end
|
33
37
|
|
38
|
+
# @!parse module Coercible;end
|
39
|
+
|
34
40
|
# Define a json-to-hash attribute type
|
35
41
|
#
|
36
42
|
# @return [Dry::Types::Constructor]
|
@@ -68,4 +74,5 @@ module ROM
|
|
68
74
|
Coercible::JSONHash = Coercible.JSONHash
|
69
75
|
Coercible::HashJSON = Coercible.HashJSON
|
70
76
|
end
|
77
|
+
# rubocop:enable Naming/MethodName
|
71
78
|
end
|
data/lib/rom/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rom-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 5.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Piotr Solnica
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-04-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: concurrent-ruby
|
@@ -16,28 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '1.
|
19
|
+
version: '1.1'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '1.
|
26
|
+
version: '1.1'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: dry-core
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '0.
|
33
|
+
version: '0.4'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '0.
|
40
|
+
version: '0.4'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: dry-inflector
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -58,14 +58,14 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '0.
|
61
|
+
version: '0.7'
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '0.
|
68
|
+
version: '0.7'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: dry-equalizer
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -86,48 +86,48 @@ dependencies:
|
|
86
86
|
requirements:
|
87
87
|
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: 0
|
89
|
+
version: '1.0'
|
90
90
|
type: :runtime
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: 0
|
96
|
+
version: '1.0'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
|
-
name: dry-
|
98
|
+
name: dry-struct
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
101
|
- - "~>"
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version: '
|
103
|
+
version: '1.0'
|
104
104
|
type: :runtime
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
108
|
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version: '
|
110
|
+
version: '1.0'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
|
-
name:
|
112
|
+
name: dry-initializer
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
115
|
- - "~>"
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version: '
|
117
|
+
version: '3.0'
|
118
118
|
- - ">="
|
119
119
|
- !ruby/object:Gem::Version
|
120
|
-
version:
|
120
|
+
version: 3.0.1
|
121
121
|
type: :runtime
|
122
122
|
prerelease: false
|
123
123
|
version_requirements: !ruby/object:Gem::Requirement
|
124
124
|
requirements:
|
125
125
|
- - "~>"
|
126
126
|
- !ruby/object:Gem::Version
|
127
|
-
version: '
|
127
|
+
version: '3.0'
|
128
128
|
- - ">="
|
129
129
|
- !ruby/object:Gem::Version
|
130
|
-
version:
|
130
|
+
version: 3.0.1
|
131
131
|
- !ruby/object:Gem::Dependency
|
132
132
|
name: rake
|
133
133
|
requirement: !ruby/object:Gem::Requirement
|
@@ -218,12 +218,22 @@ files:
|
|
218
218
|
- lib/rom/gateway.rb
|
219
219
|
- lib/rom/global.rb
|
220
220
|
- lib/rom/global/plugin_dsl.rb
|
221
|
+
- lib/rom/header.rb
|
222
|
+
- lib/rom/header/attribute.rb
|
221
223
|
- lib/rom/initializer.rb
|
222
224
|
- lib/rom/lint/enumerable_dataset.rb
|
223
225
|
- lib/rom/lint/gateway.rb
|
224
226
|
- lib/rom/lint/linter.rb
|
225
227
|
- lib/rom/lint/spec.rb
|
226
228
|
- lib/rom/lint/test.rb
|
229
|
+
- lib/rom/mapper.rb
|
230
|
+
- lib/rom/mapper/attribute_dsl.rb
|
231
|
+
- lib/rom/mapper/builder.rb
|
232
|
+
- lib/rom/mapper/configuration_plugin.rb
|
233
|
+
- lib/rom/mapper/dsl.rb
|
234
|
+
- lib/rom/mapper/mapper_dsl.rb
|
235
|
+
- lib/rom/mapper/model_dsl.rb
|
236
|
+
- lib/rom/mapper_compiler.rb
|
227
237
|
- lib/rom/mapper_registry.rb
|
228
238
|
- lib/rom/memory.rb
|
229
239
|
- lib/rom/memory/associations.rb
|
@@ -239,6 +249,8 @@ files:
|
|
239
249
|
- lib/rom/memory/schema.rb
|
240
250
|
- lib/rom/memory/storage.rb
|
241
251
|
- lib/rom/memory/types.rb
|
252
|
+
- lib/rom/model_builder.rb
|
253
|
+
- lib/rom/open_struct.rb
|
242
254
|
- lib/rom/pipeline.rb
|
243
255
|
- lib/rom/plugin.rb
|
244
256
|
- lib/rom/plugin_base.rb
|
@@ -248,6 +260,8 @@ files:
|
|
248
260
|
- lib/rom/plugins/relation/instrumentation.rb
|
249
261
|
- lib/rom/plugins/relation/registry_reader.rb
|
250
262
|
- lib/rom/plugins/schema/timestamps.rb
|
263
|
+
- lib/rom/processor.rb
|
264
|
+
- lib/rom/processor/transproc.rb
|
251
265
|
- lib/rom/registry.rb
|
252
266
|
- lib/rom/relation.rb
|
253
267
|
- lib/rom/relation/class_interface.rb
|
@@ -277,11 +291,14 @@ files:
|
|
277
291
|
- lib/rom/setup/finalize/finalize_commands.rb
|
278
292
|
- lib/rom/setup/finalize/finalize_mappers.rb
|
279
293
|
- lib/rom/setup/finalize/finalize_relations.rb
|
294
|
+
- lib/rom/struct.rb
|
295
|
+
- lib/rom/struct_compiler.rb
|
280
296
|
- lib/rom/support/configurable.rb
|
281
297
|
- lib/rom/support/inflector.rb
|
282
298
|
- lib/rom/support/memoizable.rb
|
283
299
|
- lib/rom/support/notifications.rb
|
284
300
|
- lib/rom/transaction.rb
|
301
|
+
- lib/rom/transformer.rb
|
285
302
|
- lib/rom/types.rb
|
286
303
|
- lib/rom/version.rb
|
287
304
|
homepage: http://rom-rb.org
|
@@ -296,15 +313,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
296
313
|
requirements:
|
297
314
|
- - ">="
|
298
315
|
- !ruby/object:Gem::Version
|
299
|
-
version: 2.
|
316
|
+
version: 2.4.0
|
300
317
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
301
318
|
requirements:
|
302
319
|
- - ">="
|
303
320
|
- !ruby/object:Gem::Version
|
304
321
|
version: '0'
|
305
322
|
requirements: []
|
306
|
-
|
307
|
-
rubygems_version: 2.7.3
|
323
|
+
rubygems_version: 3.0.3
|
308
324
|
signing_key:
|
309
325
|
specification_version: 4
|
310
326
|
summary: Ruby Object Mapper
|