hanami-model 1.2.0 → 1.3.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/README.md +6 -6
- data/hanami-model.gemspec +1 -1
- data/lib/hanami-model.rb +1 -1
- data/lib/hanami/model/configuration.rb +15 -0
- data/lib/hanami/model/error.rb +9 -0
- data/lib/hanami/model/migrator/connection.rb +7 -2
- data/lib/hanami/model/sql/types.rb +1 -1
- data/lib/hanami/model/version.rb +1 -1
- metadata +7 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 519ae98ba5a6e331ed7bf16fe018c5c860a07693afe1d7654887d99b5b715a14
|
4
|
+
data.tar.gz: c305d077057133bd74f61576cce147397fb8420e875c52bd34c66525e4ef6dad
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d7b17ce6a99b8ad25bd8fdf322f07a5765e25c2ee16d5c67f268b76ec44b9e464e5f3346ef4056ce6f44261a4b851933a2926fb8c7a0dcdc9598fa91e083aa20
|
7
|
+
data.tar.gz: 88e58eb2a11db0c97cddb873711ddc2210afbeb106ae3b07acd097ea6d0aedb76e679eaf20eef63b5efd8a76674c2d38cf02a359c69cc501c6b471f29cb4e885
|
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,10 @@
|
|
1
1
|
# Hanami::Model
|
2
2
|
A persistence layer for Hanami
|
3
3
|
|
4
|
+
## v1.3.0.beta1 - 2018-08-08
|
5
|
+
### Fixed
|
6
|
+
- [Luca Guidi] Print meaningful error message when connection URL is misconfigured (eg. `Unknown database adapter for URL: "". Please check your database configuration (hint: ENV['DATABASE_URL']).`)
|
7
|
+
|
4
8
|
## v1.2.0 - 2018-04-11
|
5
9
|
|
6
10
|
## v1.2.0.rc2 - 2018-04-06
|
data/README.md
CHANGED
@@ -14,12 +14,12 @@ Like all the other Hanami components, it can be used as a standalone framework o
|
|
14
14
|
|
15
15
|
## Status
|
16
16
|
|
17
|
-
[](
|
18
|
-
[](https://badge.fury.io/rb/hanami-model)
|
18
|
+
[](https://travis-ci.org/hanami/model)
|
19
|
+
[](https://circleci.com/gh/hanami/model/tree/master)
|
20
|
+
[](https://codecov.io/gh/hanami/model)
|
21
|
+
[](https://depfu.com/github/hanami/model?project=Bundler)
|
22
|
+
[](http://inch-ci.org/github/hanami/model)
|
23
23
|
|
24
24
|
## Contact
|
25
25
|
|
data/hanami-model.gemspec
CHANGED
@@ -18,7 +18,7 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.require_paths = ['lib']
|
19
19
|
spec.required_ruby_version = '>= 2.3.0'
|
20
20
|
|
21
|
-
spec.add_runtime_dependency 'hanami-utils', '~> 1.
|
21
|
+
spec.add_runtime_dependency 'hanami-utils', '~> 1.3.beta'
|
22
22
|
spec.add_runtime_dependency 'rom', '~> 3.3', '>= 3.3.3'
|
23
23
|
spec.add_runtime_dependency 'rom-sql', '~> 1.3', '>= 1.3.5'
|
24
24
|
spec.add_runtime_dependency 'rom-repository', '~> 1.4'
|
data/lib/hanami-model.rb
CHANGED
@@ -1 +1 @@
|
|
1
|
-
require 'hanami/model'
|
1
|
+
require 'hanami/model'
|
@@ -47,6 +47,9 @@ module Hanami
|
|
47
47
|
|
48
48
|
# NOTE: This must be changed when we want to support several adapters at the time
|
49
49
|
#
|
50
|
+
# @raise [Hanami::Model::UnknownDatabaseAdapterError] if `url` is blank,
|
51
|
+
# or it uses an unknown adapter.
|
52
|
+
#
|
50
53
|
# @since 0.7.0
|
51
54
|
# @api private
|
52
55
|
def connection
|
@@ -55,6 +58,9 @@ module Hanami
|
|
55
58
|
|
56
59
|
# NOTE: This must be changed when we want to support several adapters at the time
|
57
60
|
#
|
61
|
+
# @raise [Hanami::Model::UnknownDatabaseAdapterError] if `url` is blank,
|
62
|
+
# or it uses an unknown adapter.
|
63
|
+
#
|
58
64
|
# @since 0.7.0
|
59
65
|
# @api private
|
60
66
|
def gateway
|
@@ -122,12 +128,21 @@ module Hanami
|
|
122
128
|
gateway.use_logger(@logger = value)
|
123
129
|
end
|
124
130
|
|
131
|
+
# @raise [Hanami::Model::UnknownDatabaseAdapterError] if `url` is blank,
|
132
|
+
# or it uses an unknown adapter.
|
133
|
+
#
|
125
134
|
# @since 1.0.0
|
126
135
|
# @api private
|
127
136
|
def rom
|
128
137
|
@rom ||= ROM::Configuration.new(@backend, @url, infer_relations: false)
|
138
|
+
rescue => e
|
139
|
+
raise UnknownDatabaseAdapterError.new(@url) if e.message =~ /adapters/
|
140
|
+
raise e
|
129
141
|
end
|
130
142
|
|
143
|
+
# @raise [Hanami::Model::UnknownDatabaseAdapterError] if `url` is blank,
|
144
|
+
# or it uses an unknown adapter.
|
145
|
+
#
|
131
146
|
# @since 1.0.0
|
132
147
|
# @api private
|
133
148
|
def load!(repositories, &blk) # rubocop:disable Metrics/AbcSize
|
data/lib/hanami/model/error.rb
CHANGED
@@ -118,5 +118,14 @@ module Hanami
|
|
118
118
|
# @since 1.2.0
|
119
119
|
class UnknownAttributeError < Error
|
120
120
|
end
|
121
|
+
|
122
|
+
# Unknown database adapter error
|
123
|
+
#
|
124
|
+
# @since 1.2.1
|
125
|
+
class UnknownDatabaseAdapterError < Error
|
126
|
+
def initialize(url)
|
127
|
+
super("Unknown database adapter for URL: #{url.inspect}. Please check your database configuration (hint: ENV['DATABASE_URL']).")
|
128
|
+
end
|
129
|
+
end
|
121
130
|
end
|
122
131
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'cgi'
|
2
|
+
|
1
3
|
module Hanami
|
2
4
|
module Model
|
3
5
|
class Migrator
|
@@ -153,8 +155,11 @@ module Hanami
|
|
153
155
|
#
|
154
156
|
# @since 0.5.0
|
155
157
|
# @api private
|
156
|
-
def parsed_opt(option)
|
157
|
-
|
158
|
+
def parsed_opt(option, query: parsed_uri.query)
|
159
|
+
return if query.nil?
|
160
|
+
|
161
|
+
@parsed_query_opts ||= CGI.parse(query)
|
162
|
+
@parsed_query_opts[option].to_a.last
|
158
163
|
end
|
159
164
|
end
|
160
165
|
end
|
@@ -95,7 +95,7 @@ module Hanami
|
|
95
95
|
# @since 1.0.2
|
96
96
|
# @api private
|
97
97
|
def self.pg_json?(pristine)
|
98
|
-
pristine == pg_json_pristines['JSONB'.freeze] ||
|
98
|
+
pristine == pg_json_pristines['JSONB'.freeze] || # rubocop:disable Style/MultipleComparison
|
99
99
|
pristine == pg_json_pristines['JSON'.freeze]
|
100
100
|
end
|
101
101
|
|
data/lib/hanami/model/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hanami-model
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0.beta1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Luca Guidi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-08-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: hanami-utils
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 1.3.beta
|
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:
|
26
|
+
version: 1.3.beta
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rom
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -215,12 +215,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
215
215
|
version: 2.3.0
|
216
216
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
217
217
|
requirements:
|
218
|
-
- - "
|
218
|
+
- - ">"
|
219
219
|
- !ruby/object:Gem::Version
|
220
|
-
version:
|
220
|
+
version: 1.3.1
|
221
221
|
requirements: []
|
222
222
|
rubyforge_project:
|
223
|
-
rubygems_version: 2.7.
|
223
|
+
rubygems_version: 2.7.7
|
224
224
|
signing_key:
|
225
225
|
specification_version: 4
|
226
226
|
summary: A persistence layer for Hanami
|