corm 0.0.12 → 0.0.13

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/lib/corm/model.rb +28 -1
  2. 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) ? Time.at(value) : value
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.12
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-05 00:00:00.000000000 Z
12
+ date: 2015-05-07 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: cassandra-driver