metanorma-plugin-glossarist 0.1.2 → 0.1.4

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: 161c43940a2841d4b92f05cb5b48cfab1f3eef3db02854b5dc88396e34aa9225
4
- data.tar.gz: 377080e6303ad8e0afb736969e40f7fcbe8b48f354c96e6f82ffa2614a09c603
3
+ metadata.gz: a70474bfd62145088fa8353c1680521c1bf09d5401182641b43490eaf2e26fd0
4
+ data.tar.gz: 2611ecbd803ffae2ebbc48bb566f8d0db55408001029b98d66fdf9ea6f4dac81
5
5
  SHA512:
6
- metadata.gz: 3e2ade62ab37bcdc546ac357af61fb1245135733b85fac794c2503bb4f3d98fd09c6af2e12897f45d489ae5ff83e89468b419268fb3653d5fa1b4e8fd0eee459
7
- data.tar.gz: 5626f96664c0e759a874f6efd5eb69a3ba4069958e470f3cacc2e2ecc980be99e7070f39b22c04a2a55476f535aee9b197a2ef3e503982fda7779491325a0781
6
+ metadata.gz: 3e0d7d6c140927fd8ca69ca74ed5fd91a8316a43ff73790b817712dcfb5594a45dc0f588ffffda53d01d1eb12ffc897b6b8bc3c073bfab0950494e499fb087bf
7
+ data.tar.gz: 3c150a94c4644ce6a516992f84276a2a064c0a9b5925bfca76efed7ac333b8a81e56f21d278663b9fb355ec855e4f5cba2536088484aa887abb287e6bb1fe63e
@@ -4,7 +4,7 @@ module Liquid
4
4
  module Drops
5
5
  class ConceptsDrop < Liquid::Drop
6
6
  # rubocop:disable Lint/MissingSuper
7
- NON_LANGUAGE_FIELDS = %w[term termid].freeze
7
+ NON_LANGUAGE_FIELDS = %w[term termid groups].freeze
8
8
 
9
9
  def initialize(managed_concept_collection, filters = {})
10
10
  @concepts_collection = managed_concept_collection
@@ -34,6 +34,7 @@ module Liquid
34
34
  concept_filters = filters.dup
35
35
  language_filter = concept_filters.delete('lang')
36
36
  sort_filter = concept_filters.delete('sort_by')
37
+ group_filter = concept_filters.delete('group')
37
38
 
38
39
  concepts = concepts_collection.to_h["managed_concepts"].map do |concept|
39
40
  filtered_concept = concept.dup
@@ -47,8 +48,14 @@ module Liquid
47
48
 
48
49
  concept_filters.each do |name, value|
49
50
  fields = extract_nested_field_names(name)
50
-
51
- if filtered_concept.dig(*fields) != value
51
+ if fields.last.start_with?("start_with")
52
+ value = fields.last.gsub(/start_with\(([^\)]*)\)/, '\1')
53
+ fields = fields[0..-2]
54
+
55
+ unless filtered_concept.dig(*fields).start_with?(value)
56
+ filtered_concept.delete(field)
57
+ end
58
+ elsif filtered_concept.dig(*fields) != value
52
59
  filtered_concept.delete(field)
53
60
  end
54
61
  end
@@ -61,6 +68,7 @@ module Liquid
61
68
  end
62
69
  end.compact
63
70
 
71
+ apply_group_filter(concepts, group_filter)
64
72
  apply_sort_filter(concepts, sort_filter)
65
73
  end
66
74
 
@@ -70,6 +78,16 @@ module Liquid
70
78
  concepts.sort_by { |concept| concept.dig(*extract_nested_field_names(sort_by)) }
71
79
  end
72
80
 
81
+ def apply_group_filter(concepts, groups)
82
+ return concepts unless groups
83
+
84
+ concepts.select! do |concept|
85
+ groups.split(",").reduce(true) do |pre_result, group|
86
+ pre_result && concept["groups"].include?(group.strip)
87
+ end
88
+ end
89
+ end
90
+
73
91
  def extract_nested_field_names(name)
74
92
  name.split(".").map do |field|
75
93
  field_name = field.strip
@@ -1,7 +1,7 @@
1
1
  module Metanorma
2
2
  module Plugin
3
3
  module Glossarist
4
- VERSION = "0.1.2"
4
+ VERSION = "0.1.4"
5
5
  end
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metanorma-plugin-glossarist
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-05-11 00:00:00.000000000 Z
11
+ date: 2023-07-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: asciidoctor