Sha256: b97f270b5351adc601d7397c85989d4a19d68bdc602c4f62a0a29fe84bd4b76f

Contents?: true

Size: 704 Bytes

Versions: 1

Compression:

Stored size: 704 Bytes

Contents

module ServiceWorker
  class Router
    def self.default
      new.draw_default
    end

    attr_reader :routes

    def initialize
      @routes = []

      draw(&Proc.new) if block_given?
    end

    def draw(&block)
      return self unless block_given?

      if block.arity == 1
        block.call(self)
      else
        instance_eval(&block)
      end

      self
    end

    def draw_default
      draw { get "/serviceworker.js" }
    end

    def get(path, options = {})
      Route.new(path, options).tap do |route|
        @routes << route
      end
    end

    def any?
      @routes.any?
    end

    def match_route(path)
      @routes.detect { |r| r.match?(path) }
    end
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
serviceworker-rails-0.2.0 lib/serviceworker/router.rb