Class: Propinsi::InstallGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Defined in:
lib/generators/propinsi/install_generator.rb

Instance Method Summary collapse

Instance Method Details

#create_db_seedObject



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/generators/propinsi/install_generator.rb', line 22

def create_db_seed
	filepath = File.join(File.dirname(__FILE__), '../../data/all.yml')
 	@data = YAML.load_file(filepath)
  text = "\n\n"
  city_id=0;
  @data["provinces"].map.each do |row|
  	# puts row["name"];
  	# puts "\n break"
    text << "Province.find_or_create_by(id: #{row["id"]}, name: '#{row["name"]}') \n"
    row["cities"].map.with_index.each do |row2,idx|
    	city_id=city_id+1;
    	# puts row2
    	text << "City.find_or_create_by(id: #{city_id}, name: '#{row2["name"]}', province_id: '#{row2["province_id"]}') \n"
    end
  end
 
  # puts text;
  inject_into_file 'lib/tasks/propinsi.rake', text, after: "task :import => :environment do"
  #inject into province model
  province_text="\nhas_many :cities\nvalidates_presence_of :name"
  inject_into_file 'app/models/province.rb', province_text, after: "class Province < ActiveRecord::Base"
  #inject into city model
  city_text="\nbelongs_to :province\nvalidates_presence_of :name"
  inject_into_file 'app/models/city.rb', city_text, after: "class City < ActiveRecord::Base"
end

#create_initializer_fileObject



10
11
12
# File 'lib/generators/propinsi/install_generator.rb', line 10

def create_initializer_file
  create_file "lib/tasks/propinsi.rake", "# task province \nnamespace :propinsi do \n  desc \"Dump all data\" \n    task :import => :environment do \n    end \nend\n"
end

#create_migrationObject



15
16
17
18
19
20
# File 'lib/generators/propinsi/install_generator.rb', line 15

def create_migration
	# Generate Propinsi
  generate 'model', "province name:string --no-timestamps"
  # generate Kota
  generate 'model', "city province_id:string name:string --no-timestamps"
end