Class: GaeAppGenerator

Inherits:
VraptorScaffold::Base show all
Defined in:
lib/vraptor-scaffold/generators/app/gae_app_generator.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(args, opts = []) ⇒ GaeAppGenerator

Returns a new instance of GaeAppGenerator.



27
28
29
30
31
32
33
# File 'lib/vraptor-scaffold/generators/app/gae_app_generator.rb', line 27

def initialize(args, opts=[])
  super([args], opts)
  validate
  self.destination_root=(project_path)
  @project_name = project_path.split("/").last
  @dependencies = DependencyManager.new({:gae => true}).dependencies
end

Class Method Details

.source_rootObject



23
24
25
# File 'lib/vraptor-scaffold/generators/app/gae_app_generator.rb', line 23

def self.source_root
  File.join File.dirname(__FILE__), "templates"
end

Instance Method Details

#configure_antObject



39
40
41
42
43
44
45
46
47
# File 'lib/vraptor-scaffold/generators/app/gae_app_generator.rb', line 39

def configure_ant
  create_eclipse_files unless options[:skip_eclipse]
  copy_file("gitignore-gae", ".gitignore")
  copy_file("build-gae.xml", "build.xml")
  template("build.properties.erb", "build.properties")
  template("ivy.erb", "ivy.xml")
  copy_file(AppGenerator::IVY_JAR)
  copy_file("gae/ivysettings.xml", "ivysettings.xml")
end

#configure_ormObject



76
77
78
79
80
# File 'lib/vraptor-scaffold/generators/app/gae_app_generator.rb', line 76

def configure_orm
  infra_folder = File.join @src, "infra"
  empty_directory infra_folder
  template("gae/ObjectifyFactory.java.tt", "#{@src}/infra/ObjectifyFactory.java")
end

#configure_scaffold_propertiesObject



97
98
99
# File 'lib/vraptor-scaffold/generators/app/gae_app_generator.rb', line 97

def configure_scaffold_properties
  template("vraptor-scaffold-gae.erb", Configuration::FILENAME)
end

#configure_template_engineObject



101
102
103
# File 'lib/vraptor-scaffold/generators/app/gae_app_generator.rb', line 101

def configure_template_engine
  JspTemplateEngine.new(project_path, @options).configure
end

#configure_vraptor_packagesObject



49
50
51
# File 'lib/vraptor-scaffold/generators/app/gae_app_generator.rb', line 49

def configure_vraptor_packages
  @vraptor_packages = ["br.com.caelum.vraptor.gae"]
end

#create_controllers_directoryObject



58
59
60
# File 'lib/vraptor-scaffold/generators/app/gae_app_generator.rb', line 58

def create_controllers_directory
  empty_directory File.join @src, options[:controllers_package]
end

#create_javascriptsObject



88
89
90
91
92
93
94
95
# File 'lib/vraptor-scaffold/generators/app/gae_app_generator.rb', line 88

def create_javascripts
  javascripts = File.join Configuration::WEB_APP, "javascripts"
  create_file File.join javascripts, "application.js"
  unless options[:skip_jquery]
    jquery = get_jquery
    add_file (File.join javascripts, "jquery.min.js"), jquery.body if jquery
  end
end

#create_main_javaObject



53
54
55
56
# File 'lib/vraptor-scaffold/generators/app/gae_app_generator.rb', line 53

def create_main_java
  empty_directory Configuration::MAIN_SRC
  @src = File.join(Configuration::MAIN_SRC, options[:package].gsub(".", File::Separator))
end

#create_main_resourcesObject



72
73
74
# File 'lib/vraptor-scaffold/generators/app/gae_app_generator.rb', line 72

def create_main_resources
  directory("resources", Configuration::MAIN_RESOURCES)
end

#create_models_directoryObject



62
63
64
# File 'lib/vraptor-scaffold/generators/app/gae_app_generator.rb', line 62

def create_models_directory
  empty_directory File.join(@src, options[:models_package])
end

#create_repositories_directoryObject



66
67
68
69
70
# File 'lib/vraptor-scaffold/generators/app/gae_app_generator.rb', line 66

def create_repositories_directory
  repositories_folder = File.join @src, options[:repositories_package]
  empty_directory repositories_folder
  template("orm/Repository-objectify.java.tt", "#{repositories_folder}/Repository.java")
end

#create_root_folderObject



35
36
37
# File 'lib/vraptor-scaffold/generators/app/gae_app_generator.rb', line 35

def create_root_folder
  empty_directory "."
end

#create_testObject



105
106
107
108
109
110
111
112
113
114
# File 'lib/vraptor-scaffold/generators/app/gae_app_generator.rb', line 105

def create_test
  empty_directory Configuration::TEST_SRC
  test_src = File.join(Configuration::TEST_SRC, options[:package].gsub(".", File::Separator))

  empty_directory File.join test_src, options[:controllers_package]
  empty_directory File.join test_src, options[:models_package]
  empty_directory File.join test_src, options[:repositories_package]

  directory("resources-test", Configuration::TEST_RESOURCES)
end

#create_webappObject



82
83
84
85
86
# File 'lib/vraptor-scaffold/generators/app/gae_app_generator.rb', line 82

def create_webapp
  directory("webapp", Configuration::WEB_APP)
  template("gae/appengine-web.xml.tt", "#{Configuration::WEB_INF}/appengine-web.xml")
  copy_file("gae/logging.properties", "#{Configuration::WEB_INF}/logging.properties")
end