diff options
-rw-r--r-- | vendor/plugins/annotate_models/ChangeLog | 46 | ||||
-rw-r--r-- | vendor/plugins/annotate_models/README | 31 | ||||
-rw-r--r-- | vendor/plugins/annotate_models/lib/annotate_models.rb | 127 | ||||
-rw-r--r-- | vendor/plugins/annotate_models/tasks/annotate_models_tasks.rake | 6 |
4 files changed, 0 insertions, 210 deletions
diff --git a/vendor/plugins/annotate_models/ChangeLog b/vendor/plugins/annotate_models/ChangeLog deleted file mode 100644 index e6630a87c..000000000 --- a/vendor/plugins/annotate_models/ChangeLog +++ /dev/null @@ -1,46 +0,0 @@ -2007-03-05: Dave Thomas <dave@pragprog.com> - * Forgot to call the quote method - -2007-03-02: Dave Thomas <dave@pragprog.com> - * Allow non-printing characters in column defaults (suggested by Ben Booth) - -2007-02-28: Dave Thomas <dave@pragprog.com> - * Report errors loading model classes better. Change suggested by Niels Knacke - -2007-02-22: Dave Thomas <dave@pragprog.com> -* Ignore models with no underlying database table (based on patch from Jamie van Dyke) -* Handle case where database has no session_info table (patch by David Vrensk) - - -2006-07-13: Dave Thomas <dave@pragprog.com> - * Support :scale for decimal columns - -2006-07-13: Wes Gamble - * Don't annotate abstract models - -2006-06-13: Dave Thomas <dave@pragprog.com> - * Fix bug where we corrupted the PREFIX string and therefore duplicated - the header - * No longer include the datetime, so we don't trigger a commit - back into repos - - -- NOTE -- just this once, you'll get a duplicate header after you run - a_m on an already-annotated model. Sorry.... Dave - - - -2006-06-11 Dave Thomas <dave@pragprog.com> - * lib/annotate_models.rb: At Kian Wright's suggestion, document the table - name and primary key. Also make the timestamp prettier - -2006-04-17 Dave Thomas <dave@pragprog.com> - - * lib/annnotate_models.rb: Include Bruce William's patch to allow - models in subdirectories - -2006-03-11 Dave Thomas <dave@pragprog.com> - - * lib/annotate_models.rb: Use camelize, not classify, to construct - class names (Grant Hollingworth) - -3/3/06 Now annotates fixture files too (thanks to Josha Susser) diff --git a/vendor/plugins/annotate_models/README b/vendor/plugins/annotate_models/README deleted file mode 100644 index f1f1dff55..000000000 --- a/vendor/plugins/annotate_models/README +++ /dev/null @@ -1,31 +0,0 @@ -AnnotateSchema -============== - -Add a comment summarizing the current schema to the top -of each ActiveRecord model source file: - - # Schema as of Sun Feb 26 21:58:32 CST 2006 (schema version 7) - # - # id :integer(11) not null - # quantity :integer(11) - # product_id :integer(11) - # unit_price :float - # order_id :integer(11) - # - - class LineItem < ActiveRecord::Base belongs_to :product - - . . . - -Note that this code will blow away the initial comment block in your models if it looks ike it was -previously added by annotate models, so you don't want to add additional text to an automatically -created comment block. - -Author: - Dave Thomas - Pragmatic Programmers, LLC - -Released under the same license as Ruby. No Support. No Warranty. - -Back up your model files before using... - diff --git a/vendor/plugins/annotate_models/lib/annotate_models.rb b/vendor/plugins/annotate_models/lib/annotate_models.rb deleted file mode 100644 index 8af7be116..000000000 --- a/vendor/plugins/annotate_models/lib/annotate_models.rb +++ /dev/null @@ -1,127 +0,0 @@ -require "config/environment" - -MODEL_DIR = File.join(RAILS_ROOT, "app/models") -FIXTURE_DIR = File.join(RAILS_ROOT, "test/fixtures") - -module AnnotateModels - - PREFIX = "== Schema Information" - - # Simple quoting for the default column value - def self.quote(value) - case value - when NilClass then "null" - when TrueClass then "true" - when FalseClass then "false" - when Float, Fixnum, Bignum then value.to_s - # BigDecimals need to be output in a non-normalized form and quoted. - when BigDecimal then value.to_s('F') - else - value.inspect - end - end - - # Use the column information in an ActiveRecord class - # to create a comment block containing a line for - # each column. The line contains the column name, - # the type (and length), and any optional attributes - def self.get_schema_info(klass, header) - info = "# #{header}\n#\n" - info << "# Table name: #{klass.table_name}\n#\n" - - max_size = klass.column_names.collect{|name| name.size}.max + 1 - klass.columns.each do |col| - attrs = [] - attrs << "default(#{quote(col.default)})" if !col.default.nil? - attrs << "not null" unless col.null - attrs << "primary key" if col.name == klass.primary_key - - col_type = col.type.to_s - if col_type == "decimal" - col_type << "(#{col.precision}, #{col.scale})" - else - col_type << "(#{col.limit})" if col.limit - end - info << sprintf("# %-#{max_size}.#{max_size}s:%-15.15s %s\n", col.name, col_type, attrs.join(", ")) - end - - info << "#\n\n" - end - - # Add a schema block to a file. If the file already contains - # a schema info block (a comment starting - # with "Schema as of ..."), remove it first. - - def self.annotate_one_file(file_name, info_block) - if File.exist?(file_name) - content = File.read(file_name) - - # Remove old schema info - content.sub!(/^# #{PREFIX}.*?\n(#.*\n)*\n/, '') - - # Write it back - File.open(file_name, "w") { |f| f.puts info_block + content } - end - end - - # Given the name of an ActiveRecord class, create a schema - # info block (basically a comment containing information - # on the columns and their types) and put it at the front - # of the model and fixture source files. - - def self.annotate(klass, header) - info = get_schema_info(klass, header) - - model_file_name = File.join(MODEL_DIR, klass.name.underscore + ".rb") - annotate_one_file(model_file_name, info) - - fixture_file_name = File.join(FIXTURE_DIR, klass.table_name + ".yml") - annotate_one_file(fixture_file_name, info) - end - - # Return a list of the model files to annotate. If we have - # command line arguments, they're assumed to be either - # the underscore or CamelCase versions of model names. - # Otherwise we take all the model files in the - # app/models directory. - def self.get_model_names - models = ARGV.dup - models.shift - - if models.empty? - Dir.chdir(MODEL_DIR) do - models = Dir["**/*.rb"] - end - end - models - end - - # We're passed a name of things that might be - # ActiveRecord models. If we can find the class, and - # if its a subclass of ActiveRecord::Base, - # then pas it to the associated block - - def self.do_annotations - header = PREFIX.dup - version = ActiveRecord::Migrator.current_version rescue 0 - if version > 0 - header << "\n# Schema version: #{version}" - end - - self.get_model_names.each do |m| - class_name = m.sub(/\.rb$/,'').camelize - begin - klass = class_name.split('::').inject(Object){ |klass,part| klass.const_get(part) } - if klass < ActiveRecord::Base && !klass.abstract_class? - puts "Annotating #{class_name}" - self.annotate(klass, header) - else - puts "Skipping #{class_name}" - end - rescue Exception => e - puts "Unable to annotate #{class_name}: #{e.message}" - end - - end - end -end diff --git a/vendor/plugins/annotate_models/tasks/annotate_models_tasks.rake b/vendor/plugins/annotate_models/tasks/annotate_models_tasks.rake deleted file mode 100644 index 0faee208a..000000000 --- a/vendor/plugins/annotate_models/tasks/annotate_models_tasks.rake +++ /dev/null @@ -1,6 +0,0 @@ -desc "Add schema information (as comments) to model files" - -task :annotate_models do - require File.join(File.dirname(__FILE__), "../lib/annotate_models.rb") - AnnotateModels.do_annotations -end
\ No newline at end of file |