groovy 0.7.0 → 0.7.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 +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: []
|