glossarist 1.0.7 → 1.0.9

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a20100b04a726a913c10f8b2c07591effa983fcac9726f3dd07178f32d341b66
4
- data.tar.gz: b4ed4e78f917ad6edb332fd3685b5701b8ee5c898941c47ef8d030984933311b
3
+ metadata.gz: b8fa4ca87465329dfee265b0c813794fbb857d5bbd174c2f7f28f6b4e678f372
4
+ data.tar.gz: c83f9967b06603b4e756f47a8c9bd78ad89b0c1ac8201d6bfcd34c2efc0c5db4
5
5
  SHA512:
6
- metadata.gz: 59b0d75ba9d21bc2d7391b01eae62875c2c091b56efef76f339b36695e2c5a1557b53e7b7d28e7097609d4c05a2f1a00d374dfd5e64b3f63f18ae1aa61f23ed2
7
- data.tar.gz: 19a4c758ee11b59dee86310423cd9433cce74a1dac1e31f3bba1980f3e8df6ba80e577984f96bdbdd4480726d1226ff848654523e4c9c9084b9c7d432d84872c
6
+ metadata.gz: 06207f39595d5ba32421f836268c71a081b028b32183062096c994fef1d794007f32093992716c97a39e91ccda07879405d934d7ea4e9746cf14470fd6e48993
7
+ data.tar.gz: 53b67a4ed78221ea53e2d4d498a39bf01b487d1ec7682a39da16a00ae17dfabc0f162a4b39ea25a6a8dc4259c30e3f0c38835743fbda821b4f53c4dd77ea8318
@@ -65,21 +65,25 @@ module Glossarist
65
65
  end
66
66
  end
67
67
 
68
- private def load_concept_from_file(filename)
69
- Concept.from_h(Psych.safe_load(File.read(filename)))
70
- end
71
-
72
68
  # Writes all concepts to files.
73
69
  def save_concepts
74
70
  @index.each_value &method(:save_concept_to_file)
75
71
  end
76
72
 
77
- private def save_concept_to_file(concept)
73
+ private
74
+
75
+ def load_concept_from_file(filename)
76
+ Concept.from_h(Psych.safe_load(File.read(filename)))
77
+ rescue Psych::SyntaxError => e
78
+ raise Glossarist::ParseError.new(filename: filename, line: e.line)
79
+ end
80
+
81
+ def save_concept_to_file(concept)
78
82
  filename = File.join(path, "concept-#{concept.id}.yaml")
79
83
  File.write(filename, Psych.dump(concept.to_h))
80
84
  end
81
85
 
82
- private def concepts_glob
86
+ def concepts_glob
83
87
  File.join(path, "concept-*.{yaml,yml}")
84
88
  end
85
89
  end
@@ -28,6 +28,8 @@ module Glossarist
28
28
 
29
29
  def load_concept_from_file(filename)
30
30
  ManagedConcept.new(Psych.safe_load(File.read(filename)))
31
+ rescue Psych::SyntaxError => e
32
+ raise Glossarist::ParseError.new(filename: filename, line: e.line)
31
33
  end
32
34
 
33
35
  def save_concept_to_file(concept)
@@ -13,8 +13,14 @@ module Glossarist
13
13
  attr_reader :registered_classes
14
14
 
15
15
  def initialize
16
+ if File.exist?("glossarist.yaml")
17
+ @config = YAML.load_file("glossarist.yaml")
18
+ end
19
+
20
+ @config ||= {}
21
+
16
22
  @registered_classes = DEFAULT_CLASSES.dup
17
- @extension_attributes = []
23
+ @extension_attributes = @config["extension_attributes"] || []
18
24
  end
19
25
 
20
26
  def class_for(name)
@@ -4,5 +4,5 @@
4
4
  #
5
5
 
6
6
  module Glossarist
7
- VERSION = "1.0.7"
7
+ VERSION = "1.0.9"
8
8
  end
data/lib/glossarist.rb CHANGED
@@ -33,7 +33,23 @@ require_relative "glossarist/config"
33
33
 
34
34
  module Glossarist
35
35
  class Error < StandardError; end
36
+
36
37
  class InvalidTypeError < StandardError; end
38
+
39
+ class ParseError < StandardError
40
+ attr_accessor :line, :filename
41
+
42
+ def initialize(filename:, line: nil)
43
+ @filename = filename
44
+ @line = line
45
+
46
+ super()
47
+ end
48
+
49
+ def to_s
50
+ "Unable to parse file: #{filename}, error on line: #{line}"
51
+ end
52
+ end
37
53
  # Your code goes here...
38
54
 
39
55
  def self.configure
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: glossarist
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.7
4
+ version: 1.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-06-27 00:00:00.000000000 Z
11
+ date: 2023-07-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: relaton