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