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.
343 344 345 346 347 348 349 350 351 352 353 354 |
# File 'lib/functions.rb', line 343 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.
384 385 386 |
# File 'lib/functions.rb', line 384 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}
359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 |
# File 'lib/functions.rb', line 359 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 |