Sha256: 3437c2198d3f467eb552b5caaa054758fc1db2bc0eb73ae0328f29e1e9dc97db
Contents?: true
Size: 1.82 KB
Versions: 1
Compression:
Stored size: 1.82 KB
Contents
class Rage::Configuration attr_accessor :logger, :log_formatter, :log_level # used in DSL def config = self def server @server ||= Server.new end def middleware @middleware ||= Middleware.new end class Server attr_accessor :port, :workers_count attr_reader :threads_count def initialize @threads_count = 1 @workers_count = -1 @port = 3000 end end class Middleware attr_reader :middlewares def initialize @middlewares = [[Rage::FiberWrapper]] end def use(new_middleware, *args, &block) insert_after(@middlewares.length - 1, new_middleware, *args, &block) end def insert_before(existing_middleware, new_middleware, *args, &block) index = find_middleware_index(existing_middleware) @middlewares = (@middlewares[0...index] + [[new_middleware, args, block]] + @middlewares[index..]).uniq(&:first) end def insert_after(existing_middleware, new_middleware, *args, &block) index = find_middleware_index(existing_middleware) @middlewares = (@middlewares[0..index] + [[new_middleware, args, block]] + @middlewares[index + 1..]).uniq(&:first) end private def find_middleware_index(middleware) if middleware.is_a?(Integer) if middleware < 0 || middleware >= @middlewares.length raise ArgumentError, "Middleware index should be in the (0...#{@middlewares.length}) range" end middleware else @middlewares.index { |m, _, _| m == middleware }.tap do |i| raise ArgumentError, "Couldn't find #{middleware} in the middleware stack" unless i end end end end def __finalize @logger ||= Rage::Logger.new(nil) @logger.formatter = @log_formatter if @logger && @log_formatter @logger.level = @log_level if @logger && @log_level end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rage-rb-0.5.2 | lib/rage/configuration.rb |