Class: CompassAeMobileGenerator

Inherits:
Rails::Generators::NamedBase
  • Object
show all
Defined in:
lib/generators/compass_ae_mobile/compass_ae_mobile_generator.rb

Instance Method Summary collapse

Instance Method Details

#generate_compass_ae_filesObject



26
27
28
29
30
31
32
33
34
35
36
# File 'lib/generators/compass_ae_mobile/compass_ae_mobile_generator.rb', line 26

def generate_compass_ae_files
  #controller
  template "controllers/controller_template.erb", File.join("app/controllers","#{file_name}_controller.rb")
  
  #view
  copy_file "views/view_template.erb", File.join("app/views/#{file_name}","index.html.erb")
  gsub_file File.join("app/views/#{file_name}","index.html.erb"), /CLASS_NAME_PLACE_HOLDER/, class_name
  
  #route
  route "match '/#{file_name}' => '#{file_name}#index'"
end

#generate_sencha_touch_applicationObject



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/generators/compass_ae_mobile/compass_ae_mobile_generator.rb', line 5

def generate_sencha_touch_application
  javascripts_path = File.join(Rails.root, 'public', 'javascripts')
  application_path = File.join(javascripts_path, class_name)
  
  empty_directory(javascripts_path)
  run "sencha -sdk #{@sdk_path} generate app #{class_name} #{application_path}"
  
  %w{app.json build.xml index.html packager.json resources}.each do |file|
    remove_file File.join(application_path, file)
  end
  
  gsub_file File.join(application_path, 'app.js'), %r[^//<debug>([\s\S])+//</debug>], "Ext.Loader.setPath({'#{class_name}': 'javascripts/#{class_name}/app'});"
  
  #replace Main.js
  remove_file File.join(application_path, 'app', 'view', 'Main.js')
  template "javascripts/main_template.erb", File.join(application_path, 'app', 'view', 'Main.js')
  
  #remove touch library
  remove_file File.join(application_path, 'touch')
end