travis-api/lib/travis/api/app/extensions/smart_constants.rb
2012-07-27 15:55:57 +02:00

29 lines
615 B
Ruby

require 'travis/api/app'
class Travis::Api::App
module Extensions
# Allows writing
#
# helpers :some_helper
#
# Instead of
#
# helpers Travis::Api::App::Helpers::SomeHelper
module SmartConstants
def helpers(*list, &block)
super(*resolve_constants(list, Helpers), &block)
end
def register(*list, &block)
super(*resolve_constants(list, Extensions), &block)
end
private
def resolve_constants(list, namespace)
list.map { |e| Symbol === e ? namespace.const_get(e.to_s.camelize) : e }
end
end
end
end