Sha256: a4b963aec179adb3b4aeae9b3623d529f68a8cdd800ba747154696436919875d
Contents?: true
Size: 1.12 KB
Versions: 24
Compression:
Stored size: 1.12 KB
Contents
# frozen_string_literal: true module Msgr class Routes include Logging attr_reader :routes delegate :each, :empty?, :size, :any?, to: :@routes def initialize @routes = [] end def configure(&block) blocks << block instance_eval(&block) end def files @files ||= [] end def blocks @blocks ||= [] end def files=(files) @files = Array files end def <<(file) files << file end def reload routes.clear blocks.each {|block| instance_eval(&block) } files.uniq! files.each do |file| if File.exist? file load file else log(:warn) { "Routes file `#{file}` does not exists (anymore)." } end end end def load(file) unless File.exist?(file) raise ArgumentError.new "File `#{file}` does not exists." end instance_eval File.read file end def route(key, opts = {}) if (route = routes.find {|r| r.accept?(key, opts) }) route.add key else routes << Msgr::Route.new(key, opts) end end end end
Version data entries
24 entries across 24 versions & 1 rubygems