meta_mongo 0.4.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 93d5a5db7273f7205df819a37e5b5d53f1ced330
4
- data.tar.gz: a033fbfe5874f72a5b9e9f0f21d8f6bb44c4c583
3
+ metadata.gz: 21d5b34ac80848532cdc727e6a23650fc5f38e8d
4
+ data.tar.gz: 892c725d56b9e3371f5a654d78aa0b971b299a0a
5
5
  SHA512:
6
- metadata.gz: bd26e4dfd49208f7c714195369a4a04c778dedd6f19efb131ca4147afe2457fc00b2032a37dbb783422a29ac5bbf9e531f59bffc9f3b6ea8c72f0f86a2869d44
7
- data.tar.gz: 0db112012037d86e3510b755805d65a0753a870de8d007045882f1b7b81567e3fa43b37634b431838274a58c1ba5aa3f4f780a4c5156b5453b43657417bfdb76
6
+ metadata.gz: 79702d78d54a066bab34407f5b6af399ef9dfac6f75b9a061e26667191cb8d9f77332f9724f04e7e10a8c85f3377d7ac394859aa6c5c8ca9ed957b65b625aa1d
7
+ data.tar.gz: 5b7efd9d77bd02032480425faed9b03bee528bec17aba09a0f5d3057f0a9f1d5e78044aa3db68a09429741944ff96806aa69c45b2b66b8b5b5ff7c631bdd2de0
@@ -1,3 +1,3 @@
1
1
  module MetaMongo
2
- VERSION = "0.4.0"
2
+ VERSION = "0.5.0"
3
3
  end
data/lib/meta_mongo.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  require "meta_mongo/version"
2
2
  require "meta_mongo/utils"
3
3
  require "mongoid"
4
+ require "enumerize"
4
5
  require "pry"
5
6
 
6
7
  module MetaMongo
@@ -25,6 +26,12 @@ module MetaMongo
25
26
  end
26
27
  end
27
28
 
29
+ def extend_module(klass, mod)
30
+ klass.class_eval do
31
+ extend mod
32
+ end
33
+ end
34
+
28
35
  def check_missing_keys(obj, *keys)
29
36
  keys.each do |key|
30
37
  missing_key(key) if !obj.key?(key)
@@ -49,7 +56,8 @@ module MetaMongo
49
56
  name: my_attr["name"],
50
57
  field: my_attr["field"],
51
58
  type: Utils.to_class(my_attr["type"]),
52
- vals: my_attr["validations"]
59
+ vals: my_attr["validations"],
60
+ enum: my_attr["enumerize"]
53
61
  }
54
62
 
55
63
  wrong_type("validations") if !out.last[:vals].is_a?(Array)
@@ -77,6 +85,7 @@ module MetaMongo
77
85
  klass = MetaMongo.create_model(model["name"])
78
86
  MetaMongo.include_module(klass, Mongoid::Document)
79
87
  MetaMongo.include_module(klass, Mongoid::Timestamps)
88
+ MetaMongo.extend_module(klass, Enumerize)
80
89
 
81
90
  if relations = model["relations"]
82
91
  relations.each_pair do |func, args|
@@ -90,6 +99,10 @@ module MetaMongo
90
99
  att[:vals].each do |val|
91
100
  MetaMongo.run_method(klass, :validates, att[:field], val)
92
101
  end
102
+
103
+ if enum = att[:enum]
104
+ MetaMongo.run_method(klass, :enumerize, att[:field], enum)
105
+ end
93
106
  end
94
107
  end
95
108
  end
data/meta_mongo.gemspec CHANGED
@@ -19,6 +19,7 @@ Gem::Specification.new do |spec|
19
19
  spec.require_paths = ["lib"]
20
20
 
21
21
  spec.add_dependency "mongoid", "~> 4.0"
22
+ spec.add_dependency "enumerize", "~> 1.0"
22
23
 
23
24
  spec.add_development_dependency "bundler", "~> 1.9"
24
25
  spec.add_development_dependency "rake", "~> 10.4"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: meta_mongo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michel Boaventura
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-07-28 00:00:00.000000000 Z
11
+ date: 2015-08-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mongoid
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '4.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: enumerize
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.0'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: bundler
29
43
  requirement: !ruby/object:Gem::Requirement