Module: BlackStack::Strings::Spinning
- Defined in:
- lib/functions.rb
Overview
Spinning
Class Method Summary collapse
-
.random_spinning_variation(text) ⇒ Object
Esta funcion retorna una variacion al azar del texto que se pasa.
-
.spintax?(s) ⇒ Boolean
returns true if the text is spinned.
-
.valid_spinning_syntax?(s) ⇒ Boolean
retorna true si la sintaxis del texto spineado es correcta caso contrario retorna false no soporta spinnings anidados.
Class Method Details
.random_spinning_variation(text) ⇒ Object
Esta funcion retorna una variacion al azar del texto que se pasa. Esta funcion se ocupa de dividir el texto en partes, para eviar el error “too big to product” que arroja la libraría.
315 316 317 318 319 320 321 322 323 324 325 326 |
# File 'lib/functions.rb', line 315 def self.random_spinning_variation(text) ret = text text.scan(MATCH_CONTENT_SPINNING).each { |s| a = ContentSpinning.new(s).spin rep = a[rand(a.size)] ret = ret.gsub(s, rep) a = nil } return ret end |
.spintax?(s) ⇒ Boolean
returns true if the text is spinned. otherwise, returns false.
356 357 358 |
# File 'lib/functions.rb', line 356 def self.spintax?(s) s.scan(MATCH_CONTENT_SPINNING).size > 0 end |
.valid_spinning_syntax?(s) ⇒ Boolean
retorna true si la sintaxis del texto spineado es correcta caso contrario retorna false no soporta spinnings anidados. ejemplo: car of mine}
331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 |
# File 'lib/functions.rb', line 331 def self.valid_spinning_syntax?(s) # valido que exste n = 0 s.split('').each { |c| n+=1 if c=='{' n-=1 if c=='}' if n!=0 && n!=1 #raise "Closing spining char '}' with not previous opening spining char '{'." if n<0 #raise "Opening spining char '{' inside another spining block." if n>1 return false if n<0 # Closing spining char '}' with not previous opening spining char '{'. return false if n>1 # Opening spining char '{' inside another spining block. end } # obtengo cada uno de los spinnings s.scan(MATCH_CONTENT_SPINNING).each { |x| a = x.split('|') raise "No variations delimited by '|' inside spinning block." if a.size <= 1 } true end |