whi-cassie 1.2.0 → 1.3.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/.github/workflows/continuous_integration.yml +10 -9
- data/.gitignore +3 -0
- data/.ruby-version +1 -0
- data/Appraisals +4 -0
- data/Gemfile +1 -1
- data/HISTORY.md +4 -0
- data/VERSION +1 -1
- data/gemfiles/.bundle/config +2 -0
- data/gemfiles/activemodel_4.gemfile +1 -1
- data/gemfiles/activemodel_5.gemfile +1 -1
- data/gemfiles/activemodel_6.gemfile +1 -1
- data/gemfiles/activemodel_7.gemfile +14 -0
- data/lib/cassie/model.rb +32 -1
- data/spec/cassie/model_spec.rb +23 -0
- data/spec/spec_helper.rb +1 -1
- data/whi-cassie.gemspec +1 -0
- metadata +23 -7
- data/Gemfile.lock +0 -89
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 38924e7460050a72c231a359a4a07e1695349b55d24868ae8332a0ecbcf61356
|
|
4
|
+
data.tar.gz: 69f5b3396cb45c8f3247ba377d456173ac114220b2247163bc74060e9cff921a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 46242596cf88a2d0600be23bb25a5138c7090acc952ccdbab3344d36abb1cd94ef4aef85bae071f60275297f10571377704a7de7348875cd0984439c7a3aecfd
|
|
7
|
+
data.tar.gz: d6e68b1ffd9a28cb27984e01bbce135502b4107d50be350d275dd745375fb5a2b90efa5384a4578c250654674b0ae7512bfe529fe3dc21f52c59b37b87e390e3
|
|
@@ -24,22 +24,23 @@ jobs:
|
|
|
24
24
|
strategy:
|
|
25
25
|
fail-fast: false
|
|
26
26
|
matrix:
|
|
27
|
-
ruby: [
|
|
28
|
-
activemodel: [
|
|
27
|
+
ruby: ["3.0"]
|
|
28
|
+
activemodel: ["original"]
|
|
29
29
|
job: [rspec]
|
|
30
|
-
cassandra_version: ["
|
|
30
|
+
cassandra_version: ["latest"]
|
|
31
31
|
include:
|
|
32
|
-
- ruby: 2.6
|
|
33
|
-
activemodel: 5
|
|
32
|
+
- ruby: "2.6"
|
|
33
|
+
activemodel: "5"
|
|
34
34
|
job: rspec
|
|
35
35
|
cassandra_version: "3"
|
|
36
|
-
- ruby: 2.4
|
|
37
|
-
activemodel: 4
|
|
36
|
+
- ruby: "2.4"
|
|
37
|
+
activemodel: "4"
|
|
38
38
|
job: rspec
|
|
39
39
|
cassandra_version: "2"
|
|
40
|
-
- ruby: 2.7
|
|
40
|
+
- ruby: "2.7"
|
|
41
|
+
activemodel: "6"
|
|
42
|
+
- ruby: "3.0"
|
|
41
43
|
job: standardrb
|
|
42
|
-
cassandra_version: "latest"
|
|
43
44
|
steps:
|
|
44
45
|
- name: checkout
|
|
45
46
|
uses: actions/checkout@v2
|
data/.gitignore
CHANGED
data/.ruby-version
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3.0.2
|
data/Appraisals
CHANGED
data/Gemfile
CHANGED
data/HISTORY.md
CHANGED
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.
|
|
1
|
+
1.3.0
|
data/lib/cassie/model.rb
CHANGED
|
@@ -451,7 +451,7 @@ module Cassie::Model
|
|
|
451
451
|
elsif type_class == Cassandra::Types::Set
|
|
452
452
|
Set.new(value)
|
|
453
453
|
elsif type_class == Cassandra::Types::Map
|
|
454
|
-
|
|
454
|
+
value.to_h
|
|
455
455
|
else
|
|
456
456
|
type_class.new(value)
|
|
457
457
|
end
|
|
@@ -531,6 +531,18 @@ module Cassie::Model
|
|
|
531
531
|
end
|
|
532
532
|
end
|
|
533
533
|
|
|
534
|
+
# Update a record with the specified attributes. Returns false the record is invalid.
|
|
535
|
+
def update(values)
|
|
536
|
+
self.attributes = values
|
|
537
|
+
save
|
|
538
|
+
end
|
|
539
|
+
|
|
540
|
+
# Update a record with the specified attributes and raise an error if it is invalid.
|
|
541
|
+
def update!(values)
|
|
542
|
+
self.attributes = values
|
|
543
|
+
save!
|
|
544
|
+
end
|
|
545
|
+
|
|
534
546
|
# Returns a hash of column to values. Column names will be symbols.
|
|
535
547
|
def attributes
|
|
536
548
|
hash = {}
|
|
@@ -540,6 +552,25 @@ module Cassie::Model
|
|
|
540
552
|
hash
|
|
541
553
|
end
|
|
542
554
|
|
|
555
|
+
# Mass set attributes from a hash.
|
|
556
|
+
def attributes=(values)
|
|
557
|
+
values.each do |name, value|
|
|
558
|
+
send("#{name}=", value)
|
|
559
|
+
end
|
|
560
|
+
end
|
|
561
|
+
|
|
562
|
+
# Returns a hash representing the primary key value.
|
|
563
|
+
def primary_key
|
|
564
|
+
self.class.primary_key.each_with_object({}) { |name, hash|
|
|
565
|
+
hash[name] = send(name)
|
|
566
|
+
}
|
|
567
|
+
end
|
|
568
|
+
|
|
569
|
+
# Reloads the record in memory.
|
|
570
|
+
def reload
|
|
571
|
+
self.class.find(primary_key)
|
|
572
|
+
end
|
|
573
|
+
|
|
543
574
|
# Subclasses can override this method to provide a TTL on the persisted record.
|
|
544
575
|
def persistence_ttl
|
|
545
576
|
nil
|
data/spec/cassie/model_spec.rb
CHANGED
|
@@ -142,11 +142,15 @@ describe Cassie::Model do
|
|
|
142
142
|
it "should get and set attributes" do
|
|
143
143
|
record = Cassie::Thing.new(owner: 1, id: 2, val: "foo")
|
|
144
144
|
expect(record.attributes).to eq({owner: 1, id: 2, val: "foo"})
|
|
145
|
+
record.attributes = {owner: 2, id: 3, val: "bar"}
|
|
146
|
+
expect(record.attributes).to eq({owner: 2, id: 3, val: "bar"})
|
|
145
147
|
end
|
|
146
148
|
|
|
147
149
|
it "should get and set attributes using human readable names" do
|
|
148
150
|
record = Cassie::Thing.new(owner: 1, identifier: 2, value: "foo")
|
|
149
151
|
expect(record.attributes).to eq({owner: 1, id: 2, val: "foo"})
|
|
152
|
+
record.attributes = {owner: 2, identifier: 3, val: "bar"}
|
|
153
|
+
expect(record.attributes).to eq({owner: 2, id: 3, val: "bar"})
|
|
150
154
|
end
|
|
151
155
|
end
|
|
152
156
|
|
|
@@ -194,6 +198,25 @@ describe Cassie::Model do
|
|
|
194
198
|
end
|
|
195
199
|
end
|
|
196
200
|
|
|
201
|
+
describe "update" do
|
|
202
|
+
it "should set attributes and save" do
|
|
203
|
+
record = Cassie::Thing.create(owner: 1, id: 2, val: "foo")
|
|
204
|
+
record.update(owner: 2)
|
|
205
|
+
record.reload
|
|
206
|
+
expect(record.owner).to eq 2
|
|
207
|
+
record.update!(owner: 3)
|
|
208
|
+
record.reload
|
|
209
|
+
expect(record.owner).to eq 3
|
|
210
|
+
end
|
|
211
|
+
end
|
|
212
|
+
|
|
213
|
+
describe "primary_key" do
|
|
214
|
+
it "should return the primary key as a hash" do
|
|
215
|
+
record = Cassie::Thing.create(owner: 1, id: 2, val: "foo")
|
|
216
|
+
expect(record.primary_key).to eq({owner: 1, id: 2})
|
|
217
|
+
end
|
|
218
|
+
end
|
|
219
|
+
|
|
197
220
|
describe "destroy" do
|
|
198
221
|
it "should delete a record from Cassandra calling any destroy callbacks" do
|
|
199
222
|
Cassie::Thing.create(owner: 1, id: 2, val: "foo")
|
data/spec/spec_helper.rb
CHANGED
data/whi-cassie.gemspec
CHANGED
|
@@ -19,5 +19,6 @@ Gem::Specification.new do |spec|
|
|
|
19
19
|
spec.required_ruby_version = ">= 2.4"
|
|
20
20
|
spec.add_dependency("cassandra-driver", "~>3.0")
|
|
21
21
|
spec.add_dependency("activemodel", ">=4.0")
|
|
22
|
+
spec.add_dependency("sorted_set")
|
|
22
23
|
spec.add_development_dependency "bundler", "~>2.0"
|
|
23
24
|
end
|
metadata
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: whi-cassie
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.3.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- We Heart It
|
|
8
8
|
- Brian Durand
|
|
9
|
-
autorequire:
|
|
9
|
+
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date:
|
|
12
|
+
date: 2022-03-04 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: cassandra-driver
|
|
@@ -39,6 +39,20 @@ dependencies:
|
|
|
39
39
|
- - ">="
|
|
40
40
|
- !ruby/object:Gem::Version
|
|
41
41
|
version: '4.0'
|
|
42
|
+
- !ruby/object:Gem::Dependency
|
|
43
|
+
name: sorted_set
|
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
|
45
|
+
requirements:
|
|
46
|
+
- - ">="
|
|
47
|
+
- !ruby/object:Gem::Version
|
|
48
|
+
version: '0'
|
|
49
|
+
type: :runtime
|
|
50
|
+
prerelease: false
|
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
52
|
+
requirements:
|
|
53
|
+
- - ">="
|
|
54
|
+
- !ruby/object:Gem::Version
|
|
55
|
+
version: '0'
|
|
42
56
|
- !ruby/object:Gem::Dependency
|
|
43
57
|
name: bundler
|
|
44
58
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -63,18 +77,20 @@ files:
|
|
|
63
77
|
- ".github/dependabot.yml"
|
|
64
78
|
- ".github/workflows/continuous_integration.yml"
|
|
65
79
|
- ".gitignore"
|
|
80
|
+
- ".ruby-version"
|
|
66
81
|
- ".standard.yml"
|
|
67
82
|
- Appraisals
|
|
68
83
|
- Gemfile
|
|
69
|
-
- Gemfile.lock
|
|
70
84
|
- HISTORY.md
|
|
71
85
|
- MIT-LICENSE
|
|
72
86
|
- README.md
|
|
73
87
|
- Rakefile
|
|
74
88
|
- VERSION
|
|
89
|
+
- gemfiles/.bundle/config
|
|
75
90
|
- gemfiles/activemodel_4.gemfile
|
|
76
91
|
- gemfiles/activemodel_5.gemfile
|
|
77
92
|
- gemfiles/activemodel_6.gemfile
|
|
93
|
+
- gemfiles/activemodel_7.gemfile
|
|
78
94
|
- lib/cassie.rb
|
|
79
95
|
- lib/cassie/config.rb
|
|
80
96
|
- lib/cassie/model.rb
|
|
@@ -96,7 +112,7 @@ homepage: https://github.com/weheartit/cassie
|
|
|
96
112
|
licenses:
|
|
97
113
|
- MIT
|
|
98
114
|
metadata: {}
|
|
99
|
-
post_install_message:
|
|
115
|
+
post_install_message:
|
|
100
116
|
rdoc_options: []
|
|
101
117
|
require_paths:
|
|
102
118
|
- lib
|
|
@@ -111,8 +127,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
111
127
|
- !ruby/object:Gem::Version
|
|
112
128
|
version: '0'
|
|
113
129
|
requirements: []
|
|
114
|
-
rubygems_version: 3.
|
|
115
|
-
signing_key:
|
|
130
|
+
rubygems_version: 3.2.22
|
|
131
|
+
signing_key:
|
|
116
132
|
specification_version: 4
|
|
117
133
|
summary: Simple object mapper for Cassandra data tables specifically designed to work
|
|
118
134
|
with the limitations and strengths of Cassandra.
|
data/Gemfile.lock
DELETED
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
PATH
|
|
2
|
-
remote: .
|
|
3
|
-
specs:
|
|
4
|
-
whi-cassie (1.2.0)
|
|
5
|
-
activemodel (>= 4.0)
|
|
6
|
-
cassandra-driver (~> 3.0)
|
|
7
|
-
|
|
8
|
-
GEM
|
|
9
|
-
remote: https://rubygems.org/
|
|
10
|
-
specs:
|
|
11
|
-
activemodel (6.0.3.4)
|
|
12
|
-
activesupport (= 6.0.3.4)
|
|
13
|
-
activesupport (6.0.3.4)
|
|
14
|
-
concurrent-ruby (~> 1.0, >= 1.0.2)
|
|
15
|
-
i18n (>= 0.7, < 2)
|
|
16
|
-
minitest (~> 5.1)
|
|
17
|
-
tzinfo (~> 1.1)
|
|
18
|
-
zeitwerk (~> 2.2, >= 2.2.2)
|
|
19
|
-
appraisal (2.3.0)
|
|
20
|
-
bundler
|
|
21
|
-
rake
|
|
22
|
-
thor (>= 0.14.0)
|
|
23
|
-
ast (2.4.1)
|
|
24
|
-
cassandra-driver (3.2.5)
|
|
25
|
-
ione (~> 1.2)
|
|
26
|
-
concurrent-ruby (1.1.7)
|
|
27
|
-
diff-lcs (1.4.4)
|
|
28
|
-
i18n (1.8.5)
|
|
29
|
-
concurrent-ruby (~> 1.0)
|
|
30
|
-
ione (1.2.4)
|
|
31
|
-
minitest (5.14.2)
|
|
32
|
-
parallel (1.19.2)
|
|
33
|
-
parser (2.7.2.0)
|
|
34
|
-
ast (~> 2.4.1)
|
|
35
|
-
rainbow (3.0.0)
|
|
36
|
-
rake (13.0.1)
|
|
37
|
-
regexp_parser (1.8.2)
|
|
38
|
-
rexml (3.2.4)
|
|
39
|
-
rspec (3.9.0)
|
|
40
|
-
rspec-core (~> 3.9.0)
|
|
41
|
-
rspec-expectations (~> 3.9.0)
|
|
42
|
-
rspec-mocks (~> 3.9.0)
|
|
43
|
-
rspec-core (3.9.3)
|
|
44
|
-
rspec-support (~> 3.9.3)
|
|
45
|
-
rspec-expectations (3.9.3)
|
|
46
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
|
47
|
-
rspec-support (~> 3.9.0)
|
|
48
|
-
rspec-mocks (3.9.1)
|
|
49
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
|
50
|
-
rspec-support (~> 3.9.0)
|
|
51
|
-
rspec-support (3.9.4)
|
|
52
|
-
rubocop (1.0.0)
|
|
53
|
-
parallel (~> 1.10)
|
|
54
|
-
parser (>= 2.7.1.5)
|
|
55
|
-
rainbow (>= 2.2.2, < 4.0)
|
|
56
|
-
regexp_parser (>= 1.8)
|
|
57
|
-
rexml
|
|
58
|
-
rubocop-ast (>= 0.6.0)
|
|
59
|
-
ruby-progressbar (~> 1.7)
|
|
60
|
-
unicode-display_width (>= 1.4.0, < 2.0)
|
|
61
|
-
rubocop-ast (1.1.0)
|
|
62
|
-
parser (>= 2.7.1.5)
|
|
63
|
-
rubocop-performance (1.8.1)
|
|
64
|
-
rubocop (>= 0.87.0)
|
|
65
|
-
rubocop-ast (>= 0.4.0)
|
|
66
|
-
ruby-progressbar (1.10.1)
|
|
67
|
-
standard (0.8.1)
|
|
68
|
-
rubocop (= 1.0.0)
|
|
69
|
-
rubocop-performance (= 1.8.1)
|
|
70
|
-
thor (1.0.1)
|
|
71
|
-
thread_safe (0.3.6)
|
|
72
|
-
tzinfo (1.2.7)
|
|
73
|
-
thread_safe (~> 0.1)
|
|
74
|
-
unicode-display_width (1.7.0)
|
|
75
|
-
zeitwerk (2.4.0)
|
|
76
|
-
|
|
77
|
-
PLATFORMS
|
|
78
|
-
ruby
|
|
79
|
-
|
|
80
|
-
DEPENDENCIES
|
|
81
|
-
appraisal
|
|
82
|
-
bundler (~> 2.0)
|
|
83
|
-
rake
|
|
84
|
-
rspec
|
|
85
|
-
standard (~> 0.8.1)
|
|
86
|
-
whi-cassie!
|
|
87
|
-
|
|
88
|
-
BUNDLED WITH
|
|
89
|
-
2.1.4
|