Fixed import function, fixed documentation warnings issued by YARD
This commit is contained in:
		
							parent
							
								
									447f51570a
								
							
						
					
					
						commit
						000e53e742
					
				| 
						 | 
					@ -2,7 +2,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Gem::Specification.new do |spec|
 | 
					Gem::Specification.new do |spec|
 | 
				
			||||||
  spec.name                  = "landline"
 | 
					  spec.name                  = "landline"
 | 
				
			||||||
  spec.version               = "0.9.3"
 | 
					  spec.version               = "0.10.0"
 | 
				
			||||||
  spec.summary               = "Elegant HTTP DSL"
 | 
					  spec.summary               = "Elegant HTTP DSL"
 | 
				
			||||||
  spec.description           = <<~DESC
 | 
					  spec.description           = <<~DESC
 | 
				
			||||||
    Landline is a no-hard-dependencies HTTP routing DSL that was made entirely for fun.
 | 
					    Landline is a no-hard-dependencies HTTP routing DSL that was made entirely for fun.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -5,7 +5,7 @@ module Landline
 | 
				
			||||||
    # Probe (and subclasses) DSL construct
 | 
					    # Probe (and subclasses) DSL construct
 | 
				
			||||||
    module ProbeConstructors
 | 
					    module ProbeConstructors
 | 
				
			||||||
      # Create a new erb template
 | 
					      # Create a new erb template
 | 
				
			||||||
      # @see {Landline::Template#new}
 | 
					      # @see Landline::Template#new
 | 
				
			||||||
      def erb(input, vars = {})
 | 
					      def erb(input, vars = {})
 | 
				
			||||||
        Landline::Templates::ERB.new(input,
 | 
					        Landline::Templates::ERB.new(input,
 | 
				
			||||||
                                     vars,
 | 
					                                     vars,
 | 
				
			||||||
| 
						 | 
					@ -14,7 +14,7 @@ module Landline
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      # Create a new erb template using Erubi engine
 | 
					      # Create a new erb template using Erubi engine
 | 
				
			||||||
      # @see {Landline::Template#new}
 | 
					      # @see Landline::Template#new
 | 
				
			||||||
      # @param freeze [Boolean] whether to use frozen string literal
 | 
					      # @param freeze [Boolean] whether to use frozen string literal
 | 
				
			||||||
      # @param capture [Boolean] whether to enable output capturing
 | 
					      # @param capture [Boolean] whether to enable output capturing
 | 
				
			||||||
      def erubi(input, vars = {}, freeze: true, capture: false)
 | 
					      def erubi(input, vars = {}, freeze: true, capture: false)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -12,9 +12,10 @@ module Landline
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      # Create a status code handler on path.
 | 
					      # Create a status code handler on path.
 | 
				
			||||||
      # Recursively applies to all paths unless overridden.
 | 
					      # Recursively applies to all paths unless overridden.
 | 
				
			||||||
      # @param [Integer, nil] Specify a status code to handle
 | 
					      # @param code [Integer, nil] Specify a status code to handle
 | 
				
			||||||
      def handle(code = "default", &block)
 | 
					      # @param block [#call] Block to run on given code
 | 
				
			||||||
        @origin.properties["handle.#{code}"] = block
 | 
					      def handle(code = nil, &block)
 | 
				
			||||||
 | 
					        @origin.properties["handle.#{code || 'default'}"] = block
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      # Insert a pass-through pipeline into request processing
 | 
					      # Insert a pass-through pipeline into request processing
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -8,8 +8,17 @@ module Landline
 | 
				
			||||||
    # Common methods for template contexts
 | 
					    # Common methods for template contexts
 | 
				
			||||||
    module TemplateMethods
 | 
					    module TemplateMethods
 | 
				
			||||||
      # Import a template part
 | 
					      # Import a template part
 | 
				
			||||||
 | 
					      # @param filepath [String, File] path to the file (or the file itself)
 | 
				
			||||||
 | 
					      # @return [String] compiled template
 | 
				
			||||||
      def import(filepath)
 | 
					      def import(filepath)
 | 
				
			||||||
        @parent_template.import(file(filepath)).run
 | 
					        template = if filepath.is_a? File
 | 
				
			||||||
 | 
					                     filepath
 | 
				
			||||||
 | 
					                   elsif filepath.start_with? "/"
 | 
				
			||||||
 | 
					                     File.open(filepath)
 | 
				
			||||||
 | 
					                   else
 | 
				
			||||||
 | 
					                     file(filepath)
 | 
				
			||||||
 | 
					                   end
 | 
				
			||||||
 | 
					        @parent_template.import(template).run
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -35,7 +35,7 @@ module Landline
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Try to navigate the path. Run method callback in response.
 | 
					    # Try to navigate the path. Run method callback in response.
 | 
				
			||||||
    # @param [Landline::Request]
 | 
					    # @param request [Landline::Request]
 | 
				
			||||||
    # @return [Boolean]
 | 
					    # @return [Boolean]
 | 
				
			||||||
    def go(request)
 | 
					    def go(request)
 | 
				
			||||||
      # rejected at pattern
 | 
					      # rejected at pattern
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -52,7 +52,7 @@ module Landline
 | 
				
			||||||
    #     - underscores
 | 
					    #     - underscores
 | 
				
			||||||
    #     - dashes
 | 
					    #     - dashes
 | 
				
			||||||
    class Glob
 | 
					    class Glob
 | 
				
			||||||
      # @param input [String] Glob pattern
 | 
					      # @param pattern [String] Glob pattern
 | 
				
			||||||
      def initialize(pattern)
 | 
					      def initialize(pattern)
 | 
				
			||||||
        pattern = Landline::PatternMatching.canonicalize(pattern)
 | 
					        pattern = Landline::PatternMatching.canonicalize(pattern)
 | 
				
			||||||
        pieces = pattern.split(TOKENS)
 | 
					        pieces = pattern.split(TOKENS)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -39,7 +39,7 @@ module Landline
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      # Test if input is convertible and if it should be converted.
 | 
					      # Test if input is convertible and if it should be converted.
 | 
				
			||||||
      # @param input
 | 
					      # @param string [String] input to test conversion on
 | 
				
			||||||
      # @return [Boolean] Input can be safely converted to Glob
 | 
					      # @return [Boolean] Input can be safely converted to Glob
 | 
				
			||||||
      def self.can_convert?(string)
 | 
					      def self.can_convert?(string)
 | 
				
			||||||
        string.is_a? Regexp
 | 
					        string.is_a? Regexp
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7,7 +7,7 @@ module Landline
 | 
				
			||||||
    # Probe that executes a callback on request
 | 
					    # Probe that executes a callback on request
 | 
				
			||||||
    class Handler < Landline::Probe
 | 
					    class Handler < Landline::Probe
 | 
				
			||||||
      # @param path [Object]
 | 
					      # @param path [Object]
 | 
				
			||||||
      # @param parent [Landline::Node]
 | 
					      # @param args [Hash] hashed parameters to passthrough to Probe
 | 
				
			||||||
      # @param exec [#call]
 | 
					      # @param exec [#call]
 | 
				
			||||||
      def initialize(path, **args, &exec)
 | 
					      def initialize(path, **args, &exec)
 | 
				
			||||||
        super(path, **args)
 | 
					        super(path, **args)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -9,7 +9,6 @@ module Landline
 | 
				
			||||||
    class Serve < Landline::Probe
 | 
					    class Serve < Landline::Probe
 | 
				
			||||||
      # @param path [Object]
 | 
					      # @param path [Object]
 | 
				
			||||||
      # @param parent [Landline::Node]
 | 
					      # @param parent [Landline::Node]
 | 
				
			||||||
      # @param exec [#call]
 | 
					 | 
				
			||||||
      def initialize(path, parent:)
 | 
					      def initialize(path, parent:)
 | 
				
			||||||
        super(path, parent: parent, filepath: true)
 | 
					        super(path, parent: parent, filepath: true)
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -86,11 +86,14 @@ module Landline
 | 
				
			||||||
      # ... (stub)
 | 
					      # ... (stub)
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Import a template from within current template
 | 
					    # Import a template from within current template.
 | 
				
			||||||
    def import(filepath)
 | 
					    # @param file [File] template file to import
 | 
				
			||||||
      filepath = filepath.is_a? File ? filepath : File.open(filepath)
 | 
					    # @return [Landline::Template] loaded tempalte
 | 
				
			||||||
      # @sg-ignore
 | 
					    def import(file)
 | 
				
			||||||
      newtemp = self.class.new(filepath, {}, parent: @parent)
 | 
					      newtemp = self.class.new(file,
 | 
				
			||||||
 | 
					                               {},
 | 
				
			||||||
 | 
					                               parent: @parent,
 | 
				
			||||||
 | 
					                               filename: file.path)
 | 
				
			||||||
      newtemp.binding = @binding
 | 
					      newtemp.binding = @binding
 | 
				
			||||||
      newtemp
 | 
					      newtemp
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7,7 +7,7 @@ module Landline
 | 
				
			||||||
  module Templates
 | 
					  module Templates
 | 
				
			||||||
    # ERB Template language adapter
 | 
					    # ERB Template language adapter
 | 
				
			||||||
    class ERB < Landline::Template
 | 
					    class ERB < Landline::Template
 | 
				
			||||||
      # @see {Landline::Template#new}
 | 
					      # (see Landline::Template#new)
 | 
				
			||||||
      def initialize(input, vars = nil, parent:, filename:)
 | 
					      def initialize(input, vars = nil, parent:, filename:)
 | 
				
			||||||
        super
 | 
					        super
 | 
				
			||||||
        varname = "_part_#{SecureRandom.hex(10)}".to_sym
 | 
					        varname = "_part_#{SecureRandom.hex(10)}".to_sym
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7,7 +7,7 @@ module Landline
 | 
				
			||||||
  module Templates
 | 
					  module Templates
 | 
				
			||||||
    # Erubi (ERB) template language adapter
 | 
					    # Erubi (ERB) template language adapter
 | 
				
			||||||
    class Erubi < Landline::Template
 | 
					    class Erubi < Landline::Template
 | 
				
			||||||
      # @see {Landline::Template#new}
 | 
					      # (see Landline::Template#new)
 | 
				
			||||||
      def initialize(input,
 | 
					      def initialize(input,
 | 
				
			||||||
                     vars = nil,
 | 
					                     vars = nil,
 | 
				
			||||||
                     **ext)
 | 
					                     **ext)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1267,7 +1267,7 @@ module Landline
 | 
				
			||||||
    }.freeze
 | 
					    }.freeze
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Get MIME type by file extension
 | 
					    # Get MIME type by file extension
 | 
				
			||||||
    # @param ext [String] filename
 | 
					    # @param file [String] filename
 | 
				
			||||||
    # @return [String] MIME type, defaults to "application/octet-stream"
 | 
					    # @return [String] MIME type, defaults to "application/octet-stream"
 | 
				
			||||||
    def self.get_mime_type(file)
 | 
					    def self.get_mime_type(file)
 | 
				
			||||||
      MIME[file.match(/\.(\w+)$/)&.[](1)] or "application/octet-stream"
 | 
					      MIME[file.match(/\.(\w+)$/)&.[](1)] or "application/octet-stream"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -9,6 +9,8 @@ require_relative 'html'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
module Landline
 | 
					module Landline
 | 
				
			||||||
  module Util
 | 
					  module Util
 | 
				
			||||||
 | 
					    FormPart = Struct.new(:data, :name, :filename,
 | 
				
			||||||
 | 
					                          :filetype, :tempfile, :headers)
 | 
				
			||||||
    # Valid element of form data with headers
 | 
					    # Valid element of form data with headers
 | 
				
			||||||
    # @!attribute headers [Hash] headers recevied from form data
 | 
					    # @!attribute headers [Hash] headers recevied from form data
 | 
				
			||||||
    # @!attribute name [String] name of the form part
 | 
					    # @!attribute name [String] name of the form part
 | 
				
			||||||
| 
						 | 
					@ -16,8 +18,7 @@ module Landline
 | 
				
			||||||
    # @!attribute filename [String,nil] Original name of the sent file
 | 
					    # @!attribute filename [String,nil] Original name of the sent file
 | 
				
			||||||
    # @!attribute filetype [String,nil] MIME-type of the file
 | 
					    # @!attribute filetype [String,nil] MIME-type of the file
 | 
				
			||||||
    # @!attribute tempfile [File,nil] Temporary file for storing sent file data.
 | 
					    # @!attribute tempfile [File,nil] Temporary file for storing sent file data.
 | 
				
			||||||
    FormPart = Struct.new(:data, :name, :filename,
 | 
					    class FormPart
 | 
				
			||||||
                          :filetype, :tempfile, :headers) do
 | 
					 | 
				
			||||||
      # Is this form part a file or plain data?
 | 
					      # Is this form part a file or plain data?
 | 
				
			||||||
      # @return [Boolean]
 | 
					      # @return [Boolean]
 | 
				
			||||||
      def file?
 | 
					      def file?
 | 
				
			||||||
| 
						 | 
					@ -135,7 +136,8 @@ module Landline
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      # Setup file metadata
 | 
					      # Setup file metadata
 | 
				
			||||||
      # @part part [FormPart]
 | 
					      # @param part [Landline::Util::FormPart]
 | 
				
			||||||
 | 
					      # @return [void]
 | 
				
			||||||
      def setup_file_meta(part)
 | 
					      def setup_file_meta(part)
 | 
				
			||||||
        part.name = part.headers.dig("content-disposition", 1, "name")
 | 
					        part.name = part.headers.dig("content-disposition", 1, "name")
 | 
				
			||||||
        part.filename = part.headers.dig("content-disposition", 1, "filename")
 | 
					        part.filename = part.headers.dig("content-disposition", 1, "filename")
 | 
				
			||||||
| 
						 | 
					@ -144,7 +146,8 @@ module Landline
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      # Setup plain metadata
 | 
					      # Setup plain metadata
 | 
				
			||||||
      # @part part [FormPart]
 | 
					      # @param part [Landline::Util::FormPart]
 | 
				
			||||||
 | 
					      # @return [void]
 | 
				
			||||||
      def setup_data_meta(part)
 | 
					      def setup_data_meta(part)
 | 
				
			||||||
        part.name = part.headers.dig("content-disposition", 1, "name")
 | 
					        part.name = part.headers.dig("content-disposition", 1, "name")
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue