Module: Xqsr3::StringUtilities::EndsWith::EndsWith_Helper_

Defined in:
lib/xqsr3/string_utilities/ends_with.rb

Overview

:nodoc:

Class Method Summary collapse

Class Method Details

.string_ends_with_array_(s, args) ⇒ Object



81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
# File 'lib/xqsr3/string_utilities/ends_with.rb', line 81

def self.string_ends_with_array_ s, args

  return '' if args.empty?

  args.each do |prefix|

    case  prefix
    when  ::NilClass

      return ''
    when  ::String

      r = self.string_ends_with_helper_ s, prefix

      return r if r
    else

      if prefix.respond_to? :to_str

        return self.string_ends_with_helper_ s.prefix.to_str
      end

      raise TypeError, "ends_with? can be passed instances of #{::String}, or nil, or types that respond to to_str"
    end
  end

  return nil
end

.string_ends_with_helper_(s, prefix) ⇒ Object



62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/xqsr3/string_utilities/ends_with.rb', line 62

def self.string_ends_with_helper_ s, prefix

  if prefix.nil? || prefix.empty?

    return ''
  elsif prefix.size < s.size

    return prefix if s[(s.size - prefix.size) ... s.size] == prefix
  elsif prefix.size == s.size

    return prefix if prefix == s
  else

    nil
  end

  nil
end