Class: BaseCodeAI

Inherits:
Object
  • Object
show all
Defined in:
lib/asker/ai/code/base_code_ai.rb

Overview

BaseCodeAI class

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(code) ⇒ BaseCodeAI

Create CodeAI object from Code data

Parameters:



14
15
16
17
18
19
20
# File 'lib/asker/ai/code/base_code_ai.rb', line 14

def initialize(code)
  @code = code
  @lines = code.lines
  @num = 0
  @questions = []
  make_questions
end

Instance Attribute Details

#questionsObject (readonly)

Returns the value of attribute questions.



9
10
11
# File 'lib/asker/ai/code/base_code_ai.rb', line 9

def questions
  @questions
end

Instance Method Details

#clone_array(array) ⇒ Object

Clone array

Parameters:

  • array (Array)

Returns:

  • Array



56
57
58
59
60
# File 'lib/asker/ai/code/base_code_ai.rb', line 56

def clone_array(array)
  out = []
  array.each { |item| out << item.dup }
  out
end

#filenameObject



37
38
39
# File 'lib/asker/ai/code/base_code_ai.rb', line 37

def filename
  @code.filename
end

#linesObject



41
42
43
# File 'lib/asker/ai/code/base_code_ai.rb', line 41

def lines
  @code.lines
end

#lines_to_html(lines) ⇒ Object

Convert an array of lines into one HTML String

Parameters:

  • lines (Array)

Returns:

  • String



79
80
81
82
83
84
85
# File 'lib/asker/ai/code/base_code_ai.rb', line 79

def lines_to_html(lines)
  out = ''
  lines.each_with_index do |line, index|
    out << "%2d: #{line}</br>" % (index + 1)
  end
  out
end

#lines_to_s(lines) ⇒ Object

Convert an array of lines into one String rubocop:disable Style/FormatString

Parameters:

  • lines (Array)

Returns:

  • String



67
68
69
70
71
72
73
# File 'lib/asker/ai/code/base_code_ai.rb', line 67

def lines_to_s(lines)
  out = ''
  lines.each_with_index do |line, index|
    out << "%2d: #{line}\n" % (index + 1)
  end
  out
end

#make_questionsObject

Make questions



90
91
92
93
94
# File 'lib/asker/ai/code/base_code_ai.rb', line 90

def make_questions
  list = find_make_methods
  list.each { |m| @questions += send m }
  @questions
end

#nameObject

Return the name of code

Returns:

  • String



25
26
27
# File 'lib/asker/ai/code/base_code_ai.rb', line 25

def name
  File.basename(@code.filename)
end

#numObject

Counter

Returns:

  • count



48
49
50
# File 'lib/asker/ai/code/base_code_ai.rb', line 48

def num
  @num += 1
end

#process?Boolean

Returns:

  • (Boolean)


29
30
31
# File 'lib/asker/ai/code/base_code_ai.rb', line 29

def process?
  @code.process?
end

#typeObject



33
34
35
# File 'lib/asker/ai/code/base_code_ai.rb', line 33

def type
  @code.type
end