Sha256: 73751e9dfd0b342c9386cffd09738a8c0c6609701c24ad9821537ffa5890761c
Contents?: true
Size: 1008 Bytes
Versions: 1
Compression:
Stored size: 1008 Bytes
Contents
# frozen_string_literal: true require 'marauders_map/version' require 'active_support/core_ext/module/attribute_accessors_per_thread' module MaraudersMap extend self UnrecitedPledgeError = Class.new(StandardError) PLEDGE = 'I solemnly swear that I am up to no good.' def pledge(statement) self.statement = statement end def reveal_routes! raise UnrecitedPledgeError, <<~MSG unless pledge_recited? In order to use Marauder's Map you must recite the pledge. Do so by adding the following to your code. MaraudersMap.pledge("#{PLEDGE}") MSG routes.each do |(_name, route)| app.routes.append(&route) end app.routes.finalize! end def draw(name, &routes) append_route(name, &routes) end private thread_mattr_accessor :statement, :routes def app Rails.application end def pledge_recited? statement == PLEDGE end def append_route(name, &definition) self.routes ||= {} routes[name] = definition end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
marauders_map-0.1.0 | lib/marauders_map.rb |