class Rphp::Server
this file is about the PHP server class
Attributes
input[RW]
output[RW]
port[RW]
Public Class Methods
new(port = 4321)
click to toggle source
# File lib/rphp/server.rb, line 10 def initialize(port = 4321) @port = port @input = 'ruby' @output = 'public_html' end
Public Instance Methods
generate_initial_files()
click to toggle source
# File lib/rphp/server.rb, line 16 def generate_initial_files Dir.mkdir @input unless Dir.exist?(@input) Dir.mkdir @output unless Dir.exist?(@output) File.write( "#{@input}/index.php.erb", "<h1>Generated by RPHP</h1>" ) unless File.exist?("#{@input}/index.php.erb") end
listen()
click to toggle source
# File lib/rphp/server.rb, line 64 def listen FileUtils.rm_rf(@output) generate_initial_files parse_folder "./#{@input}/*" listener = Listen.to(@input) do |modified, added, removed| parse_folder "./#{@input}/*" end listener.start # not blocking sleep end
parse_file(input,output)
click to toggle source
# File lib/rphp/server.rb, line 25 def parse_file (input,output) if output.split('/') == 3 output = output.split('/')[1..-1] .join('/') .split('.')[0..-2] .join('.') end if Tilt.templates_for(input).any? content = Tilt.new(input).render else content = File.read(input) end File.write(output,content) end
parse_folder(folder_name)
click to toggle source
# File lib/rphp/server.rb, line 47 def parse_folder folder_name Dir["#{folder_name}"].each do |file| filename = file.split('/')[2..-1].join('/') if File.directory? file file = "./#{@input}/#{filename}" out = "./#{@output}/#{filename}" FileUtils.rm_rf(out) Dir.mkdir out unless Dir.exist? out parse_folder "#{file}/*" else file = "./#{@input}/#{filename}" out = "./#{@output}/#{filename}" parse_file(file, out) end end end
start()
click to toggle source
# File lib/rphp/server.rb, line 41 def start puts "PHP development server started at port #{@port}" `nohup php -S localhost:#{@port} -t #{@output} >/dev/null 2>&1 &` listen end