From ee8108b8ea86297cc0be42f3e389fabe0aceb7c9 Mon Sep 17 00:00:00 2001 From: Luca Guidi Date: Thu, 8 Aug 2013 09:52:26 +0200 Subject: [PATCH] Use Utils::Class loading mechanism --- lib/lotus/routing/endpoint.rb | 4 +++- lib/lotus/routing/endpoint_resolver.rb | 5 +++-- lib/lotus/routing/resource/action.rb | 2 +- lib/lotus/routing/resources/action.rb | 2 +- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/lib/lotus/routing/endpoint.rb b/lib/lotus/routing/endpoint.rb index a64a618..20248d4 100644 --- a/lib/lotus/routing/endpoint.rb +++ b/lib/lotus/routing/endpoint.rb @@ -1,3 +1,5 @@ +require 'lotus/utils/class' + module Lotus module Routing class Endpoint < SimpleDelegator @@ -20,7 +22,7 @@ def call(env) private def obj - @namespace.const_get(@name).new + Utils::Class.load!(@name, @namespace).new end end end diff --git a/lib/lotus/routing/endpoint_resolver.rb b/lib/lotus/routing/endpoint_resolver.rb index ad6103c..2cfc209 100644 --- a/lib/lotus/routing/endpoint_resolver.rb +++ b/lib/lotus/routing/endpoint_resolver.rb @@ -1,10 +1,11 @@ require 'lotus/utils/string' +require 'lotus/utils/class' require 'lotus/routing/endpoint' module Lotus module Routing class EndpointResolver - SUFFIX = 'Controller::'.freeze + SUFFIX = '(::Controller::|Controller::)'.freeze def initialize(options = {}) @namespace = options[:namespace] || Object @@ -46,7 +47,7 @@ def default def constantize(string) begin - ClassEndpoint.new(@namespace.const_get(string)) + ClassEndpoint.new(Utils::Class.load!(string, @namespace)) rescue NameError LazyEndpoint.new(string, @namespace) end diff --git a/lib/lotus/routing/resource/action.rb b/lib/lotus/routing/resource/action.rb index 054cf50..dc6fe47 100644 --- a/lib/lotus/routing/resource/action.rb +++ b/lib/lotus/routing/resource/action.rb @@ -29,7 +29,7 @@ def prefix private def self.class_for(action) - Resource.const_get Utils::String.new(action).classify + Utils::Class.load!(Utils::String.new(action).classify, Resource) end def path diff --git a/lib/lotus/routing/resources/action.rb b/lib/lotus/routing/resources/action.rb index 5eacbe9..88795f8 100644 --- a/lib/lotus/routing/resources/action.rb +++ b/lib/lotus/routing/resources/action.rb @@ -30,7 +30,7 @@ def prefix private def self.class_for(action) - Resources.const_get Utils::String.new(action).classify + Utils::Class.load!(Utils::String.new(action).classify, Resources) end def path