class Grape::Path
Attributes
namespace[R]
raw_path[R]
settings[R]
Public Class Methods
new(raw_path, namespace, settings)
click to toggle source
# File lib/grape/path.rb, line 9 def initialize(raw_path, namespace, settings) @raw_path = raw_path @namespace = namespace @settings = settings end
prepare(raw_path, namespace, settings)
click to toggle source
# File lib/grape/path.rb, line 3 def self.prepare(raw_path, namespace, settings) Path.new(raw_path, namespace, settings).path_with_suffix end
Public Instance Methods
has_namespace?()
click to toggle source
# File lib/grape/path.rb, line 27 def has_namespace? namespace && namespace.to_s =~ /^\S/ && namespace != '/' end
has_path?()
click to toggle source
# File lib/grape/path.rb, line 31 def has_path? raw_path && raw_path.to_s =~ /^\S/ && raw_path != '/' end
mount_path()
click to toggle source
# File lib/grape/path.rb, line 15 def mount_path split_setting(:mount_path, '/') end
path()
click to toggle source
# File lib/grape/path.rb, line 43 def path Rack::Mount::Utils.normalize_path(parts.join('/')) end
path_with_suffix()
click to toggle source
# File lib/grape/path.rb, line 47 def path_with_suffix "#{path}#{suffix}" end
root_prefix()
click to toggle source
# File lib/grape/path.rb, line 19 def root_prefix split_setting(:root_prefix, '/') end
suffix()
click to toggle source
# File lib/grape/path.rb, line 35 def suffix if !uses_path_versioning? || (has_namespace? || has_path?) '(.:format)' else '(/.:format)' end end
to_s()
click to toggle source
# File lib/grape/path.rb, line 51 def to_s path_with_suffix end
uses_path_versioning?()
click to toggle source
# File lib/grape/path.rb, line 23 def uses_path_versioning? !!(settings[:version] && settings[:version_options][:using] == :path) end
Private Instance Methods
parts()
click to toggle source
# File lib/grape/path.rb, line 57 def parts parts = [mount_path, root_prefix].compact parts << ':version' if uses_path_versioning? parts << namespace.to_s parts << raw_path.to_s parts.flatten.reject { |part| part == '/' } end
split_setting(key, delimiter)
click to toggle source
# File lib/grape/path.rb, line 65 def split_setting(key, delimiter) return if settings[key].nil? settings[key].to_s.split("/") end