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 |