erd 0.3.1 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/assets/javascripts/erd/erd.js.coffee +21 -53
- data/app/controllers/erd/erd_controller.rb +31 -39
- data/erd.gemspec +1 -0
- data/lib/erd/generator_runner.rb +38 -0
- data/lib/erd/migrator.rb +0 -33
- data/lib/erd/railtie.rb +1 -0
- data/lib/erd/version.rb +1 -1
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c95c4586cc6d74e2464968fb1a334cdc1f5703a4
|
4
|
+
data.tar.gz: fddcd53eeb3bd88041f9590a2c2f9ba100bed013
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cd3f0c4003242d6293d8bdfe967ea34a2e7af4bd28f955c40490471b2ad229f197a91a3b39bf1f3f919e647b9919b37945d2641d5fc3f1f80e1fb53089064b8d
|
7
|
+
data.tar.gz: 2e96eff3f2e0b2b81c28b36cd95802ab53b8d3ad0fe0fc6a2a77ed76028e373906b0b82feefa724eb90f23bdbcfb496d04b0e48e764da830655e817bd76c2aa9
|
@@ -138,20 +138,14 @@ class ERD
|
|
138
138
|
type_span = $("<span/>", class: 'column_type_text unsaved')
|
139
139
|
.append(type)
|
140
140
|
|
141
|
-
li_node = $("<li/>", class: 'column unsaved')
|
142
|
-
.append(name_span)
|
143
|
-
.append(" ")
|
144
|
-
.append(type_span)
|
141
|
+
li_node = $("<li/>", class: 'column unsaved').append(name_span).append(" ").append(type_span)
|
145
142
|
|
146
143
|
target.hide()
|
147
144
|
.parent()
|
148
145
|
.siblings('.columns')
|
149
|
-
.find('ul')
|
150
|
-
.append(li_node)
|
146
|
+
.find('ul').append(li_node).end()
|
151
147
|
.end()
|
152
|
-
.
|
153
|
-
.find('a.add_column')
|
154
|
-
.show()
|
148
|
+
.find('a.add_column').show()
|
155
149
|
|
156
150
|
handle_change_column_type: (ev) =>
|
157
151
|
ev.preventDefault()
|
@@ -166,12 +160,8 @@ class ERD
|
|
166
160
|
@upsert_change 'alter_column', model, column, type, to
|
167
161
|
|
168
162
|
target.hide()
|
169
|
-
.siblings('.column_type_text')
|
170
|
-
.
|
171
|
-
.show()
|
172
|
-
.addClass('unsaved')
|
173
|
-
.parents('.column')
|
174
|
-
.addClass('unsaved')
|
163
|
+
.siblings('.column_type_text').text(to).show().addClass('unsaved')
|
164
|
+
.parents('.column').addClass('unsaved')
|
175
165
|
|
176
166
|
handle_rename_column: (ev) =>
|
177
167
|
ev.preventDefault()
|
@@ -185,11 +175,8 @@ class ERD
|
|
185
175
|
@upsert_change 'rename_column', model, column, column, to
|
186
176
|
|
187
177
|
target.hide()
|
188
|
-
.siblings('.column_name_text')
|
189
|
-
.
|
190
|
-
.show()
|
191
|
-
.parents('.column')
|
192
|
-
.addClass('unsaved')
|
178
|
+
.siblings('.column_name_text').text(to).show()
|
179
|
+
.parents('.column').addClass('unsaved')
|
193
180
|
|
194
181
|
handle_rename_model: (ev) =>
|
195
182
|
ev.preventDefault()
|
@@ -202,10 +189,7 @@ class ERD
|
|
202
189
|
@upsert_change 'rename_model', model, '', model, to
|
203
190
|
|
204
191
|
target.hide()
|
205
|
-
.siblings('.model_name_text')
|
206
|
-
.text(to)
|
207
|
-
.show()
|
208
|
-
.addClass('unsaved')
|
192
|
+
.siblings('.model_name_text').text(to).show().addClass('unsaved')
|
209
193
|
|
210
194
|
handle_add_column_click: (ev) =>
|
211
195
|
ev.preventDefault()
|
@@ -217,16 +201,10 @@ class ERD
|
|
217
201
|
return false
|
218
202
|
|
219
203
|
target.hide()
|
220
|
-
.next('form')
|
221
|
-
.show()
|
222
|
-
.find('
|
223
|
-
.
|
224
|
-
.find('input[name=type]')
|
225
|
-
.val('string')
|
226
|
-
.end()
|
227
|
-
.find('input[name=name]')
|
228
|
-
.val('')
|
229
|
-
.focus()
|
204
|
+
.next('form').show()
|
205
|
+
.find('a.cancel').show().end()
|
206
|
+
.find('input[name=type]').val('string').end()
|
207
|
+
.find('input[name=name]').val('').focus()
|
230
208
|
|
231
209
|
handle_cancel_click: (ev) =>
|
232
210
|
ev.preventDefault()
|
@@ -238,10 +216,8 @@ class ERD
|
|
238
216
|
return false
|
239
217
|
|
240
218
|
target.hide()
|
241
|
-
.parent('form')
|
242
|
-
.
|
243
|
-
.prev('a.add_column, span, div')
|
244
|
-
.show()
|
219
|
+
.parent('form').hide()
|
220
|
+
.prev('a.add_column, span, div').show()
|
245
221
|
|
246
222
|
|
247
223
|
handle_text_elem_click: (ev) =>
|
@@ -254,13 +230,9 @@ class ERD
|
|
254
230
|
return false
|
255
231
|
|
256
232
|
target.hide()
|
257
|
-
.next('form')
|
258
|
-
.show()
|
259
|
-
.find('
|
260
|
-
.show()
|
261
|
-
.find('input[name=to]')
|
262
|
-
.val(text)
|
263
|
-
.focus()
|
233
|
+
.next('form').show()
|
234
|
+
.find('a.cancel').show().end()
|
235
|
+
.find('input[name=to]').val(text).focus()
|
264
236
|
|
265
237
|
handle_remove_model_click: (ev) =>
|
266
238
|
ev.preventDefault()
|
@@ -303,10 +275,8 @@ class ERD
|
|
303
275
|
return false
|
304
276
|
|
305
277
|
target.hide()
|
306
|
-
.next('div')
|
307
|
-
.show()
|
308
|
-
.find('#close_migration')
|
309
|
-
.show()
|
278
|
+
.next('div').show()
|
279
|
+
.find('#close_migration').show()
|
310
280
|
|
311
281
|
|
312
282
|
handle_close_migration_click: (ev) =>
|
@@ -321,10 +291,8 @@ class ERD
|
|
321
291
|
return false
|
322
292
|
|
323
293
|
target.hide()
|
324
|
-
.parent()
|
325
|
-
.
|
326
|
-
.prev('div')
|
327
|
-
.show()
|
294
|
+
.parent().hide()
|
295
|
+
.prev('div').show()
|
328
296
|
|
329
297
|
$ ->
|
330
298
|
window.erd = new ERD('erd', $('#erd'), window.raw_edges)
|
@@ -25,51 +25,43 @@ module Erd
|
|
25
25
|
changes.each do |row|
|
26
26
|
begin
|
27
27
|
action, model, column, from, to = row['action'], row['model'], row['column'], row['from'], row['to']
|
28
|
-
|
29
|
-
when 'create_model'
|
30
|
-
columns = column.split(' ').compact
|
31
|
-
generated_migration_file = Erd::Migrator.execute_generate_model model, columns
|
32
|
-
Erd::Migrator.run_migrations :up => generated_migration_file
|
33
|
-
executed_migrations << generated_migration_file
|
34
|
-
when 'remove_model'
|
35
|
-
model = model.tableize
|
36
|
-
generated_migration_file = Erd::Migrator.execute_generate_migration "drop_#{model}"
|
37
|
-
gsub_file generated_migration_file, /def (up|change).* end/m, "def change\n drop_table :#{model}\n end"
|
38
|
-
Erd::Migrator.run_migrations :up => generated_migration_file
|
39
|
-
executed_migrations << generated_migration_file
|
40
|
-
when 'rename_model'
|
41
|
-
model, from, to = from.tableize, to.tableize, model.tableize
|
42
|
-
generated_migration_file = Erd::Migrator.execute_generate_migration "rename_#{from}_to_#{to}"
|
43
|
-
gsub_file generated_migration_file, /def (up|change).* end/m, "def change\n rename_table :#{from}, :#{to}\n end"
|
44
|
-
Erd::Migrator.run_migrations :up => generated_migration_file
|
45
|
-
executed_migrations << generated_migration_file
|
46
|
-
when 'add_column'
|
47
|
-
model = model.tableize
|
48
|
-
name_and_type = column.scan(/(.*)\((.*?)\)/).first
|
49
|
-
name, type = name_and_type[0], name_and_type[1]
|
50
|
-
generated_migration_file = Erd::Migrator.execute_generate_migration "add_#{name}_to_#{model}", ["#{name}:#{type}"]
|
51
|
-
Erd::Migrator.run_migrations :up => generated_migration_file
|
52
|
-
executed_migrations << generated_migration_file
|
53
|
-
when 'rename_column'
|
54
|
-
model = model.tableize
|
55
|
-
generated_migration_file = Erd::Migrator.execute_generate_migration "rename_#{model}_#{from}_to_#{to}"
|
56
|
-
gsub_file generated_migration_file, /def (up|change).* end/m, "def change\n rename_column :#{model}, :#{from}, :#{to}\n end"
|
57
|
-
Erd::Migrator.run_migrations :up => generated_migration_file
|
58
|
-
executed_migrations << generated_migration_file
|
59
|
-
when 'alter_column'
|
60
|
-
model = model.tableize
|
61
|
-
generated_migration_file = Erd::Migrator.execute_generate_migration "change_#{model}_#{column}_type_to_#{to}"
|
62
|
-
gsub_file generated_migration_file, /def (up|change).* end/m, "def change\n change_column :#{model}, :#{column}, :#{to}\n end"
|
63
|
-
Erd::Migrator.run_migrations :up => generated_migration_file
|
64
|
-
executed_migrations << generated_migration_file
|
65
|
-
when 'move'
|
28
|
+
if action == 'move'
|
66
29
|
model = model.tableize
|
67
30
|
json_file = Rails.root.join('tmp', 'erd_positions.json')
|
68
31
|
positions = json_file.exist? ? ActiveSupport::JSON.decode(json_file.read) : {}
|
69
32
|
positions[model] = to
|
70
33
|
json_file.open('w') {|f| f.write positions.to_json}
|
71
34
|
else
|
72
|
-
|
35
|
+
case action
|
36
|
+
when 'create_model'
|
37
|
+
columns = column.split(' ').compact
|
38
|
+
generated_migration_file = Erd::GenaratorRunner.execute_generate_model model, columns
|
39
|
+
when 'remove_model'
|
40
|
+
model = model.tableize
|
41
|
+
generated_migration_file = Erd::GenaratorRunner.execute_generate_migration "drop_#{model}"
|
42
|
+
gsub_file generated_migration_file, /def (up|change).* end/m, "def change\n drop_table :#{model}\n end"
|
43
|
+
when 'rename_model'
|
44
|
+
model, from, to = from.tableize, to.tableize, model.tableize
|
45
|
+
generated_migration_file = Erd::GenaratorRunner.execute_generate_migration "rename_#{from}_to_#{to}"
|
46
|
+
gsub_file generated_migration_file, /def (up|change).* end/m, "def change\n rename_table :#{from}, :#{to}\n end"
|
47
|
+
when 'add_column'
|
48
|
+
model = model.tableize
|
49
|
+
name_and_type = column.scan(/(.*)\((.*?)\)/).first
|
50
|
+
name, type = name_and_type[0], name_and_type[1]
|
51
|
+
generated_migration_file = Erd::GenaratorRunner.execute_generate_migration "add_#{name}_to_#{model}", ["#{name}:#{type}"]
|
52
|
+
when 'rename_column'
|
53
|
+
model = model.tableize
|
54
|
+
generated_migration_file = Erd::GenaratorRunner.execute_generate_migration "rename_#{model}_#{from}_to_#{to}"
|
55
|
+
gsub_file generated_migration_file, /def (up|change).* end/m, "def change\n rename_column :#{model}, :#{from}, :#{to}\n end"
|
56
|
+
when 'alter_column'
|
57
|
+
model = model.tableize
|
58
|
+
generated_migration_file = Erd::GenaratorRunner.execute_generate_migration "change_#{model}_#{column}_type_to_#{to}"
|
59
|
+
gsub_file generated_migration_file, /def (up|change).* end/m, "def change\n change_column :#{model}, :#{column}, :#{to}\n end"
|
60
|
+
else
|
61
|
+
raise "unexpected action: #{action}"
|
62
|
+
end
|
63
|
+
Erd::Migrator.run_migrations :up => generated_migration_file
|
64
|
+
executed_migrations << generated_migration_file
|
73
65
|
end
|
74
66
|
rescue ::Erd::MigrationError => e
|
75
67
|
failed_migrations << e.message
|
data/erd.gemspec
CHANGED
@@ -7,6 +7,7 @@ Gem::Specification.new do |gem|
|
|
7
7
|
gem.description = 'erd engine on Rails'
|
8
8
|
gem.summary = 'erd engine on Rails'
|
9
9
|
gem.homepage = 'https://github.com/amatsuda/erd'
|
10
|
+
gem.license = 'MIT'
|
10
11
|
|
11
12
|
gem.files = `git ls-files`.split($\)
|
12
13
|
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
@@ -0,0 +1,38 @@
|
|
1
|
+
module Erd
|
2
|
+
class GenaratorRunner
|
3
|
+
class << self
|
4
|
+
# runs `rails g model [name]`
|
5
|
+
# @return generated migration filename
|
6
|
+
def execute_generate_model(name, options = nil)
|
7
|
+
result = execute_generator 'model', name, options
|
8
|
+
result.flatten.grep(%r(/db/migrate/.*\.rb))
|
9
|
+
end
|
10
|
+
|
11
|
+
# runs `rails g migration [name]`
|
12
|
+
# @return generated migration filename
|
13
|
+
def execute_generate_migration(name, options = nil)
|
14
|
+
result = execute_generator 'migration', name, options
|
15
|
+
result.last.last
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
# a dirty workaround to make rspec-rails run
|
20
|
+
def overwriting_argv(value, &block)
|
21
|
+
original_argv = ARGV
|
22
|
+
Object.const_set :ARGV, value
|
23
|
+
block.call
|
24
|
+
ensure
|
25
|
+
Object.const_set :ARGV, original_argv
|
26
|
+
end
|
27
|
+
|
28
|
+
def execute_generator(type, name, options = nil)
|
29
|
+
overwriting_argv([name, options]) do
|
30
|
+
Rails::Generators.configure! Rails.application.config.generators
|
31
|
+
result = Rails::Generators.invoke type, [name, options], :behavior => :invoke, :destination_root => Rails.root
|
32
|
+
raise ::Erd::MigrationError, "#{name}#{"(#{options})" if options}" unless result
|
33
|
+
result
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
data/lib/erd/migrator.rb
CHANGED
@@ -39,39 +39,6 @@ module Erd
|
|
39
39
|
end
|
40
40
|
#TODO unload migraion classes
|
41
41
|
end
|
42
|
-
|
43
|
-
# runs `rails g model [name]`
|
44
|
-
# @return generated migration filename
|
45
|
-
def execute_generate_model(name, options = nil)
|
46
|
-
result = execute_generator 'model', name, options
|
47
|
-
result.flatten.grep(%r(/db/migrate/.*\.rb))
|
48
|
-
end
|
49
|
-
|
50
|
-
# runs `rails g migration [name]`
|
51
|
-
# @return generated migration filename
|
52
|
-
def execute_generate_migration(name, options = nil)
|
53
|
-
result = execute_generator 'migration', name, options
|
54
|
-
result.last.last
|
55
|
-
end
|
56
|
-
|
57
|
-
private
|
58
|
-
# a dirty workaround to make rspec-rails run
|
59
|
-
def overwriting_argv(value, &block)
|
60
|
-
original_argv = ARGV
|
61
|
-
Object.const_set :ARGV, value
|
62
|
-
block.call
|
63
|
-
ensure
|
64
|
-
Object.const_set :ARGV, original_argv
|
65
|
-
end
|
66
|
-
|
67
|
-
def execute_generator(type, name, options = nil)
|
68
|
-
overwriting_argv([name, options]) do
|
69
|
-
Rails::Generators.configure! Rails.application.config.generators
|
70
|
-
result = Rails::Generators.invoke type, [name, options], :behavior => :invoke, :destination_root => Rails.root
|
71
|
-
raise ::Erd::MigrationError, "#{name}#{"(#{options})" if options}" unless result
|
72
|
-
result
|
73
|
-
end
|
74
|
-
end
|
75
42
|
end
|
76
43
|
end
|
77
44
|
end
|
data/lib/erd/railtie.rb
CHANGED
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.3.
|
4
|
+
version: 0.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Akira Matsuda
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-07-
|
11
|
+
date: 2013-07-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails-erd
|
@@ -164,6 +164,7 @@ files:
|
|
164
164
|
- erd.gemspec
|
165
165
|
- lib/erd.rb
|
166
166
|
- lib/erd/engine.rb
|
167
|
+
- lib/erd/generator_runner.rb
|
167
168
|
- lib/erd/migrator.rb
|
168
169
|
- lib/erd/railtie.rb
|
169
170
|
- lib/erd/version.rb
|
@@ -195,7 +196,8 @@ files:
|
|
195
196
|
- vendor/assets/stylesheets/jquery-ui.css
|
196
197
|
- vendor/assets/stylesheets/jquery.ui.dialog.css
|
197
198
|
homepage: https://github.com/amatsuda/erd
|
198
|
-
licenses:
|
199
|
+
licenses:
|
200
|
+
- MIT
|
199
201
|
metadata: {}
|
200
202
|
post_install_message:
|
201
203
|
rdoc_options: []
|