nobrainer 0.34.0 → 0.34.1
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 +5 -5
- data/CHANGELOG.md +129 -0
- data/lib/no_brainer/connection.rb +2 -2
- data/lib/no_brainer/document/types.rb +3 -2
- data/lib/no_brainer/query_runner/table_on_demand.rb +10 -0
- metadata +20 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: ad996bff8cfeced8ef2da26c7b989d24138bb5e4c9a7aa53738cd2cbdfdd907c
|
4
|
+
data.tar.gz: a24979230bc5d9deeb4dfbee4f353de22a61037dddff0e97521a8d72380db9af
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c3fbe68aa20b186aaca5b5981c476754a9f3cb7e238d09db17340a348f983d48518e34927064cd124640b5dd47564406893613b2a39487b90712e7e02a5bcd58
|
7
|
+
data.tar.gz: 34106b6e8c1be3260dc8e6356c0658deaabff758818def9aafead00445c2ffcb8b93f8c6b261b4d1d6555d0e5dae0f8c97aad1e123c583933b79eda283849791
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,129 @@
|
|
1
|
+
# Changelog
|
2
|
+
All notable changes to this project will be documented in this file.
|
3
|
+
|
4
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
5
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
6
|
+
|
7
|
+
## [Unreleased]
|
8
|
+
|
9
|
+
## [0.34.1] - 2021-02-18
|
10
|
+
### Fixed
|
11
|
+
- Defining attributes at class level (Rails 6.1 compatibity)
|
12
|
+
- Ruby 2.7 support
|
13
|
+
|
14
|
+
## [0.34.0] - 2019-10-15
|
15
|
+
### Added
|
16
|
+
- Rails 6 support
|
17
|
+
- Support for the nonvoting_replica_tags table option
|
18
|
+
|
19
|
+
## [0.33.0] - 2016-11-27
|
20
|
+
### Added
|
21
|
+
- Allow a run_options to be configured globally
|
22
|
+
- Support for username and password authentication
|
23
|
+
|
24
|
+
### Changed
|
25
|
+
- Use URI.decode() for user and password in the RethinkDB URL
|
26
|
+
- Also comment active_record lines in the config/initializers/*.rb on gem installation
|
27
|
+
- Removed .unscoped when fetching belongs_to associations
|
28
|
+
- update_all() operates without ordering
|
29
|
+
- has_many dependent refactoring
|
30
|
+
- Default logger should be STDERR if the rails logger is not initialized
|
31
|
+
- Locking: changes lock key type from string to text in order to support more than 255 characters keys by default, the key type needs to be Text.
|
32
|
+
- field type for rql_function to :text
|
33
|
+
|
34
|
+
### Fixed
|
35
|
+
- Model reloading with Rails5
|
36
|
+
- Rails 5 Strong Parameters: Strong parameters are not a Hash anymore in Rails 5, but support transforming into a hash
|
37
|
+
|
38
|
+
## [0.32.0] - 2016-06-05
|
39
|
+
### Added
|
40
|
+
- Compatiblity with Rails5
|
41
|
+
- order() as an alias of order_by()
|
42
|
+
- Provide attribute_will_change!() for compatibility
|
43
|
+
|
44
|
+
### Changed
|
45
|
+
- Comments more active_record related configs during install
|
46
|
+
|
47
|
+
### Fixed
|
48
|
+
- Rails 5 deprecation: Using ActiveSupport::Reloader instead of ActionDispatch::Reloader to be ready when Rails 5 hits
|
49
|
+
- config syntax
|
50
|
+
|
51
|
+
### Removed
|
52
|
+
- JRuby and Rbx in travis-ci
|
53
|
+
|
54
|
+
## [0.31.0] - 2016-02-07
|
55
|
+
### Added
|
56
|
+
- Allow belongs_to association names to be used in upsert params
|
57
|
+
- `uniq` shorthand for the belongs_to association
|
58
|
+
- Allow self-referential belongs_to
|
59
|
+
- Prevent double loading of the same model
|
60
|
+
- Use index for where(XXX.defined => true)
|
61
|
+
- Guard against bad virtual attribute expressions
|
62
|
+
- Allow non existing attributes to be lazy fetched
|
63
|
+
- Added back update_attributes()
|
64
|
+
|
65
|
+
### Fixed
|
66
|
+
- Fix join on keys that are undefined
|
67
|
+
|
68
|
+
### Changed
|
69
|
+
- where() leverages the association translation abstraction
|
70
|
+
- Primary keys time offset should operate on fixed timezone
|
71
|
+
|
72
|
+
### Removed
|
73
|
+
- Removing locking around sync_table_config
|
74
|
+
|
75
|
+
## [0.30.0] - 2015-10-03
|
76
|
+
### Added
|
77
|
+
- Add rbx-2 to .travis.yml
|
78
|
+
- Add the virtual attribute feature
|
79
|
+
- Lock: Allow find() to get locks by key
|
80
|
+
- Locks: Allow default expire/timeout values to be passed in new()
|
81
|
+
- NoBrainer::ReentrantLock implementation
|
82
|
+
- Allow compound indexes to be declared with an implicit name
|
83
|
+
- Allow polymorphic queries with first_or_create under certain conditions
|
84
|
+
|
85
|
+
### Changed
|
86
|
+
- Prevent first_or_create() to accept block with arguments
|
87
|
+
|
88
|
+
### Fixed
|
89
|
+
- Fix rails issue with tests and profiler
|
90
|
+
- Fix where() .include modifier with type checking
|
91
|
+
- Virtual attribute option fix
|
92
|
+
- Discard documents when join() encounter a nil join key
|
93
|
+
- Locks: bug fix: allow small timeouts in lock()
|
94
|
+
- Fix reentrant lock counter on steals
|
95
|
+
|
96
|
+
[Unreleased]: https://github.com/nobrainerorm/nobrainer/compare/v0.34.1...HEAD
|
97
|
+
[0.34.1]: https://github.com/nobrainerorm/nobrainer/compare/v0.34.0...v0.34.1
|
98
|
+
[0.34.0]: https://github.com/nobrainerorm/nobrainer/compare/v0.33.0...v0.34.0
|
99
|
+
[0.33.0]: https://github.com/nobrainerorm/nobrainer/compare/v0.32.0...v0.33.0
|
100
|
+
[0.32.0]: https://github.com/nobrainerorm/nobrainer/compare/v0.31.0...v0.32.0
|
101
|
+
[0.31.0]: https://github.com/nobrainerorm/nobrainer/compare/v0.30.0...v0.31.0
|
102
|
+
[0.30.0]: https://github.com/nobrainerorm/nobrainer/compare/v0.29.0...v0.30.0
|
103
|
+
[0.29.0]: https://github.com/nobrainerorm/nobrainer/compare/0.28.0...0.29.0
|
104
|
+
[0.28.0]: https://github.com/nobrainerorm/nobrainer/compare/0.27.0...0.28.0
|
105
|
+
[0.27.0]: https://github.com/nobrainerorm/nobrainer/compare/0.26.0...0.27.0
|
106
|
+
[0.26.0]: https://github.com/nobrainerorm/nobrainer/compare/0.25.1...0.26.0
|
107
|
+
[0.25.1]: https://github.com/nobrainerorm/nobrainer/compare/0.25.0...0.25.1
|
108
|
+
[0.25.0]: https://github.com/nobrainerorm/nobrainer/compare/0.24.0...0.25.0
|
109
|
+
[0.24.0]: https://github.com/nobrainerorm/nobrainer/compare/0.23.0...0.24.0
|
110
|
+
[0.23.0]: https://github.com/nobrainerorm/nobrainer/compare/0.22.0...0.23.0
|
111
|
+
[0.22.0]: https://github.com/nobrainerorm/nobrainer/compare/0.21.0...0.22.0
|
112
|
+
[0.21.0]: https://github.com/nobrainerorm/nobrainer/compare/0.20.0...0.21.0
|
113
|
+
[0.20.0]: https://github.com/nobrainerorm/nobrainer/compare/0.19.0...0.20.0
|
114
|
+
[0.19.0]: https://github.com/nobrainerorm/nobrainer/compare/0.18.1...0.19.0
|
115
|
+
[0.18.1]: https://github.com/nobrainerorm/nobrainer/compare/0.18.0...0.18.1
|
116
|
+
[0.18.0]: https://github.com/nobrainerorm/nobrainer/compare/0.17.0...0.18.0
|
117
|
+
[0.17.0]: https://github.com/nobrainerorm/nobrainer/compare/0.16.0...0.17.0
|
118
|
+
[0.16.0]: https://github.com/nobrainerorm/nobrainer/compare/0.15.0...0.16.0
|
119
|
+
[0.15.0]: https://github.com/nobrainerorm/nobrainer/compare/0.14.0...0.15.0
|
120
|
+
[0.15.0]: https://github.com/nobrainerorm/nobrainer/compare/0.14.0...0.15.0
|
121
|
+
[0.14.0]: https://github.com/nobrainerorm/nobrainer/compare/0.13.1...0.14.0
|
122
|
+
[0.13.1]: https://github.com/nobrainerorm/nobrainer/compare/0.13.0...0.13.1
|
123
|
+
[0.13.0]: https://github.com/nobrainerorm/nobrainer/compare/0.12.0...0.13.0
|
124
|
+
[0.12.0]: https://github.com/nobrainerorm/nobrainer/compare/0.11.0...0.12.0
|
125
|
+
[0.11.0]: https://github.com/nobrainerorm/nobrainer/compare/0.10.0...0.11.0
|
126
|
+
[0.10.0]: https://github.com/nobrainerorm/nobrainer/compare/0.9.1...0.10.0
|
127
|
+
[0.9.1]: https://github.com/nobrainerorm/nobrainer/compare/0.9.0...0.9.1
|
128
|
+
[0.9.0]: https://github.com/nobrainerorm/nobrainer/compare/0.8.0...0.9.0
|
129
|
+
[0.8.0]: https://github.com/nobrainerorm/nobrainer/releases/tag/0.8.0
|
@@ -19,8 +19,8 @@ class NoBrainer::Connection
|
|
19
19
|
end
|
20
20
|
|
21
21
|
{
|
22
|
-
:user => uri.user &&
|
23
|
-
:password => uri.password &&
|
22
|
+
:user => uri.user && CGI.unescape(uri.user),
|
23
|
+
:password => uri.password && CGI.unescape(uri.password),
|
24
24
|
:host => uri.host,
|
25
25
|
:port => uri.port || 28015,
|
26
26
|
:db => uri.path.gsub(/^\//, ''),
|
@@ -1,6 +1,9 @@
|
|
1
1
|
module NoBrainer::Document::Types
|
2
2
|
extend ActiveSupport::Concern
|
3
3
|
|
4
|
+
mattr_accessor :loaded_extensions
|
5
|
+
self.loaded_extensions = Set.new
|
6
|
+
|
4
7
|
included { before_validation :add_type_errors }
|
5
8
|
|
6
9
|
def add_type_errors
|
@@ -111,8 +114,6 @@ module NoBrainer::Document::Types
|
|
111
114
|
end
|
112
115
|
|
113
116
|
class << self
|
114
|
-
mattr_accessor :loaded_extensions
|
115
|
-
self.loaded_extensions = Set.new
|
116
117
|
def load_type_extensions(model)
|
117
118
|
unless loaded_extensions.include?(model)
|
118
119
|
begin
|
@@ -34,6 +34,16 @@ class NoBrainer::QueryRunner::TableOnDemand < NoBrainer::QueryRunner::Middleware
|
|
34
34
|
r.table_create(table_name, create_options.reject { |k,_| k.in? [:name, :write_acks] })
|
35
35
|
end
|
36
36
|
|
37
|
+
# Prevent duplicate table errors on a cluster.
|
38
|
+
# Workaround from https://github.com/rethinkdb/rethinkdb/issues/4898#issuecomment-270267740
|
39
|
+
NoBrainer.run(:db => 'rethinkdb') do |r|
|
40
|
+
r.table('table_config')
|
41
|
+
.filter({db: db_name, name: table_name})
|
42
|
+
.order_by('id')
|
43
|
+
.slice(1)
|
44
|
+
.delete
|
45
|
+
end
|
46
|
+
|
37
47
|
if create_options[:write_acks] && create_options[:write_acks] != 'single'
|
38
48
|
NoBrainer.run(:db => db_name) do |r|
|
39
49
|
r.table(table_name).config().update(:write_acks => create_options[:write_acks])
|
metadata
CHANGED
@@ -1,29 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nobrainer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.34.
|
4
|
+
version: 0.34.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nicolas Viennot
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-02-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: activemodel
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 4.1.0
|
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: 4.1.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: activesupport
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -39,33 +39,33 @@ dependencies:
|
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 4.1.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: middleware
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: 0.1.0
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
54
|
+
version: 0.1.0
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: rethinkdb
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - "
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
61
|
+
version: 2.3.0
|
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:
|
68
|
+
version: 2.3.0
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: symbol_decoration
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -80,13 +80,15 @@ dependencies:
|
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '1.1'
|
83
|
-
description:
|
83
|
+
description: The goal of NoBrainer is to provide a similar interface compared to ActiveRecord
|
84
|
+
and Mongoid to build data models on top of RethinkDB while providing precise semantics.
|
84
85
|
email:
|
85
86
|
- nicolas@viennot.biz
|
86
87
|
executables: []
|
87
88
|
extensions: []
|
88
89
|
extra_rdoc_files: []
|
89
90
|
files:
|
91
|
+
- CHANGELOG.md
|
90
92
|
- LICENSE
|
91
93
|
- README.md
|
92
94
|
- lib/no_brainer/autoload.rb
|
@@ -236,9 +238,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
236
238
|
- !ruby/object:Gem::Version
|
237
239
|
version: '0'
|
238
240
|
requirements: []
|
239
|
-
|
240
|
-
rubygems_version: 2.5.2.3
|
241
|
+
rubygems_version: 3.1.4
|
241
242
|
signing_key:
|
242
243
|
specification_version: 4
|
243
|
-
summary: ORM for RethinkDB
|
244
|
+
summary: A Ruby ORM for RethinkDB
|
244
245
|
test_files: []
|