activerecord_uml 0.6.0 → 0.11.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: d91013520bd006341a0aa9487d794d4a5960ed7fecf0e05d741f21e002fba85a
4
- data.tar.gz: 72c977aad9bce307f8fd00ee539dca8d39f9d290e5fa423f3543ca7cadc85718
3
+ metadata.gz: 14ef2902767bb5de3b65b387a336ab4f3ebe234dea52cf6c8b1d3cb756818fdc
4
+ data.tar.gz: 760d9f81fda80c254be2de0f207474555f93ae470260b9dc6644940981b0e720
5
5
  SHA512:
6
- metadata.gz: a7ffdb9ccd505f0dc28f186d1fb12b6a6a01fb14cc60e5036c43c5de8f2edf69db37e7cec57727e7d9b12889acfe59b115755ebcec39b55b9404d53fda3ec859
7
- data.tar.gz: 9217c641caa0ab215fda2fe9c27f0d02e5d18ad6e07b0684d61e9ecb0f0edbdaead58ef500e01d5101bead7c8bc86e4de776e537aefd81cc433702b92774a918
6
+ metadata.gz: 685b19398a365c8b47905bfdf6aba021fc61cbfaa4ecf022f6777a05dc09341b404816f3ba308edb729651d76a37c16970087de7072021591dbb490a4d3e2d9e
7
+ data.tar.gz: 4c1079d76751897c77ddfae33ed10708e675e0726871d3a34ffd57a8699ce36609a9fa5e2a56c2f906e140d780330fb3f7fa5e530da69ceb5d21bde66022e6a0
data/README.md CHANGED
@@ -29,7 +29,7 @@ Or install it yourself as:
29
29
  In your Ruby on Rails directory:
30
30
 
31
31
  ```
32
- activerecord_uml User
32
+ activerecord_uml User Book Review
33
33
  ```
34
34
 
35
35
  Execute the activerecord_uml command with name of model classes.
data/exe/activerecord_uml CHANGED
@@ -1,7 +1,8 @@
1
1
  #! /usr/bin/env ruby
2
- require "activerecord_uml"
3
2
 
4
- require(File.join(Dir.pwd, "config/application"))
5
- Rails.application.require_environment!
3
+ activerecord_uml = File.join __dir__,"../lib/activerecord_uml"
4
+ ruby_script = "require \"#{activerecord_uml}\"; ActiverecordUml.draw"
5
+ rails = File.join Dir.pwd,"bin/rails"
6
+ rails_runner_command = "echo '#{ruby_script}' | #{rails} runner - #{ARGV.join ' '}"
6
7
 
7
- ActiverecordUml.draw
8
+ system rails_runner_command
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+ require "erb"
2
3
  require_relative "activerecord_uml/version"
3
4
  require_relative "activerecord_uml/diagram_drawer"
4
5
 
@@ -28,11 +28,20 @@ EOF
28
28
 
29
29
  def relations
30
30
  @class_name.reflect_on_all_associations(:belongs_to).map do |a|
31
- "#{a.name.to_s.classify} --* #{@class_name}"
31
+ "#{a.class_name} --* #{@class_name}#{label_for a}"
32
32
  end.concat(@class_name.reflect_on_all_associations(:has_many).map do |a|
33
- "#{@class_name} --* #{a.name.to_s.classify}"
33
+ if a.is_a? ActiveRecord::Reflection::ThroughReflection
34
+ if a.source_reflection
35
+ # If a source association is specified, the class name of the source association is displayed.
36
+ "#{@class_name} *--* #{a.source_reflection.class_name}#{label_for a}"
37
+ else
38
+ "#{@class_name} *--* #{a.class_name}#{label_for a}"
39
+ end
40
+ else
41
+ "#{@class_name} --* #{a.class_name}#{label_for a}"
42
+ end
34
43
  end).concat(@class_name.reflect_on_all_associations(:has_one).map do |a|
35
- "#{@class_name} --* #{a.name.to_s.classify}"
44
+ "#{@class_name} --* #{a.class_name}#{label_for a}"
36
45
  end)
37
46
  end
38
47
 
@@ -47,9 +56,18 @@ EOF
47
56
  method_parameters = @class_name.new.method(m)
48
57
  .parameters
49
58
  .filter { |a| a[0] == :req }
50
- .map { |a| a[1] }.join(", ")
51
- [m.to_s, method_parameters]
59
+ .map { |a| a[1] }
60
+
61
+ if method_parameters.length > 3
62
+ method_parameters = method_parameters.slice(0, 3).append("...")
63
+ end
64
+
65
+ [m.to_s, method_parameters.join(", ")]
52
66
  end
53
67
  end
68
+
69
+ def label_for(association)
70
+ association.class_name != association.name.to_s.classify ? " : #{association.name.to_s.classify}" : ""
71
+ end
54
72
  end
55
73
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ActiverecordUml
4
- VERSION = "0.6.0"
4
+ VERSION = "0.11.0"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activerecord_uml
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.11.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - shigeru.nakajima
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-06-15 00:00:00.000000000 Z
11
+ date: 2021-06-28 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Generate UML class diagram for Mermaid.js from ActiveRecord instances
14
14
  by Rails runner.