class Surfer::CreateSkeleton

Public Instance Methods

create_folder(str) click to toggle source
# File lib/surfer/create.rb, line 4
def create_folder str
  FileUtils.mkdir "#{str}"
  FileUtils.cd "#{str}"
  FileUtils.mkdir "app"
  FileUtils.cd "app"
  FileUtils.mkdir "controllers"
  FileUtils.mkdir "models"
  FileUtils.mkdir "views"
  FileUtils.chdir "../"
  FileUtils.mkdir "config"
  FileUtils.cd "config"
  FileUtils.touch "application.rb"
  FileUtils.touch "database.yml"                                                                                                                               
  FileUtils.touch "routes.rb"
  FileUtils.chdir "../"
  FileUtils.mkdir "public"
  FileUtils.cd "public"
  FileUtils.touch "index.html"
  FileUtils.touch "page_not_found.html"
  FileUtils.chdir "../"
  FileUtils.touch "Gemfile"
  FileUtils.touch "config.ru"
      end
generate(app_name) click to toggle source
# File lib/surfer/create.rb, line 109
def generate app_name

        app_name=app_name.gsub(/\s/,'')
        if app_name.nil?
                puts " Application name is empty. "
        else
                create_folder(app_name)
                write_database_file
                write_application_file(app_name)
                write_routes_file(app_name)
                write_config_file(app_name)
                write_gem_file
                write_html_pages(app_name)
                dir = `pwd`
                cmd = "cd #{dir} && bundle install".gsub(/\n/,"") 
                exec cmd
        end
end
write_application_file(str) click to toggle source
# File lib/surfer/create.rb, line 47
def write_application_file str         
        str.capitalize!
        file = File.open("application.rb", "w+")
        file.puts 'require "surfer"'+"\n\n"
        file.puts "require 'fileutils'\n"
        file.puts "Dir[File.join(File.dirname(__FILE__), '../app/models/', '*.rb')].each {|file| require file }"
        file.puts "Dir[File.join(File.dirname(__FILE__), '../app/controllers/', '*.rb')].each {|file| require file }"
        file.puts 'root_pth= `pwd`'
        file.puts 'root_pth=root_pth.gsub(/[\s|\n]/,"")'
        file.puts 'ROOT_PATH = root_pth'+"\n\n"
        file.puts "module #{str}"
        file.puts '   class Application < Surfer::Application'
        file.puts '   end'
        file.puts 'end'+"\n\n"
        file.puts 'load "#{ROOT_PATH}/config/routes.rb"'
        file.close()
end
write_config_file(str) click to toggle source
# File lib/surfer/create.rb, line 79
def write_config_file str
        #puts `pwd`
        str.capitalize!
        FileUtils.chdir "../"
        # puts `pwd`
        file = File.open("config.ru", "w+")
        file.puts "require ::File.expand_path('../config/application',__FILE__)"
        file.puts "run #{str}::Application.new"
        file.close()
end
write_database_file() click to toggle source
# File lib/surfer/create.rb, line 28
def write_database_file
        FileUtils.cd "config"
        file = File.open("database.yml", "w+")
        file.write "# MySQL.  Versions 4.1 and 5.0 are recommended.\n"
        file.write "#\n"
        file.write "# Install the MYSQL driver\n"
        file.write "#   gem install mysql2\n"
        file.write "#\n"
        file.write "development:\n"
        file.write "  adapter: \n"
        file.write "  encoding: \n"
        file.write "  database: \n"
        file.write "  pool: \n"
        file.write "  username: \n"
        file.write "  password: \n"
        file.write "  socket: \n"
        file.close()
end
write_gem_file() click to toggle source
# File lib/surfer/create.rb, line 90
def write_gem_file
        file = File.open("Gemfile", "w+") 
        file.puts "source :rubygems"
        file.puts "gem 'surfer'"
        file.close()
end
write_html_pages(app_name) click to toggle source
# File lib/surfer/create.rb, line 97
def write_html_pages(app_name)
        FileUtils.cd "public"
        file = File.open("index.html", "w+")
        file.puts "<h1 align=\"center\">Home Page of #{app_name}</h1>"
        file.close()
        file = File.open("page_not_found.html", "w+")
        file.puts "<h1 align=\"center\"> 404 </h1>}"
        file.puts "<h3 align=\"center\">Sorry -- Page Not Found</h3>"
        file.puts "<h4 align=\"center\">Please Check routes.rb for routing mismatch</h3>"
        file.close()
end
write_routes_file(str) click to toggle source
# File lib/surfer/create.rb, line 65
def write_routes_file str
        file = File.open("routes.rb", "w+")
        file.puts "#{str}::Application.routing_config do |app|"
        file.puts "   # This is the file where you make all the routing configuratons"
        file.puts '   # You can have the root of your site routed with "root"'
        file.puts '   # by default it is public/index.html.'
        file.puts '   # app.root "computers#show"'+"\n\n"
        file.puts "   # Sample Get Request"
        file.puts '           # app.get path: "path", controller: "controller_name", action: "action_name"'
        file.puts '           # eg: app.get path: "bikers", controller: "Bikers", action: "index"'
        file.puts 'end'
        file.close()
end