asker-tool 2.2.1 → 2.2.5

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.
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require_relative '../formatter/question_moodle_formatter'
4
+ require_relative '../version'
4
5
 
5
6
  # Export ConceptIA data to gift to moodlefile
6
7
  module ConceptAIMoodleExporter
@@ -13,8 +14,8 @@ module ConceptAIMoodleExporter
13
14
  file.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n")
14
15
  file.write("<quiz>\n")
15
16
  file.write("<!--\n#{('=' * 50)}\n")
16
- file.write(" Created by : #{Application::NAME}")
17
- file.write(" (version #{Application::VERSION})\n")
17
+ file.write(" Created by : #{Version::NAME}")
18
+ file.write(" (version #{Version::VERSION})\n")
18
19
  file.write(" File : #{project.get(:moodlename)}\n")
19
20
  file.write(" Time : #{Time.new}\n")
20
21
  file.write(" Author : David Vargas Ruiz\n")
@@ -1,18 +1,17 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require_relative '../formatter/concept_doc_formatter'
4
+ require_relative '../version'
4
5
 
5
6
  ##
6
7
  # Export Concept to Doc file
7
8
  module ConceptDocExporter
8
9
  ##
9
- # Export arrya of concepts to doc
10
- # rubocop:disable Metrics/AbcSize
11
- # rubocop:disable Metrics/MethodLength
10
+ # Export array of concepts to doc
12
11
  def self.export_all(concepts, project)
13
12
  file = File.new(project.get(:lessonpath), 'w')
14
13
  file.write('=' * 50 + "\n")
15
- file.write("Created by : #{Application::NAME} (version #{Application::VERSION})\n")
14
+ file.write("Created by : #{Version::NAME} (version #{Version::VERSION})\n")
16
15
  file.write("File : #{project.get(:lessonname)}\n")
17
16
  file.write("Time : #{Time.new}\n")
18
17
  file.write("Author : David Vargas Ruiz\n")
@@ -23,6 +22,4 @@ module ConceptDocExporter
23
22
  end
24
23
  file.close
25
24
  end
26
- # rubocop:enable Metrics/AbcSize
27
- # rubocop:enable Metrics/MethodLength
28
25
  end
@@ -2,6 +2,8 @@
2
2
 
3
3
  require_relative 'concept_ai_gift_exporter'
4
4
  require_relative 'code_gift_exporter'
5
+ require_relative '../version'
6
+ require_relative '../application'
5
7
 
6
8
  # Export Data (ConceptIA and Code) to gift to outputfile
7
9
  module DataGiftExporter
@@ -12,8 +14,8 @@ module DataGiftExporter
12
14
  def self.export_all(data, project)
13
15
  file = File.open(project.get(:outputpath), 'w')
14
16
  file.write('// ' + ('=' * 50) + "\n")
15
- file.write("// Created by : #{Application::NAME}")
16
- file.write(" (version #{Application::VERSION})\n")
17
+ file.write("// Created by : #{Version::NAME}")
18
+ file.write(" (version #{Version::VERSION})\n")
17
19
  file.write("// File : #{project.get(:outputname)}\n")
18
20
  file.write("// Time : #{Time.new}\n")
19
21
  file.write("// Author : David Vargas Ruiz\n")
@@ -12,8 +12,6 @@ module ContentLoader
12
12
  # Load XML content into Asker data objects
13
13
  # @param filepath (String) File path
14
14
  # @param content (String) XML plane text content
15
- # rubocop:disable Metrics/MethodLength
16
- # rubocop:disable Metrics/AbcSize
17
15
  def self.load(filepath, content)
18
16
  concepts = []
19
17
  codes = []
@@ -94,7 +92,9 @@ module ContentLoader
94
92
  # @param filepath (String)
95
93
  # @param content (String)
96
94
  private_class_method def self.raise_error_with(filepath, content)
97
- puts Rainbow("[ERROR] ContentLoader: Format error in #{filepath}").red.bright
95
+ msg = "[ERROR] ContentLoader: Format error in #{filepath}\n"
96
+ msg += " Take a look at ouput/error.xml"
97
+ puts Rainbow(msg).red.bright
98
98
  f = File.open('output/error.xml', 'w')
99
99
  f.write(content)
100
100
  f.close
@@ -5,9 +5,6 @@ require_relative 'haml_loader'
5
5
 
6
6
  # Methods that load a filename and return list of concepts
7
7
  module FileLoader
8
- ##
9
- # Load asker data from file
10
- # @param filename (String) File name to be load
11
8
  def self.load(filename)
12
9
  if File.extname(filename).casecmp('.haml').zero?
13
10
  file_content = HamlLoader.load filename
@@ -4,12 +4,16 @@ require 'haml'
4
4
 
5
5
  # HAML file loader
6
6
  module HamlLoader
7
- ##
8
- # Load HAML file name
9
- # @param filename (String) HAML file name
10
7
  def self.load(filename)
11
8
  template = File.read(filename)
12
- haml_engine = Haml::Engine.new(template)
13
- haml_engine.render
9
+ begin
10
+ haml_engine = Haml::Engine.new(template)
11
+ return haml_engine.render
12
+ rescue StandardError => e
13
+ puts "[ERROR] HamlLoader: Can't load <#{filename}> file!"
14
+ puts " => #{e}"
15
+ exit 0
16
+ end
14
17
  end
18
+
15
19
  end
data/lib/asker/logger.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'singleton'
4
- require_relative 'application'
4
+ require_relative 'version'
5
5
 
6
6
  # Display and log project messages
7
7
  class Logger
@@ -33,8 +33,8 @@ class Logger
33
33
  def self.create(logpath, logname)
34
34
  @logfile = File.open(logpath, 'w')
35
35
  @logfile.write('=' * 50 + "\n")
36
- @logfile.write("Created by : #{Application::NAME}")
37
- @logfile.write(" (version #{Application::VERSION})\n")
36
+ @logfile.write("Created by : #{Version::NAME}")
37
+ @logfile.write(" (version #{Version::VERSION})\n")
38
38
  @logfile.write("File : #{logname}\n")
39
39
  @logfile.write("Time : #{Time.new}\n")
40
40
  @logfile.write("Author : David Vargas Ruiz\n")
@@ -2,7 +2,7 @@
2
2
 
3
3
  require 'fileutils'
4
4
  require 'rainbow'
5
- require_relative 'application'
5
+ require_relative 'version'
6
6
 
7
7
  # Skeleton: create skeleton for asker input files
8
8
  # * create
@@ -34,8 +34,8 @@ module Skeleton
34
34
  # Create default configuration files
35
35
  def self.create_configuration
36
36
  puts "\n[INFO] Creating configuration files"
37
- src = File.join(File.dirname(__FILE__), 'files', Application::CONFIGFILE)
38
- dst = File.join(Application::CONFIGFILE)
37
+ src = File.join(File.dirname(__FILE__), 'files', Version::CONFIGFILE)
38
+ dst = File.join(Version::CONFIGFILE)
39
39
  copyfile(src, dst)
40
40
  end
41
41
 
@@ -0,0 +1,10 @@
1
+
2
+ # Global parameters
3
+ module Version
4
+ MAJOR_NUMBER = '2.2'
5
+ VERSION = "#{MAJOR_NUMBER}.5"
6
+ NAME = 'asker'
7
+ GEM = 'asker-tool'
8
+ CONFIGFILE = 'asker.ini'
9
+ HOMEPAGE = "https://github.com/teuton-software/#{NAME}/tree/v#{MAJOR_NUMBER}\#readme"
10
+ end
data/lib/asker.rb CHANGED
@@ -3,7 +3,7 @@
3
3
  require 'rainbow'
4
4
 
5
5
  require_relative 'asker/skeleton'
6
- require_relative 'asker/input_checker'
6
+ require_relative 'asker/check_input'
7
7
 
8
8
  require_relative 'asker/displayer/concept_displayer'
9
9
  require_relative 'asker/displayer/stats_displayer'
@@ -12,7 +12,6 @@ require_relative 'asker/logger'
12
12
 
13
13
  require_relative 'asker/loader/project_loader'
14
14
  require_relative 'asker/loader/input_loader'
15
-
16
15
  class Asker
17
16
  def self.init
18
17
  Skeleton.create_configuration
@@ -23,7 +22,7 @@ class Asker
23
22
  end
24
23
 
25
24
  def self.check(filepath)
26
- InputChecker.check(filepath)
25
+ CheckInput.new.file(filepath).check
27
26
  end
28
27
 
29
28
  def self.start(filepath)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: asker-tool
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.1
4
+ version: 2.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Vargas Ruiz
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-01-23 00:00:00.000000000 Z
11
+ date: 2022-02-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: haml
@@ -52,6 +52,34 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: colorize
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '0.8'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '0.8'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rexml
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '3.2'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '3.2'
55
83
  - !ruby/object:Gem::Dependency
56
84
  name: terminal-table
57
85
  requirement: !ruby/object:Gem::Requirement
@@ -94,6 +122,20 @@ dependencies:
94
122
  - - "~>"
95
123
  - !ruby/object:Gem::Version
96
124
  version: '5.11'
125
+ - !ruby/object:Gem::Dependency
126
+ name: pry-byebug
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '3.9'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '3.9'
97
139
  - !ruby/object:Gem::Dependency
98
140
  name: rubocop
99
141
  requirement: !ruby/object:Gem::Requirement
@@ -142,6 +184,9 @@ files:
142
184
  - lib/asker/ai/stages/stage_s.rb
143
185
  - lib/asker/ai/stages/stage_t.rb
144
186
  - lib/asker/application.rb
187
+ - lib/asker/check_input.rb
188
+ - lib/asker/check_input/check_haml_data.rb
189
+ - lib/asker/check_input/check_table.rb
145
190
  - lib/asker/cli.rb
146
191
  - lib/asker/data/code.rb
147
192
  - lib/asker/data/column.rb
@@ -206,7 +251,6 @@ files:
206
251
  - lib/asker/formatter/question_moodle_formatter.rb
207
252
  - lib/asker/formatter/question_moodlexml_formatter.rb
208
253
  - lib/asker/formatter/rb2haml_formatter.rb
209
- - lib/asker/input_checker.rb
210
254
  - lib/asker/lang/lang.rb
211
255
  - lib/asker/lang/lang_factory.rb
212
256
  - lib/asker/lang/text_actions.rb
@@ -221,7 +265,8 @@ files:
221
265
  - lib/asker/loader/project_loader.rb
222
266
  - lib/asker/logger.rb
223
267
  - lib/asker/skeleton.rb
224
- homepage: https://github.com/teuton-software/asker/tree/v2.2
268
+ - lib/asker/version.rb
269
+ homepage: https://github.com/teuton-software/asker/tree/v2.2#readme
225
270
  licenses:
226
271
  - GPL-3.0
227
272
  metadata: {}
@@ -233,14 +278,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
233
278
  requirements:
234
279
  - - ">="
235
280
  - !ruby/object:Gem::Version
236
- version: 2.6.9
281
+ version: 2.5.5
237
282
  required_rubygems_version: !ruby/object:Gem::Requirement
238
283
  requirements:
239
284
  - - ">="
240
285
  - !ruby/object:Gem::Version
241
286
  version: '0'
242
287
  requirements: []
243
- rubygems_version: 3.1.2
288
+ rubyforge_project:
289
+ rubygems_version: 2.7.6.3
244
290
  signing_key:
245
291
  specification_version: 4
246
292
  summary: Asker generates questions from input definitions file.