Sha256: 0fd637042459038b361a3d11b50e36d180a9ffca00e54327644ba20ccc6f373a

Contents?: true

Size: 1.18 KB

Versions: 8

Compression:

Stored size: 1.18 KB

Contents

module Qcourses
  module ResourcePaths
    def self.included(base)
      base.extend(ClassMethods)
      base.helpers do
        include UrlHelpers
      end
    end
    module UrlHelpers
      def adminprefix
        settings.admin_url
      end
      def basepath
        settings.basepath
      end
      def request_url(param = nil)
        [basepath, param_symbol(param)].compact.join('/')
      end
      def new_request_url(param = nil)
        [request_url, 'new', param_symbol(param)].compact.join('/')
      end
      def edit_request_url(param = nil)
        [basepath,'edit', param_symbol(param)].compact.join('/')
      end
      def admin_request_url(param = nil)
        adminprefix + request_url(param)
      end
      def admin_new_request_url
        adminprefix + new_request_url
      end
      def admin_edit_request_url(param)
        adminprefix + edit_request_url(param)
      end
      private 
      def param_symbol(param)
        param && param.inspect || param
      end
    end
    module ClassMethods
      def resource(name)
        set :basepath, name
      end
      def resource_admin_on(url)
        set :admin_url, url
      end
      include UrlHelpers
    end

  end

end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
qcourses-0.1.11 lib/qcourses/resource_paths.rb
qcourses-0.1.10 lib/qcourses/resource_paths.rb
qcourses-0.1.9 lib/qcourses/resource_paths.rb
qcourses-0.1.8 lib/qcourses/resource_paths.rb
qcourses-0.1.7 lib/qcourses/resource_paths.rb
qcourses-0.1.6 lib/qcourses/resource_paths.rb
qcourses-0.1.5 lib/qcourses/resource_paths.rb
qcourses-0.1.4 lib/qcourses/resource_paths.rb