smart_model 0.3.0 → 0.3.1
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/lib/smart_model/attributes.rb +25 -0
- data/lib/smart_model/relationships.rb +16 -0
- data/lib/smart_model.rb +2 -35
- data/rails/init.rb +3 -2
- metadata +5 -3
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'mongo_mapper'
|
3
|
+
|
4
|
+
module SmartModel
|
5
|
+
module Attributes
|
6
|
+
def self.included(model)
|
7
|
+
model.send :include , MongoMapper::Document
|
8
|
+
%w(String Integer Boolean Array ObjectId Date Time).each do |name|
|
9
|
+
model.class_eval "
|
10
|
+
private
|
11
|
+
def self.#{name.downcase}(value , options = {})
|
12
|
+
key value , #{name}, options
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.#{name.downcase.pluralize}(values , options = {})
|
16
|
+
values.each do |val|
|
17
|
+
key val , #{name} , options
|
18
|
+
end
|
19
|
+
end
|
20
|
+
"
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'mongo_mapper'
|
3
|
+
|
4
|
+
module SmartModel
|
5
|
+
module Relationships
|
6
|
+
def self.included(model)
|
7
|
+
model.send :include , MongoMapper::Document
|
8
|
+
model.class_eval "
|
9
|
+
def self.belongs_to(value)
|
10
|
+
key \"\#{value}_id\" , ObjectId
|
11
|
+
super value
|
12
|
+
end"
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
data/lib/smart_model.rb
CHANGED
@@ -1,44 +1,11 @@
|
|
1
1
|
require 'rubygems'
|
2
2
|
require 'mongo_mapper'
|
3
|
+
require 'smart_model/relationships'
|
3
4
|
|
4
5
|
module SmartModel
|
5
|
-
module Attributes
|
6
|
-
def self.included(model)
|
7
|
-
model.send :include , MongoMapper::Document
|
8
|
-
%w(String Integer Boolean Array ObjectId Date Time).each do |name|
|
9
|
-
model.class_eval "
|
10
|
-
private
|
11
|
-
def self.#{name.downcase}(value , options = {})
|
12
|
-
key value , #{name}, options
|
13
|
-
end
|
14
|
-
|
15
|
-
def self.#{name.downcase.pluralize}(values , options = {})
|
16
|
-
values.each do |val|
|
17
|
-
key val , #{name} , options
|
18
|
-
end
|
19
|
-
end
|
20
|
-
"
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
module Relationships
|
26
|
-
def self.included(model)
|
27
|
-
model.send :include , MongoMapper::Document
|
28
|
-
model.class_eval "
|
29
|
-
def self.belongs_to(value)
|
30
|
-
key \"\#{value}_id\" , ObjectId
|
31
|
-
super value
|
32
|
-
end"
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
6
|
module Base
|
37
7
|
def self.included(model)
|
38
|
-
|
39
|
-
model.send :include , MongoMapper::Document
|
40
|
-
model.send :include , SmartModel::Attributes
|
41
|
-
model.send :include , SmartModel::Relationships
|
8
|
+
model.send :include , MongoMapper::Document , SmartModel::Attributes , SmartModel::Relationships
|
42
9
|
end
|
43
10
|
end
|
44
11
|
end
|
data/rails/init.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
-
|
2
|
-
require File.join(File.dirname(__FILE__), "..", "lib", "smart_model")
|
1
|
+
require File.join(File.dirname(__FILE__), "..", "lib", "smart_model.rb")
|
2
|
+
require File.join(File.dirname(__FILE__), "..", "lib", "smart_model" , "relationships")
|
3
|
+
require File.join(File.dirname(__FILE__), "..", "lib", "smart_model" , "attributes")
|
3
4
|
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: smart_model
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 17
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 3
|
9
|
-
-
|
10
|
-
version: 0.3.
|
9
|
+
- 1
|
10
|
+
version: 0.3.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- "Nathan Proen\xC3\xA7a"
|
@@ -81,6 +81,8 @@ files:
|
|
81
81
|
- lib/generators/smart_model/USAGE
|
82
82
|
- lib/generators/smart_model/smart_model_generator.rb
|
83
83
|
- lib/smart_model.rb
|
84
|
+
- lib/smart_model/attributes.rb
|
85
|
+
- lib/smart_model/relationships.rb
|
84
86
|
- test/smart_model_test.rb
|
85
87
|
- test/test_helper.rb
|
86
88
|
- rails/init.rb
|