Class: Simple::Httpd::MountSpec::PathMountSpec

Inherits:
Simple::Httpd::MountSpec show all
Defined in:
lib/simple/httpd/mount_spec.rb

Constant Summary collapse

Rack =
::Simple::Httpd::Rack

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Simple::Httpd::MountSpec

normalize_and_verify_mount_point

Constructor Details

#initialize(mount_point, path) ⇒ PathMountSpec

Returns a new instance of PathMountSpec.



50
51
52
# File 'lib/simple/httpd/mount_spec.rb', line 50

def initialize(mount_point, path)
  @mount_point, @path = mount_point, path
end

Instance Attribute Details

#mount_pointObject (readonly)

Returns the value of attribute mount_point.



39
40
41
# File 'lib/simple/httpd/mount_spec.rb', line 39

def mount_point
  @mount_point
end

#pathObject (readonly)

Returns the value of attribute path.



39
40
41
# File 'lib/simple/httpd/mount_spec.rb', line 39

def path
  @path
end

Class Method Details

.build(mount_point, path:) ⇒ Object

Raises:

  • (ArgumentError)


41
42
43
44
45
46
47
48
# File 'lib/simple/httpd/mount_spec.rb', line 41

def self.build(mount_point, path:)
  path = path.gsub(/\/$/, "") # remove trailing "/"

  raise ArgumentError, "You probably don't want to mount your root directory, check mount_spec" if path == ""
  return unless Dir.exist?(path)

  new(mount_point, path)
end

Instance Method Details

#build_rack_appsObject



54
55
56
57
58
59
# File 'lib/simple/httpd/mount_spec.rb', line 54

def build_rack_apps
  [
    Rack::DynamicMount.build(mount_point, path),
    Rack::StaticMount.build(mount_point, path)
  ].compact
end