Class: Symbol
Overview
Extending the Symbol class.
Instance Method Summary collapse
-
#double_metaphone ⇒ Object
Returns a single double metaphone code for this symbol.
-
#each_intoken(min_length = 1, max_length = -1) ⇒ Object
:keys.each_intoken # => yields each of [:keys, :key, :eys, :ke, :ey, :ys, :k, :e, :y, :s] :keys.each_intoken(2) # => yields each of [:keys, :key, :eys, :ke, :ey, :ys] :keys.each_intoken(2, 3) # => yields each of [:key, :eys, :ke, :ey, :ys] :keys.each_intoken(10, 12) # => yields nothing (min larger than sym).
-
#each_subtoken(from_length = 1, range = nil) {|sub.intern| ... } ⇒ Object
:keys.each_subtoken # => yields each of [:keys, :key, :ke, :k] :keys.each_subtoken(2) # => yields each of [:keys, :key, :ke].
-
#metaphone ⇒ Object
Returns a metaphone code for this symbol.
-
#soundex ⇒ Object
Returns a soundex code for this symbol.
Instance Method Details
#double_metaphone ⇒ Object
Returns a single double metaphone code for this symbol.
8 9 10 11 |
# File 'lib/picky/extensions/symbol.rb', line 8 def codes = Text::Metaphone. self codes.first.intern unless codes.empty? end |
#each_intoken(min_length = 1, max_length = -1) ⇒ Object
:keys.each_intoken # => yields each of [:keys, :key, :eys, :ke, :ey, :ys, :k, :e, :y, :s] :keys.each_intoken(2) # => yields each of [:keys, :key, :eys, :ke, :ey, :ys] :keys.each_intoken(2, 3) # => yields each of [:key, :eys, :ke, :ey, :ys] :keys.each_intoken(10, 12) # => yields nothing (min larger than sym)
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/picky/extensions/symbol.rb', line 56 def each_intoken min_length = 1, max_length = -1 max_length = size + max_length + 1 if max_length < 0 max_length = size if size < max_length max_length = 1 if max_length < 1 min_length = size + min_length + 1 if min_length < 0 min_length = 1 if min_length < 1 this_many = size - max_length + 1 max_length.downto(min_length) do |length| this_many.times do |offset| yield self[offset, length].intern end this_many += 1 end end |
#each_subtoken(from_length = 1, range = nil) {|sub.intern| ... } ⇒ Object
:keys.each_subtoken # => yields each of [:keys, :key, :ke, :k] :keys.each_subtoken(2) # => yields each of [:keys, :key, :ke]
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/picky/extensions/symbol.rb', line 30 def each_subtoken from_length = 1, range = nil sub = self.id2name if range unless (range.first.zero? && range.last == -1) sub = sub[range] end end yield sub.intern size = sub.size from_length = size + from_length + 1 if from_length < 0 from_length = size if size < from_length from_length = 1 if from_length < 1 size.downto(from_length + 1) do yield sub.chop!.intern end end |
#metaphone ⇒ Object
Returns a metaphone code for this symbol.
15 16 17 18 |
# File 'lib/picky/extensions/symbol.rb', line 15 def code = Text::Metaphone. self.to_s code.intern if code end |
#soundex ⇒ Object
Returns a soundex code for this symbol.
22 23 24 25 |
# File 'lib/picky/extensions/symbol.rb', line 22 def soundex code = Text::Soundex.soundex self.to_s code.intern if code end |