whi-cassie 1.1.1 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.github/dependabot.yml +12 -0
- data/.github/workflows/continuous_integration.yml +63 -0
- data/.gitignore +4 -15
- data/.standard.yml +11 -0
- data/Appraisals +13 -0
- data/Gemfile +10 -0
- data/Gemfile.lock +89 -0
- data/HISTORY.md +5 -0
- data/README.md +14 -10
- data/Rakefile +13 -12
- data/VERSION +1 -1
- data/gemfiles/activemodel_4.gemfile +14 -0
- data/gemfiles/activemodel_5.gemfile +14 -0
- data/gemfiles/activemodel_6.gemfile +14 -0
- data/lib/cassie.rb +55 -57
- data/lib/cassie/config.rb +8 -7
- data/lib/cassie/model.rb +111 -110
- data/lib/cassie/railtie.rb +7 -5
- data/lib/cassie/schema.rb +35 -28
- data/lib/cassie/subscribers.rb +10 -12
- data/lib/cassie/testing.rb +15 -15
- data/lib/whi-cassie.rb +2 -0
- data/spec/cassie/config_spec.rb +20 -22
- data/spec/cassie/model_spec.rb +310 -311
- data/spec/cassie/subscribers_spec.rb +19 -21
- data/spec/cassie_spec.rb +86 -87
- data/spec/models/thing.rb +11 -11
- data/spec/models/type_tester.rb +7 -7
- data/spec/spec_helper.rb +29 -19
- data/whi-cassie.gemspec +16 -20
- metadata +13 -33
data/spec/spec_helper.rb
CHANGED
@@ -1,15 +1,11 @@
|
|
1
|
-
require
|
1
|
+
require "rubygems"
|
2
2
|
|
3
|
-
|
4
|
-
active_model_version = [active_model_version] unless active_model_version.is_a?(Array)
|
5
|
-
gem 'activemodel', *active_model_version
|
3
|
+
require "active_model"
|
6
4
|
|
7
|
-
|
8
|
-
puts "Testing Against ActiveModel #{ActiveModel::VERSION::STRING}" if defined?(ActiveModel::VERSION)
|
5
|
+
require_relative "../lib/whi-cassie"
|
9
6
|
|
10
|
-
|
11
|
-
|
12
|
-
require File.expand_path('../models/type_tester', __FILE__)
|
7
|
+
require_relative "models/thing"
|
8
|
+
require_relative "models/type_tester"
|
13
9
|
|
14
10
|
RSpec.configure do |config|
|
15
11
|
config.run_all_when_everything_filtered = true
|
@@ -19,27 +15,41 @@ RSpec.configure do |config|
|
|
19
15
|
# order dependency and want to debug it, you can fix the order by providing
|
20
16
|
# the seed, which is printed after each run.
|
21
17
|
# --seed 1234
|
22
|
-
config.order =
|
23
|
-
|
18
|
+
config.order = "random"
|
19
|
+
|
24
20
|
config.expect_with(:rspec) { |c| c.syntax = [:should, :expect] }
|
25
|
-
|
21
|
+
|
22
|
+
cassandra_host, cassandra_port = ENV.fetch("CASSANDRA_HOST", "localhost").split(":", 2)
|
23
|
+
cassandra_port ||= 9042
|
26
24
|
config.before(:suite) do
|
27
25
|
schema_dir = File.expand_path("../schema", __FILE__)
|
28
26
|
protocol_version = (ENV["protocol_version"] ? ENV["protocol_version"].to_i : 3)
|
29
27
|
Cassie.configure!(
|
30
|
-
:
|
31
|
-
:
|
32
|
-
:
|
33
|
-
:
|
28
|
+
cluster: {host: cassandra_host, port: cassandra_port.to_i, protocol_version: protocol_version},
|
29
|
+
keyspaces: {"test" => "cassie_specs"},
|
30
|
+
schema_directory: schema_dir,
|
31
|
+
max_prepared_statements: 3
|
34
32
|
)
|
35
|
-
|
33
|
+
|
34
|
+
attempts = 0
|
35
|
+
loop do
|
36
|
+
begin
|
37
|
+
Cassie::Schema.load_all!
|
38
|
+
break
|
39
|
+
rescue Cassandra::Errors::NoHostsAvailable => e
|
40
|
+
attempts += 1
|
41
|
+
raise e if attempts > 30
|
42
|
+
sleep(1)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
36
46
|
Cassie::Testing.prepare!
|
37
47
|
end
|
38
|
-
|
48
|
+
|
39
49
|
config.after(:suite) do
|
40
50
|
Cassie::Schema.drop_all!
|
41
51
|
end
|
42
|
-
|
52
|
+
|
43
53
|
config.around(:each) do |example|
|
44
54
|
Cassie::Testing.cleanup! do
|
45
55
|
example.run
|
data/whi-cassie.gemspec
CHANGED
@@ -1,27 +1,23 @@
|
|
1
|
-
|
2
|
-
lib = File.expand_path('../lib', __FILE__)
|
1
|
+
lib = File.expand_path("../lib", __FILE__)
|
3
2
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
3
|
|
5
4
|
Gem::Specification.new do |spec|
|
6
|
-
spec.name
|
7
|
-
spec.version
|
8
|
-
spec.authors
|
9
|
-
spec.email
|
10
|
-
spec.description
|
11
|
-
spec.summary
|
12
|
-
spec.homepage
|
13
|
-
spec.license
|
5
|
+
spec.name = "whi-cassie"
|
6
|
+
spec.version = File.read(File.expand_path("../VERSION", __FILE__)).chomp
|
7
|
+
spec.authors = ["We Heart It", "Brian Durand"]
|
8
|
+
spec.email = ["dev@weheartit.com"]
|
9
|
+
spec.description = "Simple object mapper for Cassandra data tables."
|
10
|
+
spec.summary = "Simple object mapper for Cassandra data tables specifically designed to work with the limitations and strengths of Cassandra."
|
11
|
+
spec.homepage = "https://github.com/weheartit/cassie"
|
12
|
+
spec.license = "MIT"
|
14
13
|
|
15
|
-
spec.files
|
16
|
-
spec.executables
|
17
|
-
spec.test_files
|
14
|
+
spec.files = `git ls-files`.split($/)
|
15
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
16
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
18
17
|
spec.require_paths = ["lib"]
|
19
18
|
|
20
|
-
spec.required_ruby_version =
|
21
|
-
spec.add_dependency(
|
22
|
-
spec.add_dependency(
|
23
|
-
|
24
|
-
spec.add_development_dependency "bundler", "~>1.3"
|
25
|
-
spec.add_development_dependency "rake"
|
26
|
-
spec.add_development_dependency "rspec", "~>2.0"
|
19
|
+
spec.required_ruby_version = ">= 2.4"
|
20
|
+
spec.add_dependency("cassandra-driver", "~>3.0")
|
21
|
+
spec.add_dependency("activemodel", ">=4.0")
|
22
|
+
spec.add_development_dependency "bundler", "~>2.0"
|
27
23
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: whi-cassie
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- We Heart It
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2020-10-28 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: cassandra-driver
|
@@ -41,34 +41,6 @@ dependencies:
|
|
41
41
|
version: '4.0'
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: bundler
|
44
|
-
requirement: !ruby/object:Gem::Requirement
|
45
|
-
requirements:
|
46
|
-
- - "~>"
|
47
|
-
- !ruby/object:Gem::Version
|
48
|
-
version: '1.3'
|
49
|
-
type: :development
|
50
|
-
prerelease: false
|
51
|
-
version_requirements: !ruby/object:Gem::Requirement
|
52
|
-
requirements:
|
53
|
-
- - "~>"
|
54
|
-
- !ruby/object:Gem::Version
|
55
|
-
version: '1.3'
|
56
|
-
- !ruby/object:Gem::Dependency
|
57
|
-
name: rake
|
58
|
-
requirement: !ruby/object:Gem::Requirement
|
59
|
-
requirements:
|
60
|
-
- - ">="
|
61
|
-
- !ruby/object:Gem::Version
|
62
|
-
version: '0'
|
63
|
-
type: :development
|
64
|
-
prerelease: false
|
65
|
-
version_requirements: !ruby/object:Gem::Requirement
|
66
|
-
requirements:
|
67
|
-
- - ">="
|
68
|
-
- !ruby/object:Gem::Version
|
69
|
-
version: '0'
|
70
|
-
- !ruby/object:Gem::Dependency
|
71
|
-
name: rspec
|
72
44
|
requirement: !ruby/object:Gem::Requirement
|
73
45
|
requirements:
|
74
46
|
- - "~>"
|
@@ -88,12 +60,21 @@ executables: []
|
|
88
60
|
extensions: []
|
89
61
|
extra_rdoc_files: []
|
90
62
|
files:
|
63
|
+
- ".github/dependabot.yml"
|
64
|
+
- ".github/workflows/continuous_integration.yml"
|
91
65
|
- ".gitignore"
|
66
|
+
- ".standard.yml"
|
67
|
+
- Appraisals
|
68
|
+
- Gemfile
|
69
|
+
- Gemfile.lock
|
92
70
|
- HISTORY.md
|
93
71
|
- MIT-LICENSE
|
94
72
|
- README.md
|
95
73
|
- Rakefile
|
96
74
|
- VERSION
|
75
|
+
- gemfiles/activemodel_4.gemfile
|
76
|
+
- gemfiles/activemodel_5.gemfile
|
77
|
+
- gemfiles/activemodel_6.gemfile
|
97
78
|
- lib/cassie.rb
|
98
79
|
- lib/cassie/config.rb
|
99
80
|
- lib/cassie/model.rb
|
@@ -123,15 +104,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
123
104
|
requirements:
|
124
105
|
- - ">="
|
125
106
|
- !ruby/object:Gem::Version
|
126
|
-
version: '2.
|
107
|
+
version: '2.4'
|
127
108
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
128
109
|
requirements:
|
129
110
|
- - ">="
|
130
111
|
- !ruby/object:Gem::Version
|
131
112
|
version: '0'
|
132
113
|
requirements: []
|
133
|
-
|
134
|
-
rubygems_version: 2.6.11
|
114
|
+
rubygems_version: 3.0.3
|
135
115
|
signing_key:
|
136
116
|
specification_version: 4
|
137
117
|
summary: Simple object mapper for Cassandra data tables specifically designed to work
|