Class: Hanami::Utils::PathPrefix
- Defined in:
- lib/hanami/utils/path_prefix.rb
Overview
Prefixed string
Constant Summary collapse
- DEFAULT_SEPARATOR =
This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.
Path separator
"/"
Constants inherited from String
String::CAPITALIZE_SEPARATOR, String::CLASSIFY_SEPARATOR, String::CLASSIFY_WORD_SEPARATOR, String::DASHERIZE_SEPARATOR, String::EMPTY_STRING, String::NAMESPACE_SEPARATOR, String::TITLEIZE_SEPARATOR, String::TOKENIZE_REGEXP, String::TOKENIZE_SEPARATOR, String::UNDERSCORE_DIVISION_TARGET, String::UNDERSCORE_SEPARATOR
Instance Method Summary collapse
-
#initialize(string = nil, separator = DEFAULT_SEPARATOR) ⇒ PathPrefix
constructor
Initialize the path prefix.
-
#join(*strings) ⇒ Hanami::Utils::PathPrefix
Joins self with the given token.
-
#relative_join(strings, separator = @separator) ⇒ Hanami::Utils::PathPrefix
Joins self with the given token, without prefixing it with
separator.
Methods inherited from String
#==, bind, #capitalize, capitalize, classify, #classify, dasherize, #dasherize, demodulize, #demodulize, #gsub, #hash, #method_missing, #namespace, namespace, pluralize, #pluralize, #respond_to_missing?, rsub, #rsub, #scan, singularize, #singularize, #split, #titleize, titleize, #to_s, #tokenize, transform, #underscore, underscore
Constructor Details
#initialize(string = nil, separator = DEFAULT_SEPARATOR) ⇒ PathPrefix
Initialize the path prefix
28 29 30 31 |
# File 'lib/hanami/utils/path_prefix.rb', line 28 def initialize(string = nil, separator = DEFAULT_SEPARATOR) super(string) @separator = separator end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class Hanami::Utils::String
Instance Method Details
#join(*strings) ⇒ Hanami::Utils::PathPrefix
Joins self with the given token. It cleans up all the separator repetitions.
59 60 61 |
# File 'lib/hanami/utils/path_prefix.rb', line 59 def join(*strings) relative_join(strings).absolute! end |
#relative_join(strings, separator = @separator) ⇒ Hanami::Utils::PathPrefix
Joins self with the given token, without prefixing it with separator. It cleans up all the separator repetitions.
82 83 84 85 86 87 88 89 90 91 92 93 94 |
# File 'lib/hanami/utils/path_prefix.rb', line 82 def relative_join(strings, separator = @separator) raise TypeError if separator.nil? prefix = @string.gsub(@separator, separator) result = [prefix, strings] result.flatten! result.compact! result.reject! { |string| string == separator } self.class.new( result.join(separator), separator ).relative! end |