class AnyStyle::Feature::Affix

Attributes

size[R]

Public Class Methods

new(size: 4, prefix: true, suffix: false) click to toggle source
  # File lib/anystyle/feature/affix.rb
6 def initialize(size: 4, prefix: true, suffix: false)
7   @size, @suffix = size, (suffix || !prefix)
8 end

Public Instance Methods

build(chars) { |take| ... } click to toggle source
   # File lib/anystyle/feature/affix.rb
30 def build(chars)
31   (1..size).map { |n| yield chars.take(n) }
32 end
extract(token) click to toggle source
   # File lib/anystyle/feature/affix.rb
14 def extract(token)
15   if suffix?
16     token.chars.reverse.take(size)
17   else
18     token.chars.take(size)
19   end
20 end
join(chars) click to toggle source
   # File lib/anystyle/feature/affix.rb
22 def join(chars)
23   if suffix?
24     chars.reverse.join('')
25   else
26     chars.join('')
27   end
28 end
observe(token, **opts) click to toggle source
   # File lib/anystyle/feature/affix.rb
10 def observe(token, **opts)
11   build(extract(token)) { |chars| join(chars) }
12 end
prefix?() click to toggle source
   # File lib/anystyle/feature/affix.rb
38 def prefix?
39   !suffix?
40 end
suffix?() click to toggle source
   # File lib/anystyle/feature/affix.rb
34 def suffix?
35   !!@suffix
36 end