Class: CreateDynamicFields::Generators::InstallGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Includes:
Rails::Generators::Migration
Defined in:
lib/generators/create_dynamic_fields/install/install_generator.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.next_migration_number(path) ⇒ Object



12
13
14
15
16
17
18
19
# File 'lib/generators/create_dynamic_fields/install/install_generator.rb', line 12

def self.next_migration_number(path)
  unless @prev_migration_nr
    @prev_migration_nr = Time.now.utc.strftime("%Y%m%d%H%M%S").to_i
  else
    @prev_migration_nr += 1
  end
  @prev_migration_nr.to_s
end

Instance Method Details

#build_modelObject



21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/generators/create_dynamic_fields/install/install_generator.rb', line 21

def build_model
  # template   "create_dynamic_model.erb","app/models/#{namespace}_dynamic_model.rb"
  ERB.new(File.read(File.expand_path("../..", __FILE__) + '/install/templates/dynamic_field.erb')).run(binding())
  ERB.new(File.read(File.expand_path("../..", __FILE__) + '/install/templates/dynamic_model.erb')).run(binding())
  ERB.new(File.read(File.expand_path("../..", __FILE__) + '/install/templates/namespace.erb')).run(binding())
  if !name.empty?
    template 'dynamic_field.erb',"app/models/#{name.downcase}/dynamic_field.rb"
    template 'dynamic_model.erb',"app/models/#{name.downcase}/dynamic_model.rb"
    template 'namespace.erb',"app/models/#{name.downcase}.rb"
  else
    template 'dynamic_field.erb',"app/models/dynamic_field.rb"
    template 'dynamic_model.erb',"app/models/dynamic_model.rb"
  end
end

#copy_migrationsObject



36
37
38
39
40
41
42
43
44
45
46
# File 'lib/generators/create_dynamic_fields/install/install_generator.rb', line 36

def copy_migrations
  ERB.new(File.read(File.expand_path("../..", __FILE__) + '/install/templates/create_dynamic_field.erb')).run(binding())
  ERB.new(File.read(File.expand_path("../..", __FILE__) + '/install/templates/create_dynamic_model.erb')).run(binding())
  if !name.empty?
    migration_template "create_dynamic_model.erb", "db/migrate/create_#{name.downcase}_dynamic_models.rb"
    migration_template "create_dynamic_field.erb", "db/migrate/create_#{name.downcase}_dynamic_fields.rb"
  else
    migration_template "create_dynamic_model.erb", "db/migrate/create_dynamic_models.rb"
    migration_template "create_dynamic_field.erb", "db/migrate/create_dynamic_fields.rb"
  end
end