erd 0.4.0 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.gitignore +2 -0
- data/.travis.yml +48 -3
- data/Gemfile +2 -0
- data/Rakefile +3 -1
- data/app/controllers/erd/application_controller.rb +2 -0
- data/app/controllers/erd/erd_controller.rb +3 -1
- data/config.ru +2 -0
- data/config/routes.rb +2 -0
- data/erd.gemspec +6 -0
- data/gemfiles/rails_32.gemfile +14 -0
- data/gemfiles/rails_40.gemfile +8 -0
- data/gemfiles/rails_41.gemfile +8 -0
- data/gemfiles/rails_42.gemfile +8 -0
- data/gemfiles/rails_50.gemfile +7 -0
- data/gemfiles/rails_51.gemfile +7 -0
- data/gemfiles/rails_52.gemfile +8 -0
- data/gemfiles/rails_edge.gemfile +7 -0
- data/lib/erd.rb +2 -0
- data/lib/erd/engine.rb +2 -0
- data/lib/erd/generator_runner.rb +7 -3
- data/lib/erd/migrator.rb +11 -3
- data/lib/erd/railtie.rb +3 -1
- data/lib/erd/version.rb +3 -1
- data/test/fake_app/config/database.yml +3 -0
- data/test/fake_app/db/migrate/20120428022519_create_authors.rb +3 -1
- data/test/fake_app/db/migrate/20120428022535_create_books.rb +3 -2
- data/test/fake_app/fake_app.rb +2 -2
- data/test/features/erd_test.rb +8 -1
- data/test/lib/migrator_test.rb +13 -4
- data/test/test_helper.rb +26 -1
- metadata +69 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 89e699a699726399895a401998276b6b36a6b38b120c2e14c973de7c13fbe8f4
|
4
|
+
data.tar.gz: d4a9db8626fbc276f33dd1ed7f820e854a9cef33c41cd4146bc6b6ffe040de13
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 61a3938da621aaf9e2f8deb520535744a10b34564649adcdbb6dd2e6e871e8832837f1e8f30030b7e2b67058d11cf093af93e400ef2e9ae513d059582d877cb3
|
7
|
+
data.tar.gz: 1e33ceaabcbc8d5bb750d1fa4a100667f2275e09faa901eabfb291a53befe408c73e5e0d410999d87cdfc4a20bb376b7ab1b769c2f4dee3dda005eb8ac09567a
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
@@ -1,7 +1,52 @@
|
|
1
1
|
language: ruby
|
2
2
|
|
3
|
-
|
4
|
-
|
3
|
+
sudo: false
|
4
|
+
|
5
|
+
addons:
|
6
|
+
apt:
|
7
|
+
packages:
|
8
|
+
- graphviz
|
9
|
+
chrome: stable
|
10
|
+
|
11
|
+
cache:
|
12
|
+
- apt
|
13
|
+
- bundler
|
5
14
|
|
6
15
|
before_install:
|
7
|
-
|
16
|
+
- sudo apt update -qq
|
17
|
+
- sudo apt install -y chromium-chromedriver
|
18
|
+
- sudo ln -s /usr/lib/chromium-browser/chromedriver /usr/bin/
|
19
|
+
- gem install bundler
|
20
|
+
|
21
|
+
rvm:
|
22
|
+
- 2.5.3
|
23
|
+
- 2.0.0
|
24
|
+
|
25
|
+
gemfile:
|
26
|
+
- gemfiles/rails_52.gemfile
|
27
|
+
- gemfiles/rails_51.gemfile
|
28
|
+
- gemfiles/rails_50.gemfile
|
29
|
+
- gemfiles/rails_42.gemfile
|
30
|
+
- gemfiles/rails_41.gemfile
|
31
|
+
- gemfiles/rails_40.gemfile
|
32
|
+
- gemfiles/rails_32.gemfile
|
33
|
+
|
34
|
+
matrix:
|
35
|
+
exclude:
|
36
|
+
- rvm: 2.0.0
|
37
|
+
gemfile: gemfiles/rails_52.gemfile
|
38
|
+
- rvm: 2.0.0
|
39
|
+
gemfile: gemfiles/rails_51.gemfile
|
40
|
+
- rvm: 2.0.0
|
41
|
+
gemfile: gemfiles/rails_50.gemfile
|
42
|
+
- rvm: 2.5.3
|
43
|
+
gemfile: gemfiles/rails_42.gemfile
|
44
|
+
- rvm: 2.5.3
|
45
|
+
gemfile: gemfiles/rails_41.gemfile
|
46
|
+
- rvm: 2.5.3
|
47
|
+
gemfile: gemfiles/rails_40.gemfile
|
48
|
+
- rvm: 2.5.3
|
49
|
+
gemfile: gemfiles/rails_32.gemfile
|
50
|
+
include:
|
51
|
+
- rvm: 1.8.7
|
52
|
+
gemfile: gemfiles/rails_32.gemfile
|
data/Gemfile
CHANGED
data/Rakefile
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'nokogiri'
|
2
4
|
require 'rails_erd/diagram/graphviz'
|
3
5
|
require 'erd/application_controller'
|
@@ -41,7 +43,7 @@ module Erd
|
|
41
43
|
generated_migration_file = Erd::GenaratorRunner.execute_generate_migration "drop_#{model}"
|
42
44
|
gsub_file generated_migration_file, /def (up|change).* end/m, "def change\n drop_table :#{model}\n end"
|
43
45
|
when 'rename_model'
|
44
|
-
|
46
|
+
_model, from, to = from.tableize, to.tableize, model.tableize
|
45
47
|
generated_migration_file = Erd::GenaratorRunner.execute_generate_migration "rename_#{from}_to_#{to}"
|
46
48
|
gsub_file generated_migration_file, /def (up|change).* end/m, "def change\n rename_table :#{from}, :#{to}\n end"
|
47
49
|
when 'add_column'
|
data/config.ru
CHANGED
data/config/routes.rb
CHANGED
data/erd.gemspec
CHANGED
@@ -1,4 +1,6 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
2
4
|
require File.expand_path('../lib/erd/version', __FILE__)
|
3
5
|
|
4
6
|
Gem::Specification.new do |gem|
|
@@ -20,9 +22,13 @@ Gem::Specification.new do |gem|
|
|
20
22
|
gem.add_runtime_dependency 'nokogiri'
|
21
23
|
|
22
24
|
gem.add_development_dependency 'rails', '>= 3.2'
|
25
|
+
gem.add_development_dependency 'sass-rails'
|
26
|
+
gem.add_development_dependency 'jquery-rails'
|
27
|
+
gem.add_development_dependency 'coffee-rails'
|
23
28
|
gem.add_development_dependency 'rake'
|
24
29
|
gem.add_development_dependency 'test-unit-rails'
|
25
30
|
gem.add_development_dependency 'capybara', '>= 2'
|
26
31
|
gem.add_development_dependency 'rr'
|
27
32
|
gem.add_development_dependency 'sqlite3'
|
33
|
+
gem.add_development_dependency 'selenium-webdriver'
|
28
34
|
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
source 'https://rubygems.org'
|
4
|
+
|
5
|
+
gemspec :path => '../'
|
6
|
+
|
7
|
+
gem 'rails', '~> 3.2.0'
|
8
|
+
gem 'nokogiri', RUBY_VERSION < '1.9' ? '~> 1.5.0' : RUBY_VERSION < '2.1' ? '~> 1.6.0' : '>= 1.7'
|
9
|
+
gem 'capybara', '~> 2.0.0'
|
10
|
+
gem 'rubyzip', '0.9.9' if RUBY_VERSION < '1.9'
|
11
|
+
|
12
|
+
gem 'test-unit-rails', '1.0.2'
|
13
|
+
gem 'test-unit', '< 3.1'
|
14
|
+
gem 'rails-erd', '< 1.2'
|
data/lib/erd.rb
CHANGED
data/lib/erd/engine.rb
CHANGED
data/lib/erd/generator_runner.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'rails/generators'
|
2
4
|
|
3
5
|
module Erd
|
@@ -20,11 +22,13 @@ module Erd
|
|
20
22
|
private
|
21
23
|
# a dirty workaround to make rspec-rails run
|
22
24
|
def overwriting_argv(value, &block)
|
23
|
-
original_argv = ARGV
|
24
|
-
|
25
|
+
original_argv = ARGV.dup
|
26
|
+
ARGV.clear
|
27
|
+
ARGV.concat value
|
25
28
|
block.call
|
26
29
|
ensure
|
27
|
-
|
30
|
+
ARGV.clear
|
31
|
+
ARGV.concat original_argv
|
28
32
|
end
|
29
33
|
|
30
34
|
def execute_generator(type, name, options = nil)
|
data/lib/erd/migrator.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'rails/generators'
|
2
4
|
|
3
5
|
module Erd
|
@@ -6,7 +8,8 @@ module Erd
|
|
6
8
|
class Migrator
|
7
9
|
class << self
|
8
10
|
def status
|
9
|
-
|
11
|
+
migration_table_name = defined?(ActiveRecord::SchemaMigration) ? ActiveRecord::SchemaMigration.table_name : ActiveRecord::Migrator.schema_migrations_table_name
|
12
|
+
migrated_versions = ActiveRecord::Base.connection.select_values("SELECT version FROM #{migration_table_name}").map {|v| '%.3d' % v}
|
10
13
|
migrations = []
|
11
14
|
ActiveRecord::Migrator.migrations_paths.each do |path|
|
12
15
|
Dir.foreach(Rails.root.join(path)) do |file|
|
@@ -28,8 +31,13 @@ module Erd
|
|
28
31
|
def run_migrations(migrations)
|
29
32
|
migrations.each do |direction, version_or_filenames|
|
30
33
|
Array.wrap(version_or_filenames).each do |version_or_filename|
|
31
|
-
|
32
|
-
|
34
|
+
version = File.basename(version_or_filename)[/\d{3,}/]
|
35
|
+
|
36
|
+
if defined? ActiveRecord::MigrationContext # >= 5.2
|
37
|
+
ActiveRecord::Base.connection.migration_context.run(direction, version.to_i)
|
38
|
+
else
|
39
|
+
ActiveRecord::Migrator.run(direction, ActiveRecord::Migrator.migrations_paths, version.to_i)
|
40
|
+
end
|
33
41
|
end if version_or_filenames
|
34
42
|
end
|
35
43
|
if ActiveRecord::Base.schema_format == :ruby
|
data/lib/erd/railtie.rb
CHANGED
data/lib/erd/version.rb
CHANGED
@@ -1,4 +1,6 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class CreateBooks < ActiveRecord::VERSION::MAJOR >= 5 ? ActiveRecord::Migration[5.0] : ActiveRecord::Migration
|
2
4
|
def change
|
3
5
|
create_table :books do |t|
|
4
6
|
t.references :author
|
@@ -6,6 +8,5 @@ class CreateBooks < ActiveRecord::Migration
|
|
6
8
|
|
7
9
|
t.timestamps
|
8
10
|
end
|
9
|
-
add_index :books, :author_id
|
10
11
|
end
|
11
12
|
end
|
data/test/fake_app/fake_app.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'active_record'
|
2
4
|
require 'action_controller/railtie'
|
3
5
|
|
4
6
|
# config
|
5
|
-
ActiveRecord::Base.establish_connection(:adapter => 'sqlite3', :database => ':memory:')
|
6
|
-
|
7
7
|
module ErdApp
|
8
8
|
class Application < Rails::Application
|
9
9
|
# Rais.root
|
data/test/features/erd_test.rb
CHANGED
@@ -1,9 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'test_helper'
|
2
4
|
|
3
5
|
class ErdIndexTest < ActionDispatch::IntegrationTest
|
4
6
|
test 'with author and book model' do
|
5
7
|
visit '/erd'
|
6
|
-
|
8
|
+
|
9
|
+
if Capybara::VERSION > '3'
|
10
|
+
assert has_content? 'Author', :minimum => 1
|
11
|
+
else
|
12
|
+
assert has_content? 'Author'
|
13
|
+
end
|
7
14
|
assert has_content? 'name'
|
8
15
|
assert has_content? 'Book'
|
9
16
|
assert has_content? 'title'
|
data/test/lib/migrator_test.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'test_helper'
|
2
4
|
|
3
5
|
class MigratorTest < ActiveSupport::TestCase
|
@@ -21,8 +23,15 @@ class MigratorTest < ActiveSupport::TestCase
|
|
21
23
|
|
22
24
|
sub_test_case '.run_migrations' do
|
23
25
|
setup do
|
24
|
-
|
25
|
-
|
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
|
26
35
|
mock(ActiveRecord::SchemaDumper).dump(ActiveRecord::Base.connection, anything)
|
27
36
|
end
|
28
37
|
test 'runs migration by version number' do
|
@@ -36,7 +45,7 @@ end
|
|
36
45
|
|
37
46
|
class GenaratorRunnerTest < ActiveSupport::TestCase
|
38
47
|
setup do
|
39
|
-
stub.proxy(Time).now {|t| stub(t).utc { Time.
|
48
|
+
stub.proxy(Time).now {|t| stub(t).utc { Time.parse '2012/5/12 13:26' } }
|
40
49
|
end
|
41
50
|
teardown do
|
42
51
|
Dir.glob(Rails.root.join('db/migrate/*.rb')).each do |f|
|
@@ -45,6 +54,6 @@ class GenaratorRunnerTest < ActiveSupport::TestCase
|
|
45
54
|
end
|
46
55
|
|
47
56
|
test '.execute_generate_migration' do
|
48
|
-
assert_includes
|
57
|
+
assert_includes Erd::GenaratorRunner.execute_generate_migration('create_foobars'), 'db/migrate/20120512132600_create_foobars.rb'
|
49
58
|
end
|
50
59
|
end
|
data/test/test_helper.rb
CHANGED
@@ -1,11 +1,36 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
2
4
|
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
5
|
+
|
6
|
+
ENV['RAILS_ENV'] = 'development'
|
7
|
+
|
3
8
|
# load Rails first
|
4
9
|
require 'rails'
|
10
|
+
require 'jquery-rails'
|
5
11
|
require 'erd'
|
6
12
|
require 'fake_app/fake_app'
|
7
13
|
require 'test/unit/rails/test_help'
|
8
14
|
Bundler.require
|
15
|
+
require 'capybara'
|
16
|
+
require 'selenium/webdriver'
|
17
|
+
|
18
|
+
begin
|
19
|
+
require "action_dispatch/system_test_case"
|
20
|
+
rescue LoadError
|
21
|
+
Capybara.register_driver :chrome do |app|
|
22
|
+
options = Selenium::WebDriver::Chrome::Options.new(:args => %w[no-sandbox headless disable-gpu])
|
23
|
+
Capybara::Selenium::Driver.new(app, :browser => :chrome, :options => options)
|
24
|
+
end
|
25
|
+
Capybara.javascript_driver = :chrome
|
26
|
+
else
|
27
|
+
ActionDispatch::SystemTestCase.driven_by(:selenium, :using => :headless_chrome)
|
28
|
+
end
|
9
29
|
|
10
30
|
ActiveRecord::Migration.verbose = false
|
11
|
-
ActiveRecord::
|
31
|
+
if defined? ActiveRecord::MigrationContext # >= 5.2
|
32
|
+
ActiveRecord::Migrator.migrations_paths = Rails.application.paths['db/migrate'].to_a
|
33
|
+
ActiveRecord::Base.connection.migration_context.migrate
|
34
|
+
else
|
35
|
+
ActiveRecord::Migrator.migrate(ActiveRecord::Migrator.migrations_paths.map {|p| Rails.root.join p}, nil)
|
36
|
+
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.
|
4
|
+
version: 0.5.0
|
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: 2018-11-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails-erd
|
@@ -52,6 +52,48 @@ dependencies:
|
|
52
52
|
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '3.2'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: sass-rails
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: jquery-rails
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: coffee-rails
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
55
97
|
- !ruby/object:Gem::Dependency
|
56
98
|
name: rake
|
57
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -122,6 +164,20 @@ dependencies:
|
|
122
164
|
- - ">="
|
123
165
|
- !ruby/object:Gem::Version
|
124
166
|
version: '0'
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: selenium-webdriver
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - ">="
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '0'
|
174
|
+
type: :development
|
175
|
+
prerelease: false
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - ">="
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: '0'
|
125
181
|
description: erd engine on Rails
|
126
182
|
email:
|
127
183
|
- ronnie@dio.jp
|
@@ -149,12 +205,21 @@ files:
|
|
149
205
|
- config.ru
|
150
206
|
- config/routes.rb
|
151
207
|
- erd.gemspec
|
208
|
+
- gemfiles/rails_32.gemfile
|
209
|
+
- gemfiles/rails_40.gemfile
|
210
|
+
- gemfiles/rails_41.gemfile
|
211
|
+
- gemfiles/rails_42.gemfile
|
212
|
+
- gemfiles/rails_50.gemfile
|
213
|
+
- gemfiles/rails_51.gemfile
|
214
|
+
- gemfiles/rails_52.gemfile
|
215
|
+
- gemfiles/rails_edge.gemfile
|
152
216
|
- lib/erd.rb
|
153
217
|
- lib/erd/engine.rb
|
154
218
|
- lib/erd/generator_runner.rb
|
155
219
|
- lib/erd/migrator.rb
|
156
220
|
- lib/erd/railtie.rb
|
157
221
|
- lib/erd/version.rb
|
222
|
+
- test/fake_app/config/database.yml
|
158
223
|
- test/fake_app/db/migrate/20120428022519_create_authors.rb
|
159
224
|
- test/fake_app/db/migrate/20120428022535_create_books.rb
|
160
225
|
- test/fake_app/db/schema.rb
|
@@ -207,11 +272,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
207
272
|
version: '0'
|
208
273
|
requirements: []
|
209
274
|
rubyforge_project:
|
210
|
-
rubygems_version: 2.6
|
275
|
+
rubygems_version: 2.7.6
|
211
276
|
signing_key:
|
212
277
|
specification_version: 4
|
213
278
|
summary: erd engine on Rails
|
214
279
|
test_files:
|
280
|
+
- test/fake_app/config/database.yml
|
215
281
|
- test/fake_app/db/migrate/20120428022519_create_authors.rb
|
216
282
|
- test/fake_app/db/migrate/20120428022535_create_books.rb
|
217
283
|
- test/fake_app/db/schema.rb
|