meta_mongo 0.4.0 → 0.5.0

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.
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