corm 0.0.9 → 0.0.10
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 +7 -0
- data/lib/corm/model.rb +12 -5
- metadata +19 -27
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 0a98ebb6f6325bb4d3f032bcd38d48ada36177e8
|
4
|
+
data.tar.gz: 0edfbe3471af7e8828869bf29ee576a62f59906c
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: f016d404841728fe3fa21b35bab050b4e215998f8cace243e38cdc9fe8c471175f629e596fcd59eea33397ff4519f847e5d9798c46cf75f92d03e7ae504f681a
|
7
|
+
data.tar.gz: 72a581dc1d41d26a36195a75d619032802b418d86121fbed698ab77b1eb9d36b2361a538f63aa721fb030ab3b6f1af01d2bfc627e3b748a6483e94a6859aeb29
|
data/lib/corm/model.rb
CHANGED
@@ -118,9 +118,11 @@ module Corm
|
|
118
118
|
class_variable_get :@@keyspace
|
119
119
|
end
|
120
120
|
|
121
|
-
def self.keyspace!(
|
122
|
-
replication
|
123
|
-
|
121
|
+
def self.keyspace!(opts={})
|
122
|
+
replication = opts[:replication] || "{'class': 'SimpleStrategy', 'replication_factor': '1'}"
|
123
|
+
durable_writes = opts[:durable_writes].nil? ? true : opts[:durable_writes]
|
124
|
+
if_not_exists = !!opts[:if_not_exists] ? "IF NOT EXISTS" : ""
|
125
|
+
statement = "CREATE KEYSPACE #{if_not_exists} #{keyspace} WITH replication = #{replication} AND durable_writes = #{durable_writes};"
|
124
126
|
cluster.connect.execute statement
|
125
127
|
end
|
126
128
|
|
@@ -149,7 +151,8 @@ module Corm
|
|
149
151
|
class_variable_get :@@table
|
150
152
|
end
|
151
153
|
|
152
|
-
def self.table!
|
154
|
+
def self.table!(opts={})
|
155
|
+
if_not_exists = !!opts[:if_not_exists] ? "IF NOT EXISTS" : ""
|
153
156
|
table_ = [keyspace, table].compact.join '.'
|
154
157
|
pkey = []
|
155
158
|
partition_key = primary_key[0].join(',')
|
@@ -157,11 +160,15 @@ module Corm
|
|
157
160
|
pkey << primary_key[1].join(',') unless primary_key[1].to_a.empty?
|
158
161
|
pkey = pkey.join ','
|
159
162
|
fields_ = fields.to_a.map{ |args| args.join ' ' }.concat(["PRIMARY KEY (#{pkey})"]).join ', '
|
160
|
-
definition = "CREATE TABLE #{table_} (#{fields_})".downcase.gsub('json', 'text')
|
163
|
+
definition = "CREATE TABLE #{if_not_exists} #{table_} (#{fields_})".downcase.gsub('json', 'text')
|
161
164
|
definition = properties.to_a.empty? ? "#{definition};" : "#{definition} WITH #{properties.to_a.join ' AND '};"
|
162
165
|
execute definition
|
163
166
|
end
|
164
167
|
|
168
|
+
def self.truncate!
|
169
|
+
execute "TRUNCATE #{[keyspace, table].compact.join '.'};"
|
170
|
+
end
|
171
|
+
|
165
172
|
def initialize opts = {}
|
166
173
|
@record = opts.delete(:_cassandra_record) || opts.delete('_cassandra_record')
|
167
174
|
opts.each{ |k,v| self.send "#{k}=", v } if @record.nil?
|
metadata
CHANGED
@@ -1,80 +1,73 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: corm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.10
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Stefano Fontanelli
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2015-
|
11
|
+
date: 2015-04-22 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: cassandra-driver
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- - ~>
|
17
|
+
- - "~>"
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: 2.0.1
|
22
|
-
- -
|
20
|
+
- - ">="
|
23
21
|
- !ruby/object:Gem::Version
|
24
22
|
version: 2.0.1
|
25
23
|
type: :runtime
|
26
24
|
prerelease: false
|
27
25
|
version_requirements: !ruby/object:Gem::Requirement
|
28
|
-
none: false
|
29
26
|
requirements:
|
30
|
-
- - ~>
|
27
|
+
- - "~>"
|
31
28
|
- !ruby/object:Gem::Version
|
32
29
|
version: 2.0.1
|
33
|
-
- -
|
30
|
+
- - ">="
|
34
31
|
- !ruby/object:Gem::Version
|
35
32
|
version: 2.0.1
|
36
33
|
- !ruby/object:Gem::Dependency
|
37
34
|
name: multi_json
|
38
35
|
requirement: !ruby/object:Gem::Requirement
|
39
|
-
none: false
|
40
36
|
requirements:
|
41
|
-
- - ~>
|
37
|
+
- - "~>"
|
42
38
|
- !ruby/object:Gem::Version
|
43
39
|
version: 1.10.1
|
44
|
-
- -
|
40
|
+
- - ">="
|
45
41
|
- !ruby/object:Gem::Version
|
46
42
|
version: 1.10.1
|
47
43
|
type: :runtime
|
48
44
|
prerelease: false
|
49
45
|
version_requirements: !ruby/object:Gem::Requirement
|
50
|
-
none: false
|
51
46
|
requirements:
|
52
|
-
- - ~>
|
47
|
+
- - "~>"
|
53
48
|
- !ruby/object:Gem::Version
|
54
49
|
version: 1.10.1
|
55
|
-
- -
|
50
|
+
- - ">="
|
56
51
|
- !ruby/object:Gem::Version
|
57
52
|
version: 1.10.1
|
58
53
|
- !ruby/object:Gem::Dependency
|
59
54
|
name: rake
|
60
55
|
requirement: !ruby/object:Gem::Requirement
|
61
|
-
none: false
|
62
56
|
requirements:
|
63
|
-
- - ~>
|
57
|
+
- - "~>"
|
64
58
|
- !ruby/object:Gem::Version
|
65
59
|
version: 10.0.0
|
66
|
-
- -
|
60
|
+
- - ">="
|
67
61
|
- !ruby/object:Gem::Version
|
68
62
|
version: 10.0.0
|
69
63
|
type: :development
|
70
64
|
prerelease: false
|
71
65
|
version_requirements: !ruby/object:Gem::Requirement
|
72
|
-
none: false
|
73
66
|
requirements:
|
74
|
-
- - ~>
|
67
|
+
- - "~>"
|
75
68
|
- !ruby/object:Gem::Version
|
76
69
|
version: 10.0.0
|
77
|
-
- -
|
70
|
+
- - ">="
|
78
71
|
- !ruby/object:Gem::Version
|
79
72
|
version: 10.0.0
|
80
73
|
description: ''
|
@@ -88,26 +81,25 @@ files:
|
|
88
81
|
- lib/corm/model.rb
|
89
82
|
homepage: https://github.com/stefanofontanelli/corm
|
90
83
|
licenses: []
|
84
|
+
metadata: {}
|
91
85
|
post_install_message:
|
92
86
|
rdoc_options: []
|
93
87
|
require_paths:
|
94
88
|
- lib
|
95
89
|
required_ruby_version: !ruby/object:Gem::Requirement
|
96
|
-
none: false
|
97
90
|
requirements:
|
98
|
-
- -
|
91
|
+
- - ">="
|
99
92
|
- !ruby/object:Gem::Version
|
100
93
|
version: '0'
|
101
94
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
102
|
-
none: false
|
103
95
|
requirements:
|
104
|
-
- -
|
96
|
+
- - ">="
|
105
97
|
- !ruby/object:Gem::Version
|
106
98
|
version: '0'
|
107
99
|
requirements: []
|
108
100
|
rubyforge_project:
|
109
|
-
rubygems_version:
|
101
|
+
rubygems_version: 2.2.2
|
110
102
|
signing_key:
|
111
|
-
specification_version:
|
103
|
+
specification_version: 4
|
112
104
|
summary: Very basic Cassandrea ORM which is rails-deps-free
|
113
105
|
test_files: []
|