mongoid-dsl 1.3.1 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (5) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +11 -0
  3. data/VERSION +1 -1
  4. data/lib/mongoid-dsl/doc.rb +74 -0
  5. metadata +3 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 47808c4061e31b1839ec661b8c922f503215ac15
4
- data.tar.gz: d01fac305de47f5936409eb3f6b53760f2732731
3
+ metadata.gz: aee34566f05a375f7d79f2ac900dc145aa89d4b7
4
+ data.tar.gz: a9f7489aab61abd4bb01a4ee9f6d3eb966dcaa76
5
5
  SHA512:
6
- metadata.gz: 9d367c54d6e0759f727ad1480de130666350a0ab90b12f097db2632581af72c4ba2691189bfaf52ae0ac4ab0f9ab8157fd100f3ae857ea80e30a94059e4c2a36
7
- data.tar.gz: 572c3645fe47dd7dc7a4bc11bbc02235257a8df073f9bfd0fe6cb487278b3a03f9d3297f134497533819ded25705657026d0bbeb103772c125f496a096ad9a0a
6
+ metadata.gz: a31d30c584b0e79418c02039088ef945713419257bd119fad1f50e1968996c98cb462cd7534e88eb67276aa642de22a030ceddb3401c22f6d171e53aee3d4830
7
+ data.tar.gz: 90f1a667bf7db4daa1c4a833ec56d99fa9172d6a706b514389e1eecb796a850a048ebb678500a840888f2e82b9526e5bdc87e19adacea7c6b4cee514ef3e50cc
data/README.md CHANGED
@@ -111,6 +111,17 @@ The return object will be array if the target model is not a main one but an emb
111
111
  Mongoid.purge!
112
112
 
113
113
 
114
+ ```
115
+
116
+ As a plus, you can dump your mongoid models into a Hash Object,
117
+ that can be used to serialized as yaml and lend out as documentation if you lazy as me
118
+
119
+ ```ruby
120
+
121
+ File.write "/tmp/#{$0}.model_dump.yml",
122
+ Mongoid.model_relations_dump.to_yaml
123
+
124
+
114
125
  ```
115
126
 
116
127
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.3.1
1
+ 1.4.0
@@ -0,0 +1,74 @@
1
+ module Mongoid
2
+ module DSL
3
+
4
+ module DumpHelper
5
+ def mongoid_relations_dump_parse(obj)
6
+ case obj
7
+
8
+ when Class
9
+ return {
10
+ obj.to_s => {
11
+
12
+ 'relations' => {
13
+ 'one' => obj.relations.map{ |name,attributes|
14
+ if attributes[:relation].to_s.downcase =~ /embedded::one$/
15
+ mongoid_relations_dump_parse name.convert_model_name
16
+ end
17
+ }.compact,
18
+
19
+ 'many' => obj.relations.map{ |name,attributes|
20
+ if attributes[:relation].to_s.downcase =~ /embedded::many$/
21
+ mongoid_relations_dump_parse name.convert_model_name
22
+ elsif attributes[:relation].to_s.downcase =~ /referenced::many$/
23
+ name.convert_model_name.to_s
24
+ end
25
+ }.compact,
26
+
27
+ 'manytomany' => obj.relations.map{ |name,attributes|
28
+ if attributes[:relation].to_s.downcase =~ /manytomany$/
29
+ name.convert_model_name.to_s
30
+ end
31
+ }.compact
32
+ }.select{ |k,v| !v.empty? },
33
+ 'attributes' => obj.properties.reduce({}){|m,o| m.merge!(o[0] => o[1].to_s) ;m}
34
+
35
+ }.select{ |k,v| !v.empty? }
36
+ }
37
+
38
+
39
+ when Hash
40
+ return obj
41
+
42
+ when Array
43
+ obj.reduce({}) do |m,e|
44
+ case e
45
+
46
+ when Class
47
+ m.merge!(mongoid_relations_dump_parse(e))
48
+
49
+ when Hash
50
+ m.merge!(e)
51
+
52
+ else
53
+ m.merge!(e => nil)
54
+
55
+ end;m
56
+ end
57
+
58
+ else
59
+ return obj
60
+
61
+ end
62
+ end
63
+
64
+ def model_relations_dump
65
+ mongoid_relations_dump_parse Mongoid.models.select{|klass| klass.parents.empty? }
66
+ end
67
+
68
+ end
69
+
70
+ end
71
+
72
+ extend DSL::DumpHelper
73
+
74
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongoid-dsl
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.1
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adam Luzsi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-09-29 00:00:00.000000000 Z
11
+ date: 2014-10-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -100,6 +100,7 @@ files:
100
100
  - examples/include.rb
101
101
  - examples/recursive_find.rb
102
102
  - lib/mongoid-dsl.rb
103
+ - lib/mongoid-dsl/doc.rb
103
104
  - lib/mongoid-dsl/fields-ext.rb
104
105
  - lib/mongoid-dsl/monkey.rb
105
106
  - mongoid-dsl.gemspec