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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 23d4342f2a320f75b2e90d11bf2474d5f1878632369e6c5a9e3608f3c9ac9aee
4
- data.tar.gz: d7b53a5993a0b95508e44be666ec68f620563e4a9ee7bfb7ef708f09beb0ffda
3
+ metadata.gz: 1e9b918036131dd6376ed19adf3f6533b6caf0987a87f78b04944881ec579695
4
+ data.tar.gz: 591899522e0d2247e5bb999c88c182baeee7a90912f6f8c946bb044e83142a13
5
5
  SHA512:
6
- metadata.gz: 37a889901a16afac747792e929a71a8831ff55b0119cdb5cf96911fb19447a493a717021c7a65c1e7d3274809af67dd64c6a0184f79aebfa09716198186d38f8
7
- data.tar.gz: c87a23f1c22cbff2363b8f54d993be86669330854fd80bd9570df87b3f144434c9ad55aacceacdf08f95b0fe60ff0cf67d4a145ee1918c22c1cba2b7b8b31b15
6
+ metadata.gz: 36353f77def4b6e65e4e565c87be9a9838dbc11c5e86475aada0435d8062a010c3a683c430bf9b1620289ebddfca5ea871ffbb4f7a4fa384402451489e5590ef
7
+ data.tar.gz: 175f0d4f165dd2fa3148865e4cfc898dbae572da4c200b1b68bb6cbf9450f4b01247ccfe5e189e6e34a8dbba7216d3291285f2464b24a01e67c0fa2b4a20c31b
data/README.md CHANGED
@@ -5,7 +5,7 @@ A Rails engine for drawing your app's ER diagram and operating migrations
5
5
 
6
6
  ## Requirements
7
7
 
8
- * Rails 5.2, 5.1, 5.0, 4.2, 4.1, 4.0, 3.2, or 3.1
8
+ * Rails 7.0, 6.1, 6.0, 5.2, 5.1, 5.0, 4.2, 4.1, 4.0, 3.2, or 3.1
9
9
 
10
10
  * Graphviz
11
11
 
@@ -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.parent.name %></title>
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 = `git ls-files`.split($\)
15
- gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
16
- gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Erd
4
- VERSION = '0.8.0'
4
+ VERSION = '0.8.1'
5
5
  end
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.0
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: 2020-11-17 00:00:00.000000000 Z
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.1.4
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,3 +0,0 @@
1
- development:
2
- adapter: sqlite3
3
- database: ":memory:"
@@ -1,11 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- class CreateAuthors < ActiveRecord::VERSION::MAJOR >= 5 ? ActiveRecord::Migration[5.0] : ActiveRecord::Migration
4
- def change
5
- create_table :authors do |t|
6
- t.string :name
7
-
8
- t.timestamps
9
- end
10
- end
11
- end
@@ -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
File without changes
@@ -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
File without changes
@@ -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
@@ -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