lib/plezi/builders/app_builder.rb in plezi-0.12.13 vs lib/plezi/builders/app_builder.rb in plezi-0.12.14

- old
+ new

@@ -1,132 +1,134 @@ require 'plezi/builders/builder' module Plezi + module Base - class AppBuilder - def initialize - @end_comments = [] - @app_tree ||= {} - @root = ::Plezi::Builder::GEM_ROOT - end - def app_tree - @app_tree ||= {} - end - def build_mini app_name = ARGV[1] - require 'plezi/version' - app_tree["#{app_name}"] ||= IO.read( File.join(@root, "resources" ,"mini_exec.rb")).gsub('appname', app_name) - app_tree["#{app_name}.rb"] ||= IO.read( File.join(@root, "resources" ,"mini_app.rb")).gsub('appname', app_name).gsub('appsecret', "#{app_name}_#{SecureRandom.hex}") - app_tree["Procfile"] ||= String.new - app_tree["Procfile"] << "\nweb: bundle exec ruby ./#{app_name} -p $PORT\n" - app_tree["Gemfile"] ||= String.new - app_tree["Gemfile"] << "source 'https://rubygems.org'\n\n####################\n# core gems\n\n# include the basic plezi framework and server\ngem 'plezi', '~> #{Plezi::VERSION}'\n" - app_tree["Gemfile"] << "\n\n\nruby '#{RUBY_VERSION}'\n" - app_tree["templates"] ||= {} - app_tree["templates"]["404.html.erb"] ||= IO.read(File.join(@root, "resources" ,"404.erb")) - app_tree["templates"]["500.html.erb"] ||= IO.read(File.join(@root, "resources" ,"500.erb")) - app_tree["templates"]["welcome.html.erb"] ||= IO.read(File.join(@root, "resources" ,"mini_welcome_page.html")).gsub('appname', app_name) - app_tree["assets"] ||= {} - app_tree["assets"]["websocket.js"] ||= IO.read(File.join(@root, "resources" ,"websockets.js")).gsub('appname', app_name) - finalize app_name - end + class AppBuilder + def initialize + @end_comments = [] + @app_tree ||= {} + @root = ::Plezi::Base::Builder::GEM_ROOT + end + def app_tree + @app_tree ||= {} + end + def build_mini app_name = ARGV[1] + require 'plezi/version' + app_tree["#{app_name}"] ||= IO.read( File.join(@root, "resources" ,"mini_exec.rb")).gsub('appname', app_name) + app_tree["#{app_name}.rb"] ||= IO.read( File.join(@root, "resources" ,"mini_app.rb")).gsub('appname', app_name).gsub('appsecret', "#{app_name}_#{SecureRandom.hex}") + app_tree["Procfile"] ||= String.new + app_tree["Procfile"] << "\nweb: bundle exec ruby ./#{app_name} -p $PORT\n" + app_tree["Gemfile"] ||= String.new + app_tree["Gemfile"] << "source 'https://rubygems.org'\n\n####################\n# core gems\n\n# include the basic plezi framework and server\ngem 'plezi', '~> #{Plezi::VERSION}'\n" + app_tree["Gemfile"] << "\n\n\nruby '#{RUBY_VERSION}'\n" + app_tree["templates"] ||= {} + app_tree["templates"]["404.html.erb"] ||= IO.read(File.join(@root, "resources" ,"404.erb")) + app_tree["templates"]["500.html.erb"] ||= IO.read(File.join(@root, "resources" ,"500.erb")) + app_tree["templates"]["welcome.html.erb"] ||= IO.read(File.join(@root, "resources" ,"mini_welcome_page.html")).gsub('appname', app_name) + app_tree["assets"] ||= {} + app_tree["assets"]["websocket.js"] ||= IO.read(File.join(@root, "resources" ,"websockets.js")).gsub('appname', app_name) + finalize app_name + end - def build app_name = ARGV[1] - require 'plezi/version' - # plezi run script - app_tree["#{app_name}"] ||= IO.read File.join(@root,"resources" ,"code.rb") + def build app_name = ARGV[1] + require 'plezi/version' + # plezi run script + app_tree["#{app_name}"] ||= IO.read File.join(@root,"resources" ,"code.rb") - # set up application files - app_tree["app"] ||= {} - app_tree["app"]["controllers"] ||= {} - app_tree["app"]["controllers"]["sample_controller.rb"] ||= IO.read(File.join(@root,"resources" ,"controller.rb")) - app_tree["app"]["models"] ||= {} - app_tree["app"]["views"] ||= {} + # set up application files + app_tree["app"] ||= {} + app_tree["app"]["controllers"] ||= {} + app_tree["app"]["controllers"]["sample_controller.rb"] ||= IO.read(File.join(@root,"resources" ,"controller.rb")) + app_tree["app"]["models"] ||= {} + app_tree["app"]["views"] ||= {} - # set up templates for status error codes - app_tree["app"]["views"]["404.html"] ||= IO.read(File.join(@root,"resources" ,"404.html")) - app_tree["app"]["views"]["500.html"] ||= IO.read(File.join(@root,"resources" ,"500.html")) - app_tree["app"]["views"]["404.html.erb"] ||= IO.read(File.join(@root,"resources" ,"404.erb")) - app_tree["app"]["views"]["500.html.erb"] ||= IO.read(File.join(@root,"resources" ,"500.erb")) - app_tree["app"]["views"]["404.html.slim"] ||= IO.read(File.join(@root,"resources" ,"404.slim")) - app_tree["app"]["views"]["500.html.slim"] ||= IO.read(File.join(@root,"resources" ,"500.slim")) - app_tree["app"]["views"]["404.html.haml"] ||= IO.read(File.join(@root,"resources" ,"404.haml")) - app_tree["app"]["views"]["500.html.haml"] ||= IO.read(File.join(@root,"resources" ,"500.haml")) + # set up templates for status error codes + app_tree["app"]["views"]["404.html"] ||= IO.read(File.join(@root,"resources" ,"404.html")) + app_tree["app"]["views"]["500.html"] ||= IO.read(File.join(@root,"resources" ,"500.html")) + app_tree["app"]["views"]["404.html.erb"] ||= IO.read(File.join(@root,"resources" ,"404.erb")) + app_tree["app"]["views"]["500.html.erb"] ||= IO.read(File.join(@root,"resources" ,"500.erb")) + app_tree["app"]["views"]["404.html.slim"] ||= IO.read(File.join(@root,"resources" ,"404.slim")) + app_tree["app"]["views"]["500.html.slim"] ||= IO.read(File.join(@root,"resources" ,"500.slim")) + app_tree["app"]["views"]["404.html.haml"] ||= IO.read(File.join(@root,"resources" ,"404.haml")) + app_tree["app"]["views"]["500.html.haml"] ||= IO.read(File.join(@root,"resources" ,"500.haml")) - # set up the assets folder - app_tree["assets"] ||= {} - app_tree["assets"]["stylesheets"] ||= {} - app_tree["assets"]["javascripts"] ||= {} - app_tree["assets"]["javascripts"]["websocket.js"] ||= IO.read(File.join(@root,"resources" ,"websockets.js")).gsub('appname', app_name) - app_tree["assets"]["welcome.html"] ||= IO.read(File.join(@root,"resources" ,"welcome_page.html")).gsub('appname', app_name) + # set up the assets folder + app_tree["assets"] ||= {} + app_tree["assets"]["stylesheets"] ||= {} + app_tree["assets"]["javascripts"] ||= {} + app_tree["assets"]["javascripts"]["websocket.js"] ||= IO.read(File.join(@root,"resources" ,"websockets.js")).gsub('appname', app_name) + app_tree["assets"]["welcome.html"] ||= IO.read(File.join(@root,"resources" ,"welcome_page.html")).gsub('appname', app_name) - # app core files. - app_tree["initialize.rb"] ||= IO.read File.join(@root,"resources" ,"initialize.rb").gsub('appname', app_name) - app_tree["routes.rb"] ||= IO.read File.join(@root,"resources" ,"routes.rb") - app_tree["rakefile"] ||= IO.read File.join(@root,"resources" ,"rakefile") - app_tree["Procfile"] ||= "" - app_tree["Procfile"] << "\nweb: bundle exec ruby ./#{app_name} -p $PORT\n" - app_tree["Gemfile"] ||= '' - app_tree["Gemfile"] << "source 'https://rubygems.org'\n\n####################\n# core gems\n\n# include the basic plezi framework and server\ngem 'plezi', '~> #{Plezi::VERSION}'\n" - app_tree["Gemfile"] << IO.read( File.join(@root,"resources" ,"Gemfile")) - app_tree["Gemfile"] << "\n\n\nruby '#{RUBY_VERSION}'\n" + # app core files. + app_tree["initialize.rb"] ||= IO.read File.join(@root,"resources" ,"initialize.rb").gsub('appname', app_name) + app_tree["routes.rb"] ||= IO.read File.join(@root,"resources" ,"routes.rb") + app_tree["rakefile"] ||= IO.read File.join(@root,"resources" ,"rakefile") + app_tree["Procfile"] ||= "" + app_tree["Procfile"] << "\nweb: bundle exec ruby ./#{app_name} -p $PORT\n" + app_tree["Gemfile"] ||= '' + app_tree["Gemfile"] << "source 'https://rubygems.org'\n\n####################\n# core gems\n\n# include the basic plezi framework and server\ngem 'plezi', '~> #{Plezi::VERSION}'\n" + app_tree["Gemfile"] << IO.read( File.join(@root,"resources" ,"Gemfile")) + app_tree["Gemfile"] << "\n\n\nruby '#{RUBY_VERSION}'\n" - # set up config files - app_tree["initialize"] ||= {} - app_tree["initialize"]["oauth.rb"] ||= IO.read(File.join(@root,"resources" ,"oauth_config.rb")) - app_tree["initialize"]["active_record.rb"] ||= IO.read(File.join(@root,"resources" ,"db_ac_config.rb")) - app_tree["initialize"]["sequel.rb"] ||= IO.read(File.join(@root,"resources" ,"db_sequel_config.rb")) - app_tree["initialize"]["datamapper.rb"] ||= IO.read(File.join(@root,"resources" ,"db_dm_config.rb")) - app_tree["initialize"]["haml.rb"] ||= IO.read(File.join(@root,"resources" ,"haml_config.rb")) - app_tree["initialize"]["slim.rb"] ||= IO.read(File.join(@root,"resources" ,"slim_config.rb")) - app_tree["initialize"]["i18n.rb"] ||= IO.read(File.join(@root,"resources" ,"i18n_config.rb")) - app_tree["initialize"]["redis.rb"] ||= (IO.read(File.join(@root,"resources" ,"redis_config.rb"))).gsub('appsecret', "#{app_name}_#{SecureRandom.hex}") + # set up config files + app_tree["initialize"] ||= {} + app_tree["initialize"]["oauth.rb"] ||= IO.read(File.join(@root,"resources" ,"oauth_config.rb")) + app_tree["initialize"]["active_record.rb"] ||= IO.read(File.join(@root,"resources" ,"db_ac_config.rb")) + app_tree["initialize"]["sequel.rb"] ||= IO.read(File.join(@root,"resources" ,"db_sequel_config.rb")) + app_tree["initialize"]["datamapper.rb"] ||= IO.read(File.join(@root,"resources" ,"db_dm_config.rb")) + app_tree["initialize"]["haml.rb"] ||= IO.read(File.join(@root,"resources" ,"haml_config.rb")) + app_tree["initialize"]["slim.rb"] ||= IO.read(File.join(@root,"resources" ,"slim_config.rb")) + app_tree["initialize"]["i18n.rb"] ||= IO.read(File.join(@root,"resources" ,"i18n_config.rb")) + app_tree["initialize"]["redis.rb"] ||= (IO.read(File.join(@root,"resources" ,"redis_config.rb"))).gsub('appsecret', "#{app_name}_#{SecureRandom.hex}") - #set up database stub folders - app_tree["db"] ||= {} - app_tree["db"]["migrate"] ||= {} - app_tree["db"]["fixtures"] ||= {} - app_tree["db"]["config.yml"] ||= IO.read(File.join(@root,"resources" ,"database.yml")) + #set up database stub folders + app_tree["db"] ||= {} + app_tree["db"]["migrate"] ||= {} + app_tree["db"]["fixtures"] ||= {} + app_tree["db"]["config.yml"] ||= IO.read(File.join(@root,"resources" ,"database.yml")) - #set up the extras folder, to be filled with future goodies. - # app_tree["extras"] ||= {} - # app_tree["extras"]["config.ru"] ||= IO.read File.join(@root,"resources" ,"config.ru") + #set up the extras folder, to be filled with future goodies. + # app_tree["extras"] ||= {} + # app_tree["extras"]["config.ru"] ||= IO.read File.join(@root,"resources" ,"config.ru") - #set up I18n stub - app_tree["locales"] ||= {} - app_tree["locales"]["en.yml"] ||= IO.read File.join(@root,"resources" ,"en.yml") + #set up I18n stub + app_tree["locales"] ||= {} + app_tree["locales"]["en.yml"] ||= IO.read File.join(@root,"resources" ,"en.yml") - # create library, log and tmp folders - app_tree["logs"] ||= {} - app_tree["lib"] ||= {} - app_tree["tmp"] ||= {} + # create library, log and tmp folders + app_tree["logs"] ||= {} + app_tree["lib"] ||= {} + app_tree["tmp"] ||= {} - # set up a public folder for static file service - app_tree["public"] ||= {} - app_tree["public"]["assets"] ||= {} - app_tree["public"]["assets"]["stylesheets"] ||= {} - app_tree["public"]["assets"]["javascripts"] ||= {} - app_tree["public"]["images"] ||= {} - finalize app_name - end - def finalize app_name = ARGV[1] - begin - Dir.mkdir app_name - puts "created the #{app_name} application directory.".green - rescue Exception => e - puts "the #{app_name} application directory exists - trying to rebuild (no overwrite).".pink + # set up a public folder for static file service + app_tree["public"] ||= {} + app_tree["public"]["assets"] ||= {} + app_tree["public"]["assets"]["stylesheets"] ||= {} + app_tree["public"]["assets"]["javascripts"] ||= {} + app_tree["public"]["images"] ||= {} + finalize app_name end - Dir.chdir app_name - puts "starting to write template data...".red - puts "" - Builder.write_files app_tree - File.chmod 0775, "#{app_name}" rescue true - puts "done." - puts "\n#{@end_comments.join("\n")}" unless @end_comments.empty? - puts "" - puts "please change directory into the app directory: cd #{app_name}" - puts "" - puts "run the #{app_name} app using: ./#{app_name} or using: plezi s" - puts "" + def finalize app_name = ARGV[1] + begin + Dir.mkdir app_name + puts "created the #{app_name} application directory.".green + rescue => e + puts "the #{app_name} application directory exists - trying to rebuild (no overwrite).".pink + end + Dir.chdir app_name + puts "starting to write template data...".red + puts "" + Builder.write_files app_tree + File.chmod 0775, "#{app_name}" rescue true + puts "done." + puts "\n#{@end_comments.join("\n")}" unless @end_comments.empty? + puts "" + puts "please change directory into the app directory: cd #{app_name}" + puts "" + puts "run the #{app_name} app using: ./#{app_name} or using: plezi s" + puts "" + end end end end