rails-mermaid_erd 0.2.0 → 0.3.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
  SHA256:
3
- metadata.gz: 70e02f24014b859b87f976e91a1ac6c7d9a2abb55b645993fcdba7280b027d03
4
- data.tar.gz: ba506228775db665a9637d11d0fdf1b8af14a3f7db80da610e54e36ec4ac77c1
3
+ metadata.gz: 1a0b049ccbaa1ec74fd4f0bc0c55e9b1ca066ac4f9e7b624591e1626edbbcb47
4
+ data.tar.gz: 0c2a7bf4cb12c29f7623e2ceaef53de385f9a2dd9f6d3596786849623e9979c6
5
5
  SHA512:
6
- metadata.gz: ccb7f93e4c2b7063cfe9d3ac394a5cb05268c956986616930356bba4a703f06e1b18da281ecc29f78f102444c5b26645c0cf6c109803b39279e02da3d11c6ac5
7
- data.tar.gz: e35178ebb61084b313e1e3586732e45834b14a73d7b16af17dadfc6de8bed921f8c24ce3f58a22a6d412783efce02788c5c1b25ce8b4de0452b856e3273f6719
6
+ metadata.gz: 7894f5a5b2717404fb8593295138466678158de760e4704235dbd64ba968dfb180334df4610f615edf670df564d7aca1bfa869a6ba5f54e033883dba80add955
7
+ data.tar.gz: 44011954159232651066fb8a12b58ea27877055a12a7c677641dd37981bfb98ecf3d3caed1c0797ee0fb38f3d61bc8e9050585782d31203d262c5dede90fee46
@@ -1,3 +1,3 @@
1
1
  module RailsMermaidErd
2
- VERSION = "0.2.0"
2
+ VERSION = "0.3.0"
3
3
  end
@@ -24,6 +24,9 @@ module RailsMermaidErd
24
24
  ::Rails.application.eager_load!
25
25
  ::ActiveRecord::Base.descendants.each do |defined_model|
26
26
  next unless defined_model.table_exists?
27
+
28
+ next if defined_model.name.include?("HABTM_")
29
+
27
30
  model = {
28
31
  TableName: defined_model.table_name,
29
32
  ModelName: defined_model.name,
@@ -91,6 +94,25 @@ module RailsMermaidErd
91
94
  end
92
95
  end
93
96
 
97
+ defined_model.reflect_on_all_associations(:has_and_belongs_to_many).each do |h|
98
+ reverse_relation = if h.options[:class_name]
99
+ result[:Relations].find { |r| r[:RightModelName] == model[:ModelName] && r[:LeftModelName] == h.options[:class_name] }
100
+ else
101
+ result[:Relations].find { |r| r[:RightModelName] == model[:ModelName] && r[:LeftModelName] == h.name.to_s.classify }
102
+ end
103
+ if reverse_relation
104
+ reverse_relation[:Comment] = "HABTM"
105
+ else
106
+ result[:Relations] << {
107
+ LeftModelName: model[:ModelName],
108
+ LeftValue: "}o",
109
+ RightModelName: h.name.to_s.classify,
110
+ RightValue: "o{",
111
+ Comment: "HABTM"
112
+ }
113
+ end
114
+ end
115
+
94
116
  defined_model.reflect_on_all_associations(:belongs_to).each do |h|
95
117
  if h.options[:class_name]
96
118
  reverse_relation = result[:Relations].find { |r| r[:RightModelName] == model[:ModelName] && r[:LeftModelName] == h.options[:class_name] }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails-mermaid_erd
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - 肥溜め
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2022-10-10 00:00:00.000000000 Z
12
+ date: 2022-10-12 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails