ocm 0.0.3 → 0.0.4
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/Gemfile.lock +1 -1
- data/lib/ocm.rb +1 -0
- data/lib/ocm/iron_cache_orm.rb +37 -2
- data/lib/ocm/timestampable.rb +30 -0
- data/lib/ocm/version.rb +1 -1
- metadata +3 -2
data/Gemfile.lock
CHANGED
data/lib/ocm.rb
CHANGED
data/lib/ocm/iron_cache_orm.rb
CHANGED
@@ -21,8 +21,10 @@ module Ocm
|
|
21
21
|
unless idable.id
|
22
22
|
idable.id = Idable.generate_id
|
23
23
|
end
|
24
|
+
if defined? idable.set_timestamps
|
25
|
+
idable.set_timestamps
|
26
|
+
end
|
24
27
|
put(key_for(idable), idable)
|
25
|
-
|
26
28
|
end
|
27
29
|
|
28
30
|
def save_list(key, array)
|
@@ -38,12 +40,41 @@ module Ocm
|
|
38
40
|
messages
|
39
41
|
end
|
40
42
|
|
43
|
+
# first item that matches comps is replaced with item.
|
44
|
+
def update_in_list(key, item, comps)
|
45
|
+
messages = get_list(key)
|
46
|
+
messages.each_with_index do |m,i|
|
47
|
+
match = true
|
48
|
+
comps.each_pair do |k,v|
|
49
|
+
if m.is_a?(Hash)
|
50
|
+
if m[k] != v
|
51
|
+
match = false
|
52
|
+
break
|
53
|
+
end
|
54
|
+
else
|
55
|
+
if m.__send__(k.to_sym) != v
|
56
|
+
match = false
|
57
|
+
break
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
if match
|
62
|
+
messages[i] = item
|
63
|
+
put(key, messages)
|
64
|
+
return
|
65
|
+
end
|
66
|
+
end
|
67
|
+
raise "No matching item found in list"
|
68
|
+
end
|
69
|
+
|
70
|
+
# Warning, this is not a safe operation, be sure it is only being called once at a time
|
41
71
|
def prepend_to_list(key, item)
|
42
72
|
messages = get_list(key)
|
43
73
|
messages.unshift(item)
|
44
74
|
put(key, messages)
|
45
75
|
end
|
46
76
|
|
77
|
+
# Warning, this is not a safe operation, be sure it is only being called once at a time
|
47
78
|
def append_to_list(key, item)
|
48
79
|
messages = get_list(key)
|
49
80
|
messages.push(item)
|
@@ -85,6 +116,10 @@ module Ocm
|
|
85
116
|
@cache.put(key, value, options)
|
86
117
|
end
|
87
118
|
|
119
|
+
def remove(idable, id=nil)
|
120
|
+
delete(key_for(idable, id))
|
121
|
+
end
|
122
|
+
|
88
123
|
def delete(key)
|
89
124
|
@cache.delete(key)
|
90
125
|
end
|
@@ -92,7 +127,7 @@ module Ocm
|
|
92
127
|
def increment(key, value=1)
|
93
128
|
puts 'INC'
|
94
129
|
begin
|
95
|
-
ret = @cache.increment(key)
|
130
|
+
ret = @cache.increment(key, value)
|
96
131
|
puts 'INC RET ' + ret.inspect
|
97
132
|
return ret.value
|
98
133
|
rescue Rest::HttpError, IronCore::ResponseError => ex
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module Ocm
|
2
|
+
module Timestampable
|
3
|
+
|
4
|
+
def created_at
|
5
|
+
@created_at
|
6
|
+
end
|
7
|
+
|
8
|
+
def created_at=(t)
|
9
|
+
@created_at = t
|
10
|
+
end
|
11
|
+
|
12
|
+
def updated_at
|
13
|
+
@updated_at
|
14
|
+
end
|
15
|
+
|
16
|
+
def updated_at=(t)
|
17
|
+
@updated_at = t
|
18
|
+
end
|
19
|
+
|
20
|
+
def set_timestamps
|
21
|
+
time = Time.now.utc
|
22
|
+
if !created_at
|
23
|
+
self.created_at = time
|
24
|
+
end
|
25
|
+
self.updated_at = time
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
data/lib/ocm/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ocm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
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: 2012-09-
|
12
|
+
date: 2012-09-17 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: iron_cache
|
@@ -124,6 +124,7 @@ files:
|
|
124
124
|
- lib/ocm/idable.rb
|
125
125
|
- lib/ocm/iron_cache_orm.rb
|
126
126
|
- lib/ocm/ormable.rb
|
127
|
+
- lib/ocm/timestampable.rb
|
127
128
|
- lib/ocm/version.rb
|
128
129
|
- ocm.gemspec
|
129
130
|
- test/contact.rb
|