ruby_qb101 0.3.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f0f3b24e3a7fc32eb8659469b18476223bdabc2f7cf823fafc5940775fcdbb3c
4
- data.tar.gz: 54e8190b0aef0b0d224009ed39a5e89c8a029111de268d0b6047f58e83b2da0c
3
+ metadata.gz: e1c73397fa820b39755d0b882b724f6035e1abe89ab36b073ba83affb0a9da81
4
+ data.tar.gz: c53174ec89bbe82398b7147410a5fe2a17e8d82bdb32df5c95be056ed9336ad6
5
5
  SHA512:
6
- metadata.gz: 8ce8fb423e811d5c0ddb10227c0dd0a2c69742cdcdb6e5777207d0f04f6cae6bbdeabfba90eda5b841aa985fa8fb97fb325e010d39b85680c3e92de7f2fb1bf4
7
- data.tar.gz: af26c2c91c18e8416cc975912521663c24d9ce3431e580b748514bd7548650da98dd325d430f697fddd0ac8caba5ec228b8bae2abc53e1ef13f8d972fd91595d
6
+ metadata.gz: ac956d7653a2510986952d171f0cf8f490bad312eca99cd7a042ebac904b6cdf9950a97deecfe3e63a85ef240c4f909228b9cded083890770947c6d2e4fc66de
7
+ data.tar.gz: 7ab5fb75f4c9227ddd72ea4b0aaa9219c42f0c7f154abbf72e8e659ad6419b65526511dd5c65390b2fb08bd6c4ce2a12a57f9d14cd6eb81b14ee262cbaf47e9b
checksums.yaml.gz.sig CHANGED
Binary file
data/lib/ruby_qb101.rb CHANGED
@@ -5,128 +5,35 @@
5
5
  # Description: Ruby related questions to ask Chat GPT. #experimental
6
6
  # see https://github.com/jrobertson/ruby_qb101/blob/main/data/ruby_qb101.txt for questions used
7
7
 
8
- require 'yatoc'
9
- require 'polyrex-headings'
8
+ require 'qb101'
9
+
10
10
 
11
11
 
12
12
  # This file contains 2 classes, the question book class and
13
13
  # the answer book class.
14
14
 
15
15
 
16
- class Ruby_Qb101
16
+ class Ruby_Qb101 < Qb101
17
17
 
18
18
  def initialize(questions_file=nil)
19
19
 
20
20
  questions_file ||= File.join(File.dirname(__FILE__), '..',
21
21
  'data', 'ruby_qb101.txt')
22
22
 
23
- s = File.read(questions_file)
24
- @questions = s[/#.*/m]
25
- @px = PolyrexHeadings.new(s, debug: false).to_polyrex
26
-
27
- end
28
-
29
- def question(id)
30
-
31
- found = @px.find_by_id(id.to_s)
32
- found.x if found
33
-
34
- end
35
-
36
- alias q question
37
-
38
- def questions()
39
- doc = Rexle.new('<root>' + self.to_html + '</root>')
40
- a = doc.root.xpath('//p/text()').map(&:to_s)
41
- end
23
+ super(questions_file)
42
24
 
43
- def tags()
44
- @px.summary.tags
45
25
  end
46
26
 
47
- def title()
48
- @px.summary.title
49
- end
50
-
51
- def to_md()
52
- @questions
53
- end
54
-
55
- def to_html()
56
- s = @questions.strip.gsub(/^([^\n#].[^\n]+)[\n]+/,'\1' + "\n\n")
57
- Kramdown::Document.new(s).to_html
58
- end
59
-
60
- def to_toc()
61
- Yatoc.new(self.to_html(), min_sections: 1)
62
- end
63
-
64
- def to_xml()
65
- @px.to_xml(pretty: true)
66
- end
67
-
68
27
  end
69
28
 
70
- class Ruby_Ab101
29
+ class Ruby_Ab101 < Ab101
71
30
 
72
- def initialize(qb_txt, ab_xml=nil, filepath: '.', debug: false)
73
-
74
- @debug = debug
75
-
76
- @qb = Ruby_Qb101.new(qb_txt)
77
-
78
- @dx = Dynarex.new('book[title, tags]/item(question, answer)')
79
- @dx.title = @qb.title
80
- @dx.tags = @qb.tags
81
-
82
- @qb.questions.each {|q| @dx.create({question: q}) }
83
-
84
- if ab_xml then
85
-
86
- dx = Dynarex.new(ab_xml)
87
-
88
- # using each question, find the associated answer and
89
- # add it the main record
90
-
91
- @qb.questions.each do |q|
92
-
93
- found = dx.find_by_question q
94
-
95
- if found then
96
- rx = @dx.find_by_question q
97
- rx.answer = found.answer
98
- end
31
+ # note: the ab_xml file can be in CGRecorder log XML format
32
+
33
+ def initialize(qb, ab_xml=nil, filepath: '.', debug: false)
99
34
 
100
- end
101
-
102
- @dx.save ab_xml
103
-
104
- end
105
-
35
+ super(qb, ab_xml, filepath: filepath, debug: debug)
106
36
  end
107
37
 
108
- def save(filename)
109
- @dx.save filename
110
- end
111
-
112
- def to_html()
113
-
114
- doc = Rexle.new('<body>' + @qb.to_html.gsub(/<p>[^>]+>/,'<div>\0</div>') \
115
- + '</body>')
116
- answers = @dx.all.map(&:answer)
117
-
118
- puts 'answers: ' + answers.inspect if @debug
119
-
120
- doc.root.xpath('//p').each.with_index do |para, i|
121
- e = Rexle::Element.new('p', attributes: {class: 'answer'}).add_text answers[i]
122
- para.insert_after e
123
- end
124
-
125
- doc.root.xml pretty: true
126
- end
127
-
128
- def to_xml()
129
- @dx.to_xml(pretty: true)
130
- end
131
38
 
132
39
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby_qb101
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -36,48 +36,28 @@ cert_chain:
36
36
  bGVzx0RTtnomJUcww7L+cStXvNaGrg+DX+sCtqD5OMHyGROrZb0UHBgTZixAfZGU
37
37
  zfFnOLNq11nlIwZsUbPNwuNZQVZuB+GhTGc=
38
38
  -----END CERTIFICATE-----
39
- date: 2023-02-07 00:00:00.000000000 Z
39
+ date: 2023-03-15 00:00:00.000000000 Z
40
40
  dependencies:
41
41
  - !ruby/object:Gem::Dependency
42
- name: yatoc
42
+ name: qb101
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0.3'
47
+ version: '0.2'
48
48
  - - ">="
49
49
  - !ruby/object:Gem::Version
50
- version: 0.3.5
50
+ version: 0.2.0
51
51
  type: :runtime
52
52
  prerelease: false
53
53
  version_requirements: !ruby/object:Gem::Requirement
54
54
  requirements:
55
55
  - - "~>"
56
56
  - !ruby/object:Gem::Version
57
- version: '0.3'
57
+ version: '0.2'
58
58
  - - ">="
59
59
  - !ruby/object:Gem::Version
60
- version: 0.3.5
61
- - !ruby/object:Gem::Dependency
62
- name: polyrex-headings
63
- requirement: !ruby/object:Gem::Requirement
64
- requirements:
65
- - - "~>"
66
- - !ruby/object:Gem::Version
67
- version: '0.3'
68
- - - ">="
69
- - !ruby/object:Gem::Version
70
- version: 0.3.0
71
- type: :runtime
72
- prerelease: false
73
- version_requirements: !ruby/object:Gem::Requirement
74
- requirements:
75
- - - "~>"
76
- - !ruby/object:Gem::Version
77
- version: '0.3'
78
- - - ">="
79
- - !ruby/object:Gem::Version
80
- version: 0.3.0
60
+ version: 0.2.0
81
61
  description:
82
62
  email: digital.robertson@gmail.com
83
63
  executables: []
metadata.gz.sig CHANGED
Binary file