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.
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: []