hanami-model 1.0.0.beta1 → 1.0.0.beta2
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 +9 -0
- data/hanami-model.gemspec +2 -2
- data/lib/hanami/model/migrator/connection.rb +4 -4
- data/lib/hanami/model/migrator/mysql_adapter.rb +2 -2
- data/lib/hanami/model/sql/console.rb +1 -1
- data/lib/hanami/model/version.rb +1 -1
- data/lib/hanami/repository.rb +9 -3
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6ef0a3e682c1e1d8b32295f6e14d70ad8a0c9ea7
|
4
|
+
data.tar.gz: ce2eccfc1037fa3a89ea65a44e8f4754a10eba5a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 461e105d7804802a456d77c3518e78aff4369fa88a68585f46f1ed648c99bf602fa41e3faae4f7b6bc941282ba0ddc48ce93f23d263f34adcf2c185b14ee24fd
|
7
|
+
data.tar.gz: e2a85018d9fb67ec84476cb6f69ae1510e3455ef96856a56c69dbdb86c1630d31f077966b70cd487d6e5cabfc9595b2f8ec432d2c6eadcbec4ba4ad82e63de9a
|
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,15 @@
|
|
1
1
|
# Hanami::Model
|
2
2
|
A persistence layer for Hanami
|
3
3
|
|
4
|
+
## v1.0.0.beta2 - 2017-03-02
|
5
|
+
### Added
|
6
|
+
- [Semyon Pupkov] Allow to define Postgres connection URL as `"postgresql:///mydb?host=localhost&port=6433&user=postgres&password=testpasswd"`
|
7
|
+
|
8
|
+
### Fixed
|
9
|
+
- [Marcello Rocha] Fixed migrations MySQL detection of username and password
|
10
|
+
- [Luca Guidi] Fixed migrations creation/drop of a MySQL database with a dash in the name
|
11
|
+
- [Semyon Pupkov] Ensure `db console` to work when Postgres connection URL is defined with `"postgresql://"` scheme
|
12
|
+
|
4
13
|
## v1.0.0.beta1 - 2017-02-14
|
5
14
|
### Added
|
6
15
|
- [Luca Guidi] Official support for Ruby: MRI 2.4
|
data/hanami-model.gemspec
CHANGED
@@ -20,8 +20,8 @@ Gem::Specification.new do |spec|
|
|
20
20
|
spec.required_ruby_version = '>= 2.3.0'
|
21
21
|
|
22
22
|
spec.add_runtime_dependency 'hanami-utils', '~> 1.0.0.beta'
|
23
|
-
spec.add_runtime_dependency 'rom-sql', '~> 1.
|
24
|
-
spec.add_runtime_dependency 'rom-repository', '~> 1.
|
23
|
+
spec.add_runtime_dependency 'rom-sql', '~> 1.1'
|
24
|
+
spec.add_runtime_dependency 'rom-repository', '~> 1.2'
|
25
25
|
spec.add_runtime_dependency 'dry-types', '~> 0.9'
|
26
26
|
spec.add_runtime_dependency 'concurrent-ruby', '~> 1.0'
|
27
27
|
|
@@ -34,7 +34,7 @@ module Hanami
|
|
34
34
|
# @since 0.5.0
|
35
35
|
# @api private
|
36
36
|
def host
|
37
|
-
@host ||= parsed_uri.host
|
37
|
+
@host ||= parsed_uri.host || parsed_opt('host')
|
38
38
|
end
|
39
39
|
|
40
40
|
# Returns DB connection port
|
@@ -44,7 +44,7 @@ module Hanami
|
|
44
44
|
# @since 0.5.0
|
45
45
|
# @api private
|
46
46
|
def port
|
47
|
-
@port ||= parsed_uri.port
|
47
|
+
@port ||= parsed_uri.port || parsed_opt('port').to_i.nonzero?
|
48
48
|
end
|
49
49
|
|
50
50
|
# Returns DB name from conenction
|
@@ -83,7 +83,7 @@ module Hanami
|
|
83
83
|
# @since 0.5.0
|
84
84
|
# @api private
|
85
85
|
def user
|
86
|
-
@user ||= parsed_opt('user')
|
86
|
+
@user ||= parsed_opt('user') || parsed_uri.user
|
87
87
|
end
|
88
88
|
|
89
89
|
# Returns user from DB connection
|
@@ -93,7 +93,7 @@ module Hanami
|
|
93
93
|
# @since 0.5.0
|
94
94
|
# @api private
|
95
95
|
def password
|
96
|
-
@password ||= parsed_opt('password')
|
96
|
+
@password ||= parsed_opt('password') || parsed_uri.password
|
97
97
|
end
|
98
98
|
|
99
99
|
# Returns DB connection URI directly from adapter
|
@@ -19,7 +19,7 @@ module Hanami
|
|
19
19
|
# @since 0.4.0
|
20
20
|
# @api private
|
21
21
|
def create
|
22
|
-
new_connection(global: true).run %(CREATE DATABASE
|
22
|
+
new_connection(global: true).run %(CREATE DATABASE `#{database}`;)
|
23
23
|
rescue Sequel::DatabaseError => e
|
24
24
|
message = if e.message.match(/database exists/) # rubocop:disable Performance/RedundantMatch
|
25
25
|
DB_CREATION_ERROR
|
@@ -33,7 +33,7 @@ module Hanami
|
|
33
33
|
# @since 0.4.0
|
34
34
|
# @api private
|
35
35
|
def drop
|
36
|
-
new_connection(global: true).run %(DROP DATABASE
|
36
|
+
new_connection(global: true).run %(DROP DATABASE `#{database}`;)
|
37
37
|
rescue Sequel::DatabaseError => e
|
38
38
|
message = if e.message.match(/doesn\'t exist/) # rubocop:disable Performance/RedundantMatch
|
39
39
|
"Cannot find database: #{database}"
|
@@ -27,7 +27,7 @@ module Hanami
|
|
27
27
|
when 'sqlite'
|
28
28
|
require 'hanami/model/sql/consoles/sqlite'
|
29
29
|
Sql::Consoles::Sqlite.new(@uri)
|
30
|
-
when 'postgres'
|
30
|
+
when 'postgres', 'postgresql'
|
31
31
|
require 'hanami/model/sql/consoles/postgresql'
|
32
32
|
Sql::Consoles::Postgresql.new(@uri)
|
33
33
|
when 'mysql', 'mysql2'
|
data/lib/hanami/model/version.rb
CHANGED
data/lib/hanami/repository.rb
CHANGED
@@ -274,9 +274,13 @@ module Hanami
|
|
274
274
|
|
275
275
|
# @since 0.7.0
|
276
276
|
# @api private
|
277
|
-
|
277
|
+
#
|
278
|
+
# rubocop:disable Metrics/MethodLength
|
279
|
+
# rubocop:disable Metrics/AbcSize
|
280
|
+
def self.inherited(klass)
|
278
281
|
klass.class_eval do
|
279
282
|
include Utils::ClassAttribute
|
283
|
+
auto_struct true
|
280
284
|
|
281
285
|
class_attribute :entity
|
282
286
|
|
@@ -292,6 +296,8 @@ module Hanami
|
|
292
296
|
|
293
297
|
Hanami::Model.repositories << klass
|
294
298
|
end
|
299
|
+
# rubocop:enable Metrics/AbcSize
|
300
|
+
# rubocop:enable Metrics/MethodLength
|
295
301
|
|
296
302
|
# Extend commands from ROM::Repository with error management
|
297
303
|
#
|
@@ -419,7 +425,7 @@ module Hanami
|
|
419
425
|
# @example
|
420
426
|
# UserRepository.new.first
|
421
427
|
def first
|
422
|
-
root.as(:entity).
|
428
|
+
root.as(:entity).limit(1).one
|
423
429
|
end
|
424
430
|
|
425
431
|
# Returns the last record for the relation
|
@@ -431,7 +437,7 @@ module Hanami
|
|
431
437
|
# @example
|
432
438
|
# UserRepository.new.last
|
433
439
|
def last
|
434
|
-
root.
|
440
|
+
root.as(:entity).limit(1).reverse.one
|
435
441
|
end
|
436
442
|
|
437
443
|
# Deletes all the records from the relation
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hanami-model
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.0.
|
4
|
+
version: 1.0.0.beta2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Luca Guidi
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2017-02
|
13
|
+
date: 2017-03-02 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: hanami-utils
|
@@ -32,28 +32,28 @@ dependencies:
|
|
32
32
|
requirements:
|
33
33
|
- - "~>"
|
34
34
|
- !ruby/object:Gem::Version
|
35
|
-
version: '1.
|
35
|
+
version: '1.1'
|
36
36
|
type: :runtime
|
37
37
|
prerelease: false
|
38
38
|
version_requirements: !ruby/object:Gem::Requirement
|
39
39
|
requirements:
|
40
40
|
- - "~>"
|
41
41
|
- !ruby/object:Gem::Version
|
42
|
-
version: '1.
|
42
|
+
version: '1.1'
|
43
43
|
- !ruby/object:Gem::Dependency
|
44
44
|
name: rom-repository
|
45
45
|
requirement: !ruby/object:Gem::Requirement
|
46
46
|
requirements:
|
47
47
|
- - "~>"
|
48
48
|
- !ruby/object:Gem::Version
|
49
|
-
version: '1.
|
49
|
+
version: '1.2'
|
50
50
|
type: :runtime
|
51
51
|
prerelease: false
|
52
52
|
version_requirements: !ruby/object:Gem::Requirement
|
53
53
|
requirements:
|
54
54
|
- - "~>"
|
55
55
|
- !ruby/object:Gem::Version
|
56
|
-
version: '1.
|
56
|
+
version: '1.2'
|
57
57
|
- !ruby/object:Gem::Dependency
|
58
58
|
name: dry-types
|
59
59
|
requirement: !ruby/object:Gem::Requirement
|