uorm 0.0.1 → 0.0.2
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 +15 -0
- data/lib/uorm/redis/persistance.rb +46 -0
- data/lib/uorm/redis.rb +27 -0
- data/lib/uorm/type.rb +2 -0
- data/lib/uorm/version.rb +1 -1
- data/lib/uorm.rb +9 -1
- data/spec/{urm_spec.rb → em-mongo_spec.rb} +34 -45
- data/spec/redis_synchrony_spec.rb +112 -0
- data/spec/spec_helper.rb +1 -8
- data/uorm.gemspec +7 -3
- metadata +72 -4
data/Gemfile.lock
CHANGED
@@ -15,6 +15,14 @@ GEM
|
|
15
15
|
activesupport
|
16
16
|
bson_ext (1.8.0)
|
17
17
|
bson (~> 1.8.0)
|
18
|
+
columnize (0.3.6)
|
19
|
+
debugger (1.2.3)
|
20
|
+
columnize (>= 0.3.1)
|
21
|
+
debugger-linecache (~> 1.1.1)
|
22
|
+
debugger-ruby_core_source (~> 1.1.5)
|
23
|
+
debugger-linecache (1.1.2)
|
24
|
+
debugger-ruby_core_source (>= 1.1.1)
|
25
|
+
debugger-ruby_core_source (1.1.6)
|
18
26
|
diff-lcs (1.1.3)
|
19
27
|
em-mongo (0.4.3)
|
20
28
|
bson (>= 1.1.3)
|
@@ -22,8 +30,11 @@ GEM
|
|
22
30
|
em-synchrony (1.0.2)
|
23
31
|
eventmachine (>= 1.0.0.beta.1)
|
24
32
|
eventmachine (1.0.0)
|
33
|
+
hiredis (0.4.5)
|
25
34
|
i18n (0.6.1)
|
26
35
|
multi_json (1.5.0)
|
36
|
+
oj (2.0.0)
|
37
|
+
redis (3.0.2)
|
27
38
|
rspec (2.12.0)
|
28
39
|
rspec-core (~> 2.12.0)
|
29
40
|
rspec-expectations (~> 2.12.0)
|
@@ -38,6 +49,10 @@ PLATFORMS
|
|
38
49
|
|
39
50
|
DEPENDENCIES
|
40
51
|
bson_ext
|
52
|
+
debugger
|
41
53
|
em-mongo
|
54
|
+
hiredis
|
55
|
+
oj
|
56
|
+
redis
|
42
57
|
rspec
|
43
58
|
uorm!
|
@@ -0,0 +1,46 @@
|
|
1
|
+
module Uorm
|
2
|
+
module Redis
|
3
|
+
class Persistance
|
4
|
+
attr_reader :collection, :model
|
5
|
+
|
6
|
+
def initialize model
|
7
|
+
@model = model
|
8
|
+
@collection = ::Redis.new driver: :synchrony
|
9
|
+
end
|
10
|
+
|
11
|
+
def new? object
|
12
|
+
object.id ? false : true
|
13
|
+
end
|
14
|
+
|
15
|
+
def all options = {}
|
16
|
+
keys = collection.keys
|
17
|
+
collection.mget(keys).map do |val|
|
18
|
+
MultiJson.load val if val
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def find id
|
23
|
+
MultiJson.load collection.get id
|
24
|
+
end
|
25
|
+
|
26
|
+
def create object
|
27
|
+
object.id = SecureRandom.uuid
|
28
|
+
write object
|
29
|
+
end
|
30
|
+
|
31
|
+
def update object
|
32
|
+
write object
|
33
|
+
end
|
34
|
+
|
35
|
+
def delete object
|
36
|
+
collection.del object.id
|
37
|
+
end
|
38
|
+
|
39
|
+
private
|
40
|
+
|
41
|
+
def write object
|
42
|
+
collection.set object.id, MultiJson.dump(object)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
data/lib/uorm/redis.rb
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
module Uorm
|
2
|
+
module Redis
|
3
|
+
def self.included base
|
4
|
+
base.instance_eval do
|
5
|
+
field :id, type: Type::String
|
6
|
+
|
7
|
+
def persistance
|
8
|
+
@persistance ||= Persistance.new self
|
9
|
+
end
|
10
|
+
|
11
|
+
def collection
|
12
|
+
persistance.collection
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def initialize values = {}
|
17
|
+
values[:id] ||= nil
|
18
|
+
super values
|
19
|
+
end
|
20
|
+
|
21
|
+
def persistance
|
22
|
+
self.class.persistance
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
data/lib/uorm/type.rb
CHANGED
data/lib/uorm/version.rb
CHANGED
data/lib/uorm.rb
CHANGED
@@ -3,6 +3,7 @@ require 'uorm/version'
|
|
3
3
|
require 'active_support/callbacks'
|
4
4
|
require 'active_support/core_ext/hash'
|
5
5
|
|
6
|
+
|
6
7
|
module Uorm
|
7
8
|
autoload :Type, 'uorm/type'
|
8
9
|
autoload :Field, 'uorm/field'
|
@@ -11,8 +12,14 @@ module Uorm
|
|
11
12
|
autoload :DSL, 'uorm/dsl'
|
12
13
|
autoload :Callbacks, 'uorm/callbacks'
|
13
14
|
|
15
|
+
autoload :Redis, 'uorm/redis'
|
16
|
+
module Redis
|
17
|
+
autoload :Persistance, 'uorm/redis/persistance'
|
18
|
+
require 'multi_json'
|
19
|
+
end
|
20
|
+
|
14
21
|
module EM
|
15
|
-
autoload :Mongo,
|
22
|
+
autoload :Mongo, 'uorm/em-mongo'
|
16
23
|
|
17
24
|
module Mongo
|
18
25
|
require 'uorm/em-mongo/object_id'
|
@@ -20,4 +27,5 @@ module Uorm
|
|
20
27
|
autoload :Persistance, 'uorm/em-mongo/persistance'
|
21
28
|
end
|
22
29
|
end
|
30
|
+
|
23
31
|
end
|
@@ -1,22 +1,14 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
def after_create model
|
6
|
-
model.id.to_s.should_not == ''
|
7
|
-
end
|
3
|
+
require 'em-mongo'
|
4
|
+
require 'em-synchrony/em-mongo'
|
8
5
|
|
9
|
-
|
10
|
-
model.is_a?(AModel).should == true
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
6
|
+
Uorm::EM::Mongo::DB.name = 'uorm_test'
|
14
7
|
|
15
|
-
class
|
8
|
+
class AMongoModel
|
16
9
|
include Uorm::DSL
|
17
10
|
include Uorm::Attributes
|
18
11
|
include Uorm::EM::Mongo
|
19
|
-
include Uorm::Callbacks
|
20
12
|
|
21
13
|
field :reference, type: Uorm::Type::ObjectId
|
22
14
|
field :name, type: Uorm::Type::String
|
@@ -24,13 +16,10 @@ class AModel
|
|
24
16
|
field :dollars, type: Uorm::Type::Float
|
25
17
|
field :favorite, type: Uorm::Type::Boolean
|
26
18
|
field :created, type: Uorm::Type::Time
|
27
|
-
|
28
|
-
set_callback :save, :after, CallbackTester
|
29
|
-
set_callback :create, :after, CallbackTester
|
30
19
|
end
|
31
20
|
|
32
|
-
describe
|
33
|
-
after {
|
21
|
+
describe AMongoModel do
|
22
|
+
after { AMongoModel.collection.remove }
|
34
23
|
|
35
24
|
let(:attributes) do
|
36
25
|
{
|
@@ -44,7 +33,7 @@ describe AModel do
|
|
44
33
|
end
|
45
34
|
|
46
35
|
describe '.new' do
|
47
|
-
subject {
|
36
|
+
subject { AMongoModel.new attributes }
|
48
37
|
|
49
38
|
its(:reference) { should == BSON::ObjectId('50995b8c15529d4676000001') }
|
50
39
|
its(:name) { should == 'whatever' }
|
@@ -68,93 +57,93 @@ describe AModel do
|
|
68
57
|
|
69
58
|
describe '.all' do
|
70
59
|
it 'returns a collection of all objects' do
|
71
|
-
|
60
|
+
AMongoModel.collection.insert name: 'findme'
|
72
61
|
|
73
|
-
|
62
|
+
AMongoModel.all.should be_collection_of AMongoModel
|
74
63
|
end
|
75
64
|
|
76
65
|
it 'returns a collection of objects with the query' do
|
77
|
-
|
66
|
+
AMongoModel.collection.insert name: 'findme'
|
78
67
|
|
79
|
-
|
68
|
+
AMongoModel.all(name: 'findme').should be_collection_of AMongoModel
|
80
69
|
end
|
81
70
|
|
82
71
|
it 'converts time strings into time objects' do
|
83
|
-
|
72
|
+
AMongoModel.collection.insert created: Time.parse('2001-01-02')
|
84
73
|
|
85
|
-
|
86
|
-
should be_collection_of
|
74
|
+
AMongoModel.all(created: { '$gt' => '2001-01-01' }).
|
75
|
+
should be_collection_of AMongoModel
|
87
76
|
|
88
|
-
|
77
|
+
AMongoModel.all(created: { '$lt' => Time.parse('2001-01-01')}).
|
89
78
|
should be_empty
|
90
79
|
end
|
91
80
|
|
92
81
|
it 'converts reference strings into BSON::ObjectId objects' do
|
93
|
-
|
82
|
+
AMongoModel.collection.insert reference: BSON::ObjectId('50995b8c15529d4676000001')
|
94
83
|
|
95
|
-
|
96
|
-
should be_collection_of
|
84
|
+
AMongoModel.all(reference: '50995b8c15529d4676000001').
|
85
|
+
should be_collection_of AMongoModel
|
97
86
|
end
|
98
87
|
|
99
88
|
it 'converts multiple query parameters' do
|
100
|
-
|
89
|
+
AMongoModel.collection.insert reference: BSON::ObjectId('50995b8c15529d4676000001'), created: Time.parse('2003-01-01')
|
101
90
|
|
102
|
-
|
103
|
-
should be_collection_of
|
91
|
+
AMongoModel.all(reference: '50995b8c15529d4676000001', created: '2003-01-01').
|
92
|
+
should be_collection_of AMongoModel
|
104
93
|
end
|
105
94
|
end
|
106
95
|
|
107
96
|
describe '.find' do
|
108
97
|
it 'returns the first object with the given id' do
|
109
|
-
model =
|
110
|
-
|
98
|
+
model = AMongoModel.create attributes
|
99
|
+
AMongoModel.find(model.id).should be_instance_of AMongoModel
|
111
100
|
end
|
112
101
|
|
113
102
|
it 'converts id BSON::ObjectId' do
|
114
|
-
model =
|
115
|
-
|
103
|
+
model = AMongoModel.create attributes
|
104
|
+
AMongoModel.find(model.id.to_s).should be_instance_of AMongoModel
|
116
105
|
end
|
117
106
|
end
|
118
107
|
|
119
108
|
describe '.create' do
|
120
109
|
it 'adds the object to the collection' do
|
121
|
-
expect {
|
110
|
+
expect { AMongoModel.create attributes }.to change { AMongoModel.collection.count }
|
122
111
|
end
|
123
112
|
|
124
113
|
it 'returns an object with the newly created attributes' do
|
125
|
-
|
114
|
+
AMongoModel.create(attributes).should be_instance_of AMongoModel
|
126
115
|
end
|
127
116
|
end
|
128
117
|
|
129
118
|
describe '#save' do
|
130
119
|
it 'creates the object if it does not have an id' do
|
131
|
-
model =
|
120
|
+
model = AMongoModel.new attributes
|
132
121
|
expect { model.save }.to change { model.id }
|
133
122
|
end
|
134
123
|
|
135
124
|
it 'updates the object if it does exist' do
|
136
|
-
model =
|
125
|
+
model = AMongoModel.create attributes
|
137
126
|
expect { model.save }.to_not change { model.id }
|
138
127
|
end
|
139
128
|
end
|
140
129
|
|
141
130
|
describe '#update' do
|
142
131
|
it 'updates the object with the given attributes' do
|
143
|
-
model =
|
132
|
+
model = AMongoModel.create attributes
|
144
133
|
expect { model.update name: 'new' }.to change { model.name }
|
145
134
|
end
|
146
135
|
|
147
136
|
it 'updates the collection with the given attributes' do
|
148
|
-
model =
|
137
|
+
model = AMongoModel.create attributes
|
149
138
|
expect { model.update name: 'another' }.
|
150
|
-
to change {
|
139
|
+
to change { AMongoModel.collection.find(name: 'another').count }
|
151
140
|
end
|
152
141
|
end
|
153
142
|
|
154
143
|
describe '#delete' do
|
155
144
|
it 'removes the object from the collection' do
|
156
|
-
model =
|
157
|
-
expect { model.delete }.to change {
|
145
|
+
model = AMongoModel.create attributes
|
146
|
+
expect { model.delete }.to change { AMongoModel.collection.count }
|
158
147
|
end
|
159
148
|
end
|
160
149
|
end
|
@@ -0,0 +1,112 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
require 'redis'
|
4
|
+
require 'hiredis'
|
5
|
+
|
6
|
+
class ARedisModel
|
7
|
+
include Uorm::DSL
|
8
|
+
include Uorm::Attributes
|
9
|
+
include Uorm::Redis
|
10
|
+
|
11
|
+
field :reference, type: Uorm::Type::String
|
12
|
+
field :name, type: Uorm::Type::String
|
13
|
+
field :count, type: Uorm::Type::Integer
|
14
|
+
field :dollars, type: Uorm::Type::Float
|
15
|
+
field :favorite, type: Uorm::Type::Boolean
|
16
|
+
field :created, type: Uorm::Type::Time
|
17
|
+
end
|
18
|
+
|
19
|
+
describe ARedisModel do
|
20
|
+
after { ARedisModel.collection.flushdb }
|
21
|
+
|
22
|
+
let(:attributes) do
|
23
|
+
{
|
24
|
+
reference: '2d931510-d99f-494a-8c67-87feb05e1594',
|
25
|
+
name: 'whatever',
|
26
|
+
count: 5.to_s,
|
27
|
+
dollars: 2.3.to_s,
|
28
|
+
favorite: true.to_s,
|
29
|
+
created: Time.utc(0).to_s
|
30
|
+
}
|
31
|
+
end
|
32
|
+
|
33
|
+
describe '.new' do
|
34
|
+
subject { ARedisModel.new attributes }
|
35
|
+
|
36
|
+
its(:reference) { should == '2d931510-d99f-494a-8c67-87feb05e1594' }
|
37
|
+
its(:name) { should == 'whatever' }
|
38
|
+
its(:count) { should == 5 }
|
39
|
+
its(:dollars) { should == 2.3 }
|
40
|
+
its(:favorite) { should be_true }
|
41
|
+
its(:created) { should == Time.utc(0) }
|
42
|
+
|
43
|
+
its(:as_json) do
|
44
|
+
should == {
|
45
|
+
reference: '2d931510-d99f-494a-8c67-87feb05e1594',
|
46
|
+
name: "whatever",
|
47
|
+
count: 5,
|
48
|
+
dollars: 2.3,
|
49
|
+
favorite: true,
|
50
|
+
created: Time.utc(0).to_i,
|
51
|
+
id: nil
|
52
|
+
}
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
|
57
|
+
describe '.all' do
|
58
|
+
it 'returns a collection of all objects' do
|
59
|
+
ARedisModel.create attributes
|
60
|
+
ARedisModel.all.should be_collection_of ARedisModel
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
describe '.find' do
|
65
|
+
it 'returns the first object with the given id' do
|
66
|
+
model = ARedisModel.create attributes
|
67
|
+
ARedisModel.find(model.id).should be_instance_of ARedisModel
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
describe '.create' do
|
72
|
+
it 'adds the object to the collection' do
|
73
|
+
expect { ARedisModel.create attributes }.to change { ARedisModel.collection.dbsize }
|
74
|
+
end
|
75
|
+
|
76
|
+
it 'returns an object with the newly created attributes' do
|
77
|
+
ARedisModel.create(attributes).should be_instance_of ARedisModel
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
describe '#save' do
|
82
|
+
it 'creates the object if it does not have an id' do
|
83
|
+
model = ARedisModel.new attributes
|
84
|
+
expect { model.save }.to change { model.id }
|
85
|
+
end
|
86
|
+
|
87
|
+
it 'updates the object if it does exist' do
|
88
|
+
model = ARedisModel.create attributes
|
89
|
+
expect { model.save }.to_not change { model.id }
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
describe '#update' do
|
94
|
+
it 'updates the object with the given attributes' do
|
95
|
+
model = ARedisModel.create attributes
|
96
|
+
expect { model.update name: 'new' }.to change { model.name }
|
97
|
+
end
|
98
|
+
|
99
|
+
it 'updates the collection with the given attributes' do
|
100
|
+
model = ARedisModel.create attributes
|
101
|
+
expect { model.update name: 'another' }.
|
102
|
+
to change { ARedisModel.find(model.id).name }
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
describe '#delete' do
|
107
|
+
it 'removes the object from the collection' do
|
108
|
+
model = ARedisModel.create attributes
|
109
|
+
expect { model.delete }.to change { ARedisModel.collection.dbsize }
|
110
|
+
end
|
111
|
+
end
|
112
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,21 +1,14 @@
|
|
1
|
+
require 'support/be_collection_of'
|
1
2
|
require 'uorm'
|
2
3
|
|
3
|
-
require 'em-mongo'
|
4
4
|
require 'em-synchrony'
|
5
|
-
require 'em-synchrony/em-mongo'
|
6
|
-
|
7
|
-
Uorm::EM::Mongo::DB.name = 'uorm_test'
|
8
|
-
|
9
|
-
require 'support/be_collection_of'
|
10
5
|
|
11
6
|
# monkey patch to wrap all tests in the reactor
|
12
7
|
module RSpec
|
13
8
|
module Core
|
14
9
|
class ExampleGroup
|
15
10
|
class << self
|
16
|
-
|
17
11
|
alias_method :run_alias, :run
|
18
|
-
|
19
12
|
def run(reporter)
|
20
13
|
if EM.reactor_running?
|
21
14
|
run_alias reporter
|
data/uorm.gemspec
CHANGED
@@ -6,11 +6,11 @@ require 'uorm/version'
|
|
6
6
|
Gem::Specification.new do |gem|
|
7
7
|
gem.name = "uorm"
|
8
8
|
gem.version = Uorm::VERSION
|
9
|
-
gem.authors = [
|
10
|
-
gem.email = [
|
9
|
+
gem.authors = ['Dennis Rogenius']
|
10
|
+
gem.email = ['denro03@gmail.com']
|
11
11
|
gem.description = %q{A modular, flexible and lightweight ORM}
|
12
12
|
gem.summary = %q{A small ORM for ruby with focus on weight and modularity}
|
13
|
-
gem.homepage =
|
13
|
+
gem.homepage = 'https://github.com/denro/uorm'
|
14
14
|
|
15
15
|
gem.files = `git ls-files`.split($/)
|
16
16
|
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
@@ -21,6 +21,10 @@ Gem::Specification.new do |gem|
|
|
21
21
|
gem.add_dependency 'em-synchrony'
|
22
22
|
|
23
23
|
gem.add_development_dependency 'rspec'
|
24
|
+
gem.add_development_dependency 'debugger'
|
24
25
|
gem.add_development_dependency 'em-mongo'
|
25
26
|
gem.add_development_dependency 'bson_ext'
|
27
|
+
gem.add_development_dependency 'oj'
|
28
|
+
gem.add_development_dependency 'redis'
|
29
|
+
gem.add_development_dependency 'hiredis'
|
26
30
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: uorm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -59,6 +59,22 @@ dependencies:
|
|
59
59
|
- - ! '>='
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: debugger
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ! '>='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
70
|
+
type: :development
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
62
78
|
- !ruby/object:Gem::Dependency
|
63
79
|
name: em-mongo
|
64
80
|
requirement: !ruby/object:Gem::Requirement
|
@@ -91,6 +107,54 @@ dependencies:
|
|
91
107
|
- - ! '>='
|
92
108
|
- !ruby/object:Gem::Version
|
93
109
|
version: '0'
|
110
|
+
- !ruby/object:Gem::Dependency
|
111
|
+
name: oj
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
113
|
+
none: false
|
114
|
+
requirements:
|
115
|
+
- - ! '>='
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
122
|
+
requirements:
|
123
|
+
- - ! '>='
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '0'
|
126
|
+
- !ruby/object:Gem::Dependency
|
127
|
+
name: redis
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
129
|
+
none: false
|
130
|
+
requirements:
|
131
|
+
- - ! '>='
|
132
|
+
- !ruby/object:Gem::Version
|
133
|
+
version: '0'
|
134
|
+
type: :development
|
135
|
+
prerelease: false
|
136
|
+
version_requirements: !ruby/object:Gem::Requirement
|
137
|
+
none: false
|
138
|
+
requirements:
|
139
|
+
- - ! '>='
|
140
|
+
- !ruby/object:Gem::Version
|
141
|
+
version: '0'
|
142
|
+
- !ruby/object:Gem::Dependency
|
143
|
+
name: hiredis
|
144
|
+
requirement: !ruby/object:Gem::Requirement
|
145
|
+
none: false
|
146
|
+
requirements:
|
147
|
+
- - ! '>='
|
148
|
+
- !ruby/object:Gem::Version
|
149
|
+
version: '0'
|
150
|
+
type: :development
|
151
|
+
prerelease: false
|
152
|
+
version_requirements: !ruby/object:Gem::Requirement
|
153
|
+
none: false
|
154
|
+
requirements:
|
155
|
+
- - ! '>='
|
156
|
+
- !ruby/object:Gem::Version
|
157
|
+
version: '0'
|
94
158
|
description: A modular, flexible and lightweight ORM
|
95
159
|
email:
|
96
160
|
- denro03@gmail.com
|
@@ -114,13 +178,16 @@ files:
|
|
114
178
|
- lib/uorm/em-mongo/persistance.rb
|
115
179
|
- lib/uorm/field.rb
|
116
180
|
- lib/uorm/field_collection.rb
|
181
|
+
- lib/uorm/redis.rb
|
182
|
+
- lib/uorm/redis/persistance.rb
|
117
183
|
- lib/uorm/type.rb
|
118
184
|
- lib/uorm/version.rb
|
185
|
+
- spec/em-mongo_spec.rb
|
186
|
+
- spec/redis_synchrony_spec.rb
|
119
187
|
- spec/spec_helper.rb
|
120
188
|
- spec/support/be_collection_of.rb
|
121
|
-
- spec/urm_spec.rb
|
122
189
|
- uorm.gemspec
|
123
|
-
homepage:
|
190
|
+
homepage: https://github.com/denro/uorm
|
124
191
|
licenses: []
|
125
192
|
post_install_message:
|
126
193
|
rdoc_options: []
|
@@ -145,6 +212,7 @@ signing_key:
|
|
145
212
|
specification_version: 3
|
146
213
|
summary: A small ORM for ruby with focus on weight and modularity
|
147
214
|
test_files:
|
215
|
+
- spec/em-mongo_spec.rb
|
216
|
+
- spec/redis_synchrony_spec.rb
|
148
217
|
- spec/spec_helper.rb
|
149
218
|
- spec/support/be_collection_of.rb
|
150
|
-
- spec/urm_spec.rb
|