Class: Generator
- Inherits:
-
Object
- Object
- Generator
- Defined in:
- lib/generator.rb
Instance Attribute Summary collapse
-
#force ⇒ Object
Returns the value of attribute force.
-
#rails_root ⇒ Object
Returns the value of attribute rails_root.
-
#single ⇒ Object
Returns the value of attribute single.
Instance Method Summary collapse
- #create_factories ⇒ Object
- #create_multiple ⇒ Object
- #create_single ⇒ Object
- #directory?(path) ⇒ Boolean
- #file?(path) ⇒ Boolean
-
#initialize(rails_root, single, force) ⇒ Generator
constructor
A new instance of Generator.
- #to_boolean(str) ⇒ Object
Constructor Details
#initialize(rails_root, single, force) ⇒ Generator
Returns a new instance of Generator.
5 6 7 8 9 |
# File 'lib/generator.rb', line 5 def initialize(rails_root, single, force) @rails_root = rails_root @single = single @force = force end |
Instance Attribute Details
#force ⇒ Object
Returns the value of attribute force.
3 4 5 |
# File 'lib/generator.rb', line 3 def force @force end |
#rails_root ⇒ Object
Returns the value of attribute rails_root.
3 4 5 |
# File 'lib/generator.rb', line 3 def rails_root @rails_root end |
#single ⇒ Object
Returns the value of attribute single.
3 4 5 |
# File 'lib/generator.rb', line 3 def single @single end |
Instance Method Details
#create_factories ⇒ Object
11 12 13 14 15 16 17 18 |
# File 'lib/generator.rb', line 11 def create_factories @rails_root = rails_root if !@single create_multiple else create_single end end |
#create_multiple ⇒ Object
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
# File 'lib/generator.rb', line 55 def create_multiple if !directory?("spec/factories") FileUtils.mkdir_p("#{@rails_root}/spec/factories") end library = Library.new ActiveRecord::Base.connection.tables.each do |table_name| next if table_name == 'schema_migrations' next if file?("spec/factories/#{table_name}.rb") and !@force file = File.join(@rails_root, 'spec', 'factories', "#{table_name}.rb") File.open(file, 'w') do |f| f.puts "require 'factory_girl'" f.puts "\n" f.puts "FactoryGirl.define do" p "Creating factory #{table_name}" f.puts "\n" f.puts " factory :#{table_name} do" ActiveRecord::Base.connection.columns(table_name).each do |c| f.puts " #{c.name} #{library.check(c.name, c.type, c.limit)}" end f.puts " end" f.puts "\n" f.puts "end" end end end |
#create_single ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/generator.rb', line 32 def create_single library = Library.new return if file?("spec/factories.rb") and !@force file = File.join(@rails_root, 'spec', 'factories.rb') File.open(file, 'w') do |f| f.puts "require 'factory_girl'" f.puts "\n" f.puts "FactoryGirl.define do" ActiveRecord::Base.connection.tables.each do |table_name| next if table_name == 'schema_migrations' p "Creating factory #{table_name}" f.puts "\n" f.puts " factory :#{table_name} do" ActiveRecord::Base.connection.columns(table_name).each do |c| f.puts " #{c.name} #{library.check(c.name, c.type, c.limit)}" end f.puts " end" end f.puts "\n" f.puts "end" end end |
#directory?(path) ⇒ Boolean
24 25 26 |
# File 'lib/generator.rb', line 24 def directory?(path) File.directory?("#{@rails_root}/#{path}") end |
#file?(path) ⇒ Boolean
20 21 22 |
# File 'lib/generator.rb', line 20 def file?(path) File.exists?("#{@rails_root}/#{path}") end |
#to_boolean(str) ⇒ Object
28 29 30 |
# File 'lib/generator.rb', line 28 def to_boolean(str) str == "true" end |