asker-tool 2.2.1 → 2.2.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -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.