rom-core 4.2.1 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +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
|