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