Sha256: d4033cdcde7718391807a1a34d047af4e09edca9f5b338297b21dcb9b23f7c73

Contents?: true

Size: 768 Bytes

Versions: 28

Compression:

Stored size: 768 Bytes

Contents

require 'rack'
require 'rack/request'

module Mumukit::Core
  module Subdominated
    def first_subdomain_after(domain)
      subdomain_parts_after(domain)&.first
    end

    def subdomain_parts_after(domain)
      raise 'no host set' unless host
      raise 'set hostname first!' if /\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.match(host)
      return nil if host == 'localhost'
      domain_parts = domain.split('.')
      (host.split('.') - domain_parts)
    end

    def subdomain_after(domain)
      parts = subdomain_parts_after(domain)
      parts.join('.') unless parts.empty?
    end

    def empty_subdomain_after?(domain)
      first_subdomain_after(domain).blank?
    end
  end
end

module Rack
  class Request
    include Mumukit::Core::Subdominated
  end
end

Version data entries

28 entries across 28 versions & 2 rubygems

Version Path
mumukit-content-type-1.12.1 vendor/bundle/ruby/2.7.0/gems/mumukit-core-1.19.2/lib/mumukit/core/request.rb
mumukit-core-1.19.2 lib/mumukit/core/request.rb
mumukit-core-1.20.0 lib/mumukit/core/request.rb
mumukit-content-type-1.12.0 vendor/bundle/ruby/2.7.0/gems/mumukit-core-1.19.1/lib/mumukit/core/request.rb
mumukit-core-1.19.1 lib/mumukit/core/request.rb
mumukit-core-1.19.0 lib/mumukit/core/request.rb
mumukit-content-type-1.11.1 vendor/bundle/ruby/2.6.0/gems/mumukit-core-1.18.0/lib/mumukit/core/request.rb
mumukit-core-1.18.0 lib/mumukit/core/request.rb
mumukit-core-1.17.0 lib/mumukit/core/request.rb
mumukit-core-1.16.0 lib/mumukit/core/request.rb
mumukit-core-1.15.0 lib/mumukit/core/request.rb
mumukit-core-1.14.0 lib/mumukit/core/request.rb
mumukit-core-1.13.0 lib/mumukit/core/request.rb
mumukit-core-1.12.0 lib/mumukit/core/request.rb
mumukit-core-1.11.0 lib/mumukit/core/request.rb
mumukit-core-1.10.1 lib/mumukit/core/request.rb
mumukit-core-1.10.0 lib/mumukit/core/request.rb
mumukit-core-1.9.0 lib/mumukit/core/request.rb
mumukit-core-1.8.0 lib/mumukit/core/request.rb
mumukit-core-1.7.0 lib/mumukit/core/request.rb