corm 0.0.9 → 0.0.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/corm/model.rb +12 -5
  3. 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!(replication = nil, durable_writes = true)
122
- replication ||= "{'class': 'SimpleStrategy', 'replication_factor': '1'}"
123
- statement = "CREATE KEYSPACE #{keyspace} WITH replication = #{replication} AND durable_writes = #{durable_writes};"
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.9
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-03-26 00:00:00.000000000 Z
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: 1.8.23.2
101
+ rubygems_version: 2.2.2
110
102
  signing_key:
111
- specification_version: 3
103
+ specification_version: 4
112
104
  summary: Very basic Cassandrea ORM which is rails-deps-free
113
105
  test_files: []