Module: ArelExtensions::StringFunctions
- Included in:
- Arel::Nodes::Equality, Arel::Nodes::Function, Arel::Nodes::Grouping, Attributes, Nodes::Case
- Defined in:
- lib/arel_extensions/string_functions.rb
Instance Method Summary collapse
- 
  
    
      #&(other)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    *FindInSet function .…… 
- #[](start, ind = nil) ⇒ Object
- #ai_collate ⇒ Object
- 
  
    
      #ai_imatches(other)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    accent insensitive & case insensitive. 
- 
  
    
      #ai_matches(other)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    accent insensitive & case sensitive. 
- #blank ⇒ Object
- #byte_length ⇒ Object
- #char_length ⇒ Object
- #ci_collate ⇒ Object
- #collate(ai = false, ci = false, option = nil) ⇒ Object
- #concat(other) ⇒ Object
- #downcase ⇒ Object
- #edit_distance(other) ⇒ Object
- 
  
    
      #group_concat(sep = nil, *orders, group: nil, order: nil)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    concat elements of a group, separated by sep and ordered by a list of Ascending or Descending. 
- #idoes_not_match(others, escape = nil) ⇒ Object
- #idoes_not_match_all(others, escape = nil) ⇒ Object
- #idoes_not_match_any(others, escape = nil) ⇒ Object
- #imatches(others, escape = nil) ⇒ Object
- 
  
    
      #imatches_all(others, escape = nil)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    def grouping_any method, others, *extra puts “*******************” puts method puts others.inspect puts extra.inspect puts “——————-” res = super(method,others,*extra) puts res.to_sql puts res.inspect puts “*******************” res end. 
- #imatches_any(others, escape = nil) ⇒ Object
- 
  
    
      #length  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    LENGTH function returns the length (bytewise) of the value in a text field. 
- #levenshtein_distance(other) ⇒ Object
- 
  
    
      #locate(val)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    LOCATE function returns the first starting position of a string in another string. 
- #ltrim(other = ' ') ⇒ Object
- #md5 ⇒ Object
- #not_blank ⇒ Object (also: #present)
- #regexp_replace(pattern, substitute) ⇒ Object
- #repeat(other = 1) ⇒ Object
- 
  
    
      #replace(pattern, substitute)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    REPLACE function replaces a sequence of characters in a string with another set of characters, not case-sensitive. 
- #rtrim(other = ' ') ⇒ Object
- 
  
    
      #smatches(other)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    accent sensitive & case sensitive. 
- 
  
    
      #soundex  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    SOUNDEX function returns a character string containing the phonetic representation of char. 
- #substring(start, len = nil) ⇒ Object
- 
  
    
      #trim(other = ' ')  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    Function returns a string after removing left, right or the both prefixes or suffixes int argument. 
- #upcase ⇒ Object
Instance Method Details
#&(other) ⇒ Object
*FindInSet function .……
| 23 24 25 | # File 'lib/arel_extensions/string_functions.rb', line 23 def &(other) ArelExtensions::Nodes::FindInSet.new [other, self] end | 
#[](start, ind = nil) ⇒ Object
| 50 51 52 53 54 55 56 57 58 59 | # File 'lib/arel_extensions/string_functions.rb', line 50 def [](start, ind = nil) start += 1 if start.is_a?(Integer) if start.is_a?(Range) ArelExtensions::Nodes::Substring.new [self, start.begin + 1, start.end - start.begin + 1] elsif start.is_a?(Integer) && !ind ArelExtensions::Nodes::Substring.new [self, start, 1] else ArelExtensions::Nodes::Substring.new [self, start, ind - start + 1] end end | 
#ai_collate ⇒ Object
| 115 116 117 | # File 'lib/arel_extensions/string_functions.rb', line 115 def ai_collate ArelExtensions::Nodes::Collate.new(self, nil, true, false) end | 
#ai_imatches(other) ⇒ Object
accent insensitive & case insensitive
| 107 108 109 | # File 'lib/arel_extensions/string_functions.rb', line 107 def ai_imatches other # accent insensitive & case insensitive ArelExtensions::Nodes::AiIMatches.new(self, other) end | 
#ai_matches(other) ⇒ Object
accent insensitive & case sensitive
| 103 104 105 | # File 'lib/arel_extensions/string_functions.rb', line 103 def ai_matches other # accent insensitive & case sensitive ArelExtensions::Nodes::AiMatches.new(self, other) end | 
#blank ⇒ Object
| 180 181 182 | # File 'lib/arel_extensions/string_functions.rb', line 180 def blank ArelExtensions::Nodes::Blank.new [self] end | 
#byte_length ⇒ Object
| 32 33 34 | # File 'lib/arel_extensions/string_functions.rb', line 32 def byte_length ArelExtensions::Nodes::Length.new self, true end | 
#char_length ⇒ Object
| 36 37 38 | # File 'lib/arel_extensions/string_functions.rb', line 36 def char_length ArelExtensions::Nodes::Length.new self, false end | 
#ci_collate ⇒ Object
| 119 120 121 | # File 'lib/arel_extensions/string_functions.rb', line 119 def ci_collate ArelExtensions::Nodes::Collate.new(self, nil, false, true) end | 
#collate(ai = false, ci = false, option = nil) ⇒ Object
| 123 124 125 | # File 'lib/arel_extensions/string_functions.rb', line 123 def collate ai = false, ci = false, option = nil ArelExtensions::Nodes::Collate.new(self, option, ai, ci) end | 
#concat(other) ⇒ Object
| 140 141 142 | # File 'lib/arel_extensions/string_functions.rb', line 140 def concat other ArelExtensions::Nodes::Concat.new [self, other] end | 
#downcase ⇒ Object
| 172 173 174 | # File 'lib/arel_extensions/string_functions.rb', line 172 def downcase ArelExtensions::Nodes::Downcase.new [self] end | 
#edit_distance(other) ⇒ Object
| 197 198 199 | # File 'lib/arel_extensions/string_functions.rb', line 197 def edit_distance other ArelExtensions::Nodes::LevenshteinDistance.new [self, other] end | 
#group_concat(sep = nil, *orders, group: nil, order: nil) ⇒ Object
concat elements of a group, separated by sep and ordered by a list of Ascending or Descending
| 145 146 147 148 149 150 151 152 153 154 155 156 157 | # File 'lib/arel_extensions/string_functions.rb', line 145 def group_concat(sep = nil, *orders, group: nil, order: nil) if orders.present? warn("Warning: ArelExtensions: group_concat: you should now use the kwarg 'order' to specify an order in the group_concat.") end order_tabs = [orders].flatten.map{ |o| if o.is_a?(Arel::Nodes::Ascending) || o.is_a?(Arel::Nodes::Descending) o elsif o.respond_to?(:asc) o.asc end }.compact ArelExtensions::Nodes::GroupConcat.new(self, sep, group: group, order: (order || order_tabs)) end | 
#idoes_not_match(others, escape = nil) ⇒ Object
| 91 92 93 | # File 'lib/arel_extensions/string_functions.rb', line 91 def idoes_not_match others, escape = nil ArelExtensions::Nodes::IDoesNotMatch.new self, others, escape end | 
#idoes_not_match_all(others, escape = nil) ⇒ Object
| 99 100 101 | # File 'lib/arel_extensions/string_functions.rb', line 99 def idoes_not_match_all others, escape = nil grouping_all :idoes_not_match, others, escape end | 
#idoes_not_match_any(others, escape = nil) ⇒ Object
| 95 96 97 | # File 'lib/arel_extensions/string_functions.rb', line 95 def idoes_not_match_any others, escape = nil grouping_any :idoes_not_match, others, escape end | 
#imatches(others, escape = nil) ⇒ Object
| 66 67 68 | # File 'lib/arel_extensions/string_functions.rb', line 66 def imatches others, escape = nil ArelExtensions::Nodes::IMatches.new self, others, escape end | 
#imatches_all(others, escape = nil) ⇒ Object
def grouping_any method, others, *extra
  puts "*******************"
  puts method
  puts others.inspect
  puts extra.inspect
  puts "-------------------"
  res = super(method,others,*extra)
  puts res.to_sql
  puts res.inspect
  puts "*******************"
  res
end
| 87 88 89 | # File 'lib/arel_extensions/string_functions.rb', line 87 def imatches_all others, escape = nil grouping_all :imatches, others, escape, escape end | 
#imatches_any(others, escape = nil) ⇒ Object
| 70 71 72 | # File 'lib/arel_extensions/string_functions.rb', line 70 def imatches_any others, escape = nil grouping_any :imatches, others, escape end | 
#length ⇒ Object
LENGTH function returns the length (bytewise) of the value in a text field.
| 28 29 30 | # File 'lib/arel_extensions/string_functions.rb', line 28 def length ArelExtensions::Nodes::Length.new self, true end | 
#levenshtein_distance(other) ⇒ Object
| 193 194 195 | # File 'lib/arel_extensions/string_functions.rb', line 193 def levenshtein_distance other ArelExtensions::Nodes::LevenshteinDistance.new [self, other] end | 
#locate(val) ⇒ Object
LOCATE function returns the first starting position of a string in another string. If string1 or string2 is NULL then it returns NULL. If string1 not found in string2 then it returns 0.
| 42 43 44 | # File 'lib/arel_extensions/string_functions.rb', line 42 def locate val ArelExtensions::Nodes::Locate.new [self, val] end | 
#ltrim(other = ' ') ⇒ Object
| 164 165 166 | # File 'lib/arel_extensions/string_functions.rb', line 164 def ltrim other = ' ' ArelExtensions::Nodes::Ltrim.new [self, other] end | 
#md5 ⇒ Object
| 201 202 203 | # File 'lib/arel_extensions/string_functions.rb', line 201 def md5 ArelExtensions::Nodes::MD5.new [self] end | 
#not_blank ⇒ Object Also known as: present
| 184 185 186 | # File 'lib/arel_extensions/string_functions.rb', line 184 def not_blank ArelExtensions::Nodes::NotBlank.new [self] end | 
#regexp_replace(pattern, substitute) ⇒ Object
| 136 137 138 | # File 'lib/arel_extensions/string_functions.rb', line 136 def regexp_replace pattern, substitute ArelExtensions::Nodes::RegexpReplace.new self, pattern, substitute end | 
#repeat(other = 1) ⇒ Object
| 189 190 191 | # File 'lib/arel_extensions/string_functions.rb', line 189 def repeat other = 1 ArelExtensions::Nodes::Repeat.new [self, other] end | 
#replace(pattern, substitute) ⇒ Object
REPLACE function replaces a sequence of characters in a string with another set of characters, not case-sensitive.
| 128 129 130 131 132 133 134 | # File 'lib/arel_extensions/string_functions.rb', line 128 def replace pattern, substitute if pattern.is_a? Regexp ArelExtensions::Nodes::RegexpReplace.new self, pattern, substitute else ArelExtensions::Nodes::Replace.new self, pattern, substitute end end | 
#rtrim(other = ' ') ⇒ Object
| 168 169 170 | # File 'lib/arel_extensions/string_functions.rb', line 168 def rtrim other = ' ' ArelExtensions::Nodes::Rtrim.new [self, other] end | 
#smatches(other) ⇒ Object
accent sensitive & case sensitive
| 111 112 113 | # File 'lib/arel_extensions/string_functions.rb', line 111 def smatches other # accent sensitive & case sensitive ArelExtensions::Nodes::SMatches.new(self, other) end | 
#soundex ⇒ Object
SOUNDEX function returns a character string containing the phonetic representation of char.
| 62 63 64 | # File 'lib/arel_extensions/string_functions.rb', line 62 def soundex ArelExtensions::Nodes::Soundex.new [self] end | 
#substring(start, len = nil) ⇒ Object
| 46 47 48 | # File 'lib/arel_extensions/string_functions.rb', line 46 def substring start, len = nil ArelExtensions::Nodes::Substring.new [self, start, len] end | 
#trim(other = ' ') ⇒ Object
Function returns a string after removing left, right or the both prefixes or suffixes int argument
| 160 161 162 | # File 'lib/arel_extensions/string_functions.rb', line 160 def trim other = ' ' ArelExtensions::Nodes::Trim.new [self, other] end | 
#upcase ⇒ Object
| 176 177 178 | # File 'lib/arel_extensions/string_functions.rb', line 176 def upcase ArelExtensions::Nodes::Upcase.new [self] end |