Module: TextActions
- Included in:
- Lang
- Defined in:
- lib/asker/lang/text_actions.rb
Instance Method Summary collapse
- #build_text_from_filtered(input_struct, input_indexes) ⇒ Object
- 
  
    
      #count_words(input)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    Count words. 
- 
  
    
      #do_mistake_to(input = '')  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    Do mistake to input. 
- #hide_text(input_text) ⇒ Object
- #text1 ⇒ Object
- #text2 ⇒ Object
- #text3 ⇒ Object
- #text4 ⇒ Object
- #text5 ⇒ Object
- #text6 ⇒ Object
- #text7 ⇒ Object
- 
  
    
      #text_filter_connectors(input, filter)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    Convert input text into output text struct. 
- 
  
    
      #text_for(option, *input)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    Set of functions used by Lang class Return text indicated by lang code… 
- 
  
    
      #text_with_connectors(text)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    Return text with connectors. 
- 
  
    
      #text_without_connectors(text)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    Return text without connectors. 
Instance Method Details
#build_text_from_filtered(input_struct, input_indexes) ⇒ Object
| 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 | # File 'lib/asker/lang/text_actions.rb', line 104 def build_text_from_filtered(input_struct, input_indexes) lines = input_struct[:lines] indexes = input_indexes.sort counter = 1 text = "" lines.each do |line| line.each do |value| if value.class == String text += (" " + value) elsif value == value.to_i # INFO: ruby 2.4 unifies Fixnum and Bignum into Integer # Avoid using deprecated classes. if indexes.include? value text += " [#{counter}]" counter += 1 else word = input_struct[:words][value][:word] text += (" " + word) end end end end text.gsub!(" .", ".") text.gsub!(" ,", ",") text = text[1, text.size] if text[0] == " " text end | 
#count_words(input) ⇒ Object
Count words
| 137 138 139 140 141 142 143 144 145 146 147 148 149 | # File 'lib/asker/lang/text_actions.rb', line 137 def count_words(input) return 0 if input.nil? t = input.clone t.gsub!("\n", ' ') t.gsub!('/', ' ') # t.gsub!("-"," ") t.gsub!('.', ' ') t.gsub!(',', ' ') t.gsub!(' ', ' ') t.gsub!(' ', ' ') t.split(' ').count end | 
#do_mistake_to(input = '') ⇒ Object
Do mistake to input
| 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 | # File 'lib/asker/lang/text_actions.rb', line 155 def do_mistake_to(input = '') text = input.dup keys = @mistakes.keys # Try to do mistake with one item from the key list keys.shuffle! keys.each do |key| next unless text.include? key.to_s values = @mistakes[key].split(',') values.shuffle! text = text.sub(key.to_s, values[0].to_s) return text end # Force mistake by swapping letters if text.size > 1 i = rand(text.size - 2) aux = text[i] text[i] = text[i + 1] text[i + 1] = aux end return text if text != input text + "s" end | 
#hide_text(input_text) ⇒ Object
| 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 | # File 'lib/asker/lang/text_actions.rb', line 182 def hide_text(input_text) input = input_text.clone if count_words(input) < 2 && input.size < 10 output = "[*]" else output = "" input.each_char do |char| if ' !|"@#$%&/()=?¿¡+*(){}[],.-_<>'.include? char output += char else output += "?" end end end output end | 
#text1 ⇒ Object
| 26 27 28 | # File 'lib/asker/lang/text_actions.rb', line 26 def text1 @_text1 end | 
#text2 ⇒ Object
| 30 31 32 | # File 'lib/asker/lang/text_actions.rb', line 30 def text2 @_text2 end | 
#text3 ⇒ Object
| 34 35 36 | # File 'lib/asker/lang/text_actions.rb', line 34 def text3 @_text3 end | 
#text4 ⇒ Object
| 38 39 40 | # File 'lib/asker/lang/text_actions.rb', line 38 def text4 @_text4 end | 
#text5 ⇒ Object
| 42 43 44 | # File 'lib/asker/lang/text_actions.rb', line 42 def text5 @_text5 end | 
#text6 ⇒ Object
| 46 47 48 | # File 'lib/asker/lang/text_actions.rb', line 46 def text6 @_text6 end | 
#text7 ⇒ Object
| 50 51 52 | # File 'lib/asker/lang/text_actions.rb', line 50 def text7 @_text7 end | 
#text_filter_connectors(input, filter) ⇒ Object
Convert input text into output text struct
| 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 | # File 'lib/asker/lang/text_actions.rb', line 59 def text_filter_connectors(input, filter) input_lines = input.split(".") output_lines = [] output_words = [] input_lines.each_with_index do |line, rowindex| row = [] line.split(" ").each_with_index do |word, colindex| flag = @connectors.include? word.downcase # if <word> is a conector and <pFilter>==true Then Choose this <word> # if <word> isn't a conector and <pFilter>==true and <word>.length>1 Then Choose this <word> if (flag and filter) || (!flag and !filter and word.length > 1) output_words << {:word => word, :row => rowindex, :col => colindex } row << (output_words.size-1) else row << word end end row << "." output_lines << row end indexes = [] exclude = ['[', ']', '(', ')', '"'] output_words.each_with_index do |item, index| flag = true exclude.each { |e| flag = false if item[:word].include? e } indexes << index if flag end { lines: output_lines, words: output_words, indexes: indexes } end | 
#text_for(option, *input) ⇒ Object
Set of functions used by Lang class Return text indicated by lang code…
| 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | # File 'lib/asker/lang/text_actions.rb', line 9 def text_for(option, *input) @_text1 = input[0] # FIXME: done to avoid linter complaints. @_text2 = input[1] @_text3 = input[2] @_text4 = input[3] @_text5 = input[4] @_text6 = input[5] @_text7 = input[6] if @templates[option].nil? Logger.error "TextActions: Unknown template (#{option})" exit 1 end renderer = ERB.new(@templates[option]) renderer.result(binding) end | 
#text_with_connectors(text) ⇒ Object
Return text with connectors
| 94 95 96 | # File 'lib/asker/lang/text_actions.rb', line 94 def text_with_connectors(text) text_filter_connectors(text, false) end | 
#text_without_connectors(text) ⇒ Object
Return text without connectors
| 100 101 102 | # File 'lib/asker/lang/text_actions.rb', line 100 def text_without_connectors(text) text_filter_connectors(text, true) end |