corm 0.0.12 → 0.0.13
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/corm/model.rb +28 -1
- metadata +2 -2
data/lib/corm/model.rb
CHANGED
@@ -8,6 +8,7 @@ require 'set'
|
|
8
8
|
module Corm
|
9
9
|
|
10
10
|
class Model
|
11
|
+
include Enumerable
|
11
12
|
|
12
13
|
@@cluster = nil
|
13
14
|
|
@@ -84,7 +85,13 @@ module Corm
|
|
84
85
|
elsif type.start_with?('map')
|
85
86
|
value.nil? ? {} : value
|
86
87
|
elsif type == ('timestamp')
|
87
|
-
value.is_a?(Fixnum)
|
88
|
+
if value.is_a?(Fixnum)
|
89
|
+
Time.at(value)
|
90
|
+
elsif value.is_a?(String)
|
91
|
+
Time.parse(value)
|
92
|
+
else
|
93
|
+
value
|
94
|
+
end
|
88
95
|
else
|
89
96
|
value
|
90
97
|
end
|
@@ -97,6 +104,26 @@ module Corm
|
|
97
104
|
nil
|
98
105
|
end
|
99
106
|
|
107
|
+
def to_h
|
108
|
+
Hash[self.collect {|k, v| [k, v]}]
|
109
|
+
end
|
110
|
+
alias_method :to_hash, :to_h
|
111
|
+
|
112
|
+
def to_json
|
113
|
+
res = self.to_h
|
114
|
+
fields.each do |k, t|
|
115
|
+
if t.start_with?("set")
|
116
|
+
res[k.to_sym] = res[k.to_sym].to_a
|
117
|
+
end
|
118
|
+
end
|
119
|
+
MultiJson.encode(res)
|
120
|
+
end
|
121
|
+
|
122
|
+
def each &block
|
123
|
+
return enum_for(:each) unless block_given?
|
124
|
+
fields.keys.each {|k| block.call([k.to_sym, self.send(k.to_sym)])}
|
125
|
+
end
|
126
|
+
|
100
127
|
def self.fields
|
101
128
|
class_variable_set :@@fields, {} unless class_variable_defined? :@@fields
|
102
129
|
class_variable_get :@@fields
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: corm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.13
|
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: 2015-05-
|
12
|
+
date: 2015-05-07 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: cassandra-driver
|