groovy 0.6.4 → 0.6.6
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/groovy/model.rb +4 -0
- data/lib/groovy/schema.rb +8 -0
- data/lib/groovy/vector.rb +32 -23
- data/lib/groovy/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dc2a1c85a6d482813b6ec9de3616e2c369206a419008b55600194f930bc56416
|
4
|
+
data.tar.gz: 968d357fb616dcfa9761f1ba93843678263d69ff38af2ec342ee9430bbf7ccc6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7df3be7e3c43b5d48be0b563bb156da21a8992c97be9392b91b939a1943920f0587ee01ff4521c983b8524beb27b0ecd0eede630aff7c16e42e80e004ec42a46
|
7
|
+
data.tar.gz: e9a7fd6abc2dda7d902cd07d091f1fafbfe053e229a730754f0170dc04aa3326fbbef4a9646f3d6788cf896b7b72e9c0c10f0c010a4d17bd1e99aa97222fcda9
|
data/lib/groovy/model.rb
CHANGED
data/lib/groovy/schema.rb
CHANGED
@@ -127,6 +127,14 @@ module Groovy
|
|
127
127
|
@spec[name.to_sym] = { type: :reference, args: [table_name, options] }
|
128
128
|
end
|
129
129
|
|
130
|
+
def one(name, table_name = nil, options = {})
|
131
|
+
reference(name, table_name, options)
|
132
|
+
end
|
133
|
+
|
134
|
+
def many(name, table_name = nil, options = {})
|
135
|
+
reference(name, table_name, options.merge(type: :vector))
|
136
|
+
end
|
137
|
+
|
130
138
|
def timestamps(opts = {})
|
131
139
|
column(:created_at, 'time')
|
132
140
|
column(:updated_at, 'time')
|
data/lib/groovy/vector.rb
CHANGED
@@ -26,20 +26,6 @@ module Groovy
|
|
26
26
|
|
27
27
|
alias_method :count, :size
|
28
28
|
|
29
|
-
# we redefine first and last to avoid having to perform a full query
|
30
|
-
|
31
|
-
def first
|
32
|
-
if obj = records.first
|
33
|
-
Model.initialize_from_record(obj)
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
def last
|
38
|
-
if obj = records.last
|
39
|
-
Model.initialize_from_record(obj)
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
29
|
def each(&block)
|
44
30
|
items.each { |r| block.call(r) }
|
45
31
|
end
|
@@ -95,12 +81,30 @@ module Groovy
|
|
95
81
|
|
96
82
|
alias_method :<<, :push
|
97
83
|
|
98
|
-
[:
|
84
|
+
[:new, :create, :create!].each do |relation_method|
|
85
|
+
define_method relation_method do |attrs|
|
86
|
+
vector_model.public_send(relation_method, attrs.merge(object_name => obj))
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
[:find_by, :search, :where, :not, :sort_by, :limit, :offset, :paginate, :in_batches].each do |scope_method|
|
99
91
|
define_method scope_method do |*args, &block|
|
100
92
|
query.public_send(scope_method, *args, &block)
|
101
93
|
end
|
102
94
|
end
|
103
95
|
|
96
|
+
def first
|
97
|
+
if obj = records.first
|
98
|
+
Model.initialize_from_record(obj)
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
def last
|
103
|
+
if obj = records.last
|
104
|
+
Model.initialize_from_record(obj)
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
104
108
|
def ==(arr)
|
105
109
|
to_a == arr
|
106
110
|
end
|
@@ -108,21 +112,26 @@ module Groovy
|
|
108
112
|
private
|
109
113
|
attr_reader :obj, :key
|
110
114
|
|
111
|
-
def query
|
112
|
-
model = Model.model_from_table(key.capitalize)
|
113
|
-
obj_name = obj.class.name.downcase
|
114
|
-
model.query.where(obj_name => obj.id)
|
115
|
-
end
|
116
|
-
|
117
115
|
def method_missing(name, *args, &block)
|
118
|
-
|
119
|
-
if model.scopes.include?(name)
|
116
|
+
if vector_model.scopes.include?(name)
|
120
117
|
query.send(name)
|
121
118
|
else
|
122
119
|
super
|
123
120
|
end
|
124
121
|
end
|
125
122
|
|
123
|
+
def query
|
124
|
+
vector_model.query.where({ object_name => obj.id })
|
125
|
+
end
|
126
|
+
|
127
|
+
def object_name
|
128
|
+
obj.class.underscore_name # eg "product_brand"
|
129
|
+
end
|
130
|
+
|
131
|
+
def vector_model
|
132
|
+
@vector_model ||= Model.model_from_table(key.capitalize)
|
133
|
+
end
|
134
|
+
|
126
135
|
def remove_record(rec)
|
127
136
|
recs = obj.record[key].delete_if { |r| r == rec }
|
128
137
|
obj.record[key] = recs
|
data/lib/groovy/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: groovy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tomás Pollak
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-12-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rroonga
|