erd 0.8.0 → 0.8.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/app/controllers/erd/erd_controller.rb +2 -2
- data/app/views/layouts/erd/application.html.erb +1 -1
- data/erd.gemspec +3 -3
- data/lib/erd/version.rb +1 -1
- metadata +4 -24
- data/test/fake_app/config/database.yml +0 -3
- data/test/fake_app/db/migrate/20120428022519_create_authors.rb +0 -11
- data/test/fake_app/db/migrate/20120428022535_create_books.rb +0 -12
- data/test/fake_app/db/schema.rb +0 -0
- data/test/fake_app/fake_app.rb +0 -32
- data/test/fake_app/log/.gitignore +0 -1
- data/test/fake_app/tmp/.gitkeep +0 -0
- data/test/features/erd_test.rb +0 -18
- data/test/lib/migrator_test.rb +0 -59
- data/test/test_helper.rb +0 -37
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1e9b918036131dd6376ed19adf3f6533b6caf0987a87f78b04944881ec579695
|
4
|
+
data.tar.gz: 591899522e0d2247e5bb999c88c182baeee7a90912f6f8c946bb044e83142a13
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 36353f77def4b6e65e4e565c87be9a9838dbc11c5e86475aada0435d8062a010c3a683c430bf9b1620289ebddfca5ea871ffbb4f7a4fa384402451489e5590ef
|
7
|
+
data.tar.gz: 175f0d4f165dd2fa3148865e4cfc898dbae572da4c200b1b68bb6cbf9450f4b01247ccfe5e189e6e34a8dbba7216d3291285f2464b24a01e67c0fa2b4a20c31b
|
data/README.md
CHANGED
@@ -137,9 +137,9 @@ module Erd
|
|
137
137
|
{:model => model_name, :x => (custom_x || (BigDecimal(x) * 72).round), :y => (custom_y || (BigDecimal(y) * 72).round), :width => (BigDecimal(width) * 72).round, :height => (BigDecimal(height) * 72).round, :columns => columns}
|
138
138
|
}.compact
|
139
139
|
max_model_x = models.map {|m| m[:x].to_f + m[:width].to_f }.max
|
140
|
-
erd_width = [[(BigDecimal(svg_width) * 72).round, max_model_x].min + 150, 1024].max
|
140
|
+
erd_width = [[(BigDecimal(svg_width) * 72).round, max_model_x].compact.min + 150, 1024].max
|
141
141
|
max_model_y = models.map {|m| m[:y].to_f + m[:height].to_f }.max
|
142
|
-
erd_height = [[(BigDecimal(svg_height) * 72).round, max_model_y].min + 150, 768].max
|
142
|
+
erd_height = [[(BigDecimal(svg_height) * 72).round, max_model_y].compact.min + 150, 768].max
|
143
143
|
# edge tail head n x1 y1 .. xn yn [label xl yl] style color
|
144
144
|
edges = plain.scan(/^edge ([^ ]+)+ ([^ ]+)/).map {|from, to| {:from => from, :to => to}}
|
145
145
|
render_to_string 'erd/erd/erd', :layout => nil, :locals => {:width => erd_width, :height => erd_height, :models => models, :edges => edges, :edit_mode => edit_mode}
|
@@ -2,7 +2,7 @@
|
|
2
2
|
<html>
|
3
3
|
<head>
|
4
4
|
<meta charset='utf-8'>
|
5
|
-
<title>ERD - <%= Rails.application.class.
|
5
|
+
<title>ERD - <%= Rails.application.class.name[/[^:]+/] %></title>
|
6
6
|
<%= stylesheet_link_tag '/erd/erd', :media => 'all' %>
|
7
7
|
<%= stylesheet_link_tag 'https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/smoothness/jquery-ui.css', :media => 'all' %>
|
8
8
|
<%= javascript_include_tag 'https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js' %>
|
data/erd.gemspec
CHANGED
@@ -11,9 +11,9 @@ Gem::Specification.new do |gem|
|
|
11
11
|
gem.homepage = 'https://github.com/amatsuda/erd'
|
12
12
|
gem.license = 'MIT'
|
13
13
|
|
14
|
-
gem.files
|
15
|
-
|
16
|
-
|
14
|
+
gem.files = Dir.chdir(File.expand_path(__dir__)) do
|
15
|
+
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{\A(?:test|spec|features)/}) }
|
16
|
+
end
|
17
17
|
gem.name = 'erd'
|
18
18
|
gem.require_paths = ['lib']
|
19
19
|
gem.version = Erd::VERSION
|
data/lib/erd/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: erd
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Akira Matsuda
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-03-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ruby-graphviz
|
@@ -197,16 +197,6 @@ files:
|
|
197
197
|
- public/erd/erd.css
|
198
198
|
- public/erd/erd.js
|
199
199
|
- src/assets/stylesheets/erd/erd.css.scss
|
200
|
-
- test/fake_app/config/database.yml
|
201
|
-
- test/fake_app/db/migrate/20120428022519_create_authors.rb
|
202
|
-
- test/fake_app/db/migrate/20120428022535_create_books.rb
|
203
|
-
- test/fake_app/db/schema.rb
|
204
|
-
- test/fake_app/fake_app.rb
|
205
|
-
- test/fake_app/log/.gitignore
|
206
|
-
- test/fake_app/tmp/.gitkeep
|
207
|
-
- test/features/erd_test.rb
|
208
|
-
- test/lib/migrator_test.rb
|
209
|
-
- test/test_helper.rb
|
210
200
|
homepage: https://github.com/amatsuda/erd
|
211
201
|
licenses:
|
212
202
|
- MIT
|
@@ -226,18 +216,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
226
216
|
- !ruby/object:Gem::Version
|
227
217
|
version: '0'
|
228
218
|
requirements: []
|
229
|
-
rubygems_version: 3.
|
219
|
+
rubygems_version: 3.4.0.dev
|
230
220
|
signing_key:
|
231
221
|
specification_version: 4
|
232
222
|
summary: erd engine on Rails
|
233
|
-
test_files:
|
234
|
-
- test/fake_app/config/database.yml
|
235
|
-
- test/fake_app/db/migrate/20120428022519_create_authors.rb
|
236
|
-
- test/fake_app/db/migrate/20120428022535_create_books.rb
|
237
|
-
- test/fake_app/db/schema.rb
|
238
|
-
- test/fake_app/fake_app.rb
|
239
|
-
- test/fake_app/log/.gitignore
|
240
|
-
- test/fake_app/tmp/.gitkeep
|
241
|
-
- test/features/erd_test.rb
|
242
|
-
- test/lib/migrator_test.rb
|
243
|
-
- test/test_helper.rb
|
223
|
+
test_files: []
|
@@ -1,12 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
class CreateBooks < ActiveRecord::VERSION::MAJOR >= 5 ? ActiveRecord::Migration[5.0] : ActiveRecord::Migration
|
4
|
-
def change
|
5
|
-
create_table :books do |t|
|
6
|
-
t.references :author
|
7
|
-
t.string :title
|
8
|
-
|
9
|
-
t.timestamps
|
10
|
-
end
|
11
|
-
end
|
12
|
-
end
|
data/test/fake_app/db/schema.rb
DELETED
File without changes
|
data/test/fake_app/fake_app.rb
DELETED
@@ -1,32 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'active_record'
|
4
|
-
require 'action_controller/railtie'
|
5
|
-
|
6
|
-
# config
|
7
|
-
module ErdApp
|
8
|
-
class Application < Rails::Application
|
9
|
-
# Rais.root
|
10
|
-
config.root = File.dirname(__FILE__)
|
11
|
-
|
12
|
-
config.secret_token = 'fall to your knees and repent if you please'
|
13
|
-
config.session_store :cookie_store, :key => '_myapp_session'
|
14
|
-
config.active_support.deprecation = :log
|
15
|
-
config.eager_load = false
|
16
|
-
|
17
|
-
config.app_generators.orm :active_record, :migration => true, :timestamps => true
|
18
|
-
end
|
19
|
-
end
|
20
|
-
ErdApp::Application.initialize!
|
21
|
-
ErdApp::Application.routes.draw {}
|
22
|
-
|
23
|
-
# models
|
24
|
-
class Author < ActiveRecord::Base
|
25
|
-
has_many :books
|
26
|
-
end
|
27
|
-
class Book < ActiveRecord::Base
|
28
|
-
belongs_to :author
|
29
|
-
end
|
30
|
-
|
31
|
-
# helpers
|
32
|
-
module ApplicationHelper; end
|
@@ -1 +0,0 @@
|
|
1
|
-
*.log
|
data/test/fake_app/tmp/.gitkeep
DELETED
File without changes
|
data/test/features/erd_test.rb
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'test_helper'
|
4
|
-
|
5
|
-
class ErdIndexTest < ActionDispatch::IntegrationTest
|
6
|
-
test 'with author and book model' do
|
7
|
-
visit '/erd'
|
8
|
-
|
9
|
-
if Capybara::VERSION > '3'
|
10
|
-
assert has_content? 'Author', :minimum => 1
|
11
|
-
else
|
12
|
-
assert has_content? 'Author'
|
13
|
-
end
|
14
|
-
assert has_content? 'name'
|
15
|
-
assert has_content? 'Book'
|
16
|
-
assert has_content? 'title'
|
17
|
-
end
|
18
|
-
end
|
data/test/lib/migrator_test.rb
DELETED
@@ -1,59 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'test_helper'
|
4
|
-
|
5
|
-
class MigratorTest < ActiveSupport::TestCase
|
6
|
-
teardown do
|
7
|
-
Dir.glob(Rails.root.join('db/migrate/*.rb')).each do |f|
|
8
|
-
FileUtils.rm f unless File.basename(f).in? %w(20120428022519_create_authors.rb 20120428022535_create_books.rb)
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
|
-
sub_test_case '.status' do
|
13
|
-
test 'when all migrations are up' do
|
14
|
-
assert_equal [{:status => 'up', :version => '20120428022519', :name => 'create_authors', :filename => '20120428022519_create_authors.rb'}, {:status => 'up', :version => '20120428022535', :name => 'create_books', :filename => '20120428022535_create_books.rb'}], Erd::Migrator.status
|
15
|
-
end
|
16
|
-
|
17
|
-
test 'when one is undone' do
|
18
|
-
FileUtils.touch Rails.root.join('db/migrate/20999999999999_create_foobars.rb')
|
19
|
-
|
20
|
-
assert_equal [{:status => 'up', :version => '20120428022519', :name => 'create_authors', :filename => '20120428022519_create_authors.rb'}, {:status => 'up', :version => '20120428022535', :name => 'create_books', :filename => '20120428022535_create_books.rb'}, {:status => 'down', :version => '20999999999999', :name => 'create_foobars', :filename => '20999999999999_create_foobars.rb'}], Erd::Migrator.status
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
sub_test_case '.run_migrations' do
|
25
|
-
setup do
|
26
|
-
File.open(Rails.root.join('db/migrate/20999999999999_create_foobars.rb'), 'w') do |f|
|
27
|
-
f.puts 'class CreateFoobars < ActiveRecord::VERSION::MAJOR >= 5 ? ActiveRecord::Migration[5.0] : ActiveRecord::Migration; end'
|
28
|
-
end
|
29
|
-
|
30
|
-
if defined? ActiveRecord::MigrationContext # >= 5.2
|
31
|
-
mock.instance_of(ActiveRecord::MigrationContext).run(:up, 20999999999999)
|
32
|
-
else
|
33
|
-
mock(ActiveRecord::Migrator).run(:up, ['db/migrate'], 20999999999999)
|
34
|
-
end
|
35
|
-
mock(ActiveRecord::SchemaDumper).dump(ActiveRecord::Base.connection, anything)
|
36
|
-
end
|
37
|
-
test 'runs migration by version number' do
|
38
|
-
Erd::Migrator.run_migrations(:up => ['20999999999999'])
|
39
|
-
end
|
40
|
-
test 'runs migration by migration filename' do
|
41
|
-
Erd::Migrator.run_migrations(:up => [Rails.root.join('db/migrate/20999999999999_create_foobars.rb')])
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
class GenaratorRunnerTest < ActiveSupport::TestCase
|
47
|
-
setup do
|
48
|
-
stub.proxy(Time).now {|t| stub(t).utc { Time.parse '2012/5/12 13:26' } }
|
49
|
-
end
|
50
|
-
teardown do
|
51
|
-
Dir.glob(Rails.root.join('db/migrate/*.rb')).each do |f|
|
52
|
-
FileUtils.rm f unless File.basename(f).in? %w(20120428022519_create_authors.rb 20120428022535_create_books.rb)
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
|
-
test '.execute_generate_migration' do
|
57
|
-
assert_includes Erd::GenaratorRunner.execute_generate_migration('create_foobars'), 'db/migrate/20120512132600_create_foobars.rb'
|
58
|
-
end
|
59
|
-
end
|
data/test/test_helper.rb
DELETED
@@ -1,37 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
4
|
-
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
5
|
-
|
6
|
-
ENV['RAILS_ENV'] = 'development'
|
7
|
-
|
8
|
-
# load Rails first
|
9
|
-
require 'rails'
|
10
|
-
require 'action_controller/railtie'
|
11
|
-
require 'active_record/railtie'
|
12
|
-
require 'erd'
|
13
|
-
require 'fake_app/fake_app'
|
14
|
-
require 'test/unit/rails/test_help'
|
15
|
-
Bundler.require
|
16
|
-
require 'capybara'
|
17
|
-
require 'selenium/webdriver'
|
18
|
-
|
19
|
-
begin
|
20
|
-
require "action_dispatch/system_test_case"
|
21
|
-
rescue LoadError
|
22
|
-
Capybara.register_driver :chrome do |app|
|
23
|
-
options = Selenium::WebDriver::Chrome::Options.new(:args => %w[no-sandbox headless disable-gpu])
|
24
|
-
Capybara::Selenium::Driver.new(app, :browser => :chrome, :options => options)
|
25
|
-
end
|
26
|
-
Capybara.javascript_driver = :chrome
|
27
|
-
else
|
28
|
-
ActionDispatch::SystemTestCase.driven_by(:selenium, :using => :headless_chrome)
|
29
|
-
end
|
30
|
-
|
31
|
-
ActiveRecord::Migration.verbose = false
|
32
|
-
if defined? ActiveRecord::MigrationContext # >= 5.2
|
33
|
-
ActiveRecord::Migrator.migrations_paths = Rails.application.paths['db/migrate'].to_a
|
34
|
-
ActiveRecord::Base.connection.migration_context.migrate
|
35
|
-
else
|
36
|
-
ActiveRecord::Migrator.migrate(ActiveRecord::Migrator.migrations_paths.map {|p| Rails.root.join p}, nil)
|
37
|
-
end
|