cql_model 0.0.4 → 0.0.5
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.
- data/README.md +18 -8
- data/cql_model.gemspec +1 -1
- data/lib/cql/model.rb +2 -1
- data/lib/cql/model/schema_methods.rb +9 -2
- data/lib/cql/model/version.rb +1 -1
- data/spec/spec_helper.rb +5 -5
- metadata +5 -5
data/README.md
CHANGED
@@ -27,9 +27,9 @@ Or install it yourself as:
|
|
27
27
|
class Person < Cql::Model
|
28
28
|
primary_key :id
|
29
29
|
|
30
|
-
column :first_name
|
31
|
-
column :last_name
|
32
|
-
column :dob
|
30
|
+
column :first_name
|
31
|
+
column :last_name
|
32
|
+
column :dob
|
33
33
|
end
|
34
34
|
|
35
35
|
### Schema Definition
|
@@ -48,16 +48,26 @@ work with. The default primary key is `id`.
|
|
48
48
|
|
49
49
|
#### Columns
|
50
50
|
|
51
|
-
You define columns by supplying the attribute name
|
52
|
-
|
51
|
+
You define columns by supplying the attribute name and an optional set of
|
52
|
+
options.
|
53
53
|
|
54
|
-
column :first_name
|
55
|
-
column :birth_date
|
56
|
-
column :birth_date,
|
54
|
+
column :first_name
|
55
|
+
column :birth_date
|
56
|
+
column :birth_date, column_name: :dob
|
57
57
|
|
58
58
|
The supported options for columns are as follows:
|
59
59
|
|
60
60
|
* `column_name`: actual column name for storing the attribute.
|
61
|
+
* `ready_only`: flags the attribute as read-only, blocking creation of a setter
|
62
|
+
method.
|
63
|
+
|
64
|
+
#### Consistency
|
65
|
+
|
66
|
+
You can set any consistency value for your models that is supported by cql-rb
|
67
|
+
and it will be passed whenever a query is executed. The default consistency
|
68
|
+
level is `quorum`.
|
69
|
+
|
70
|
+
consistency :three
|
61
71
|
|
62
72
|
## Contributing
|
63
73
|
|
data/cql_model.gemspec
CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
|
|
10
10
|
spec.email = %w{james@plainprograms.com'}
|
11
11
|
spec.description = %q{An ActiveModel implementation on top of the cql-rb gem}
|
12
12
|
spec.summary = %q{ActiveModel implementation on cql-rb}
|
13
|
-
spec.homepage = '
|
13
|
+
spec.homepage = 'http://plainprogrammer.github.io/cql_model/'
|
14
14
|
spec.license = 'MIT'
|
15
15
|
|
16
16
|
spec.files = `git ls-files`.split($/)
|
data/lib/cql/model.rb
CHANGED
@@ -5,6 +5,7 @@ require 'active_support/core_ext'
|
|
5
5
|
|
6
6
|
require 'cql/base'
|
7
7
|
require 'cql/model/version'
|
8
|
+
|
8
9
|
require 'cql/model/schema_methods'
|
9
10
|
require 'cql/model/finder_methods'
|
10
11
|
require 'cql/model/persistence_methods'
|
@@ -59,7 +60,7 @@ module Cql
|
|
59
60
|
end
|
60
61
|
|
61
62
|
def self.execute(query)
|
62
|
-
cql_results = Cql::Base.connection.execute(query)
|
63
|
+
cql_results = Cql::Base.connection.execute(query, consistency)
|
63
64
|
Cql::Model::QueryResult.new(cql_results, self)
|
64
65
|
end
|
65
66
|
end
|
@@ -9,6 +9,10 @@ module Cql::Model::SchemaMethods
|
|
9
9
|
self.class.primary_key
|
10
10
|
end
|
11
11
|
|
12
|
+
def consistency
|
13
|
+
self.class.consistency
|
14
|
+
end
|
15
|
+
|
12
16
|
module ClassMethods
|
13
17
|
def table_name
|
14
18
|
@table_name ||= self.model_name.plural
|
@@ -18,17 +22,20 @@ module Cql::Model::SchemaMethods
|
|
18
22
|
@columns ||= {}
|
19
23
|
end
|
20
24
|
|
25
|
+
def consistency(consistency_value = nil)
|
26
|
+
@consistency ||= consistency_value.nil? ? :quorum : consistency_value.to_sym
|
27
|
+
end
|
28
|
+
|
21
29
|
def primary_key(key_name = nil)
|
22
30
|
@primary_key ||= key_name.nil? ? 'id' : key_name.to_s
|
23
31
|
end
|
24
32
|
|
25
|
-
def column(attribute_name,
|
33
|
+
def column(attribute_name, options = {})
|
26
34
|
column_name = options[:column_name] || attribute_name
|
27
35
|
|
28
36
|
@columns ||= {}
|
29
37
|
@columns[column_name.to_sym] = {
|
30
38
|
attribute_name: attribute_name.to_sym,
|
31
|
-
klass: ruby_class.to_s.constantize
|
32
39
|
}.merge(options)
|
33
40
|
end
|
34
41
|
end
|
data/lib/cql/model/version.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
@@ -20,14 +20,14 @@ setup_cql_test
|
|
20
20
|
class Event < Cql::Model
|
21
21
|
primary_key :id
|
22
22
|
|
23
|
-
column :location
|
24
|
-
column :date
|
23
|
+
column :location
|
24
|
+
column :date
|
25
25
|
end
|
26
26
|
|
27
27
|
class Person < Cql::Model
|
28
28
|
primary_key :id
|
29
29
|
|
30
|
-
column :first_name
|
31
|
-
column :last_name
|
32
|
-
column :birth_date,
|
30
|
+
column :first_name
|
31
|
+
column :last_name
|
32
|
+
column :birth_date, column_name: :dob
|
33
33
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cql_model
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-06-
|
12
|
+
date: 2013-06-24 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: cql-rb
|
@@ -151,7 +151,7 @@ files:
|
|
151
151
|
- spec/cql/model/query_result_spec.rb
|
152
152
|
- spec/spec_helper.rb
|
153
153
|
- spec/support/setup_test_keyspace.rb
|
154
|
-
homepage:
|
154
|
+
homepage: http://plainprogrammer.github.io/cql_model/
|
155
155
|
licenses:
|
156
156
|
- MIT
|
157
157
|
post_install_message:
|
@@ -166,7 +166,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
166
166
|
version: '0'
|
167
167
|
segments:
|
168
168
|
- 0
|
169
|
-
hash:
|
169
|
+
hash: 2223011310756065091
|
170
170
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
171
171
|
none: false
|
172
172
|
requirements:
|
@@ -175,7 +175,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
175
175
|
version: '0'
|
176
176
|
segments:
|
177
177
|
- 0
|
178
|
-
hash:
|
178
|
+
hash: 2223011310756065091
|
179
179
|
requirements: []
|
180
180
|
rubyforge_project:
|
181
181
|
rubygems_version: 1.8.23
|