smart_model 0.3.4 → 0.3.7
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/{MIT-LICENSE → LICENSE} +0 -0
- data/README.rdoc +41 -33
- data/Rakefile +5 -0
- data/lib/generators/smart_model/USAGE +5 -5
- data/lib/generators/smart_model/smart_model_generator.rb +1 -1
- data/lib/smart_model/attributes.rb +0 -1
- data/lib/smart_model/relationships.rb +0 -1
- data/lib/smart_model.rb +1 -4
- data/rails/init.rb +1 -1
- data/test/smart_model_generator_test.rb +4 -0
- data/test/smart_model_test.rb +3 -9
- data/test/test_helper.rb +3 -5
- metadata +23 -68
data/{MIT-LICENSE → LICENSE}
RENAMED
File without changes
|
data/README.rdoc
CHANGED
@@ -1,61 +1,69 @@
|
|
1
|
-
= SmartModel
|
1
|
+
= SmartModel - (http://nathanpro.github.com/SmartModel)
|
2
2
|
|
3
3
|
== What is
|
4
|
-
SmartModel is a
|
4
|
+
SmartModel is a Rails 3 Library(plugin and gem) made to improve the way you use MongoMapper.
|
5
|
+
It gives you aliases, and even a model generator for MongoDB models.
|
5
6
|
|
6
7
|
== Setup
|
7
8
|
=== As plugin
|
8
|
-
To setup SmartModel as a plugin
|
9
|
-
|
10
|
-
|
9
|
+
To setup SmartModel as a plugin, you need mongo_mapper (that needs bson_ext), so add this to your Gemfile:
|
10
|
+
gem 'mongo_mapper'
|
11
|
+
gem 'bson_ext'
|
11
12
|
And then run
|
12
|
-
|
13
|
+
$ rails plugin install http://github.com/nathanPro/SmartModel.git
|
13
14
|
=== As a gem
|
14
|
-
Just add
|
15
|
-
|
16
|
-
To your Gemfile and run
|
17
|
-
|
18
|
-
|
15
|
+
Just add:
|
16
|
+
gem 'smart_model'
|
17
|
+
To your Gemfile and run:
|
18
|
+
$ [sudo] bundle install
|
19
|
+
|
20
|
+
And you are done!
|
19
21
|
|
20
22
|
== Generator
|
21
23
|
SmartModel gives you the smart_model generator:
|
22
|
-
|
24
|
+
$ rails g smart_model project name:string content:string created_at:date in_progress:done
|
25
|
+
|
23
26
|
That creates a model Project with the SmartModel::Base module included
|
24
27
|
|
25
28
|
== SmartModel::Base
|
26
29
|
Is a class with all the MongoMapper::Document methods, and with SmartModel::Attributes and SmartModel::Relationships included
|
27
30
|
=== SmartModel::Attributes
|
28
31
|
It is responsible for handling the columns of yout database. To add a title columns to your project model, that keeps a string ,in example, you can just type this:
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
32
|
+
class Project
|
33
|
+
include SmartModel::Attributes # Load SmartModel
|
34
|
+
string :title , :required => true # Create title column ,that accept strings
|
35
|
+
end
|
36
|
+
|
33
37
|
Or if you have many columns with the same behaviour , you can just manage them just like this:
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
+
class Project
|
39
|
+
include SmartModel::Attributes
|
40
|
+
strings [:title , : content] , :required => true # Create :title and :content columns
|
41
|
+
end
|
42
|
+
|
38
43
|
The given methods are
|
39
44
|
string(s) , integer(s) , boolean(s) , array(s) , objectid(s) , date(s)
|
45
|
+
|
40
46
|
=== SmartModel::Relationships
|
41
47
|
It is responsible for making the belongs_to method also create de column in the database for the id
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
48
|
+
class Project
|
49
|
+
include SmartModel::Relationships
|
50
|
+
belongs_to :task
|
51
|
+
# however , if you call , in example
|
52
|
+
# string :title
|
53
|
+
# it will raise an error , because you didn't included the Attributes module
|
54
|
+
end
|
49
55
|
|
50
56
|
== TO-DO
|
51
|
-
|
57
|
+
Create a scaffold generator
|
52
58
|
|
53
59
|
== Why have I done it?
|
54
|
-
I was on vacation
|
60
|
+
I was on vacation, so, I decided to code something usefull, and this was my first idea.
|
61
|
+
|
62
|
+
== Contributors / Maintainers
|
55
63
|
|
56
|
-
|
57
|
-
|
64
|
+
* Nathan Proença (nathan@vieiraproenca.com)
|
65
|
+
* Rodrigo Alves Vieira (rodrigo3n@gmail.com)
|
58
66
|
|
59
|
-
==
|
60
|
-
Read under the amazing MIT license
|
67
|
+
== Copyright
|
61
68
|
|
69
|
+
Copyright © 2010 Nathan Proença. Read LICENCE for details.
|
data/Rakefile
CHANGED
@@ -5,11 +5,16 @@ require 'rake/rdoctask'
|
|
5
5
|
desc 'Default: run unit tests.'
|
6
6
|
task :default => :test
|
7
7
|
|
8
|
+
task :build do
|
9
|
+
system 'gem build smart_model.gemspec'
|
10
|
+
end
|
11
|
+
|
8
12
|
desc 'Test the smart_model Gem and Plugin.'
|
9
13
|
Rake::TestTask.new(:test) do |t|
|
10
14
|
t.libs << 'lib'
|
11
15
|
t.libs << 'test'
|
12
16
|
t.pattern = 'test/**/*_test.rb'
|
17
|
+
t.test_files = Dir["test/**/*_test.rb"]
|
13
18
|
t.verbose = true
|
14
19
|
end
|
15
20
|
|
@@ -1,11 +1,11 @@
|
|
1
1
|
Description:
|
2
|
-
Create
|
2
|
+
Create Rails files for model generator, using MongoMapper and SmartModel.
|
3
3
|
|
4
4
|
Example:
|
5
|
-
rails generate smart_model
|
5
|
+
rails generate smart_model Post
|
6
6
|
|
7
7
|
This will create:
|
8
|
-
app/models/
|
9
|
-
test/unit/
|
10
|
-
test/fixtures/
|
8
|
+
app/models/post.rb
|
9
|
+
test/unit/post_test.rb
|
10
|
+
test/fixtures/post.yml
|
11
11
|
|
data/lib/smart_model.rb
CHANGED
data/rails/init.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
1
|
require File.join(File.dirname(__FILE__), "..", "lib", "smart_model" , "attributes")
|
2
2
|
require File.join(File.dirname(__FILE__), "..", "lib", "smart_model" , "relationships")
|
3
|
-
require File.join(File.dirname(__FILE__), "..", "lib", "smart_model
|
3
|
+
require File.join(File.dirname(__FILE__), "..", "lib", "smart_model")
|
4
4
|
|
data/test/smart_model_test.rb
CHANGED
@@ -1,11 +1,5 @@
|
|
1
|
-
require
|
2
|
-
|
3
|
-
class SmartModelTest < ActiveSupport::TestCase
|
4
|
-
|
5
|
-
test "SmartModel model proper inclusion" do
|
6
|
-
class TestSmartModelLoading
|
7
|
-
include SmartModel::Base
|
8
|
-
end
|
9
|
-
end
|
1
|
+
require 'test_helper'
|
10
2
|
|
3
|
+
class SmartModelTest < Test::Unit::TestCase
|
11
4
|
end
|
5
|
+
|
data/test/test_helper.rb
CHANGED
@@ -1,5 +1,3 @@
|
|
1
|
-
require
|
2
|
-
require '
|
3
|
-
require '
|
4
|
-
require '../lib/smart_model.rb'
|
5
|
-
|
1
|
+
%w(rubygems test/unit active_support).each { |gem| require gem }
|
2
|
+
require File.expand_path('') + '/lib/smart_model'
|
3
|
+
require File.expand_path('') + '/rails/init'
|
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: 29
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 3
|
9
|
-
-
|
10
|
-
version: 0.3.
|
9
|
+
- 7
|
10
|
+
version: 0.3.7
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- "Nathan Proen\xC3\xA7a"
|
@@ -15,78 +15,32 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-
|
18
|
+
date: 2010-06-25 00:00:00 -03:00
|
19
19
|
default_executable:
|
20
|
-
dependencies:
|
21
|
-
|
22
|
-
name: rails
|
23
|
-
prerelease: false
|
24
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
|
-
requirements:
|
27
|
-
- - ">="
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
hash: 996871346
|
30
|
-
segments:
|
31
|
-
- 3
|
32
|
-
- 0
|
33
|
-
- 0beta4
|
34
|
-
version: 3.0.0beta4
|
35
|
-
type: :runtime
|
36
|
-
version_requirements: *id001
|
37
|
-
- !ruby/object:Gem::Dependency
|
38
|
-
name: mongo_mapper
|
39
|
-
prerelease: false
|
40
|
-
requirement: &id002 !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
|
-
requirements:
|
43
|
-
- - ">="
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
hash: 59
|
46
|
-
segments:
|
47
|
-
- 0
|
48
|
-
- 8
|
49
|
-
- 2
|
50
|
-
version: 0.8.2
|
51
|
-
type: :runtime
|
52
|
-
version_requirements: *id002
|
53
|
-
- !ruby/object:Gem::Dependency
|
54
|
-
name: bson_ext
|
55
|
-
prerelease: false
|
56
|
-
requirement: &id003 !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
|
-
requirements:
|
59
|
-
- - ">="
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
hash: 21
|
62
|
-
segments:
|
63
|
-
- 1
|
64
|
-
- 0
|
65
|
-
- 1
|
66
|
-
version: 1.0.1
|
67
|
-
type: :runtime
|
68
|
-
version_requirements: *id003
|
20
|
+
dependencies: []
|
21
|
+
|
69
22
|
description: Gives you support to use MongoDB and MongoMapper in Rails apps
|
70
23
|
email: nathan@vieiraproenca.com
|
71
24
|
executables: []
|
72
25
|
|
73
26
|
extensions: []
|
74
27
|
|
75
|
-
extra_rdoc_files:
|
76
|
-
|
28
|
+
extra_rdoc_files:
|
29
|
+
- README.rdoc
|
77
30
|
files:
|
78
|
-
- lib/
|
31
|
+
- lib/smart_model/attributes.rb
|
32
|
+
- lib/smart_model/relationships.rb
|
33
|
+
- lib/smart_model.rb
|
79
34
|
- lib/generators/smart_model/templates/fixture.yml
|
35
|
+
- lib/generators/smart_model/templates/model.rb
|
80
36
|
- lib/generators/smart_model/templates/test.rb
|
81
|
-
- lib/generators/smart_model/USAGE
|
82
37
|
- lib/generators/smart_model/smart_model_generator.rb
|
83
|
-
- lib/smart_model
|
84
|
-
- lib/smart_model/attributes.rb
|
85
|
-
- lib/smart_model/relationships.rb
|
86
|
-
- test/smart_model_test.rb
|
38
|
+
- lib/generators/smart_model/USAGE
|
87
39
|
- test/test_helper.rb
|
40
|
+
- test/smart_model_test.rb
|
41
|
+
- test/smart_model_generator_test.rb
|
88
42
|
- rails/init.rb
|
89
|
-
-
|
43
|
+
- LICENSE
|
90
44
|
- Rakefile
|
91
45
|
- README.rdoc
|
92
46
|
has_rdoc: true
|
@@ -94,8 +48,8 @@ homepage: http://github.com/nathanpro/SmartModel
|
|
94
48
|
licenses: []
|
95
49
|
|
96
50
|
post_install_message:
|
97
|
-
rdoc_options:
|
98
|
-
|
51
|
+
rdoc_options:
|
52
|
+
- --charset=UTF-8
|
99
53
|
require_paths:
|
100
54
|
- lib
|
101
55
|
required_ruby_version: !ruby/object:Gem::Requirement
|
@@ -118,10 +72,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
118
72
|
version: "0"
|
119
73
|
requirements: []
|
120
74
|
|
121
|
-
rubyforge_project:
|
75
|
+
rubyforge_project: smart_model
|
122
76
|
rubygems_version: 1.3.7
|
123
77
|
signing_key:
|
124
78
|
specification_version: 3
|
125
|
-
summary: Jump all the power of MongoDB and
|
126
|
-
test_files:
|
127
|
-
|
79
|
+
summary: Jump all the power of MongoDB and MongoMapper into your Rails application
|
80
|
+
test_files:
|
81
|
+
- test/smart_model_test.rb
|
82
|
+
- test/smart_model_generator_test.rb
|