Changeset 716
- Timestamp:
- 10/04/07 06:34:14 (1 year ago)
- Files:
-
- plugins/merb_sequel/Rakefile (modified) (1 diff)
- plugins/merb_sequel/merb_generators/sequel_migration/sequel_migration_generator.rb (modified) (7 diffs)
- plugins/merb_sequel/merb_generators/sequel_migration/templates/new_migration.erb (modified) (1 diff)
- plugins/merb_sequel/merb_generators/sequel_model (added)
- plugins/merb_sequel/merb_generators/sequel_model/sequel_model_generator.rb (added)
- plugins/merb_sequel/merb_generators/sequel_model/templates (added)
- plugins/merb_sequel/merb_generators/sequel_model/templates/sequel_model_template.erb (added)
- plugins/merb_sequel/rspec_generators (added)
- plugins/merb_sequel/rspec_generators/sequel_model_test (added)
- plugins/merb_sequel/rspec_generators/sequel_model_test/sequel_model_test_generator.rb (added)
- plugins/merb_sequel/rspec_generators/sequel_model_test/templates (added)
- plugins/merb_sequel/rspec_generators/sequel_model_test/templates/model_spec_template.erb (added)
- plugins/merb_sequel/test_unit_generators (added)
- plugins/merb_sequel/test_unit_generators/sequel_model_test (added)
- plugins/merb_sequel/test_unit_generators/sequel_model_test/sequel_model_test_generator.rb (added)
- plugins/merb_sequel/test_unit_generators/sequel_model_test/templates (added)
- plugins/merb_sequel/test_unit_generators/sequel_model_test/templates/model_test_unit_template.erb (added)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
plugins/merb_sequel/Rakefile
r697 r716 24 24 s.require_path = 'lib' 25 25 s.autorequire = PLUGIN 26 s.files = %w(LICENSE README Rakefile TODO) + Dir.glob("{lib,specs,merb_generators }/**/*")26 s.files = %w(LICENSE README Rakefile TODO) + Dir.glob("{lib,specs,merb_generators,rspec_generators,test_unit_generators}/**/*") 27 27 end 28 28 plugins/merb_sequel/merb_generators/sequel_migration/sequel_migration_generator.rb
r697 r716 1 require 'merb'2 1 class SequelMigrationGenerator < RubiGen::Base 3 2 … … 10 9 usage if args.empty? 11 10 @name = args.shift 11 options[:table_name] ||= runtime_options[:table_name] 12 12 extract_options 13 13 end … … 21 21 # Ensure appropriate folder(s) exists 22 22 m.directory 'schema/migrations' 23 23 24 24 # Create stubs 25 25 highest_migration = Dir[Dir.pwd+'/schema/migrations/*'].map{|f| File.basename(f) =~ /^(\d+)/; $1}.max 26 26 filename = format("%03d_%s", (highest_migration.to_i+1), @name.snake_case) 27 m.template "new_migration.erb", "schema/migrations/#{filename}.rb", :assigns => { :class_name => @name } 27 m.template "new_migration.erb", "schema/migrations/#{filename}.rb", 28 :assigns => { :class_name => @name, 29 :table_name => options[:table_name], 30 :table_attributes => options[:table_attributes] } 28 31 29 32 end … … 35 38 Creates a new migration for merb using Sequel 36 39 37 USAGE: #{$0} #{spec.name} NameOfMigration 40 USAGE: #{$0} #{spec.name} NameOfMigration [field:type field:type] 38 41 39 42 Example: … … 42 45 If you already have 3 migrations, this will create the AddPeople migration in 43 46 schema/migration/004_add_people.rb 47 48 #{$0} #{spec.name} project --table-name projects_table name:string created_at:timestamp 49 50 This will create a migration that creates a table call projects_table with these attributes: 51 string :name 52 timestamp :created_at 53 44 54 EOS 45 55 end 46 56 47 57 def add_options!(opts) 48 #opts.separator ''49 #opts.separator 'Options:'58 opts.separator '' 59 opts.separator 'Options:' 50 60 # For each option below, place the default 51 61 # at the top of the file next to "default_options" … … 54 64 # "Default: none") { |options[:author]| } 55 65 # opts.on("-v", "--version", "Show the #{File.basename($0)} version number and quit.") 66 opts.on( "--table-name=\"table_name_for_migration\"", 67 String, 68 "Include a create table with the given table name"){ |options[:table_name]| } 56 69 end 57 70 … … 61 74 # raw instance variable value. 62 75 # @author = options[:author] 76 if !options[:table_attributes] 77 attribute = Struct.new(:name, :type) 78 options[:table_attributes] = args.map{ |b| b.split(":").size == 2 ? attribute.new(*b.split(":")) : nil }.compact 79 end 63 80 end 64 81 end plugins/merb_sequel/merb_generators/sequel_migration/templates/new_migration.erb
r697 r716 1 1 class <%= class_name.snake_case.camel_case %> < Sequel::Migration 2 2 def self.up 3 <%= "create_table :#{table_name} do" if table_name %> 4 <% for attribute in table_attributes -%> 5 <%= attribute.type %> :<%= attribute.name %> 6 <% end -%> 7 <%= "end" if table_name %> 3 8 end 4 9 5 10 def self.down 11 <% if table_name -%> 12 execute 'DROP TABLE <%= table_name %>' 13 <% end -%> 6 14 end 7 15 end 16 17
