nobrainer 0.18.0 → 0.22.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/lib/no_brainer/autoload.rb +0 -5
- data/lib/no_brainer/config.rb +73 -39
- data/lib/no_brainer/connection.rb +2 -4
- data/lib/no_brainer/criteria/after_find.rb +3 -11
- data/lib/no_brainer/criteria/aggregate.rb +2 -2
- data/lib/no_brainer/criteria/cache.rb +15 -10
- data/lib/no_brainer/criteria/core.rb +46 -11
- data/lib/no_brainer/criteria/delete.rb +2 -2
- data/lib/no_brainer/criteria/eager_load.rb +51 -0
- data/lib/no_brainer/criteria/extend.rb +4 -16
- data/lib/no_brainer/criteria/find.rb +27 -0
- data/lib/no_brainer/criteria/index.rb +7 -13
- data/lib/no_brainer/criteria/limit.rb +5 -12
- data/lib/no_brainer/criteria/order_by.rb +20 -36
- data/lib/no_brainer/criteria/pluck.rb +16 -22
- data/lib/no_brainer/criteria/raw.rb +4 -10
- data/lib/no_brainer/criteria/scope.rb +6 -19
- data/lib/no_brainer/criteria/update.rb +8 -6
- data/lib/no_brainer/criteria/where.rb +252 -138
- data/lib/no_brainer/criteria.rb +3 -2
- data/lib/no_brainer/document/aliases.rb +3 -3
- data/lib/no_brainer/document/association/belongs_to.rb +9 -5
- data/lib/no_brainer/document/association/core.rb +6 -5
- data/lib/no_brainer/document/association/eager_loader.rb +9 -9
- data/lib/no_brainer/document/association/has_many.rb +23 -9
- data/lib/no_brainer/document/association/has_many_through.rb +12 -3
- data/lib/no_brainer/document/atomic_ops.rb +79 -78
- data/lib/no_brainer/document/attributes.rb +24 -20
- data/lib/no_brainer/document/callbacks.rb +1 -1
- data/lib/no_brainer/document/core.rb +5 -2
- data/lib/no_brainer/document/criteria.rb +14 -19
- data/lib/no_brainer/document/dirty.rb +11 -16
- data/lib/no_brainer/document/index/index.rb +2 -1
- data/lib/no_brainer/document/index/meta_store.rb +1 -1
- data/lib/no_brainer/document/index.rb +14 -10
- data/lib/no_brainer/document/persistance.rb +24 -13
- data/lib/no_brainer/document/primary_key/generator.rb +83 -0
- data/lib/no_brainer/document/{id.rb → primary_key.rb} +9 -36
- data/lib/no_brainer/document/store_in.rb +2 -2
- data/lib/no_brainer/document/timestamps.rb +4 -2
- data/lib/no_brainer/document/types/binary.rb +2 -7
- data/lib/no_brainer/document/types/boolean.rb +2 -4
- data/lib/no_brainer/document/types/date.rb +2 -2
- data/lib/no_brainer/document/types/float.rb +2 -2
- data/lib/no_brainer/document/types/geo.rb +1 -0
- data/lib/no_brainer/document/types/integer.rb +2 -2
- data/lib/no_brainer/document/types/set.rb +2 -2
- data/lib/no_brainer/document/types/string.rb +5 -2
- data/lib/no_brainer/document/types/symbol.rb +2 -2
- data/lib/no_brainer/document/types/text.rb +18 -0
- data/lib/no_brainer/document/types/time.rb +2 -2
- data/lib/no_brainer/document/types.rb +17 -18
- data/lib/no_brainer/document/validation/not_null.rb +15 -0
- data/lib/no_brainer/document/{uniqueness.rb → validation/uniqueness.rb} +11 -11
- data/lib/no_brainer/document/validation.rb +35 -6
- data/lib/no_brainer/document.rb +1 -1
- data/lib/no_brainer/error.rb +21 -19
- data/lib/no_brainer/geo/base.rb +16 -0
- data/lib/no_brainer/geo/circle.rb +25 -0
- data/lib/no_brainer/geo/line_string.rb +11 -0
- data/lib/no_brainer/geo/point.rb +49 -0
- data/lib/no_brainer/geo/polygon.rb +11 -0
- data/lib/no_brainer/geo.rb +4 -0
- data/lib/no_brainer/locale/en.yml +1 -0
- data/lib/no_brainer/lock.rb +114 -0
- data/lib/no_brainer/query_runner/connection_lock.rb +1 -1
- data/lib/no_brainer/query_runner/database_on_demand.rb +0 -1
- data/lib/no_brainer/query_runner/missing_index.rb +1 -1
- data/lib/no_brainer/query_runner/reconnect.rb +9 -11
- data/lib/no_brainer/query_runner/run_options.rb +0 -3
- data/lib/no_brainer/query_runner/table_on_demand.rb +3 -4
- data/lib/no_brainer/railtie/database.rake +2 -2
- data/lib/no_brainer/rql.rb +1 -5
- data/lib/nobrainer.rb +2 -6
- data/lib/rails/generators/nobrainer.rb +1 -1
- metadata +34 -9
- data/lib/no_brainer/criteria/preload.rb +0 -50
- data/lib/no_brainer/decorated_symbol.rb +0 -17
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: nobrainer
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.22.0
|
|
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: 2015-03-07 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rethinkdb
|
|
@@ -16,14 +16,14 @@ dependencies:
|
|
|
16
16
|
requirements:
|
|
17
17
|
- - ">="
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: 1.
|
|
19
|
+
version: 1.15.0.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: 1.
|
|
26
|
+
version: 1.15.0.0
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: activesupport
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -66,6 +66,20 @@ dependencies:
|
|
|
66
66
|
- - "~>"
|
|
67
67
|
- !ruby/object:Gem::Version
|
|
68
68
|
version: 0.1.0
|
|
69
|
+
- !ruby/object:Gem::Dependency
|
|
70
|
+
name: symbol_decoration
|
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
|
72
|
+
requirements:
|
|
73
|
+
- - "~>"
|
|
74
|
+
- !ruby/object:Gem::Version
|
|
75
|
+
version: '1.1'
|
|
76
|
+
type: :runtime
|
|
77
|
+
prerelease: false
|
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
79
|
+
requirements:
|
|
80
|
+
- - "~>"
|
|
81
|
+
- !ruby/object:Gem::Version
|
|
82
|
+
version: '1.1'
|
|
69
83
|
description: ORM for RethinkDB
|
|
70
84
|
email:
|
|
71
85
|
- nicolas@viennot.biz
|
|
@@ -86,19 +100,19 @@ files:
|
|
|
86
100
|
- lib/no_brainer/criteria/core.rb
|
|
87
101
|
- lib/no_brainer/criteria/count.rb
|
|
88
102
|
- lib/no_brainer/criteria/delete.rb
|
|
103
|
+
- lib/no_brainer/criteria/eager_load.rb
|
|
89
104
|
- lib/no_brainer/criteria/enumerable.rb
|
|
90
105
|
- lib/no_brainer/criteria/extend.rb
|
|
106
|
+
- lib/no_brainer/criteria/find.rb
|
|
91
107
|
- lib/no_brainer/criteria/first.rb
|
|
92
108
|
- lib/no_brainer/criteria/index.rb
|
|
93
109
|
- lib/no_brainer/criteria/limit.rb
|
|
94
110
|
- lib/no_brainer/criteria/order_by.rb
|
|
95
111
|
- lib/no_brainer/criteria/pluck.rb
|
|
96
|
-
- lib/no_brainer/criteria/preload.rb
|
|
97
112
|
- lib/no_brainer/criteria/raw.rb
|
|
98
113
|
- lib/no_brainer/criteria/scope.rb
|
|
99
114
|
- lib/no_brainer/criteria/update.rb
|
|
100
115
|
- lib/no_brainer/criteria/where.rb
|
|
101
|
-
- lib/no_brainer/decorated_symbol.rb
|
|
102
116
|
- lib/no_brainer/document.rb
|
|
103
117
|
- lib/no_brainer/document/aliases.rb
|
|
104
118
|
- lib/no_brainer/document/association.rb
|
|
@@ -116,7 +130,6 @@ files:
|
|
|
116
130
|
- lib/no_brainer/document/criteria.rb
|
|
117
131
|
- lib/no_brainer/document/dirty.rb
|
|
118
132
|
- lib/no_brainer/document/dynamic_attributes.rb
|
|
119
|
-
- lib/no_brainer/document/id.rb
|
|
120
133
|
- lib/no_brainer/document/index.rb
|
|
121
134
|
- lib/no_brainer/document/index/index.rb
|
|
122
135
|
- lib/no_brainer/document/index/meta_store.rb
|
|
@@ -126,6 +139,8 @@ files:
|
|
|
126
139
|
- lib/no_brainer/document/missing_attributes.rb
|
|
127
140
|
- lib/no_brainer/document/persistance.rb
|
|
128
141
|
- lib/no_brainer/document/polymorphic.rb
|
|
142
|
+
- lib/no_brainer/document/primary_key.rb
|
|
143
|
+
- lib/no_brainer/document/primary_key/generator.rb
|
|
129
144
|
- lib/no_brainer/document/readonly.rb
|
|
130
145
|
- lib/no_brainer/document/serialization.rb
|
|
131
146
|
- lib/no_brainer/document/store_in.rb
|
|
@@ -135,17 +150,27 @@ files:
|
|
|
135
150
|
- lib/no_brainer/document/types/boolean.rb
|
|
136
151
|
- lib/no_brainer/document/types/date.rb
|
|
137
152
|
- lib/no_brainer/document/types/float.rb
|
|
153
|
+
- lib/no_brainer/document/types/geo.rb
|
|
138
154
|
- lib/no_brainer/document/types/integer.rb
|
|
139
155
|
- lib/no_brainer/document/types/set.rb
|
|
140
156
|
- lib/no_brainer/document/types/string.rb
|
|
141
157
|
- lib/no_brainer/document/types/symbol.rb
|
|
158
|
+
- lib/no_brainer/document/types/text.rb
|
|
142
159
|
- lib/no_brainer/document/types/time.rb
|
|
143
|
-
- lib/no_brainer/document/uniqueness.rb
|
|
144
160
|
- lib/no_brainer/document/validation.rb
|
|
161
|
+
- lib/no_brainer/document/validation/not_null.rb
|
|
162
|
+
- lib/no_brainer/document/validation/uniqueness.rb
|
|
145
163
|
- lib/no_brainer/error.rb
|
|
146
164
|
- lib/no_brainer/fork.rb
|
|
165
|
+
- lib/no_brainer/geo.rb
|
|
166
|
+
- lib/no_brainer/geo/base.rb
|
|
167
|
+
- lib/no_brainer/geo/circle.rb
|
|
168
|
+
- lib/no_brainer/geo/line_string.rb
|
|
169
|
+
- lib/no_brainer/geo/point.rb
|
|
170
|
+
- lib/no_brainer/geo/polygon.rb
|
|
147
171
|
- lib/no_brainer/loader.rb
|
|
148
172
|
- lib/no_brainer/locale/en.yml
|
|
173
|
+
- lib/no_brainer/lock.rb
|
|
149
174
|
- lib/no_brainer/query_runner.rb
|
|
150
175
|
- lib/no_brainer/query_runner/connection_lock.rb
|
|
151
176
|
- lib/no_brainer/query_runner/database_on_demand.rb
|
|
@@ -183,7 +208,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
183
208
|
version: '0'
|
|
184
209
|
requirements: []
|
|
185
210
|
rubyforge_project:
|
|
186
|
-
rubygems_version: 2.4.
|
|
211
|
+
rubygems_version: 2.4.4
|
|
187
212
|
signing_key:
|
|
188
213
|
specification_version: 4
|
|
189
214
|
summary: ORM for RethinkDB
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
module NoBrainer::Criteria::Preload
|
|
2
|
-
extend ActiveSupport::Concern
|
|
3
|
-
|
|
4
|
-
included { attr_accessor :_preloads }
|
|
5
|
-
|
|
6
|
-
def initialize(options={})
|
|
7
|
-
super
|
|
8
|
-
self._preloads = []
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
def preload(*values)
|
|
12
|
-
chain(:keep_cache => true) { |criteria| criteria._preloads = values }
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
def merge!(criteria, options={})
|
|
16
|
-
super
|
|
17
|
-
self._preloads = self._preloads + criteria._preloads
|
|
18
|
-
|
|
19
|
-
# XXX Not pretty hack
|
|
20
|
-
if criteria._preloads.present? && cached?
|
|
21
|
-
perform_preloads(@cache)
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
def each(options={}, &block)
|
|
26
|
-
return super unless should_preloads? && !options[:no_preloading] && block
|
|
27
|
-
|
|
28
|
-
docs = []
|
|
29
|
-
super(options.merge(:no_preloading => true)) { |doc| docs << doc }
|
|
30
|
-
perform_preloads(docs)
|
|
31
|
-
docs.each(&block)
|
|
32
|
-
self
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
private
|
|
36
|
-
|
|
37
|
-
def should_preloads?
|
|
38
|
-
self._preloads.present? && !raw?
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
def get_one(criteria)
|
|
42
|
-
super.tap { |doc| perform_preloads([doc]) }
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
def perform_preloads(docs)
|
|
46
|
-
if should_preloads? && docs.present?
|
|
47
|
-
NoBrainer::Document::Association::EagerLoader.new.eager_load(docs, self._preloads)
|
|
48
|
-
end
|
|
49
|
-
end
|
|
50
|
-
end
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
class NoBrainer::DecoratedSymbol < Struct.new(:symbol, :modifier, :args)
|
|
2
|
-
MODIFIERS = { :in => :in, :nin => :nin,
|
|
3
|
-
:eq => :eq, :ne => :ne, :not => :ne,
|
|
4
|
-
:gt => :gt, :ge => :ge, :gte => :ge,
|
|
5
|
-
:lt => :lt, :le => :le, :lte => :le,
|
|
6
|
-
:defined => :defined }
|
|
7
|
-
|
|
8
|
-
def self.hook
|
|
9
|
-
Symbol.class_eval do
|
|
10
|
-
MODIFIERS.each do |modifier_name, modifier|
|
|
11
|
-
define_method modifier_name do |*args|
|
|
12
|
-
NoBrainer::DecoratedSymbol.new(self, modifier, args)
|
|
13
|
-
end
|
|
14
|
-
end
|
|
15
|
-
end
|
|
16
|
-
end
|
|
17
|
-
end
|