Class: CensusShapes::Generators::SetupGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Includes:
Rails::Generators::Migration
Defined in:
lib/generators/census_shapes/setup/setup_generator.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.next_migration_number(path) ⇒ Object



24
25
26
27
28
29
30
31
# File 'lib/generators/census_shapes/setup/setup_generator.rb', line 24

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

#add_controllerObject



60
61
62
63
64
65
66
# File 'lib/generators/census_shapes/setup/setup_generator.rb', line 60

def add_controller
  if options.controller
    copy_file "controllers/shapes_controller.rb", "app/controllers/#{controller_name}_controller.rb"
    gsub_file "app/controllers/#{controller_name.underscore}_controller.rb", "CONTROLLER_NAME", controller_name.camelcase
    gsub_file "app/controllers/#{controller_name.underscore}_controller.rb", "MODEL_NAME", model_name
  end
end

#add_gemsObject



18
19
20
21
# File 'lib/generators/census_shapes/setup/setup_generator.rb', line 18

def add_gems
  gem("pg")
  gem("postgis_adapter")
end

#add_geographies_routeObject



45
46
47
48
49
50
51
# File 'lib/generators/census_shapes/setup/setup_generator.rb', line 45

def add_geographies_route
  if options.route
    route("resources :#{model_name}")
    route("match ':type/:z/:x/:y.:format'=> '#{controller_name}#index', :requirements => {:z => /-?\d+(\.\d+)/, :x => /-?\d+(\.\d+)/, :y => /-?\d+(\.\d+)/ }")
    route("root :to => '#{controller_name}#index'")
  end
end

#add_modelObject



53
54
55
56
57
58
# File 'lib/generators/census_shapes/setup/setup_generator.rb', line 53

def add_model
  if options.model
    copy_file "models/shape.rb", "app/models/#{model_name}.rb"
    gsub_file "app/models/#{model_name}.rb", "MODEL_NAME", model_name
  end
end

#add_viewsObject



68
69
70
71
72
73
74
75
76
# File 'lib/generators/census_shapes/setup/setup_generator.rb', line 68

def add_views
  if options.view
    copy_file "views/layouts/shapes.html.erb", "app/views/layouts/#{controller_name.underscore}.html.erb"
    directory "views/shapes", "app/views/#{controller_name.underscore}"
    gsub_file "app/views/#{controller_name.underscore}/index.html.erb", "MODEL_NAME", model_name
    gsub_file "app/views/#{controller_name.underscore}/index.html.erb", "MODEL_DOWNCASE", model_name.downcase
    gsub_file "app/views/#{controller_name.underscore}/index.html.erb", "CONTROLLER_NAME", controller_name
  end
end

#copy_filesObject



33
34
35
36
37
38
39
40
41
42
43
# File 'lib/generators/census_shapes/setup/setup_generator.rb', line 33

def copy_files
  migration_template "db/migrate/create_shapes.rb", "db/migrate/create_#{controller_name}.rb", {:controller_name => controller_name }
  copy_file "config/database_example.yml", "config/database_example.yml"
  copy_file "lib/tasks/postgis_template.rake", "lib/tasks/postgis_template.rake"
  copy_file "lib/tasks/census_shapes.rake", "lib/tasks/census_shapes.rake"
  gsub_file "lib/tasks/census_shapes.rake", "CONTROLLER_NAME", controller_name
  copy_file "lib/yaml/us_shapes.yml", "lib/yaml/us_shapes.yml"
  copy_file "lib/yaml/us_states.yml", "lib/yaml/us_states.yml"
  copy_file "config/initializers/shapes_globals.rb", "config/initializers/#{controller_name}_globals.rb"
  gsub_file "config/initializers/#{controller_name}_globals.rb", "MODEL_NAME", model_name
end

#remove_public_indexObject



78
79
80
# File 'lib/generators/census_shapes/setup/setup_generator.rb', line 78

def remove_public_index
  `rm public/index.html`
end