diff --git a/generators/schema_browser/schema_browser_generator.rb b/generators/schema_browser/schema_browser_generator.rb deleted file mode 100644 index 8a5c694..0000000 --- a/generators/schema_browser/schema_browser_generator.rb +++ /dev/null @@ -1,50 +0,0 @@ -class SchemaBrowserGenerator < Rails::Generator::Base - def manifest - record do |m| - images = ["back.gif", - "h_1-n.gif", - "h_n-1.gif", - "move_cross.gif", - "shadow_bottom.png", - "shadow_corner.png", - "shadow.png", - "shadow_right.png", - "v_1-n.gif", - "v_n-1.gif"] - m.directory('public/images/schema_browser') - images.each do |img| - m.file "public/images/#{img}", "public/images/schema_browser/#{img}" - end - - javascripts = ["ajax.js", - "animator.js", - "generic.js", - "io.js", - "main.js", - "objects.js", - "settings.js", - "sql_types.js", - "style.js"] - m.directory('public/javascripts/schema_browser') - javascripts.each do |js| - m.file "public/javascripts/#{js}", "public/javascripts/schema_browser/#{js}" - end - - stylesheets = ["bar.css", - "foo", - "style.css"] - m.directory('public/stylesheets/schema_browser') - stylesheets.each do |css| - m.file "public/stylesheets/#{css}", "public/stylesheets/schema_browser/#{css}" - end - - m.directory('app/controllers') - m.file "app/controllers/schema_browser_controller.rb", "app/controllers/schema_browser_controller.rb" - m.directory('app/views/schema_browser') - m.file "app/views/schema_browser/index.html.erb", "app/views/schema_browser/index.html.erb" - m.file "app/views/schema_browser/schema.xml.builder", "app/views/schema_browser/schema.xml.builder" - m.directory('app/views/layouts') - m.file "app/views/layouts/schema_browser.html.erb", "app/views/layouts/schema_browser.html.erb" - end - end -end diff --git a/lib/generators/schema_browser/schema_browser_generator.rb b/lib/generators/schema_browser/schema_browser_generator.rb new file mode 100644 index 0000000..d83adcf --- /dev/null +++ b/lib/generators/schema_browser/schema_browser_generator.rb @@ -0,0 +1,68 @@ +require 'rails/generators' + +class SchemaBrowserGenerator < Rails::Generators::Base + def self.source_root + @source_root ||= File.join(File.dirname(__FILE__), 'templates') + end + + def generate_schema_browser + images = ["back.gif", + "h_1-n.gif", + "h_n-1.gif", + "move_cross.gif", + "shadow_bottom.png", + "shadow_corner.png", + "shadow.png", + "shadow_right.png", + "v_1-n.gif", + "v_n-1.gif"] + directory_name = "vendor/assets/images/schema_browser" + Dir.mkdir(directory_name) unless File.exists?(directory_name) + + images.each do |img| + copy_file "assets/images/#{img}", "vendor/assets/images/schema_browser/#{img}" + end + + javascripts = ["ajax.js", + "animator.js", + "generic.js", + "io.js", + "main.js", + "objects.js", + "settings.js", + "sql_types.js", + "style.js"] + + directory_name = "vendor/assets/javascripts/schema_browser" + Dir.mkdir(directory_name) unless File.exists?(directory_name) + + javascripts.each do |js| + copy_file "assets/javascripts/#{js}", "vendor/assets/javascripts/schema_browser/#{js}" + end + + stylesheets = ["bar.css", + "foo", + "style.css"] + + directory_name = "vendor/assets/stylesheets/schema_browser" + Dir.mkdir(directory_name) unless File.exists?(directory_name) + + stylesheets.each do |css| + copy_file "assets/stylesheets/#{css}", "vendor/assets/stylesheets/schema_browser/#{css}" + end + + directory_name = "app/controllers" + Dir.mkdir(directory_name) unless File.exists?(directory_name) + copy_file "app/controllers/schema_browser_controller.rb", "app/controllers/schema_browser_controller.rb" + + directory_name = "app/views/schema_browser" + Dir.mkdir(directory_name) unless File.exists?(directory_name) + copy_file "app/views/schema_browser/index.html.erb", "app/views/schema_browser/index.html.erb" + copy_file "app/views/schema_browser/schema.xml.builder", "app/views/schema_browser/schema.xml.builder" + + directory_name = "app/views/layouts" + Dir.mkdir(directory_name) unless File.exists?(directory_name) + copy_file "app/views/layouts/schema_browser.html.erb", "app/views/layouts/schema_browser.html.erb" + + end +end diff --git a/generators/schema_browser/templates/app/controllers/schema_browser_controller.rb b/lib/generators/schema_browser/templates/app/controllers/schema_browser_controller.rb similarity index 100% rename from generators/schema_browser/templates/app/controllers/schema_browser_controller.rb rename to lib/generators/schema_browser/templates/app/controllers/schema_browser_controller.rb diff --git a/generators/schema_browser/templates/app/views/layouts/schema_browser.html.erb b/lib/generators/schema_browser/templates/app/views/layouts/schema_browser.html.erb similarity index 100% rename from generators/schema_browser/templates/app/views/layouts/schema_browser.html.erb rename to lib/generators/schema_browser/templates/app/views/layouts/schema_browser.html.erb diff --git a/generators/schema_browser/templates/app/views/schema_browser/index.html.erb b/lib/generators/schema_browser/templates/app/views/schema_browser/index.html.erb similarity index 100% rename from generators/schema_browser/templates/app/views/schema_browser/index.html.erb rename to lib/generators/schema_browser/templates/app/views/schema_browser/index.html.erb diff --git a/generators/schema_browser/templates/app/views/schema_browser/schema.xml.builder b/lib/generators/schema_browser/templates/app/views/schema_browser/schema.xml.builder similarity index 100% rename from generators/schema_browser/templates/app/views/schema_browser/schema.xml.builder rename to lib/generators/schema_browser/templates/app/views/schema_browser/schema.xml.builder diff --git a/generators/schema_browser/templates/public/images/back.gif b/lib/generators/schema_browser/templates/assets/images/back.gif similarity index 100% rename from generators/schema_browser/templates/public/images/back.gif rename to lib/generators/schema_browser/templates/assets/images/back.gif diff --git a/generators/schema_browser/templates/public/images/h_1-n.gif b/lib/generators/schema_browser/templates/assets/images/h_1-n.gif similarity index 100% rename from generators/schema_browser/templates/public/images/h_1-n.gif rename to lib/generators/schema_browser/templates/assets/images/h_1-n.gif diff --git a/generators/schema_browser/templates/public/images/h_n-1.gif b/lib/generators/schema_browser/templates/assets/images/h_n-1.gif similarity index 100% rename from generators/schema_browser/templates/public/images/h_n-1.gif rename to lib/generators/schema_browser/templates/assets/images/h_n-1.gif diff --git a/generators/schema_browser/templates/public/images/move_cross.gif b/lib/generators/schema_browser/templates/assets/images/move_cross.gif similarity index 100% rename from generators/schema_browser/templates/public/images/move_cross.gif rename to lib/generators/schema_browser/templates/assets/images/move_cross.gif diff --git a/generators/schema_browser/templates/public/images/shadow.png b/lib/generators/schema_browser/templates/assets/images/shadow.png similarity index 100% rename from generators/schema_browser/templates/public/images/shadow.png rename to lib/generators/schema_browser/templates/assets/images/shadow.png diff --git a/generators/schema_browser/templates/public/images/shadow_bottom.png b/lib/generators/schema_browser/templates/assets/images/shadow_bottom.png similarity index 100% rename from generators/schema_browser/templates/public/images/shadow_bottom.png rename to lib/generators/schema_browser/templates/assets/images/shadow_bottom.png diff --git a/generators/schema_browser/templates/public/images/shadow_corner.png b/lib/generators/schema_browser/templates/assets/images/shadow_corner.png similarity index 100% rename from generators/schema_browser/templates/public/images/shadow_corner.png rename to lib/generators/schema_browser/templates/assets/images/shadow_corner.png diff --git a/generators/schema_browser/templates/public/images/shadow_right.png b/lib/generators/schema_browser/templates/assets/images/shadow_right.png similarity index 100% rename from generators/schema_browser/templates/public/images/shadow_right.png rename to lib/generators/schema_browser/templates/assets/images/shadow_right.png diff --git a/generators/schema_browser/templates/public/images/v_1-n.gif b/lib/generators/schema_browser/templates/assets/images/v_1-n.gif similarity index 100% rename from generators/schema_browser/templates/public/images/v_1-n.gif rename to lib/generators/schema_browser/templates/assets/images/v_1-n.gif diff --git a/generators/schema_browser/templates/public/images/v_n-1.gif b/lib/generators/schema_browser/templates/assets/images/v_n-1.gif similarity index 100% rename from generators/schema_browser/templates/public/images/v_n-1.gif rename to lib/generators/schema_browser/templates/assets/images/v_n-1.gif diff --git a/generators/schema_browser/templates/public/javascripts/ajax.js b/lib/generators/schema_browser/templates/assets/javascripts/ajax.js similarity index 100% rename from generators/schema_browser/templates/public/javascripts/ajax.js rename to lib/generators/schema_browser/templates/assets/javascripts/ajax.js diff --git a/generators/schema_browser/templates/public/javascripts/animator.js b/lib/generators/schema_browser/templates/assets/javascripts/animator.js similarity index 100% rename from generators/schema_browser/templates/public/javascripts/animator.js rename to lib/generators/schema_browser/templates/assets/javascripts/animator.js diff --git a/generators/schema_browser/templates/public/javascripts/generic.js b/lib/generators/schema_browser/templates/assets/javascripts/generic.js similarity index 100% rename from generators/schema_browser/templates/public/javascripts/generic.js rename to lib/generators/schema_browser/templates/assets/javascripts/generic.js diff --git a/generators/schema_browser/templates/public/javascripts/io.js b/lib/generators/schema_browser/templates/assets/javascripts/io.js similarity index 100% rename from generators/schema_browser/templates/public/javascripts/io.js rename to lib/generators/schema_browser/templates/assets/javascripts/io.js diff --git a/generators/schema_browser/templates/public/javascripts/main.js b/lib/generators/schema_browser/templates/assets/javascripts/main.js similarity index 100% rename from generators/schema_browser/templates/public/javascripts/main.js rename to lib/generators/schema_browser/templates/assets/javascripts/main.js diff --git a/generators/schema_browser/templates/public/javascripts/objects.js b/lib/generators/schema_browser/templates/assets/javascripts/objects.js similarity index 97% rename from generators/schema_browser/templates/public/javascripts/objects.js rename to lib/generators/schema_browser/templates/assets/javascripts/objects.js index 7a07edc..e768168 100644 --- a/generators/schema_browser/templates/public/javascripts/objects.js +++ b/lib/generators/schema_browser/templates/assets/javascripts/objects.js @@ -495,7 +495,7 @@ function Relation_update() { break; } var eri = this.elem_4.getElementsByTagName('img'); - eri[0].setAttribute("src","/images/schema_browser/"+imgsrc+".gif"); + eri[0].setAttribute("src","/assets/schema_browser/"+imgsrc+".gif"); } Relation.prototype = new abstractParent(); @@ -526,7 +526,7 @@ function Relation(parent_1, row_1, parent_2, row_2, id) { this._div.appendChild(this.elem_3); this.e_relation = document.createElement("img"); - this.e_relation.setAttribute("src","/images/schema_browser/move_cross.gif"); + this.e_relation.setAttribute("src","/assets/schema_browser/move_cross.gif"); this.e_relation.setAttribute("width","11"); this.e_relation.setAttribute("height","11"); diff --git a/generators/schema_browser/templates/public/javascripts/settings.js b/lib/generators/schema_browser/templates/assets/javascripts/settings.js similarity index 100% rename from generators/schema_browser/templates/public/javascripts/settings.js rename to lib/generators/schema_browser/templates/assets/javascripts/settings.js diff --git a/generators/schema_browser/templates/public/javascripts/sql_types.js b/lib/generators/schema_browser/templates/assets/javascripts/sql_types.js similarity index 100% rename from generators/schema_browser/templates/public/javascripts/sql_types.js rename to lib/generators/schema_browser/templates/assets/javascripts/sql_types.js diff --git a/generators/schema_browser/templates/public/javascripts/style.js b/lib/generators/schema_browser/templates/assets/javascripts/style.js similarity index 100% rename from generators/schema_browser/templates/public/javascripts/style.js rename to lib/generators/schema_browser/templates/assets/javascripts/style.js diff --git a/generators/schema_browser/templates/public/stylesheets/bar.css b/lib/generators/schema_browser/templates/assets/stylesheets/bar.css similarity index 100% rename from generators/schema_browser/templates/public/stylesheets/bar.css rename to lib/generators/schema_browser/templates/assets/stylesheets/bar.css diff --git a/generators/schema_browser/templates/public/stylesheets/foo b/lib/generators/schema_browser/templates/assets/stylesheets/foo similarity index 100% rename from generators/schema_browser/templates/public/stylesheets/foo rename to lib/generators/schema_browser/templates/assets/stylesheets/foo diff --git a/generators/schema_browser/templates/public/stylesheets/style.css b/lib/generators/schema_browser/templates/assets/stylesheets/style.css similarity index 84% rename from generators/schema_browser/templates/public/stylesheets/style.css rename to lib/generators/schema_browser/templates/assets/stylesheets/style.css index 9dea781..a7fcd8d 100644 --- a/generators/schema_browser/templates/public/stylesheets/style.css +++ b/lib/generators/schema_browser/templates/assets/stylesheets/style.css @@ -1,4 +1,4 @@ -@import url("/stylesheets/schema_browser/bar.css"); +@import url("/assets/schema_browser/bar.css"); /* ---------------------------------- spolecne deklarace ------------------------------- */ body { @@ -7,11 +7,11 @@ body { padding: 0px; margin: 0px; _font-size: x-small; - background: url('/stylesheets/schema_browser/foo') fixed; /* ie hack */ + background: url('/assets/schema_browser/foo') fixed; /* ie hack */ } #root { - background-image: url("/images/schema_browser/back.gif"); + background-image: url("/assets/schema_browser/back.gif"); } #bar { @@ -23,7 +23,7 @@ body { } #shadow { - background-image: url("/images/schema_browser/shadow.png"); + background-image: url("/assets/schema_browser/shadow.png"); width: 100%; height: 8px; position: relative; @@ -115,7 +115,7 @@ body { } .shadow_right { - background-image: url("/images/schema_browser/shadow_right.png"); + background-image: url("/assets/schema_browser/shadow_right.png"); width: 8px; height: 100%; position: absolute; @@ -125,7 +125,7 @@ body { } .shadow_bottom { - background-image: url("/images/schema_browser/shadow_bottom.png"); + background-image: url("/assets/schema_browser/shadow_bottom.png"); width: 100%; height: 8px; position: absolute; @@ -135,7 +135,7 @@ body { } .shadow_corner { - background-image: url("/images/schema_browser/shadow_corner.png"); + background-image: url("/assets/schema_browser/shadow_corner.png"); width: 8px; height: 8px; position: absolute; diff --git a/generators/schema_browser/templates/db/add_schema_browser_positions_table_migration.rb b/lib/generators/schema_browser/templates/db/add_schema_browser_positions_table_migration.rb similarity index 100% rename from generators/schema_browser/templates/db/add_schema_browser_positions_table_migration.rb rename to lib/generators/schema_browser/templates/db/add_schema_browser_positions_table_migration.rb diff --git a/lib/schema_table.rb b/lib/schema_table.rb index a901c32..9aca8a1 100644 --- a/lib/schema_table.rb +++ b/lib/schema_table.rb @@ -26,7 +26,7 @@ def attributes def create_relation(reflection) referenced_table = @@tables[reflection.class_name.tableize] - from_column_name = reflection.primary_key_name.to_s + from_column_name = reflection.foreign_key.to_s raise "Field '#{from_column_name}' that should reference #{reflection.class_name} is not present in the database" if column(from_column_name).nil? column(from_column_name).foreign_key = true return if reflection.options[:polymorphic]