groovy 0.7.0 → 0.7.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/groovy/model.rb +15 -1
- data/lib/groovy/version.rb +1 -1
- data/spec/model_spec.rb +15 -0
- data/spec/query_spec.rb +7 -0
- data/spec/spec_helper.rb +9 -0
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: da506ad46a6a3aad6cd965b7fcc43079fd61903c1e1a9f0bee659342430dc9ad
|
4
|
+
data.tar.gz: 6eba099bd0552fcc3ce8aaa15a0d9fb46486a96e1c1eee8dcd427f86a7d44256
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4c26e85b1dc605632deff25150f39e3794079c75581c0098c4893d01fced0729a6f4cd99fea8cae1d840aa003b219dfc62a62acbc0fa0743514d2d4464bbf98a
|
7
|
+
data.tar.gz: 1efedf625a489694dc51442664438d8d3a1984dfa50398734f97ecccf8f8146ff4543c06f9a1a6b9a0b17c4007d4fd1baa636b5d2ade8a98b300142133e89240
|
data/lib/groovy/model.rb
CHANGED
@@ -265,6 +265,10 @@ module Groovy
|
|
265
265
|
query.where(*args, &block)
|
266
266
|
end
|
267
267
|
|
268
|
+
def each(&block)
|
269
|
+
query.each(&block)
|
270
|
+
end
|
271
|
+
|
268
272
|
def find_or_create_by(attributes)
|
269
273
|
find_by(**attributes) || create(**attributes)
|
270
274
|
end
|
@@ -524,6 +528,9 @@ module Groovy
|
|
524
528
|
update_attributes(obj) or raise "Invalid!"
|
525
529
|
end
|
526
530
|
|
531
|
+
alias_method :update, :update_attributes
|
532
|
+
alias_method :update!, :update_attributes!
|
533
|
+
|
527
534
|
def save(options = {})
|
528
535
|
return false if respond_to?(:invalid?) and invalid?
|
529
536
|
if new_record?
|
@@ -625,7 +632,14 @@ module Groovy
|
|
625
632
|
if record.nil? # not persisted yet
|
626
633
|
set_attribute(name, obj.id) # obj should be a groovy model or groonga record
|
627
634
|
else
|
628
|
-
val = obj.
|
635
|
+
val = if obj.is_a?(Groovy::Model)
|
636
|
+
obj.id
|
637
|
+
elsif obj.respond_to?(:record)
|
638
|
+
# obj.record.record_id
|
639
|
+
obj.record
|
640
|
+
else
|
641
|
+
obj
|
642
|
+
end
|
629
643
|
record[name] = val
|
630
644
|
end
|
631
645
|
end
|
data/lib/groovy/version.rb
CHANGED
data/spec/model_spec.rb
CHANGED
@@ -119,6 +119,21 @@ describe Groovy::Model do
|
|
119
119
|
end
|
120
120
|
|
121
121
|
describe '#update_attributes' do
|
122
|
+
|
123
|
+
it 'allows setting references out of searches' do
|
124
|
+
cat = TestCategory.create!(name: 'A category')
|
125
|
+
cat2 = TestCategory.create!(name: 'Another category')
|
126
|
+
|
127
|
+
prod = TestProduct.create!(name: 'A product', price: 100)
|
128
|
+
prod.update_attributes(test_category: cat)
|
129
|
+
|
130
|
+
last = TestCategory.last
|
131
|
+
expect(last).to eq(cat2)
|
132
|
+
puts "last: #{last.inspect}"
|
133
|
+
prod.update_attributes(test_category: last)
|
134
|
+
expect(prod.reload.test_category).to eq(cat2)
|
135
|
+
end
|
136
|
+
|
122
137
|
end
|
123
138
|
|
124
139
|
describe '#save' do
|
data/spec/query_spec.rb
CHANGED
@@ -16,6 +16,13 @@ describe Groovy::Query do
|
|
16
16
|
Groovy.close('query_spec')
|
17
17
|
end
|
18
18
|
|
19
|
+
# describe '#first' do
|
20
|
+
# it 'returns a valid object' do
|
21
|
+
# res = TestProduct.first
|
22
|
+
# expect(res.record.table.name).to eq(TestProduct.table.name)
|
23
|
+
# end
|
24
|
+
# end
|
25
|
+
|
19
26
|
describe '#where' do
|
20
27
|
describe 'boolean value' do
|
21
28
|
it 'finds expected records' do
|
data/spec/spec_helper.rb
CHANGED
@@ -16,12 +16,21 @@ RSpec.configure do |config|
|
|
16
16
|
end
|
17
17
|
end
|
18
18
|
|
19
|
+
class TestCategory
|
20
|
+
include Groovy::Model
|
21
|
+
end
|
22
|
+
|
19
23
|
class TestProduct
|
20
24
|
include Groovy::Model
|
21
25
|
end
|
22
26
|
|
23
27
|
def load_schema!(context_name)
|
28
|
+
TestCategory.load_schema context: context_name do |t|
|
29
|
+
t.string :name
|
30
|
+
end
|
31
|
+
|
24
32
|
TestProduct.load_schema context: context_name do |t|
|
33
|
+
t.one :test_category
|
25
34
|
t.boolean :visible
|
26
35
|
t.string :name
|
27
36
|
t.integer :price
|
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.7.
|
4
|
+
version: 0.7.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tomás Pollak
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-07-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rroonga
|
@@ -108,7 +108,7 @@ files:
|
|
108
108
|
homepage: https://github.com/tomas/groovy
|
109
109
|
licenses: []
|
110
110
|
metadata: {}
|
111
|
-
post_install_message:
|
111
|
+
post_install_message:
|
112
112
|
rdoc_options: []
|
113
113
|
require_paths:
|
114
114
|
- lib
|
@@ -123,8 +123,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '0'
|
125
125
|
requirements: []
|
126
|
-
rubygems_version: 3.4.
|
127
|
-
signing_key:
|
126
|
+
rubygems_version: 3.4.6
|
127
|
+
signing_key:
|
128
128
|
specification_version: 4
|
129
129
|
summary: A wrapper around Groonga/Rroonga
|
130
130
|
test_files: []
|