Class: Ti::Generate::Controller

Inherits:
Object
  • Object
show all
Extended by:
Utils
Defined in:
lib/ti/generate/controller.rb

Class Method Summary collapse

Methods included from Utils

append_to_router, base_location, create_directories, create_new_file, create_with_template, error, get_app_name, log, remove_directories, remove_files, templates, touch, underscore

Class Method Details

.create(name, context = {}) ⇒ Object



7
8
9
# File 'lib/ti/generate/controller.rb', line 7

def create(name, context={})
  create_controller_file(name, context)
end

.create_controller_file(name, context) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/ti/generate/controller.rb', line 12

def create_controller_file(name, context)
  log "Creating #{name} controller using a template."     
  app_name  = get_app_name 
  controller_directory = "app/#{underscore(app_name)}/controllers"
  context.merge!(:app_name => app_name, :name => name)
  

  template  = templates("app/controllers/controller.erb")
  payload   = Pathname.new("#{controller_directory}")
  contents  = Erubis::Eruby.new(File.read(template)).result(context) if template
  
  create_directories(payload)             unless File.directory?(payload)
  create_directories("spec/controllers")  unless File.directory?("spec/controllers")
  
  filename = payload.join("#{name.downcase}.coffee")
  File.open(location.join(filename), 'w') { |f| f.write(contents) }

  create_new_file("spec/controllers/#{name}_spec.coffee", templates("specs/app_spec.coffee"))
  append_to_router(name, 'controllers')
end