schemaker 0.1.0 → 0.1.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/Gemfile +11 -5
- data/VERSION +1 -1
- data/lib/schemaker/models/base_model.rb +4 -4
- data/lib/schemaker/models.rb +4 -0
- data/lib/schemaker.rb +2 -1
- data/schemaker.gemspec +42 -17
- data/spec/active_record/active_record_helper.rb +32 -0
- data/spec/active_record/active_record_spec.rb +47 -0
- data/spec/active_record/db/database.yml +4 -0
- data/spec/active_record/migrations/create_models.rb +27 -0
- data/spec/models_helper.rb +1 -0
- data/spec/schemaker/model/subject_spec.rb +1 -1
- metadata +99 -18
data/Gemfile
CHANGED
@@ -1,11 +1,17 @@
|
|
1
|
-
source
|
1
|
+
source :rubygems
|
2
2
|
|
3
|
-
|
3
|
+
gem 'sugar-high', '>= 0.6'
|
4
|
+
gem 'require_all', '~> 1.2.0'
|
4
5
|
|
5
|
-
group :development do
|
6
|
+
group :development, :test do
|
6
7
|
gem "activerecord", ">= 3.0.1"
|
7
8
|
gem "rspec", ">= 2.6.0"
|
8
|
-
gem "bundler", "
|
9
|
-
gem "jeweler", "
|
9
|
+
gem "bundler", ">= 1"
|
10
|
+
gem "jeweler", ">= 1.6"
|
10
11
|
gem "rcov", ">= 0"
|
12
|
+
gem 'yard'
|
13
|
+
gem 'database_cleaner', '~> 0.6.8', :git => "git://github.com/kristianmandrup/database_cleaner.git"
|
14
|
+
gem 'sqlite3'
|
15
|
+
gem 'shoulda'
|
16
|
+
gem 'cutter'
|
11
17
|
end
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.1
|
@@ -13,8 +13,8 @@ module Schemaker
|
|
13
13
|
# @param [Schema::Models] each model needs to have access to the collection of models it may need to create relations with
|
14
14
|
# @param [Class] each model must have a reference to the Class it aims to configure!
|
15
15
|
def initialize models, my_class
|
16
|
-
raise ArgumentError, "The first argument must be a Schema::Models instance" if !models.is_a?(Schemaker::Models)
|
17
|
-
raise ArgumentError, "The second argument must be the Class that is to be configured" if !my_class.is_a?(Class)
|
16
|
+
raise ArgumentError, "The first argument must be a Schema::Models instance, was #{models}" if !models.is_a?(Schemaker::Models)
|
17
|
+
raise ArgumentError, "The second argument must be the Class that is to be configured, was #{my_class}" if !my_class.is_a?(Class)
|
18
18
|
|
19
19
|
@models = models
|
20
20
|
@my_class = my_class
|
@@ -116,8 +116,8 @@ module Schemaker
|
|
116
116
|
# @param [Class, Symbol] the Class that is the object of the relationship, fx Role for a User.has_many relationship
|
117
117
|
# @param [Hash] any extra relationship options, fx for a :through relationship, or to indicate :class_name etc.
|
118
118
|
def make_relationship relationship_name, clazz, options = {}
|
119
|
-
|
120
|
-
|
119
|
+
# inspect!(binding)
|
120
|
+
key_name = (options.delete(:key) || key(clazz)).to_sym # first must be a sym too
|
121
121
|
opts_str = options.empty? ? '' : options.inspect.insert(0, ', ').gsub(/[{}]/ , '')
|
122
122
|
log "#{my_class_name}.#{relationship_name} :#{key_name}#{opts_str}" if log_on?
|
123
123
|
|
data/lib/schemaker/models.rb
CHANGED
@@ -27,6 +27,10 @@ module Schemaker
|
|
27
27
|
# @param join_class [Class]
|
28
28
|
# @param options [Hash] - contains the key to be used for the main field (subject key) and possibly other options to configure the models more precisely as needed
|
29
29
|
def initialize subject_class, object_class, join_class, options = {}
|
30
|
+
raise ArgumentError, "subject class not given" if !subject_class
|
31
|
+
raise ArgumentError, "object class not given" if !object_class
|
32
|
+
raise ArgumentError, "join class not given" if !join_class
|
33
|
+
|
30
34
|
@subject_model = SubjectModel.new self, subject_class, options[:subject_key]
|
31
35
|
@object_model = ObjectModel.new self, object_class
|
32
36
|
@join_model = JoinModel.new self, join_class
|
data/lib/schemaker.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'cutter'
|
1
2
|
module Schemaker
|
2
3
|
class << self
|
3
4
|
attr_accessor :log_on
|
@@ -11,4 +12,4 @@ module Schemaker
|
|
11
12
|
autoload :JoinModel, 'schemaker/models/join_model'
|
12
13
|
autoload :ObjectModel, 'schemaker/models/object_model'
|
13
14
|
autoload :SubjectModel, 'schemaker/models/subject_model'
|
14
|
-
end
|
15
|
+
end
|
data/schemaker.gemspec
CHANGED
@@ -4,14 +4,14 @@
|
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
|
-
s.name =
|
8
|
-
s.version = "0.1.
|
7
|
+
s.name = "schemaker"
|
8
|
+
s.version = "0.1.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
-
s.authors = [
|
12
|
-
s.date =
|
13
|
-
s.description =
|
14
|
-
s.email =
|
11
|
+
s.authors = ["Kristian Mandrup"]
|
12
|
+
s.date = "2011-10-12"
|
13
|
+
s.description = "Configures relationships between subject, join and object model for a given behavior"
|
14
|
+
s.email = "kmandrup@gmail.com"
|
15
15
|
s.extra_rdoc_files = [
|
16
16
|
"LICENSE.txt",
|
17
17
|
"README.textile"
|
@@ -31,6 +31,10 @@ Gem::Specification.new do |s|
|
|
31
31
|
"lib/schemaker/models/object_model.rb",
|
32
32
|
"lib/schemaker/models/subject_model.rb",
|
33
33
|
"schemaker.gemspec",
|
34
|
+
"spec/active_record/active_record_helper.rb",
|
35
|
+
"spec/active_record/active_record_spec.rb",
|
36
|
+
"spec/active_record/db/database.yml",
|
37
|
+
"spec/active_record/migrations/create_models.rb",
|
34
38
|
"spec/models_helper.rb",
|
35
39
|
"spec/schemaker/model/join_spec.rb",
|
36
40
|
"spec/schemaker/model/object_spec.rb",
|
@@ -38,34 +42,55 @@ Gem::Specification.new do |s|
|
|
38
42
|
"spec/schemaker/models_spec.rb",
|
39
43
|
"spec/spec_helper.rb"
|
40
44
|
]
|
41
|
-
s.homepage =
|
42
|
-
s.licenses = [
|
43
|
-
s.require_paths = [
|
44
|
-
s.rubygems_version =
|
45
|
-
s.summary =
|
45
|
+
s.homepage = "http://github.com/kristianmandrup/schemaker"
|
46
|
+
s.licenses = ["MIT"]
|
47
|
+
s.require_paths = ["lib"]
|
48
|
+
s.rubygems_version = "1.8.10"
|
49
|
+
s.summary = "Schema maker takes care of configuring your model schemas to map behavior"
|
46
50
|
|
47
51
|
if s.respond_to? :specification_version then
|
48
52
|
s.specification_version = 3
|
49
53
|
|
50
54
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
55
|
+
s.add_runtime_dependency(%q<sugar-high>, [">= 0.6"])
|
56
|
+
s.add_runtime_dependency(%q<require_all>, ["~> 1.2.0"])
|
51
57
|
s.add_development_dependency(%q<activerecord>, [">= 3.0.1"])
|
52
58
|
s.add_development_dependency(%q<rspec>, [">= 2.6.0"])
|
53
|
-
s.add_development_dependency(%q<bundler>, ["
|
54
|
-
s.add_development_dependency(%q<jeweler>, ["
|
59
|
+
s.add_development_dependency(%q<bundler>, [">= 1"])
|
60
|
+
s.add_development_dependency(%q<jeweler>, [">= 1.6"])
|
55
61
|
s.add_development_dependency(%q<rcov>, [">= 0"])
|
62
|
+
s.add_development_dependency(%q<yard>, [">= 0"])
|
63
|
+
s.add_development_dependency(%q<database_cleaner>, ["~> 0.6.8"])
|
64
|
+
s.add_development_dependency(%q<sqlite3>, [">= 0"])
|
65
|
+
s.add_development_dependency(%q<shoulda>, [">= 0"])
|
66
|
+
s.add_development_dependency(%q<cutter>, [">= 0"])
|
56
67
|
else
|
68
|
+
s.add_dependency(%q<sugar-high>, [">= 0.6"])
|
69
|
+
s.add_dependency(%q<require_all>, ["~> 1.2.0"])
|
57
70
|
s.add_dependency(%q<activerecord>, [">= 3.0.1"])
|
58
71
|
s.add_dependency(%q<rspec>, [">= 2.6.0"])
|
59
|
-
s.add_dependency(%q<bundler>, ["
|
60
|
-
s.add_dependency(%q<jeweler>, ["
|
72
|
+
s.add_dependency(%q<bundler>, [">= 1"])
|
73
|
+
s.add_dependency(%q<jeweler>, [">= 1.6"])
|
61
74
|
s.add_dependency(%q<rcov>, [">= 0"])
|
75
|
+
s.add_dependency(%q<yard>, [">= 0"])
|
76
|
+
s.add_dependency(%q<database_cleaner>, ["~> 0.6.8"])
|
77
|
+
s.add_dependency(%q<sqlite3>, [">= 0"])
|
78
|
+
s.add_dependency(%q<shoulda>, [">= 0"])
|
79
|
+
s.add_dependency(%q<cutter>, [">= 0"])
|
62
80
|
end
|
63
81
|
else
|
82
|
+
s.add_dependency(%q<sugar-high>, [">= 0.6"])
|
83
|
+
s.add_dependency(%q<require_all>, ["~> 1.2.0"])
|
64
84
|
s.add_dependency(%q<activerecord>, [">= 3.0.1"])
|
65
85
|
s.add_dependency(%q<rspec>, [">= 2.6.0"])
|
66
|
-
s.add_dependency(%q<bundler>, ["
|
67
|
-
s.add_dependency(%q<jeweler>, ["
|
86
|
+
s.add_dependency(%q<bundler>, [">= 1"])
|
87
|
+
s.add_dependency(%q<jeweler>, [">= 1.6"])
|
68
88
|
s.add_dependency(%q<rcov>, [">= 0"])
|
89
|
+
s.add_dependency(%q<yard>, [">= 0"])
|
90
|
+
s.add_dependency(%q<database_cleaner>, ["~> 0.6.8"])
|
91
|
+
s.add_dependency(%q<sqlite3>, [">= 0"])
|
92
|
+
s.add_dependency(%q<shoulda>, [">= 0"])
|
93
|
+
s.add_dependency(%q<cutter>, [">= 0"])
|
69
94
|
end
|
70
95
|
end
|
71
96
|
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'active_record'
|
2
|
+
require 'yaml'
|
3
|
+
require 'logger'
|
4
|
+
require 'database_cleaner'
|
5
|
+
require 'require_all'
|
6
|
+
require 'active_record/migrations/create_models'
|
7
|
+
|
8
|
+
dbconfig_path = File.dirname(__FILE__) + '/db/database.yml'
|
9
|
+
dbfile = File.open(dbconfig_path)
|
10
|
+
dbconfig = YAML::load(dbfile)
|
11
|
+
|
12
|
+
ActiveRecord::Base.establish_connection(dbconfig)
|
13
|
+
ActiveRecord::Base.logger = Logger.new(STDERR)
|
14
|
+
|
15
|
+
DatabaseCleaner.strategy = :truncation
|
16
|
+
|
17
|
+
def migration_folder(name)
|
18
|
+
path = File.dirname(__FILE__) + "/migrations/#{name}"
|
19
|
+
end
|
20
|
+
|
21
|
+
RSpec.configure do |config|
|
22
|
+
config.before(:suite) do
|
23
|
+
DatabaseCleaner.drop_tables :user_accounts, :roles, :users_roles
|
24
|
+
CreateModels.up
|
25
|
+
end
|
26
|
+
|
27
|
+
config.before(:each) do
|
28
|
+
end
|
29
|
+
|
30
|
+
config.after(:each) do
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
require 'active_record/active_record_helper'
|
2
|
+
require 'models_helper'
|
3
|
+
describe models_class do
|
4
|
+
let(:models) do
|
5
|
+
# subject, object, join
|
6
|
+
models_class.new UserAccount, Role, UsersRoles, :subject_key => :troles
|
7
|
+
end
|
8
|
+
|
9
|
+
describe '#configure' do
|
10
|
+
before(:all) do
|
11
|
+
models.configure
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'should configure all models (logs)' do
|
15
|
+
logs_matches(models.logs, 'UserAccount.has_many :troles').should be_true
|
16
|
+
logs_matches(models.logs, 'UsersRoles.belongs_to :role').should be_true
|
17
|
+
logs_matches(models.logs, 'UsersRoles.belongs_to :user_account').should be_true
|
18
|
+
logs_matches(models.logs, 'Role.has_many :user_accounts').should be_true
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'should configure all models (shoulda)' do
|
22
|
+
UserAccount.create!.should have_many(:troles).through(:user_roles)
|
23
|
+
Role.create!.should have_many(:user_accounts).through(:user_roles)
|
24
|
+
UsersRoles.create!.should belong_to(:role)
|
25
|
+
UsersRoles.create!.should belong_to(:user_account)
|
26
|
+
end
|
27
|
+
|
28
|
+
describe 'should configure all models (manipulations with associations)' do
|
29
|
+
before(:each) do
|
30
|
+
@user_account = UserAccount.create(:name => "Marixa")
|
31
|
+
@role = Role.create(:name => "admin")
|
32
|
+
end
|
33
|
+
|
34
|
+
it "should add roles to account" do
|
35
|
+
@user_account.troles << @role
|
36
|
+
@role.save!
|
37
|
+
@user_account.troles.size.should == 1
|
38
|
+
end
|
39
|
+
|
40
|
+
it "should add accounts to role" do
|
41
|
+
@role.user_accounts << @user_account
|
42
|
+
@role.save!
|
43
|
+
@role.user_accounts.first.should == @user_account
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
class CreateModels < ActiveRecord::Migration
|
2
|
+
def self.up
|
3
|
+
# down
|
4
|
+
|
5
|
+
create_table :user_accounts do |t|
|
6
|
+
t.string :name
|
7
|
+
t.timestamps
|
8
|
+
end
|
9
|
+
|
10
|
+
create_table :roles do |t|
|
11
|
+
t.string :name
|
12
|
+
t.timestamps
|
13
|
+
end
|
14
|
+
|
15
|
+
create_table :users_roles do |t|
|
16
|
+
t.integer :user_account_id
|
17
|
+
t.integer :role_id
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.down
|
22
|
+
drop_table :user_accounts
|
23
|
+
drop_table :roles
|
24
|
+
drop_table :users_roles
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
data/spec/models_helper.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: schemaker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,33 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-
|
12
|
+
date: 2011-10-12 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: sugar-high
|
16
|
+
requirement: &2165519220 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0.6'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *2165519220
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: require_all
|
27
|
+
requirement: &2165518620 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ~>
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 1.2.0
|
33
|
+
type: :runtime
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *2165518620
|
14
36
|
- !ruby/object:Gem::Dependency
|
15
37
|
name: activerecord
|
16
|
-
requirement: &
|
38
|
+
requirement: &2165518060 !ruby/object:Gem::Requirement
|
17
39
|
none: false
|
18
40
|
requirements:
|
19
41
|
- - ! '>='
|
@@ -21,10 +43,10 @@ dependencies:
|
|
21
43
|
version: 3.0.1
|
22
44
|
type: :development
|
23
45
|
prerelease: false
|
24
|
-
version_requirements: *
|
46
|
+
version_requirements: *2165518060
|
25
47
|
- !ruby/object:Gem::Dependency
|
26
48
|
name: rspec
|
27
|
-
requirement: &
|
49
|
+
requirement: &2165517560 !ruby/object:Gem::Requirement
|
28
50
|
none: false
|
29
51
|
requirements:
|
30
52
|
- - ! '>='
|
@@ -32,32 +54,87 @@ dependencies:
|
|
32
54
|
version: 2.6.0
|
33
55
|
type: :development
|
34
56
|
prerelease: false
|
35
|
-
version_requirements: *
|
57
|
+
version_requirements: *2165517560
|
36
58
|
- !ruby/object:Gem::Dependency
|
37
59
|
name: bundler
|
38
|
-
requirement: &
|
60
|
+
requirement: &2165517040 !ruby/object:Gem::Requirement
|
39
61
|
none: false
|
40
62
|
requirements:
|
41
|
-
- -
|
63
|
+
- - ! '>='
|
42
64
|
- !ruby/object:Gem::Version
|
43
|
-
version: 1
|
65
|
+
version: '1'
|
44
66
|
type: :development
|
45
67
|
prerelease: false
|
46
|
-
version_requirements: *
|
68
|
+
version_requirements: *2165517040
|
47
69
|
- !ruby/object:Gem::Dependency
|
48
70
|
name: jeweler
|
49
|
-
requirement: &
|
71
|
+
requirement: &2165516420 !ruby/object:Gem::Requirement
|
50
72
|
none: false
|
51
73
|
requirements:
|
52
|
-
- -
|
74
|
+
- - ! '>='
|
53
75
|
- !ruby/object:Gem::Version
|
54
|
-
version: 1.6
|
76
|
+
version: '1.6'
|
55
77
|
type: :development
|
56
78
|
prerelease: false
|
57
|
-
version_requirements: *
|
79
|
+
version_requirements: *2165516420
|
58
80
|
- !ruby/object:Gem::Dependency
|
59
81
|
name: rcov
|
60
|
-
requirement: &
|
82
|
+
requirement: &2165515760 !ruby/object:Gem::Requirement
|
83
|
+
none: false
|
84
|
+
requirements:
|
85
|
+
- - ! '>='
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: '0'
|
88
|
+
type: :development
|
89
|
+
prerelease: false
|
90
|
+
version_requirements: *2165515760
|
91
|
+
- !ruby/object:Gem::Dependency
|
92
|
+
name: yard
|
93
|
+
requirement: &2165515140 !ruby/object:Gem::Requirement
|
94
|
+
none: false
|
95
|
+
requirements:
|
96
|
+
- - ! '>='
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: '0'
|
99
|
+
type: :development
|
100
|
+
prerelease: false
|
101
|
+
version_requirements: *2165515140
|
102
|
+
- !ruby/object:Gem::Dependency
|
103
|
+
name: database_cleaner
|
104
|
+
requirement: &2165514520 !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ~>
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: 0.6.8
|
110
|
+
type: :development
|
111
|
+
prerelease: false
|
112
|
+
version_requirements: *2165514520
|
113
|
+
- !ruby/object:Gem::Dependency
|
114
|
+
name: sqlite3
|
115
|
+
requirement: &2165513900 !ruby/object:Gem::Requirement
|
116
|
+
none: false
|
117
|
+
requirements:
|
118
|
+
- - ! '>='
|
119
|
+
- !ruby/object:Gem::Version
|
120
|
+
version: '0'
|
121
|
+
type: :development
|
122
|
+
prerelease: false
|
123
|
+
version_requirements: *2165513900
|
124
|
+
- !ruby/object:Gem::Dependency
|
125
|
+
name: shoulda
|
126
|
+
requirement: &2165513240 !ruby/object:Gem::Requirement
|
127
|
+
none: false
|
128
|
+
requirements:
|
129
|
+
- - ! '>='
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: *2165513240
|
135
|
+
- !ruby/object:Gem::Dependency
|
136
|
+
name: cutter
|
137
|
+
requirement: &2165512580 !ruby/object:Gem::Requirement
|
61
138
|
none: false
|
62
139
|
requirements:
|
63
140
|
- - ! '>='
|
@@ -65,7 +142,7 @@ dependencies:
|
|
65
142
|
version: '0'
|
66
143
|
type: :development
|
67
144
|
prerelease: false
|
68
|
-
version_requirements: *
|
145
|
+
version_requirements: *2165512580
|
69
146
|
description: Configures relationships between subject, join and object model for a
|
70
147
|
given behavior
|
71
148
|
email: kmandrup@gmail.com
|
@@ -89,6 +166,10 @@ files:
|
|
89
166
|
- lib/schemaker/models/object_model.rb
|
90
167
|
- lib/schemaker/models/subject_model.rb
|
91
168
|
- schemaker.gemspec
|
169
|
+
- spec/active_record/active_record_helper.rb
|
170
|
+
- spec/active_record/active_record_spec.rb
|
171
|
+
- spec/active_record/db/database.yml
|
172
|
+
- spec/active_record/migrations/create_models.rb
|
92
173
|
- spec/models_helper.rb
|
93
174
|
- spec/schemaker/model/join_spec.rb
|
94
175
|
- spec/schemaker/model/object_spec.rb
|
@@ -110,7 +191,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
110
191
|
version: '0'
|
111
192
|
segments:
|
112
193
|
- 0
|
113
|
-
hash: -
|
194
|
+
hash: -1246785679827546613
|
114
195
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
115
196
|
none: false
|
116
197
|
requirements:
|
@@ -119,7 +200,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
119
200
|
version: '0'
|
120
201
|
requirements: []
|
121
202
|
rubyforge_project:
|
122
|
-
rubygems_version: 1.8.
|
203
|
+
rubygems_version: 1.8.10
|
123
204
|
signing_key:
|
124
205
|
specification_version: 3
|
125
206
|
summary: Schema maker takes care of configuring your model schemas to map behavior
|