tinymongo 0.1.1 → 0.1.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/README.rdoc +3 -3
- data/VERSION +1 -1
- data/init.rb +0 -3
- data/lib/generators/USAGE +1 -0
- data/lib/generators/templates/tinymongo.rb +2 -0
- data/lib/generators/tinymongo_generator.rb +1 -0
- data/lib/tinymongo/model.rb +14 -16
- data/lib/tinymongo.rb +8 -1
- data/tinymongo.gemspec +2 -1
- metadata +3 -2
data/README.rdoc
CHANGED
@@ -6,15 +6,15 @@ Simple MongoDB wrapper
|
|
6
6
|
|
7
7
|
gem install tinymongo
|
8
8
|
|
9
|
-
== Rails Setup
|
9
|
+
== Rails Setup (Rails 3)
|
10
10
|
|
11
|
-
To create TinyMongo config file (config/tinymongo.yml), do the following:
|
11
|
+
To create TinyMongo config file (config/tinymongo.yml) and initializer file (config/initializers/tinymongo.rb), do the following:
|
12
12
|
|
13
13
|
rails generate tinymongo
|
14
14
|
|
15
15
|
== Connecting To MongoDB directly (for non-Rails projects)
|
16
16
|
|
17
|
-
TinyMongo.configure({:host => 'localhost', :database => '
|
17
|
+
TinyMongo.configure({:host => 'localhost', :database => 'db_name'})
|
18
18
|
TinyMongo.connect
|
19
19
|
|
20
20
|
== Example
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.2
|
data/init.rb
CHANGED
data/lib/generators/USAGE
CHANGED
data/lib/tinymongo/model.rb
CHANGED
@@ -23,6 +23,7 @@ module TinyMongo
|
|
23
23
|
end
|
24
24
|
|
25
25
|
def db
|
26
|
+
raise 'Not connected to MongoDB. Please connect using TinyMongo.connect().' unless TinyMongo.connected?
|
26
27
|
TinyMongo.db
|
27
28
|
end
|
28
29
|
|
@@ -46,10 +47,11 @@ module TinyMongo
|
|
46
47
|
|
47
48
|
def find_one(*args)
|
48
49
|
if([BSON::ObjectID, String].include? args[0].class)
|
49
|
-
|
50
|
+
o = collection.find_one({'_id' => Helper.bson_object_id(args[0])})
|
50
51
|
else
|
51
|
-
|
52
|
+
o = collection.find_one(*args)
|
52
53
|
end
|
54
|
+
o ? self.new(o) : nil
|
53
55
|
end
|
54
56
|
|
55
57
|
def create(hash)
|
@@ -103,7 +105,16 @@ module TinyMongo
|
|
103
105
|
end
|
104
106
|
|
105
107
|
def save
|
106
|
-
|
108
|
+
if(@_tinymongo_hash['_id'].nil?) # new
|
109
|
+
oid = collection.save(@_tinymongo_hash)
|
110
|
+
if(oid)
|
111
|
+
@_tinymongo_hash.delete(:_id)
|
112
|
+
@_tinymongo_hash['_id'] = oid
|
113
|
+
end
|
114
|
+
else # update
|
115
|
+
collection.update({ '_id' => @_tinymongo_hash['_id'] }, @_tinymongo_hash, :upsert => true)
|
116
|
+
end
|
117
|
+
return self
|
107
118
|
end
|
108
119
|
|
109
120
|
def update_attribute(name, value)
|
@@ -255,18 +266,5 @@ module TinyMongo
|
|
255
266
|
collection.update({ '_id' => @_tinymongo_hash['_id'] }, { '$pullAll' => Helper.hashify_models_in_hash(hash) })
|
256
267
|
end
|
257
268
|
end
|
258
|
-
|
259
|
-
protected
|
260
|
-
def create_or_update
|
261
|
-
if(@_tinymongo_hash['_id'].nil?) # new
|
262
|
-
oid = collection.save(@_tinymongo_hash)
|
263
|
-
@_tinymongo_hash.delete(:_id)
|
264
|
-
@_tinymongo_hash['_id'] = oid
|
265
|
-
else # update
|
266
|
-
collection.update({ '_id' => @_tinymongo_hash['_id'] }, @_tinymongo_hash)
|
267
|
-
end
|
268
|
-
return self
|
269
|
-
end
|
270
|
-
|
271
269
|
end
|
272
270
|
end
|
data/lib/tinymongo.rb
CHANGED
@@ -11,6 +11,7 @@ module TinyMongo
|
|
11
11
|
@database = config['database'] || 'mongo'
|
12
12
|
@username = config['username']
|
13
13
|
@password = config['password']
|
14
|
+
@configured = true
|
14
15
|
end
|
15
16
|
|
16
17
|
def db
|
@@ -18,6 +19,8 @@ module TinyMongo
|
|
18
19
|
end
|
19
20
|
|
20
21
|
def connect
|
22
|
+
raise 'Please do TinyMongo.configure() before attempting to connect.' unless @configured
|
23
|
+
|
21
24
|
if defined?(PhusionPassenger) && @connection
|
22
25
|
PhusionPassenger.on_event(:starting_worker_process) do |forked|
|
23
26
|
@connection.connect_to_master if forked
|
@@ -34,7 +37,11 @@ module TinyMongo
|
|
34
37
|
end
|
35
38
|
end
|
36
39
|
|
37
|
-
true
|
40
|
+
@connected = true
|
41
|
+
end
|
42
|
+
|
43
|
+
def connected?
|
44
|
+
@connected ? true : false
|
38
45
|
end
|
39
46
|
end
|
40
47
|
end
|
data/tinymongo.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{tinymongo}
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.2"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Peter Jihoon Kim"]
|
@@ -24,6 +24,7 @@ Gem::Specification.new do |s|
|
|
24
24
|
"VERSION",
|
25
25
|
"init.rb",
|
26
26
|
"lib/generators/USAGE",
|
27
|
+
"lib/generators/templates/tinymongo.rb",
|
27
28
|
"lib/generators/templates/tinymongo.yml.erb",
|
28
29
|
"lib/generators/tinymongo_generator.rb",
|
29
30
|
"lib/tinymongo.rb",
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 1
|
8
|
-
-
|
9
|
-
version: 0.1.
|
8
|
+
- 2
|
9
|
+
version: 0.1.2
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Peter Jihoon Kim
|
@@ -60,6 +60,7 @@ files:
|
|
60
60
|
- VERSION
|
61
61
|
- init.rb
|
62
62
|
- lib/generators/USAGE
|
63
|
+
- lib/generators/templates/tinymongo.rb
|
63
64
|
- lib/generators/templates/tinymongo.yml.erb
|
64
65
|
- lib/generators/tinymongo_generator.rb
|
65
66
|
- lib/tinymongo.rb
|