corm 0.0.12 → 0.0.13

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 (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