active_mongo 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
data/README.textile ADDED
@@ -0,0 +1,91 @@
1
+ h1. ActiveMongo
2
+
3
+ ActiveMongo is a Rails 3.0 and Ruby 1.9 compatible Mongo ORM.
4
+
5
+ It currently supports all common validations, find (single or many items) and has_many association.
6
+
7
+ Feel free to it if you're adventurous.
8
+
9
+ h2. Installation
10
+
11
+ # Add to your Rails application Gemfile
12
+ # Run gem bundle
13
+ # Load gem. For example, create initializer that says "require 'active_mongo'"
14
+ # Create config/mongo.yml. Format is the same as database.yml. Database, host and port are required
15
+ # Create a model, which is a subclass of ActiveMonog::Base
16
+
17
+ h2. Usage
18
+
19
+ h3. Validations
20
+
21
+ All ActiveModel validations are supported. validates_uniqueness_of with optional :scope => [:column] is available too.
22
+
23
+ h3. Collection methods
24
+
25
+ <pre><code>
26
+ Model.find(ID) # get by ID
27
+ Model.find #get whole collection
28
+ Model.find(args) #run a query, args are the same as for mongo_ruby_driver
29
+
30
+ Model.destroy_all
31
+ Model.destroy_all(args)
32
+ </code></pre>
33
+
34
+ h3. Create an object
35
+
36
+ <pre><code>
37
+ Model.new()
38
+ Model.new(:attribute => "value")
39
+
40
+ Model.save
41
+ </code></pre>
42
+
43
+ h3. Update an object
44
+
45
+ <pre><code>
46
+ object.attribute = "value" #No need to declare anywhere before setting, see?
47
+ object.update_attributes(:attribute => "value") #does not save!
48
+
49
+ object.unset(:attribute) #removes :attribute from the object and saves ONLY this change
50
+
51
+ object.save
52
+ object.save(false) #do not run validations
53
+ </code></pre>
54
+
55
+ h3. Destroy object
56
+
57
+ <pre><code>
58
+ object.destroy
59
+ </code></pre>
60
+
61
+ h3. HasMany Associations
62
+
63
+ <pre><code>
64
+ #in model
65
+ has_many :items#, :class_name => "Item", :foreign_key => "item_id"
66
+
67
+ #in code
68
+ object.items.find()
69
+ object.items.remove_all()
70
+ object.items.new()
71
+ </code></pre>
72
+
73
+ h3. Mass assignment
74
+
75
+ You can limit what may be assigned by passing a hash to #new or #update_attributes with this option.
76
+
77
+ <pre><code>
78
+ attr_accessible :attribute
79
+ </code></pre>
80
+
81
+ h2. Coming soon
82
+
83
+ * Named scopes
84
+ * Callbacks
85
+ * Tests
86
+ * Mongo authentication support
87
+ * Documentation
88
+
89
+ h2. License
90
+
91
+ This code is distributed under MIT license.
data/Rakefile CHANGED
@@ -8,7 +8,7 @@ begin
8
8
  gem.summary = %Q{Schemaless Mongo ORM for Rails 3.0}
9
9
  gem.description = %Q{Schemaless Mongo ORM for Rails 3.0}
10
10
  gem.email = "mantas@idev.lt"
11
- gem.homepage = "http://github.com/mantas/active_mongo"
11
+ gem.homepage = "http://github.com/mantas/ActiveMongo"
12
12
  gem.authors = ["Mantas Masalskis"]
13
13
  gem.add_development_dependency "thoughtbot-shoulda", ">= 0"
14
14
  # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.1
1
+ 0.1.2
data/active_mongo.gemspec CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{active_mongo}
8
- s.version = "0.1.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 = ["Mantas Masalskis"]
@@ -14,13 +14,13 @@ Gem::Specification.new do |s|
14
14
  s.email = %q{mantas@idev.lt}
15
15
  s.extra_rdoc_files = [
16
16
  "LICENSE",
17
- "README.rdoc"
17
+ "README.textile"
18
18
  ]
19
19
  s.files = [
20
20
  ".document",
21
21
  ".gitignore",
22
22
  "LICENSE",
23
- "README.rdoc",
23
+ "README.textile",
24
24
  "Rakefile",
25
25
  "VERSION",
26
26
  "active_mongo.gemspec",
@@ -34,7 +34,7 @@ Gem::Specification.new do |s|
34
34
  "test/helper.rb",
35
35
  "test/test_active_mongo.rb"
36
36
  ]
37
- s.homepage = %q{http://github.com/mantas/active_mongo}
37
+ s.homepage = %q{http://github.com/mantas/ActiveMongo}
38
38
  s.rdoc_options = ["--charset=UTF-8"]
39
39
  s.require_paths = ["lib"]
40
40
  s.rubygems_version = %q{1.3.5}
@@ -29,8 +29,8 @@ ActiveMongo::Base.class_eval do
29
29
  return h
30
30
  end
31
31
 
32
- def save
33
- return false if !self.valid?
32
+ def save(do_validate = true)
33
+ return false if do_validate && !self.valid?
34
34
 
35
35
  id = self.class.collection.save(self.to_hash)
36
36
 
@@ -76,6 +76,10 @@ ActiveMongo::Base.class_eval do
76
76
  end
77
77
 
78
78
  def unset(var)
79
+ self.set_var(var, nil)
80
+
81
+ @vars.delete var.to_sym
82
+
79
83
  return false if self.new_record?
80
84
 
81
85
  hash = self.class.collection.find_one self._id
@@ -84,9 +88,6 @@ ActiveMongo::Base.class_eval do
84
88
 
85
89
  self.class.collection.save(hash)
86
90
 
87
- self.set_value(var, nil)
88
-
89
- @vars.delete var.to_sym
90
91
 
91
92
  true
92
93
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_mongo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mantas Masalskis
@@ -30,12 +30,12 @@ extensions: []
30
30
 
31
31
  extra_rdoc_files:
32
32
  - LICENSE
33
- - README.rdoc
33
+ - README.textile
34
34
  files:
35
35
  - .document
36
36
  - .gitignore
37
37
  - LICENSE
38
- - README.rdoc
38
+ - README.textile
39
39
  - Rakefile
40
40
  - VERSION
41
41
  - active_mongo.gemspec
@@ -49,7 +49,7 @@ files:
49
49
  - test/helper.rb
50
50
  - test/test_active_mongo.rb
51
51
  has_rdoc: true
52
- homepage: http://github.com/mantas/active_mongo
52
+ homepage: http://github.com/mantas/ActiveMongo
53
53
  licenses: []
54
54
 
55
55
  post_install_message:
data/README.rdoc DELETED
@@ -1,7 +0,0 @@
1
- ActiveMongo is a Rails 3.0 and Ruby 1.9 compatible Mongo ORM.
2
-
3
- Currently supports all common validations, find (single or many items) and has_many association.
4
-
5
- Feel free to it if you're adventurous.
6
-
7
- This code is distrubuted under MIT license.