ohm 2.0.0.alpha1 → 2.0.0.alpha2
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.
- checksums.yaml +4 -4
- data/lib/ohm.rb +17 -5
- data/lib/ohm/lua/save.lua +0 -15
- data/ohm.gemspec +1 -1
- data/test/model.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8294935327780b3b34f3e4ab6f84b59332d0037b
|
4
|
+
data.tar.gz: 9159ad5202c945da06f36b3e8e0cdc49472d928b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 84a62af64f0e7ab94f443a7b47df0172154938d9c5c203a2921dbfa120950d69f81e43738853215069c7ef73c1f433a52327a971986290686b1e309fcac91d99
|
7
|
+
data.tar.gz: f69591ef5c027b9585570c03d831b5d839e6990d310bae4c469e8ed70de6124620e7b7d280bc689a180bb3b74af1d260138172f11d51c5fcd5a7443cae6ff6a4
|
data/lib/ohm.rb
CHANGED
@@ -937,6 +937,8 @@ module Ohm
|
|
937
937
|
reader = :"#{name}_id"
|
938
938
|
writer = :"#{name}_id="
|
939
939
|
|
940
|
+
attributes << reader unless attributes.include?(reader)
|
941
|
+
|
940
942
|
index reader
|
941
943
|
|
942
944
|
define_method(reader) do
|
@@ -1238,16 +1240,12 @@ module Ohm
|
|
1238
1240
|
|
1239
1241
|
_initialize_id if new?
|
1240
1242
|
|
1241
|
-
attrs = attributes.delete_if do |k, v|
|
1242
|
-
v.nil?
|
1243
|
-
end
|
1244
|
-
|
1245
1243
|
response = script(LUA_SAVE, 0,
|
1246
1244
|
{ "name" => model.name,
|
1247
1245
|
"id" => id,
|
1248
1246
|
"key" => key
|
1249
1247
|
}.to_msgpack,
|
1250
|
-
|
1248
|
+
_sanitized_attributes.to_msgpack,
|
1251
1249
|
indices.to_msgpack,
|
1252
1250
|
uniques.to_msgpack
|
1253
1251
|
)
|
@@ -1391,5 +1389,19 @@ module Ohm
|
|
1391
1389
|
def _initialize_id
|
1392
1390
|
@id = model.new_id.to_s
|
1393
1391
|
end
|
1392
|
+
|
1393
|
+
def _sanitized_attributes
|
1394
|
+
result = []
|
1395
|
+
|
1396
|
+
model.attributes.each do |field|
|
1397
|
+
val = send(field)
|
1398
|
+
|
1399
|
+
if val
|
1400
|
+
result.push(field, val.to_s)
|
1401
|
+
end
|
1402
|
+
end
|
1403
|
+
|
1404
|
+
return result
|
1405
|
+
end
|
1394
1406
|
end
|
1395
1407
|
end
|
data/lib/ohm/lua/save.lua
CHANGED
@@ -78,21 +78,6 @@ if err then
|
|
78
78
|
error("UniqueIndexViolation: " .. duplicates[1])
|
79
79
|
end
|
80
80
|
|
81
|
-
local function convertBooleans(list)
|
82
|
-
for index, value in ipairs(list) do
|
83
|
-
if type(value) == "boolean" then
|
84
|
-
if value then
|
85
|
-
list[index] = 1
|
86
|
-
else
|
87
|
-
list[index] = nil
|
88
|
-
list[index - 1] = nil
|
89
|
-
end
|
90
|
-
end
|
91
|
-
end
|
92
|
-
end
|
93
|
-
|
94
|
-
convertBooleans(attrs)
|
95
|
-
|
96
81
|
save(model, attrs)
|
97
82
|
|
98
83
|
remove_indices(model)
|
data/ohm.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = "ohm"
|
3
|
-
s.version = "2.0.0.
|
3
|
+
s.version = "2.0.0.alpha2"
|
4
4
|
s.summary = %{Object-hash mapping library for Redis.}
|
5
5
|
s.description = %Q{Ohm is a library that allows to store an object in Redis, a persistent key-value database. It includes an extensible list of validations and has very good performance.}
|
6
6
|
s.authors = ["Michel Martens", "Damian Janowski", "Cyril David"]
|
data/test/model.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ohm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.0.
|
4
|
+
version: 2.0.0.alpha2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michel Martens
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2013-04-
|
13
|
+
date: 2013-04-30 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: redic
|
@@ -140,7 +140,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
140
140
|
version: 1.3.1
|
141
141
|
requirements: []
|
142
142
|
rubyforge_project: ohm
|
143
|
-
rubygems_version: 2.0.
|
143
|
+
rubygems_version: 2.0.0
|
144
144
|
signing_key:
|
145
145
|
specification_version: 4
|
146
146
|
summary: Object-hash mapping library for Redis.
|