Sha256: 0bc3b9fd867e046510e1a530828c54a6a70098e98a963da730def259139cbee0
Contents?: true
Size: 1.97 KB
Versions: 3
Compression:
Stored size: 1.97 KB
Contents
require "columns/version" require "columns/table" require "columns/regex" require "columns/raw_data" require "columns/model_data" require "columns/model_cleaner" require "columns/model_writer" require "columns/extended_content" # Public: Columns annotate your activerecord models from a `schema.rb` file. # That could be handy when your application don't use Rails. module Columns # Public: Annotate models. # # schema_dir - String directory (absolute or relative) to find the # `schema.rb` file. Default is `./db/`. # models_dir - String directory (absolute or relative) to find the # models. Default is `./app/models/`. # # Returns nothing. # # Raises SystemExit if the `schema.rb` doesn't exist. def self.execute(schema_dir: './db/', models_dir: './app/models/') application = Application.new(schema_dir, models_dir) application.execute end private # The tool chain. class Application # Creates a new Application. # # See Columns.execute for arguments. # # Raises SystemExit if it can't find the `schema.rb`. def initialize(schema_dir, models_dir) @models_dir = models_dir schema_path = File.expand_path(File.join(schema_dir,'schema.rb')) unless File.exists?(schema_path) puts "COLUMNS ERROR : #{schema_path} doesn't exist!" exit 1 end table = Table.new(File.read(schema_path)) raw_data_objects = [] table.names.each do |name| raw_data_objects << RawData.new(name, table.content_for(name)) end @model_data_objects = raw_data_objects.map do |object| ModelData.new(object) end end # Cleans then writes models. # # Returns nothing. def execute writer = ModelWriter.new(path: @models_dir) @model_data_objects.each do |object| path = File.expand_path(File.join(@models_dir, object.name) + '.rb') ModelCleaner.clean(path) writer.add_info(object) end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
columns-0.2.0 | lib/columns.rb |
columns-0.1.1 | lib/columns.rb |
columns-0.1.0 | lib/columns.rb |