erd 0.1.5 → 0.1.6

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.
data/README.rdoc CHANGED
@@ -49,8 +49,6 @@ Browse at your http://localhost:3000/erd
49
49
 
50
50
  * drop column (need to think of the UI)
51
51
 
52
- * performance (with large number of models)
53
-
54
52
  * stop depending on rails-erd and Graphviz
55
53
 
56
54
  * tests
@@ -75,6 +75,7 @@ class ERD
75
75
  setup_handlers: ->
76
76
  @setup_click_handlers()
77
77
  @setup_submit_handlers()
78
+ @setup_migration_event_handlers()
78
79
  $('div.model').draggable(drag: @handle_drag)
79
80
 
80
81
  handle_drag: (ev, ui) =>
@@ -98,6 +99,13 @@ class ERD
98
99
  $('form.add_column_form').on 'submit', @handle_add_column
99
100
  $('#changes_form').on 'submit', @handle_save
100
101
 
102
+ setup_migration_event_handlers: ->
103
+ $('#migration_status tr input').on 'click', ->
104
+ $(this).parents('tr').toggleClass('active')
105
+ $('#migration_status thead td button').on 'click', (ev) ->
106
+ ev.preventDefault()
107
+ $('#migration_status').toggleClass('show_all_migrations')
108
+
101
109
  handle_save: (ev) =>
102
110
  changes = $('#changes > tbody > tr').map(->
103
111
  change = {}
@@ -248,3 +256,6 @@ class ERD
248
256
  $ ->
249
257
  window.erd = new ERD('erd', $('#erd'), window.raw_edges)
250
258
 
259
+ $('#erd').css('height', window.innerHeight)
260
+ $(window).on 'resize', ->
261
+ $('#erd').css('height', window.innerHeight)
@@ -1,4 +1,4 @@
1
- html, body, p, ul, ol, dl, p, li, dt, dd, form {
1
+ html, body, p, ul, ol, dl, p, li, dt, dd, tr, td, form {
2
2
  margin: 0;
3
3
  padding: 0;
4
4
  }
@@ -29,6 +29,14 @@ li {
29
29
 
30
30
  #migration {
31
31
  table {
32
+ thead {
33
+ td {
34
+ text-align: center;
35
+ button {
36
+ padding: 3px 30px;
37
+ }
38
+ }
39
+ }
32
40
  td {
33
41
  font-size: small;
34
42
  }
@@ -38,7 +46,55 @@ li {
38
46
  }
39
47
  }
40
48
 
49
+ @mixin active-migration {
50
+ height: auto;
51
+ * {
52
+ font-size: small;
53
+ height: auto;
54
+ overflow: auto;
55
+ }
56
+ input {
57
+ display: inline-block;
58
+ }
59
+ }
60
+
61
+ #migration_status {
62
+ width: 386px;
63
+ td.migration_file_name {
64
+ word-break: break-all;
65
+ }
66
+ td label {
67
+ white-space: nowrap;
68
+ }
69
+
70
+ tr.up {
71
+ font-size: 0;
72
+ height: 1px;
73
+ overflow: hidden;
74
+ * {
75
+ font-size: 0;
76
+ height: 1px;
77
+ overflow: hidden;
78
+ }
79
+ input {
80
+ display: none;
81
+ }
82
+ &:hover,&.active {
83
+ @include active-migration;
84
+ }
85
+ }
86
+
87
+ &.show_all_migrations {
88
+ tr.up {
89
+ @include active-migration;
90
+ }
91
+ }
92
+ }
93
+
41
94
  #erd {
95
+ overflow: auto;
96
+ position: relative;
97
+
42
98
  form {
43
99
  * {
44
100
  float: left;
@@ -6,13 +6,13 @@
6
6
  <div id="migration">
7
7
  <%- if flash[:executed_migrations].present? -%>
8
8
  <div id="executed">
9
- <h2>Successfully executed the following migrations!</h2>
9
+ <h2>Successfully executed following <%= flash[:executed_migrations].values.flatten.count %> migrations!</h2>
10
10
  <%- [:up, :down].each do |direction| -%>
11
11
  <%- if flash[:executed_migrations][direction].present? -%>
12
12
  <h3><%= direction %></h3>
13
13
  <ul>
14
14
  <%- flash[:executed_migrations][direction].each do |m| -%>
15
- <li><%= m %></li>
15
+ <li><%= File.basename m %></li>
16
16
  <%- end -%>
17
17
  </ul>
18
18
  <%- end -%>
@@ -39,16 +39,26 @@
39
39
  <%= submit_tag 'save changes' %>
40
40
  <% end %>
41
41
  <%= form_tag '/erd/migrate', :method => :put do %>
42
- <table>
42
+ <table id="migration_status">
43
43
  <caption>migration status</caption>
44
- <thead><tr><th>status</th><th>version</th><th>name</th></tr></thead>
44
+ <thead>
45
+ <tr><th>status</th><th>version</th><th>name</th></tr>
46
+ <tr><td colspan="3">
47
+ <button>UNFOLD ALL</button>
48
+ <%= @migrations.count %> migrations in total (up: <%= @migrations.count {|m| m[:status] == 'up'} %>, down: <%= @migrations.count {|m| m[:status] == 'down'} %>)
49
+ </td></tr>
50
+ </thead>
45
51
  <tbody>
46
52
  <%- @migrations.each do |m| -%>
47
- <tr><td><label><%= check_box_tag (m[:status] == 'up' ? 'down[]' : 'up[]'), m[:filename] %><%= m[:status] %></label></td><td><%= m[:version] %></td><td><%= m[:name] %></td></tr>
53
+ <tr class="<%= m[:status] %>">
54
+ <td><label><%= check_box_tag (m[:status] == 'up' ? 'down[]' : 'up[]'), m[:filename] %><%= m[:status] %></label></td>
55
+ <td><%= m[:version] %></td>
56
+ <td class="migration_file_name"><%= m[:name] %></td>
57
+ </tr>
48
58
  <%- end -%>
49
59
  </tbody>
50
60
  </table>
51
- <%= submit_tag 'run migrations' %>
61
+ <%= submit_tag 'run migrations' %>
52
62
  <% end %>
53
63
  </div>
54
64
  </div>
data/lib/erd/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Erd
2
- VERSION = '0.1.5'
2
+ VERSION = '0.1.6'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: erd
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-05-24 00:00:00.000000000 Z
12
+ date: 2012-05-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails-erd
16
- requirement: &70195427878300 !ruby/object:Gem::Requirement
16
+ requirement: &70206052510280 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 0.4.5
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70195427878300
24
+ version_requirements: *70206052510280
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: nokogiri
27
- requirement: &70195427877780 !ruby/object:Gem::Requirement
27
+ requirement: &70206052509720 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70195427877780
35
+ version_requirements: *70206052509720
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rspec-rails
38
- requirement: &70195427877220 !ruby/object:Gem::Requirement
38
+ requirement: &70206052508980 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70195427877220
46
+ version_requirements: *70206052508980
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: capybara
49
- requirement: &70195427876600 !ruby/object:Gem::Requirement
49
+ requirement: &70206052508440 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70195427876600
57
+ version_requirements: *70206052508440
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: rr
60
- requirement: &70195427875240 !ruby/object:Gem::Requirement
60
+ requirement: &70206052508020 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70195427875240
68
+ version_requirements: *70206052508020
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: sqlite3
71
- requirement: &70195427874700 !ruby/object:Gem::Requirement
71
+ requirement: &70206052507260 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,7 +76,7 @@ dependencies:
76
76
  version: '0'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *70195427874700
79
+ version_requirements: *70206052507260
80
80
  description: erd engine on Rails
81
81
  email:
82
82
  - ronnie@dio.jp