quickfix for template constructors
This commit is contained in:
		
							parent
							
								
									4312d31268
								
							
						
					
					
						commit
						3300f966a9
					
				| 
						 | 
				
			
			@ -0,0 +1,19 @@
 | 
			
		|||
# frozen_string_literal: true
 | 
			
		||||
 | 
			
		||||
$LOAD_PATH.unshift("#{File.dirname(__FILE__)}/lib")
 | 
			
		||||
require 'hyde'
 | 
			
		||||
 | 
			
		||||
app = Hyde::Server.new do
 | 
			
		||||
  root ENV["PWD"]
 | 
			
		||||
  index ["index.html"]
 | 
			
		||||
  post "/" do
 | 
			
		||||
    formdata = form if form?
 | 
			
		||||
    puts formdata.pretty_inspect
 | 
			
		||||
    erubi(file("index.rhtml"), { formdata: formdata }).run
 | 
			
		||||
  end
 | 
			
		||||
  get "/" do
 | 
			
		||||
    erubi(file("index.rhtml")).run
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
run app
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,35 @@
 | 
			
		|||
<!DOCTYPE>
 | 
			
		||||
<html>
 | 
			
		||||
    <head>
 | 
			
		||||
        <title>Form upload test</title>
 | 
			
		||||
        <style>
 | 
			
		||||
.form { display: flex; flex-direction: column }
 | 
			
		||||
        </style>
 | 
			
		||||
    </head>
 | 
			
		||||
    <body>
 | 
			
		||||
        <h1>Form upload test</h1>
 | 
			
		||||
        <hr/>
 | 
			
		||||
        <p> Please enter the following details: <p>
 | 
			
		||||
        <form method="post"
 | 
			
		||||
              class="form"
 | 
			
		||||
              enctype="multipart/form-data">
 | 
			
		||||
            <input type="text" name="form_name" placeholder="Name" required>
 | 
			
		||||
            <input type="text" name="form_company" placeholder="Company" required>
 | 
			
		||||
            <input type="text" name="form_phone" placeholder="Phone" required>
 | 
			
		||||
            <textarea name="comment" placeholder="Comment"></textarea>
 | 
			
		||||
            <input id="form_files" type="file" name="form_files[]" multiple>
 | 
			
		||||
            <label for="form_files">Attach file</label>
 | 
			
		||||
            <input type="submit" value="Send form">
 | 
			
		||||
        </form>
 | 
			
		||||
        <% if (defined? formdata) and formdata %>
 | 
			
		||||
        <hr>
 | 
			
		||||
        <ul>
 | 
			
		||||
          <% formdata.each do |key, part| %>
 | 
			
		||||
            <li><%= key %>: <%= part.is_a?(String) ? part : "File: #{part.map do |x| x.filename end.join(',')}" %></li>
 | 
			
		||||
          <% end %>
 | 
			
		||||
        </ul>
 | 
			
		||||
        <% end %>
 | 
			
		||||
    </body>
 | 
			
		||||
</html>
 | 
			
		||||
 | 
			
		||||
            
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
../../lib
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
Example of handling forms in Hyde
 | 
			
		||||
| 
						 | 
				
			
			@ -6,7 +6,7 @@ module Hyde
 | 
			
		|||
    module ProbeConstructors
 | 
			
		||||
      # Create a new erb template
 | 
			
		||||
      # @see {Hyde::Template#new}
 | 
			
		||||
      def erb(input, vars = nil)
 | 
			
		||||
      def erb(input, vars = {})
 | 
			
		||||
        Hyde::Templates::ERB.new(input,
 | 
			
		||||
                                 vars,
 | 
			
		||||
                                 parent: @origin)
 | 
			
		||||
| 
						 | 
				
			
			@ -16,7 +16,7 @@ module Hyde
 | 
			
		|||
      # @see {Hyde::Template#new}
 | 
			
		||||
      # @param freeze [Boolean] whether to use frozen string literal
 | 
			
		||||
      # @param capture [Boolean] whether to enable output capturing
 | 
			
		||||
      def erubi(input, vars = nil, freeze: true, capture: false)
 | 
			
		||||
      def erubi(input, vars = {}, freeze: true, capture: false)
 | 
			
		||||
        Hyde::Templates::Erubi.new(input,
 | 
			
		||||
                                   vars,
 | 
			
		||||
                                   parent: @origin,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue